abstract cores in implicit hitting set maxsat solving
play

Abstract Cores in Implicit Hitting Set MaxSat Solving Jeremias Berg - PowerPoint PPT Presentation

Abstract Cores in Implicit Hitting Set MaxSat Solving Jeremias Berg 1 Fahiem Bacchus 2 Alex Poole 2 1 HIIT, Dept. Computer Science, University of Helsinki, Finland 2 University of Toronto, Department of Computer Science, Canada SAT 2020 Online


  1. Preliminaries: MaxSat Optimisation extension of Boolean Satisfiability (SAT) An instance consists of: ◮ a set of hard clauses and τ = {¬ b 1 , b 2 , ¬ b 3 } ◮ a set of soft clauses. ◮ a weight function wt over the soft clauses. F H = { ( b 1 ∨ b 2 ) , ( b 2 ∨ b 3 ) } F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) } Find τ that: ◮ satisfies all hard clauses and cost ( τ ) = 1 ◮ maximises the number of satisfied soft clauses. F B = { b 1 , b 2 , b 3 } Assume w.l.o.g. that all soft clauses are unit negative literals ◮ Blocking variables: the variables in soft clauses. ◮ F B the set of blocking variables J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 6 / 20

  2. Preliminaries: UNSAT Cores Central in modern MaxSAT solving: F H = { ( b 1 ∨ b 2 ) , ( b 2 ∨ b 3 ) } κ ⊂ F S is an core if F H ∧ κ is F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) } unsatisfiable F B = { b 1 , b 2 , b 3 } κ can be represented as a clause over F B that is entailed by F H or as a linear inequality J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 7 / 20

  3. Preliminaries: UNSAT Cores Central in modern MaxSAT solving: F H = { ( b 1 ∨ b 2 ) , ( b 2 ∨ b 3 ) } κ ⊂ F S is an core if F H ∧ κ is F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) } unsatisfiable F B = { b 1 , b 2 , b 3 } κ can be represented as a clause over F B that is entailed by F H κ = { ( ¬ b 1 ) , ( ¬ b 2 ) } or as a linear inequality J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 7 / 20

  4. Preliminaries: UNSAT Cores Central in modern MaxSAT solving: F H = { ( b 1 ∨ b 2 ) , ( b 2 ∨ b 3 ) } κ ⊂ F S is an core if F H ∧ κ is F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) } unsatisfiable F B = { b 1 , b 2 , b 3 } κ can be represented as a clause over F B that is entailed by F H κ = { ( ¬ b 1 ) , ( ¬ b 2 ) } or as a linear inequality κ = ( b 1 ∨ b 2 ) J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 7 / 20

  5. Preliminaries: UNSAT Cores Central in modern MaxSAT solving: F H = { ( b 1 ∨ b 2 ) , ( b 2 ∨ b 3 ) } κ ⊂ F S is an core if F H ∧ κ is F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) } unsatisfiable F B = { b 1 , b 2 , b 3 } κ can be represented as a clause over F B that is entailed by F H κ = { ( ¬ b 1 ) , ( ¬ b 2 ) } or as a linear inequality κ = ( b 1 ∨ b 2 ) κ = b 1 + b 2 ≥ 1 J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 7 / 20

  6. Preliminaries: UNSAT Cores Central in modern MaxSAT solving: F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) } κ ⊂ F S is an core if F H ∧ κ is F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) } unsatisfiable F B = { b 1 , b 2 , b 3 } κ can be represented as a clause over F B that is entailed by F H κ = { ( ¬ b 1 ) , ( ¬ b 2 ) } or as a linear inequality κ = ( b 1 , b 2 ) κ = b 1 + b 2 ≥ 1 In the rest of the presentation, we represent clauses ( b 1 ∨ b 2 ) as ( b 1 , b 2 ) J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 7 / 20

  7. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } F B = { b 1 , b 2 , b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  8. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } UB = ∞ LB = 0 CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  9. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB UB = ∞ LB = 0 CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  10. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs hs = Min-Hs ( F B , ∅ ) Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  11. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs hs = Min-Hs ( F B , ∅ ) Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B wt ( b ) b Weighted Case LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  12. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB hs = ∅ Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = |∅| subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  13. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB hs = ∅ Set up assumptions A = F B \ hs Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  14. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB sat-assume ( F H , ¬A ) Set up assumptions Extract cores until SAT A = { b 1 , b 2 , b 3 , b 4 } K = {} Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  15. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB sat-assume ( F H , ¬A ) Set up assumptions � � Extract cores until SAT A = { � b 2 , b 3 , b 4 } b 1 , � K = { ( b 1 , b 2 ) } Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  16. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB sat-assume ( F H , ¬A ) Set up assumptions Extract cores until SAT A = { b 3 , b 4 } K = { ( b 1 , b 2 ) } Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  17. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB sat-assume ( F H , ¬A ) Set up assumptions � � Extract cores until SAT A = { � b 4 } b 3 , � K = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  18. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB sat-assume ( F H , ¬A ) Set up assumptions Extract cores until SAT A = {} K = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  19. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB sat-assume ( F H , ¬A ) Set up assumptions Extract cores until SAT A = {} K = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } τ = {¬ b 1 , b 2 , ¬ b 3 , b 4 } Min-Hs ( F B , CORES ) : UB = ∞ minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  20. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT Update UB K = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } τ = {¬ b 1 , b 2 , ¬ b 3 , b 4 } Min-Hs ( F B , CORES ) : UB = cost ( τ ) minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = ∅ BESTSOL = {¬ b 1 , b 2 , ¬ b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  21. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT Update UB K = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } Add cores to CORES τ = {¬ b 1 , b 2 , ¬ b 3 , b 4 } Min-Hs ( F B , CORES ) : UB = 2 minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } BESTSOL = {¬ b 1 , b 2 , ¬ b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  22. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT Update UB Add cores to CORES UB = 2 LB = 0 CORES = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } BESTSOL = {¬ b 1 , b 2 , ¬ b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  23. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB hs = Min-Hs ( F B , { ( b 1 , b 2 ) , ( b 3 , b 4 ) } ) Set up assumptions Extract cores until SAT Update UB Add cores to CORES Min-Hs ( F B , CORES ) : UB = 2 minimize: � b ∈F B b LB = 0 subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES return: { b | b set to 1 in opt. soln } CORES = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } BESTSOL = {¬ b 1 , b 2 , ¬ b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  24. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB hs = { b 1 , b 4 } Set up assumptions Extract cores until SAT Update UB Add cores to CORES UB = 2 LB = |{ b 1 , b 4 }| CORES = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } BESTSOL = {¬ b 1 , b 2 , ¬ b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  25. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB hs = { b 1 , b 4 } Set up assumptions Extract cores until SAT Update UB Add cores to CORES return BESTSOL UB = 2 LB = 2 CORES = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } BESTSOL = {¬ b 1 , b 2 , ¬ b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  26. Solving (unweighted) MaxSat with IHS F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Basic-IHS ( F ) F S = { ( ¬ b 1 ) , ( ¬ b 2 ) , ( ¬ b 3 ) , ( ¬ b 4 ) } Initialize F B = { b 1 , b 2 , b 3 , b 4 } while LB < UB Compute min-cost hitting set hs Update LB hs = { b 1 , b 4 } Set up assumptions Extract cores until SAT Update UB Add cores to CORES return BESTSOL LB need to be increased UB = 2 to optimum before termination LB = 2 CORES = { ( b 1 , b 2 ) , ( b 3 , b 4 ) } BESTSOL = {¬ b 1 , b 2 , ¬ b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 8 / 20

  27. Abstract Cores J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 9 / 20

  28. Drawbacks of IHS Davies [2013] Main motivation for our work: There exists MaxSAT instances on which IHS needs an exponential number of cores. J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 10 / 20

  29. Drawbacks of IHS Davies [2013] Main motivation for our work: There exists MaxSAT instances on which IHS needs an exponential number of cores. n � � � F H = CNF ( b i ≥ r ) i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 10 / 20

  30. Drawbacks of IHS Davies [2013] Main motivation for our work: There exists MaxSAT instances on which IHS needs an exponential number of cores. n = 8 , r = 4 n � � κ 1 = ( b i 1 , b i 2 , b i 3 , b i 4 , b i 5 ) � F H = CNF ( b i ≥ r ) is a core for any i 1 , i 2 , i 3 , i 4 , i 5 i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } Intuition: Any κ ⊂ F S s.t | κ | = ( n − r ) + 1 is a core. J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 10 / 20

  31. Drawbacks of IHS Davies [2013] Main motivation for our work: There exists MaxSAT instances on which IHS needs an exponential number of cores. n = 8 , r = 4 n � � κ 1 = ( b i 1 , b i 2 , b i 3 , b i 4 , b i 5 ) � F H = CNF ( b i ≥ r ) is a core for any i 1 , i 2 , i 3 , i 4 , i 5 i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } κ 2 = ( b i 1 , b i 2 , b i 3 , b i 4 ) is not a core for any i 1 , i 2 , i 3 , i 4 F B = { b 1 , . . . , b n } Intuition: Any κ ⊂ F S s.t | κ | = ( n − r ) + 1 is a core. J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 10 / 20

  32. Drawbacks of IHS Davies [2013] Main motivation for our work: There exists MaxSAT instances on which IHS needs an exponential number of cores. n = 8 , r = 4 n � � κ 1 = ( b i 1 , b i 2 , b i 3 , b i 4 , b i 5 ) � F H = CNF ( b i ≥ r ) is a core for any i 1 , i 2 , i 3 , i 4 , i 5 i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } κ 2 = ( b i 1 , b i 2 , b i 3 , b i 4 ) is not a core for any i 1 , i 2 , i 3 , i 4 F B = { b 1 , . . . , b n } Intuition: Any κ ⊂ F S s.t | κ | = ( n − r ) + 1 is a core. n � � IHS needs to extract all ( n − r )+ 1 of them. J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 10 / 20

  33. Drawbacks of IHS Davies [2013] Main motivation for our work: There exists MaxSAT instances on which IHS needs an exponential number of cores. n = 8 , r = 4 n � � κ 1 = ( b i 1 , b i 2 , b i 3 , b i 4 , b i 5 ) � F H = CNF ( b i ≥ r ) is a core for any i 1 , i 2 , i 3 , i 4 , i 5 i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } κ 2 = ( b i 1 , b i 2 , b i 3 , b i 4 ) is not a core for any i 1 , i 2 , i 3 , i 4 F B = { b 1 , . . . , b n } Intuition: Blocking variables are exchangeable : Any κ ⊂ F S s.t | κ | = ( n − r ) + 1 is a core. cores are defined by the number of them, n � � IHS needs to extract all ( n − r )+ 1 not the identity of them of them. J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 10 / 20

  34. Our Focus Research Question(s) Does there exists a compact representation of large sets of cores that IHS can reason over? J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 11 / 20

  35. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  36. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B n � � � F H = b i ≥ r ) CNF ( i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  37. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } s AB [ i ] ↔ �� � b ∈ AB b ≥ i J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  38. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } s AB [ i ] ↔ �� � b ∈ AB b ≥ i Note : Can be encoded as CNF J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  39. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( ( b 7 , s AB [ 3 ] , b n ) Consider: i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } s AB [ i ] ↔ �� � b ∈ AB b ≥ i J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  40. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( ( b 7 , s AB [ 3 ] , b n ) Consider: i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } ( b 7 , b 1 , b 2 , b 3 , b n ) s AB [ i ] ↔ �� � b ∈ AB b ≥ i J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  41. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( ( b 7 , s AB [ 3 ] , b n ) Consider: i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } ( b 7 , b 1 , b 2 , b 3 , b n ) s AB [ i ] ↔ �� � b ∈ AB b ≥ i ( b 7 , b 3 , b 4 , b 2 , b n ) J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  42. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( ( b 7 , s AB [ 3 ] , b n ) Consider: i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } ( b 7 , b 1 , b 2 , b 3 , b n ) ( b 7 , b 4 , b 2 , b 1 , b n ) s AB [ i ] ↔ �� � b ∈ AB b ≥ i ( b 7 , b 3 , b 4 , b 2 , b n ) J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  43. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( ( b 7 , s AB [ 3 ] , b n ) Consider: i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } F B = { b 1 , . . . , b n } ( b 7 , b 1 , b 2 , b 3 , b n ) ( b 7 , b 4 , b 2 , b 1 , b n ) s AB [ i ] ↔ �� � b ∈ AB b ≥ i ( b 7 , b 3 , b 4 , b 2 , b n ) J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  44. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B Terminology : AB is an abstraction set n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( ( b 7 , s AB [ 3 ] , b n ) s AB [ i ] is an abstraction variable Consider: i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } The definition of s AB [ i ] is F B = { b 1 , . . . , b n } s AB [ i ] ↔ �� � b ∈ AB b ≥ i J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  45. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B Terminology : AB is an abstraction set n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( ( b 7 , s AB [ 3 ] , b n ) s AB [ i ] is an abstraction variable Consider: i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } The definition of s AB [ i ] is F B = { b 1 , . . . , b n } s AB [ i ] ↔ �� � b ∈ AB b ≥ i Abstract Core: a clause over abstraction and blocking variables that is entailed by F H and the definitions of abstraction variables J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  46. Abstract cores Idea: What happens if we introduce literals that count the number of blocking variables set to true? (similar to variables that have been successfully used in core-guided solvers) AB = { b 1 , . . . , b 5 } ⊂ F B Terminology : AB is an abstraction set n � � Define s AB [ i ] � F H = b i ≥ r ) CNF ( s AB [ i ] is an abstraction variable i = 1 F S = { ( ¬ b 1 ) , . . . , ( ¬ b n ) } Could use other definitions The definition of s AB [ i ] is Summations successfull F B = { b 1 , . . . , b n } s AB [ i ] ↔ �� � b ∈ AB b ≥ i in core-guided solvers. Abstract Core: a clause over abstraction and blocking variables that is entailed by F H and the definitions of abstraction variables J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 12 / 20

  47. Abstract cores are expressive Proposition An abstract core containing the abstraction variables { s AB 1 [ j 1 ] , . . . , s AB k [ j k ] } is equivalent to the conjunction of k | AB i | � � � | AB i | − j i + 1 i = 1 regular cores. J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 13 / 20

  48. Abstract cores are expressive Proposition An abstract core containing the abstraction variables { s AB 1 [ j 1 ] , . . . , s AB k [ j k ] } is equivalent to the conjunction of k | AB i | � � � | AB i | − j i + 1 i = 1 regular cores. Two Questions remain: How to compute abstraction sets? 1 How to extract and reason over abstract cores in IHS? 2 J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 13 / 20

  49. Computing Abstraction Sets Ideally Identify a set S ⊂ F B of exchangeable blocking variables. J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 14 / 20

  50. Computing Abstraction Sets LB: 0 Ideally Identify a set S ⊂ F B of exchangeable blocking variables. b 4 b 5 In practice Form abstraction sets over blocking variables that appear b 1 b 3 frequently in cores together. b 2 J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 14 / 20

  51. Computing Abstraction Sets Core: ( b 1 , b 2 ) LB: 0 Ideally Identify a set S ⊂ F B of exchangeable blocking variables. b 4 b 5 In practice Form abstraction sets over blocking variables that appear b 1 b 3 frequently in cores together. 1 b 2 J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 14 / 20

  52. Computing Abstraction Sets Core: ( b 2 , b 4 ) LB: 0 Ideally Identify a set S ⊂ F B of exchangeable blocking variables. b 4 b 5 In practice Form abstraction sets over blocking variables that appear b 1 b 3 1 frequently in cores together. 1 b 2 J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 14 / 20

  53. Computing Abstraction Sets Core: ( b 3 , b 5 ) LB: 0 Ideally Identify a set S ⊂ F B of exchangeable blocking variables. b 4 b 5 In practice 1 Form abstraction sets over blocking variables that appear b 1 b 3 1 frequently in cores together. 1 b 2 J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 14 / 20

  54. Computing Abstraction Sets Core: ( b 1 , b 2 , b 4 ) LB: 0 Ideally Identify a set S ⊂ F B of exchangeable blocking variables. b 4 b 5 In practice 1 1 Form abstraction sets over blocking variables that appear b 1 b 3 2 frequently in cores together. 2 b 2 J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 14 / 20

  55. Computing Abstraction Sets Clustering LB: 0 Ideally Identify a set S ⊂ F B of exchangeable blocking variables. b 4 b 5 In practice 1 1 Form abstraction sets over blocking variables that appear b 1 b 3 2 frequently in cores together. 2 Recall: IHS needs to increase b 2 LB to optimum J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 14 / 20

  56. Computing Abstraction Sets Ideally Identify a set S ⊂ F B of exchangeable blocking variables. b 4 b 5 In practice 1 1 Form abstraction sets over In weighted case blocking variables that appear edges only between b 1 b 3 2 frequently in cores together. blocking variables with the same weight. 2 Recall: IHS needs to increase b 2 LB to optimum J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 14 / 20

  57. IHS with abstract core reasoning F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Abstract-IHS ( F ) F B = { b 1 , b 2 , b 3 , b 4 } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  58. IHS with abstract core reasoning F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Abstract-IHS ( F ) Initialize F B = { b 1 , b 2 , b 3 , b 4 } UB = ∞ LB = 0 AB = ∅ CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  59. IHS with abstract core reasoning F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) } Abstract-IHS ( F ) Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } UB = ∞ LB = 0 AB = ∅ CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  60. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB UB = ∞ LB = 0 AB = { AB = { b 2 , b 3 }} CORES = ∅ BESTSOL = ∅ J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  61. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs hs = Min-Abs ( F B , ∅ , AB ) b ∈ AB b − k · s AB [ k ] ≥ 0 � Min-Abs ( F B , CORES , AB ) : b ∈ AB b − | AB | · s AB [ k ] < k � minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  62. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs hs = ∅ Update LB LB = |∅| UB = ∞ Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = ∅ ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = ∅ return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  63. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs hs = ∅ Update LB Set up assumptions A = ABSTRACT ( F B , hs , AB ) = { b 1 , s AB [ 1 ] , b 4 } AB = { b 2 , b 3 } ABSTRACT ( F B , hs , AB ) A ← { b | b ∈ F B − hs } foreach AB ∈ AB do A ← A − { b | b ∈ AB } A ← A ∪ { s AB [ | AB ∩ hs | + 1 ] } return A J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  64. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs sat-assume ( F H , ¬A ) Update LB A = { b 1 , s AB [ 1 ] , b 4 } Set up assumptions Extract cores until SAT K = {} UB = ∞ LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = ∅ ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = ∅ return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  65. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs sat-assume ( F H , ¬A ) Update LB ✟ A = { b 1 , ✟✟✟ Set up assumptions s AB [ 1 ] , b 4 } Extract cores until SAT K = { ( s AB [ 1 ]) } UB = ∞ LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = ∅ ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = ∅ return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  66. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs sat-assume ( F H , ¬A ) Update LB Set up assumptions A = { b 1 , b 4 } Extract cores until SAT K = { ( s AB [ 1 ]) } UB = ∞ LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = ∅ ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = ∅ return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  67. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs sat-assume ( F H , ¬A ) Update LB Set up assumptions A = { b 1 , b 4 } Extract cores until SAT K = { ( s AB [ 1 ]) } τ = {¬ b 1 , b 2 , b 3 , ¬ b 4 } UB = ∞ LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = ∅ ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = ∅ return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  68. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT K = { ( s AB [ 1 ]) } Update UB τ = {¬ b 1 , b 2 , b 3 , ¬ b 4 } UB = cost ( τ ) LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = ∅ ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  69. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT K = { ( s AB [ 1 ]) } Update UB τ = {¬ b 1 , b 2 , b 3 , ¬ b 4 } Add cores to CORES UB = 2 LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  70. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT Update UB Add cores to CORES UB = 2 LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  71. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT Update UB Add cores to CORES UB = 2 LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  72. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs hs = Min-Abs ( F B , { ( s AB [ 1 ]) } , AB ) Update LB Set up assumptions Extract cores until SAT Update UB Add cores to CORES UB = 2 LB = 0 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  73. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs hs = { b 2 } Update LB Set up assumptions Extract cores until SAT Update UB Add cores to CORES LB = |{ b 2 }| UB = 2 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  74. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs hs = { b 2 } Update LB A = { b 1 , s AB [ 2 ] , b 4 } Set up assumptions Extract cores until SAT Update UB Add cores to CORES ABSTRACT ( F B , hs , AB ) A ← { b | b ∈ F B − hs } foreach AB ∈ AB do A ← A − { b | b ∈ AB } A ← A ∪ { s AB [ | AB ∩ hs | + 1 ] } return A J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  75. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs sat-assume ( F H , ¬A ) Update LB A = { b 1 , s AB [ 2 ] , b 4 } Set up assumptions Extract cores until SAT K = {} Update UB Add cores to CORES UB = 2 LB = 1 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  76. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs sat-assume ( F H , ¬A ) Update LB ✟ b 1 , ✟✟✟ Set up assumptions � s AB [ 2 ] , � � A = { � b 4 } Extract cores until SAT K = { ( b 1 , s AB [ 2 ] , b 4 ) } Update UB Add cores to CORES UB = 2 LB = 1 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  77. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT K = { ( b 1 , s AB [ 2 ] , b 4 ) } Update UB τ = {¬ b 1 , b 2 , b 3 , ¬ b 4 } Add cores to CORES UB = 2 LB = 1 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  78. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT K = { ( b 1 , s AB [ 2 ] , b 4 ) } Update UB τ = {¬ b 1 , b 2 , b 3 , ¬ b 4 } Add cores to CORES UB = 2 LB = 1 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) , ( b 1 , s AB [ 2 ] , b 4 ) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  79. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs Update LB Set up assumptions Extract cores until SAT Update UB Add cores to CORES UB = 2 LB = 1 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) , ( b 1 , s AB [ 2 ] , b 4 ) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  80. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs hs = Min-Abs ( F B , CORES , AB ) Update LB Set up assumptions Extract cores until SAT Update UB Add cores to CORES UB = 2 LB = 1 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) , ( b 1 , s AB [ 2 ] , b 4 ) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

  81. IHS with abstract core reasoning Abstract-IHS ( F ) F H = { ( b 1 , b 2 ) , ( b 2 , b 3 ) , ( b 3 , b 4 ) , � 2 � ( b 2 + b 3 ≥ i ) → s AB [ i ] � i = 1 CNF } Initialize while LB < UB F B = { b 1 , b 2 , b 3 , b 4 } Update AB Compute min-cost hitting set hs hs = { b 2 , b 3 } Update LB Set up assumptions Extract cores until SAT Update UB Add cores to CORES LB = |{ b 2 , b 3 }| UB = 2 Min-Abs ( F B , CORES , AB ) : AB = { AB = { b 2 , b 3 }} minimize: � b ∈F B b subject to: � b ∈ κ b ≥ 1 ∀ κ ∈ CORES CORES = { ( s AB [ 1 ]) , ( b 1 , s AB [ 2 ] , b 4 ) } ↔ s AB [ k ] ∀ AB ∈ AB �� b ∈ AB b ≥ k � BESTSOL = {¬ b 1 , b 2 , b 3 , ¬ b 4 } return: { b | b set to 1 in opt. soln } J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 15 / 20

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend