- 68 Views
- Uploaded on
- Presentation posted in: General

Sat solving maximization and minimization problems

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Student:Victoria Kravchenko

Supervisors:Prof. Yoram Moses

LiatAtsmon

Sat solving maximization and minimization problems

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

- Boolean satisfiability problem
(x1+x5’+x4) (x1’+x5+x3+x4) (x3’+x4’)

- NP-Complete
- CNF (Conjunctive Normal Form) – “AND of ORs”

- Developed at 2003 byNiklasEén and NiklasSörensson
- Advantages: open-source, successful, small.

For:(x1+x5’+x4) (x1’+x5+x3+x4) (x3’+x4’)

p cnf 5 3 → p cnfnumber_of_variablesnumber_of_clauses

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

-1 5 3 4 0

-3 -4 0

- PART 1: Equation Checker
- PART 2: SAT with Optimization
- PART 3: Maximal Acyclic Subgraph

- Input: X, Y, Z – decimal numbers
- Output: whether X+Y=Z or not
- Calculates the binary form
of the numbers

- The program preparesthe input for MiniSatusing the table:

- For the LSB bit:

- Input: Vec – x0,x1,x2,…
Phi – CNF expression

- Output: maximal value of Vec (as a binary number) which satisfies Phi

- Versions:
- Bit by Bit:
- MiniSat condition:

MSB

1?

1

1?

0

1?

1

?1

?

1

?

0

1

1

?

0

0

?

1

0

?

1

- 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)

2(2)

3(1)

- Output: maximal acyclic subgraph

1(2)

2(2)

3(1)

P

1 (1)

2 (2)

3 (2)

4 (3)

5 (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

1 (1)

2 (2)

3 (2)

4 (3)

5 (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

1 (2)

2 (1)

3 (2)

4 (3)

5 (3)

lsgex3 1,2-2,1-3,2-4,3-5,3 1,2-3,1-2,3-2,4-4,5-5,3

1 (1)

2 (2)

3 (2)

4 (3)

5 (3)

lsgex4 1,1-2,2-3,2-4,3-5,3 1,2-3,1-2,3-2,4-4,5-5,2-5,3

1 (1)

2 (4)

3 (2)

4 (3)

5(1)

lsgex5 1,1-2,4-3,2-4,3-5,1 1,2-3,1-2,3-2,4-4,5-5,2-5,3

For each edge:

- Define: [node_from] > [node_to]
- Condition:
- Translate the condition to CNF using a tree
(reduction to 3-SAT)

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

- 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

- The graphs are polynomial and not exponential although the problem in NP complete – success!
- Nodes have a stronger effect on the run time.

Thank you for your attention!