27
SAT SOLVING MAXIMIZATION AND MINIMIZATION PROBLEMS Student: Victoria Kravchenko Supervisors: Prof. Yoram Moses Liat Atsmon

Sat solving maximization and minimization problems

Embed Size (px)

DESCRIPTION

Student:Victoria Kravchenko Supervisors:P rof. Yoram Moses Liat Atsmon. Sat solving maximization and minimization problems. The Project Goal. Study and evaluate the approach of solving optimization problems through SAT reduction, and using SAT solvers to solve the reduced problems. SAT. - PowerPoint PPT Presentation

Citation preview

Page 1: Sat solving maximization and minimization problems

SAT SOLVING MAXIMIZATION AND MINIMIZATION PROBLEMS

Student: Victoria Kravchenko

Supervisors: Prof. Yoram Moses

Liat Atsmon

Page 2: Sat solving maximization and minimization problems

The Project GoalStudy and evaluate the approach of solving optimization problems through SAT reduction, and using SAT solvers to solve the reduced problems.

Page 3: Sat solving maximization and minimization problems

SAT Boolean satisfiability problem

(x1+x5’+x4) (x1’+x5+x3+x4) (x3’+x4’) NP-Complete CNF (Conjunctive Normal Form) – “AND

of ORs”

Page 4: Sat solving maximization and minimization problems

MiniSat Developed at 2003 by

Niklas Eén and Niklas Sörensson

Advantages: open-source, successful, small.

Page 5: Sat solving maximization and minimization problems

The MiniSat input formFor: (x1+x5’+x4) (x1’+x5+x3+x4) (x3’+x4’)

p cnf 5 3 → p cnf number_of_variables number_of_clauses

1 -5 4 0 → 0 is the end of the clause

-1 5 3 4 0

-3 -4 0

Page 6: Sat solving maximization and minimization problems

The Project PART 1: Equation Checker

PART 2: SAT with Optimization

PART 3: Maximal Acyclic Subgraph

Page 7: Sat solving maximization and minimization problems

The equation checker Input: X, Y, Z – decimal numbers Output: whether X+Y=Z or not

Calculates the binary form

of the numbers The program prepares

the input for MiniSatusing the table:

1

0 0 0 0 0

0 1 0 1 0

1 1 0 0 1

0 0 1 1 0

0 1 1 0 1

1 1 1 1 1

i i i i iX Y C Z C

Page 8: Sat solving maximization and minimization problems

For the LSB bit:

The equation checker

0

0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Z

Z X Y X Y X Y

f X Y X Y Z X Y X Y Z

X Y X Y Z X Y X Y Z

X Y Z X Y Z X Y Z X Y Z

0

0

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0

Z

Z

f X Y Z X Y Z X Y Z X Y Z

f X Y Z X Y Z X Y Z X Y Z

00 0 0

0 0 0 1

0 0 1 0

0 1 0 0

0 1 1 1

1 0 0 0

1 0 1 1

1 1 0 1

1 1 1 0

ZX Y Z f

Page 9: Sat solving maximization and minimization problems

The equation checker

0

0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0C

C X Y

f X Y C X Y C X Y C X Y C X Y C X C Y C

00 0 0

0 0 0 1

0 0 1 0

0 1 0 1

0 1 1 0

1 0 0 1

1 0 1 0

1 1 0 0

1 1 1 1

CX Y C f

0

0

0 0 0 0 0 0 0 0 0 0 0 0

0 0 0 0 0 0

0 0 0 0 0 0

C

C

f X Y C X Y C X Y C X Y C

f X Y C X Y C

X Y C X Y C

Page 10: Sat solving maximization and minimization problems

SAT with Optimization Input: Vec – x0,x1,x2,…

Phi – CNF expression Output: maximal value of Vec (as a

binary number) which satisfies Phi

Page 11: Sat solving maximization and minimization problems

SAT with Optimization Versions:

I. Bit by Bit:

II. MiniSat condition:

MSB1?1 1?0 1?

? ? ?? ?

?1

1 0 01 0

1

0 11 1

Page 12: Sat solving maximization and minimization problems

Maximal Acyclic Subgraph Input: graph name

nodes – [node_number],[node_weight]

edges – [node_from],[node_to]

For example: ex1 1,2-2,2-3,1 1,2-2,3-3,1

1 (2)

3 (1)

2 (2)

Page 13: Sat solving maximization and minimization problems

Maximal Acyclic Subgraph Output: maximal acyclic subgraph

1 (2)

3 (1)

2 (2)

Page 14: Sat solving maximization and minimization problems

Example 11

(1)

3 (2)

2 (2)

5 (3)

4 (3)

lsg ex1 1,1-2,2-3,2-4,3-5,3 1,2-1,3-2,3-2,4-4,5-5,3

