LARA

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
sav08:advanced_sat_solving_techniques [2008/03/12 21:34]
vkuncak
sav08:advanced_sat_solving_techniques [2008/03/13 10:43]
vkuncak
Line 45: Line 45:
  
 Need efficient data structures: Need efficient data structures:
 +  * counters: simple, need many updates
   * head/tail list   * head/tail list
-  * two-literal watching+  * two-literal watching: each var has list of unassigned literals, do search to see if there are other literals to watch in clause 
 +    * invariant: each clause has at least one watched literal, but not all literals need to be watched
  
-Other mechanisms ​less important: e.g. propagating equivalences.+Mechanisms other than unit propagation are less important: e.g. propagating equivalences.
  
 ===== Conflict Analysis and Lemma Learning - analyze_conflict() ===== ===== Conflict Analysis and Lemma Learning - analyze_conflict() =====
Line 66: Line 68:
 analyze_conflict() { analyze_conflict() {
   cl = find_conflicting_clause();​   cl = find_conflicting_clause();​
-  while (!stop_criterion_met(c1)) {+  while (!is_asserting_clause(c1)) {
     var = var_of_lit(choose_literal(c1));​     var = var_of_lit(choose_literal(c1));​
     c1 = resolve(c1, antecedant(var),​ var);     c1 = resolve(c1, antecedant(var),​ var);
Line 79: Line 81:
   * deduction rule was that some original clause C became unit clause because all literals exept literal containing var were false   * deduction rule was that some original clause C became unit clause because all literals exept literal containing var were false
   * then antecedant(var) is C   * then antecedant(var) is C
 +
 +asserting clause:
 +  * false at current decision level
 +  * only one literal has current decision level (others were assigned before)
 +
 +If c1 is not asserting clause yet, we resolve it with antecedants of variables, following backwards deduction steps.
 +
 +The clause forces a different value of a decision variable at a previous level.
  
 ===== Storing Clauses ===== ===== Storing Clauses =====