Download presentation

Presentation is loading. Please wait.

Published byLillian Warner Modified over 2 years ago

1
Counting Solution Clusters Divide-and-Conquer Recursively: Arbitrarily pick a variable, say x, of formula F Count how many clusters contain solutions with x=0 (ok if the cluster has solutions with both x=0 and x=1) Add number of clusters that contain solutions with x=1 Subtract number of clusters that contain both solutions with x=0 and solutions with x=1 #clusters = #clusters(F)| x=0 + #clusters(F)| x=1 #clusters(F)| x=0 & x=1 Key issues: how can we compute #clusters(F)| x=0 ? (#clusters| x=1 would be similar) how do we compute #clusters(F)| x=0 & x=1 ? (not a problem for SAT) Physics of Algorithms, 2009Bart Selman1 x=1 x=0 (Inclusion - exclusion formula)

2
Computing #clusters(F)| x=0 : Fragmentation Algorithmically, easiest way is to “fix” x to 0 in the formula F, compute #clusters in new formula (F| x=0 ) So, use as approximation: #clusters(F)| x=0 #clusters(F| x=0 ) Risk? Potential over-counting: a cluster of F may break/fragment into several smaller, disconnected clusters when x is fixed to 0 Interestingly: Clusters often do not fragment! In particular, provably no fragmentation in 2-SAT and 3-COL* instances! (any instance, i.e., worst-case). Also, empirically holds for almost all clusters in random 3-SAT, logistics, circuits, … 2 x=0x=1 a cluster in F could fragment to 2 clusters in F| x=0

3
Apply recursively: Z (-1) #clusters(F) = #clusters(F)| x=0 + #clusters(F)| x=1 #clusters(F)| x=0 & x=1 = #clusters(F| x=0 ) + #clusters(F| x=1 ) #clusters(F| x= ) 3 #clusters(F| x=0,y=0 ) + #clusters(F| x=0,y=1 ) #clusters(F| x=0,y= ) smaller problem instances; solve recursively #clusters(F| x=1,y=0 ) + #clusters(F| x=1,y=1 ) #clusters(F| x=1,y= ) #clusters(F| x= ,y=0 ) + #clusters(F| x= ,y=1 ) #clusters(F| x= ,y= ) Total 3 N terms of the form #clusters(F| x=0,y= ,z=1,w= … p=0,q=1 )

4
Putting it all together: Z (-1) Observation: when all N variables have been assigned values, #clusters is either 0 (no solution) or 1 (a full hypercube) #clusters(F| x1=0,x2= ,x3=1,x4= ,…,xN=0 ) = F( x1=0,x2= ,x3=1,x4= ,…,xN=0 ) So, #clusters(F) = v full generalized assignments (-1) no. of in v #clusters(F| v ) = v full generalized assignments (-1) no. of in v F(v) = Z (-1) (F) 4 any full “generalized” assignment

5
5 Empirical Results: Z (-1) for SAT Z (-1) is accurate even for many structured formulas (encoding real-world problems): [Kroc, Sabharwal, Selman ‘09]

6
6 Checks whether all points in y are good # (y) counts the number of elements of y Leads directly to SP equations! Talk by Lukas Kroc Written in factor graph notation:

Similar presentations

OK

A sequence in which a constant (d) can be added to each term to get the next term is called an Arithmetic Sequence. The constant (d) is called the Common.

A sequence in which a constant (d) can be added to each term to get the next term is called an Arithmetic Sequence. The constant (d) is called the Common.

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google

Ppt on afforestation and deforestation Download ppt on turbo generator Free ppt on child labour in india Ppt on obesity diet management Free ppt on mobile number portability pakistan Ppt on standing order edinburgh Ppt on total internal reflection fiber Download ppt on areas of parallelograms and triangles Ppt on acid-base titration problems Ppt on networking related topics about information