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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Abstract Cores J. Berg (HIIT, U. Helsinki) Abstract Cores in IHS July 2020 9 / 20
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Recommend
More recommend