AI x ≥ bI • 簡単のために,以降では整数変数はすべて 0-1 とする • 一般の整数変数の場合も (本発表の範囲内では) 基本的 な考え方は同じ AM x + AR y ≥ b M x ∈ {0, 1}m y ∈ Rn 部分問題 – 分枝限定法ではこの部分問題を繰り返し解く P (S) min cTI x + cTR y s.t. AI x ≥ bI AM x + AR y ≥ bM x ∈ [0, 1]m , S y ∈ Rn • S: 整数変数 xi を値 v に固定する制約条件 xi = v の 集合 • S := {xi1 = v1 , xi2 = v2 , . . . } • |S| ≤ m でもよい • 整数変数を連続緩和し,一部の変数を S に従って固定 した問題 (LP) 6
ある問題に意味のない 0-1 変数 z を追加した 問題を考える min cT x s.t. Ax ≥ b x ∈ {0, 1} z ∈ {0, 1} m • もし最初の分枝変数として z を選ぶと,もと の問題を2回解くことになってしまう z=0 z=1 ※ 実際のソルバーはここまで簡単な罠にはひっかか らない 8
min cT x + dT y に従って固定した問題 s.t. Ax ≥ b • 以下では S を仮定集合とよぶ F x + Gy ≥ h x ∈ [0, 1]m , y ∈ Rn , S 整数変数部分 Q(Λ, Θ, z ∗ , S) s.t. AI x ≥ bI z ≤ z∗ − ΛF x ≥ ΘF • 元の問題 P の整数変数部分に以下を追加した問題 • 連続変数 z とその上限制約 • S • 追加の制約条件 ΛF x ≥ ΘF , ΛO x ≤ ΘO + 1z • Bender’s Cut ΛO x ≤ ΘO + 1z xi ∈ {0, 1}, z ∈ R, S 13
y s.t. Ax ≥ b F x + Gy ≥ h x ∈ [0, 1]m , y ∈ Rn , S 単体法ソルバーの動作 • 最適解が得られた場合 • 最適解 x∗ と Bender’s Cut λT x ≤ θ + z の係数 λ, θ を返す • 実行不可能である場合 • Bender’s Cut λT x ≥ θ の係数 λ, θ を返す Bender’s Cut? • Bender’s 分解というアルゴリズムで用いられる切除平面 • λT x ≤ θ + z • P の目的関数値が z 以下であるため必要条件 • λ x≥θ T • P が実行可能であるための必要条件 • Pseudo-Boolean の人たちは Farkas Constraint と呼んでいる 14
} S z∗ S S z∗ λ, θ 単体法ソルバー • S, z ∗ での実行可能性を検証 • 整数変数部分を Pseudo-Boolean ソルバーで検証 • 実行不可能であれば S を S 0 に縮小 S0 Pseudo-Boolean ソルバー T • 仮定集合 S := ∅ • 暫定解の目的関数値 z ∗ := ∞ • 緩和問題を単体法ソルバーで検証 z∗ • Bender’s Cust を生成 • 整数解が得られた際には z ∗ を更新 • S をそれ以上縮小できなくなるまで反復 • S をそれ以上縮小できなくなったら S に新たな要素を追加 • S = ∅ で実行不可能となったら終了 • z ∗ が最適値 16
} S z∗ S S z∗ λ, θ 単体法ソルバー • S, z ∗ での実行可能性を検証 • 整数変数部分を Pseudo-Boolean ソルバーで検証 • 実行不可能であれば S を S 0 に縮小 S0 Pseudo-Boolean ソルバー T • 仮定集合 S := ∅ • 暫定解の目的関数値 z ∗ := ∞ • 緩和問題を単体法ソルバーで検証 z∗ • Bender’s Cust を生成 • 整数解が得られた際には z ∗ を更新 • S をそれ以上縮小できなくなるまで反復 • S をそれ以上縮小できなくなったら S に新たな要素を追加 • S = ∅ で実行不可能となったら終了 • z ∗ が最適値 16
} S z∗ S S z∗ λ, θ 単体法ソルバー • S, z ∗ での実行可能性を検証 • 整数変数部分を Pseudo-Boolean ソルバーで検証 • 実行不可能であれば S を S 0 に縮小 S0 Pseudo-Boolean ソルバー T • 仮定集合 S := ∅ • 暫定解の目的関数値 z ∗ := ∞ • 緩和問題を単体法ソルバーで検証 z∗ • Bender’s Cust を生成 • 整数解が得られた際には z ∗ を更新 • S をそれ以上縮小できなくなるまで反復 • S をそれ以上縮小できなくなったら S に新たな要素を追加 • S = ∅ で実行不可能となったら終了 • z ∗ が最適値 16
} S z∗ S S z∗ λ, θ 単体法ソルバー • S, z ∗ での実行可能性を検証 • 整数変数部分を Pseudo-Boolean ソルバーで検証 • 実行不可能であれば S を S 0 に縮小 S0 Pseudo-Boolean ソルバー T • 仮定集合 S := ∅ • 暫定解の目的関数値 z ∗ := ∞ • 緩和問題を単体法ソルバーで検証 z∗ • Bender’s Cust を生成 • 整数解が得られた際には z ∗ を更新 • S をそれ以上縮小できなくなるまで反復 • S をそれ以上縮小できなくなったら S に新たな要素を追加 • S = ∅ で実行不可能となったら終了 • z ∗ が最適値 S を更新しながら Bender’s Cut を生成していれば,いつか最適解が求まる ※有限時間で停止することを保証するには,T の条件や,非有界な整数変数が存在しないといった仮定が必要 16
Using csp look-back techniques to solve real-world sat instances. In Proceedings of the Fourteenth National Conference on Artificial Intelligence and Ninth Conference on Innovative Applications of Artificial Intelligence, AAAI’97/IAAI’97, pp. 203–208. AAAI Press, 1997. [2] J.P. Marques-Silva and K.A. Sakallah. Grasp: a search algorithm for propositional satisfiability. IEEE Transactions on Computers, Vol. 48, No. 5, pp. 506–521, 1999. [3] D. Chai and A. Kuehlmann. A fast pseudo-boolean constraint solver. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, Vol. 24, No. 3, pp. 305–317, 2005. 25
linear programming. In Barry O’Sullivan, editor, Principles and Practice of Constraint Programming, pp. 574–589, Cham, 2014. Springer International Publishing. [5] Robert Nieuwenhuis, Albert Oliveras, and Enric RodrÃguez-Carbonell. Intsat: integer linear programming by conflict-driven constraint learning. Optimization Methods and Software, Vol. 39, No. 1, pp. 169–196, 2024. [6] Jo Devriendt, Ambros Gleixner, and Jakob Nordström. Learn to relax: Integrating 0-1 integer linear programming with pseudo-boolean conflict-driven search. Constraints, Vol. 26, No. 1-4, pp. 26–55, October 2021. 26