P

Page 15: Sat solving maximization and minimization problems

Example 21

(1)

3 (2)

2 (2)

5 (3)

4 (3)

lsg ex2 1,1-2,2-3,2-4,3-5,3 1,2-3,1-2,3-2,4-4,5-5,3

Page 16: Sat solving maximization and minimization problems

Example 31

(2)

3 (2)

2 (1)

5 (3)

4 (3)

lsg ex3 1,2-2,1-3,2-4,3-5,3 1,2-3,1-2,3-2,4-4,5-5,3

Page 17: Sat solving maximization and minimization problems

Example 41

(1)

3 (2)

2 (2)

5 (3)

4 (3)

lsg ex4 1,1-2,2-3,2-4,3-5,3 1,2-3,1-2,3-2,4-4,5-5,2-5,3

Page 18: Sat solving maximization and minimization problems

Example 51

(1)

3 (2)

2 (4)

5 (1)

4 (3)

lsg ex5 1,1-2,4-3,2-4,3-5,1 1,2-3,1-2,3-2,4-4,5-5,2-5,3

Page 19: Sat solving maximization and minimization problems

How Does It Work?For each edge: Define: [node_from] > [node_to]

Condition: Translate the condition to CNF using a tree

(reduction to 3-SAT)

0 0 0 0 0 0 1 1 0 0 0 0 1 1 1 1 2 2 ...

X Y

x y x y x y x y x y x y x y x y x y

X Y X Y

Page 20: Sat solving maximization and minimization problems

How Does It Work?Building the weighted sum: [node] x [weight]:

Y1[m vars] ↔ X1[node number] x W1[m vars]

Y2[m vars] ↔ X2[node number] x W2[m vars]

Sum the intermediate variables as in the Equation Checker: Z1[m vars] ↔ Y1[m vars] + Y2[m vars]

Continue summing: Z2[m vars] ↔ Z1[m vars] + Y3[m vars]

Save the last intermediate variables representing the accumulated sum: Z(n-1) [m vars] ↔ Z(n-2) [m vars] + Yn[m vars]

Zfinal ↔ X1*W1 + X2*W2 + … + Xn*Wn

Page 21: Sat solving maximization and minimization problems

How Does It Work?

Get a result from the MiniSat using only the edges conditions and extract the weight Wres

Demand a new result with a greater weight s.t. Zfinal > Wres

Continue until the conditions can not be saturated

Page 22: Sat solving maximization and minimization problems

Results

50 100 150 200 250 300 350 400 450 500 550 60012:00:00 AM

12:00:43 AM

12:01:26 AM

12:02:09 AM

12:02:52 AM

12:03:36 AM

12:04:19 AM

12:05:02 AM

12:05:45 AM

12:06:28 AM

12:00:10 AM12:00:16 AM12:00:28 AM

12:00:40 AM12:00:50 AM

12:01:08 AM

12:01:46 AM

12:02:24 AM

12:03:02 AM

12:03:39 AM

12:04:47 AM

12:05:55 AM

Run Time vs. Number of Edges (50 Nodes)

Run Time

Poly (order 4)

Exp

Edges

Tim

e

Page 23: Sat solving maximization and minimization problems

Results

50 100 150 200 250 30000:00:00

00:01:26

00:02:52

00:04:19

00:05:45

00:07:12

00:08:38

00:10:04

00:11:31

00:03:4800:04:09

00:05:56

00:07:25

00:08:30

00:10:31

Run Time vs. Number of Edges (200 Nodes)

Run Time

Poly (order 4)

Exp

Edges

Tim

e

Page 24: Sat solving maximization and minimization problems

Results

50 100 150 200 250 30000:00:00

00:01:26

00:02:52

00:04:19

00:05:45

00:07:12

00:08:38

00:10:04

00:11:31

00:12:57

00:00:1000:00:41

00:02:19

00:03:25

00:06:39

00:11:10

Run Time vs. Number of Nodes (50 Edges)

Run Time

Poly (order 3)

Exp

Nodes

Tim

e

Page 25: Sat solving maximization and minimization problems

Results

50 100 150 200 250 30000:00:00

00:02:52

00:05:45

00:08:38

00:11:31

00:14:24

00:17:16

00:20:09

00:00:40

00:02:01

00:05:05

00:07:25

00:11:39

00:17:12

Run Time vs. Number of Nodes (200 Edges)

Run Time

Poly (order 2)

Exp

Nodes

Tim

e

Page 26: Sat solving maximization and minimization problems

Conclusions The graphs are polynomial and not

exponential although the problem in NP complete – success!

Nodes have a stronger effect on the run time.

Page 27: Sat solving maximization and minimization problems

Thank you for your attention!