Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SAT ソルバーの仕組みと制約ソルバーへの応用

Avatar for tsoh tsoh
September 09, 2026

SAT ソルバーの仕組みと制約ソルバーへの応用

Avatar for tsoh

tsoh

September 09, 2026

More Decks by tsoh

Other Decks in Science

Transcript

  1. SAT ソルバーの仕組みと制約ソルバーへの応用 宋 剛秀 (そう たけひで) 名古屋大学 2026 年 9

    月 9 日 (水) @ 京都大学 日本オペレーションズ・リサーチ学会 2026 年秋季シンポジウム(第 94 回) テーマ 「広がる数理科学」
  2. 講演の概要 鍛冶 静雄(京都大学) 坂上 晋作(AI Lab・NII・理研) 位相的データ解析と最適化 逆最適化と機械学習 宋 剛秀(名古屋大学)

    SAT ソルバーの仕組みと 制約ソルバーへの応用 栗田 和宏(岡山大学) 数理モデルとアルゴリズム: 独立点集合から見る列挙アルゴリ ズム設計技法 2 / 55
  3. 講演の概要 鍛冶 静雄(京都大学) 坂上 晋作(AI Lab・NII・理研) 位相的データ解析と最適化 逆最適化と機械学習 宋 剛秀(名古屋大学)

    SAT ソルバーの仕組みと 制約ソルバーへの応用 栗田 和宏(岡山大学) 数理モデルとアルゴリズム: 独立点集合から見る列挙アルゴリ ズム設計技法 本講演では SAT ソルバーの仕組みと制約ソルバーへの応用を紹介する. 2 / 55
  4. 組合せ問題に対する制約ソルバー ソルバー SCIP, CPLEX, Gurobi OR-Tools (CP-SAT), ACE CP Optimizer,

    kat Z3, CVC5 Clingo Exact, SCIP-NaPS CaDiCaL, Kissat 問題 数理最適化 記述できる制約 実数/整数/線形/二次(混合)不等式 CSP 算術,論理,外延的制約,グローバル制約 SMT ASP PB SAT 理論付き論理式 一階述語論理式 0-1 線形不等式 命題論理式(CNF) 3 / 55
  5. 組合せ問題に対する制約ソルバー ソルバー SCIP, CPLEX, Gurobi OR-Tools (CP-SAT), ACE CP Optimizer,

    kat Z3, CVC5 Clingo Exact, SCIP-NaPS CaDiCaL, Kissat 問題 数理最適化 記述できる制約 実数/整数/線形/二次(混合)不等式 CSP 算術,論理,外延的制約,グローバル制約 SMT ASP PB SAT 理論付き論理式 一階述語論理式 0-1 線形不等式 命題論理式(CNF) ▶ 各ソルバーは異なる入力言語 (制約) を持っており得意な問題が異なる.また解くことが できる問題の範囲も異なる. ▶ 組合せ問題はいろいろな制約ソルバーで解くことができる. 3 / 55
  6. 組合せ問題に対する制約ソルバー ソルバー SCIP, CPLEX, Gurobi OR-Tools (CP-SAT) , ACE CP

    Optimizer, kat Z3, CVC5 Clingo Exact, SCIP-NaPS CaDiCaL, Kissat 問題 数理最適化 記述できる制約 実数/整数/線形/二次(混合)不等式 CSP 算術,論理,外延的制約,グローバル制約 SMT ASP 理論付き論理式 PB SAT 0-1 線形不等式 命題論理式(CNF) 一階述語論理式 ▶ 各ソルバーは異なる入力言語 (制約) を持っており得意な問題が異なる.また解くことが できる問題の範囲も異なる. ▶ 組合せ問題はいろいろな制約ソルバーで解くことができる. 多くのソルバーが SAT ソルバーの技術を使用している. 3 / 55
  7. Q. 何故使われるのか? Armin Biere 先生の Twitter (@ArminBiere) より (2020 年

    7 月 29 日) 継続的な高速化 + 継続的な高速化 拡張性 (CNF と CDCL) 4 / 55
  8. SAT 技術の応用 ALLSAT +理論ソルバー +限量子 +列挙 +整数制約 CSP/COP SMT SAT

    QBF PB +01 制約 基盤技術 DPLL/CDCL #SAT +計数 ASP MaxSAT +最適化 +述語論理 5 / 55
  9. SAT 技術の応用 ALLSAT +理論ソルバー +限量子 +列挙 +整数制約 CSP/COP SMT SAT

    QBF PB +01 制約 基盤技術 DPLL/CDCL #SAT +計数 ASP MaxSAT +最適化 +述語論理 5 / 55
  10. 発表内容 ▶ SAT ソルバー ▶ DPLL/CDCL ▶ 近年の技術と性能への貢献度 ▶ SAT

    Competition ▶ 制約ソルバーへの応用 ▶ SAT 符号化を使う CSP ソルバー: kat ▶ LCG ソルバー: OR-Tools (CP-SAT) ▶ SMT ソルバー: Z3, CVC ▶ MIP を使う? SAT を使う? ▶ 固定費付き輸送問題(FCTP) ▶ Colored N-Queen ▶ 2 次元矩形パッキング問題 ▶ SAT に関する研究の紹介 6 / 55
  11. SAT 問題とは SAT 問題 (Boolean Satisfiability Problem) 与えられた命題論理式を真にする値割当てが存在するか判定する問題 例:CNF 式

    (p1 ∨ p2 ∨ p3 ) ∧ (¬p1 ∨ ¬p2 ) ∧ (¬p1 ∨ ¬p3 ) ∧ (¬p2 ∨ ¬p3 ) 解 p1 = T, p2 = F, p3 = F 7 / 55
  12. SAT 問題とは SAT 問題 (Boolean Satisfiability Problem) 与えられた命題論理式を真にする値割当てが存在するか判定する問題 例:CNF 式

    ( p1 ∨ p2 ∨ p3 ) ∧ 解 p1 = T, p2 = F, p3 = F (¬p1 ∨ ¬p2 ) ∧ (¬p1 ∨ ¬p3 ) ∧ ( ¬p2 ∨ ¬p3 ) NP 完全問題の 1 つであり,多くの組合せ問題は SAT 問題を用いて表現できる. 7 / 55
  13. SAT ソルバーとは SAT 問題を自動的に解くプログラム 入力 CNF 形式の論理式 出力 ▶ 充足可能

    (SAT) + 解 主なアルゴリズム ▶ DPLL (1962) 深さ優先探索 ▶ CDCL (2000 頃) 学習による効率化 ▶ 充足不能 (UNSAT) 8 / 55
  14. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ f ∨ ¬f ∨ g ∨ h ∨ ¬h ∨ i ∨ ¬i 決定 伝播 Lv 1 Lv 2 Lv 3 9 / 55
  15. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ f ∨ ¬f ∨ g ∨ h ∨ ¬h ∨ i ∨ ¬i 決定 Lv 1 伝播 ¬a Lv 2 Lv 3 9 / 55
  16. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ f ∨ ¬f ∨ g ∨ h ∨ ¬h ∨ i ∨ ¬i Lv 1 決定 伝播 ¬a b Lv 2 Lv 3 9 / 55
  17. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ f ∨ ¬f ∨ g ∨ h ∨ ¬h ∨ i ∨ ¬i 決定 伝播 Lv 1 ¬a b Lv 2 c Lv 3 9 / 55
  18. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ f ∨ ¬f ∨ g ∨ h ∨ ¬h ∨ i ∨ ¬i 決定 伝播 Lv 1 ¬a b Lv 2 c Lv 3 9 / 55
  19. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ f ∨ ¬f ∨ g ∨ h ∨ ¬h ∨ i ∨ ¬i 決定 伝播 Lv 1 ¬a b Lv 2 c Lv 3 ¬e 9 / 55
  20. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ ∨ ¬f ∨ ∨ h ∨ ¬h ∨ ∨ ¬i 決定 伝播 b f g Lv 1 ¬a Lv 2 c i Lv 3 ¬e f 9 / 55
  21. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ ∨ ¬f ∨ ∨ h ∨ ¬h ∨ ∨ ¬i 決定 伝播 b f g Lv 1 ¬a Lv 2 c i Lv 3 ¬e f g 9 / 55
  22. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ ∨ ¬f ∨ ∨ h ∨ ¬h ∨ ∨ ¬i 決定 伝播 b f g Lv 1 ¬a Lv 2 c i Lv 3 ¬e f g ¬i 9 / 55
  23. DPLL [Davis+, 1962] ∨ ∨ ∨ ∨ b d e

    ¬f C5 : ¬f ∨ C6 : ¬b ∨ C7 : ¬g ∨ h ¬h ¬i C1 : a C2 : c C3 : a C4 : ¬b 決定 伝播 b ∨ ∨ f g Lv 1 ¬a Lv 2 c ∨ i Lv 3 ¬e f g ¬i 9 / 55
  24. DPLL [Davis+, 1962] ∨ ∨ ∨ ∨ b d e

    ¬f C5 : ¬f ∨ C6 : ¬b ∨ C7 : ¬g ∨ h ¬h ¬i C1 : a C2 : c C3 : a C4 : ¬b 決定 伝播 b ∨ ∨ f g Lv 1 ¬a Lv 2 c ∨ i Lv 3 ¬e f g ¬i 矛盾発生: h ∧ ¬h 9 / 55
  25. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ f ∨ ¬f ∨ g ∨ h ∨ ¬h ∨ i ∨ ¬i 決定 伝播 Lv 1 ¬a b Lv 2 c Lv 3 バックトラック 9 / 55
  26. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g ∨ b ∨ d ∨ e ∨ f ∨ ¬f ∨ g ∨ h ∨ ¬h ∨ i ∨ ¬i 決定 伝播 Lv 1 ¬a b Lv 2 c Lv 3 e 値反転して継続 9 / 55
  27. DPLL [Davis+, 1962] C1 : C2 : C3 : C4

    : C5 : C6 : C7 : a c a ¬b ¬f ¬b ¬g 決定 伝播 ∨ b ∨ d ¬a Lv 1 b ∨ e ∨ f ∨ ¬f ∨ g c Lv 2 DPLL ≒ 深さ優先探索 + 単位伝播 ∨ h ∨ ¬h ∨ i e Lv 3 ∨ ¬i 値反転して継続 9 / 55
  28. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] ∨ ∨ ∨ ∨

    b d e ¬f C5 : ¬f ∨ C6 : ¬b ∨ C7 : ¬g ∨ h ¬h ¬i C1 : a C2 : c C3 : a C4 : ¬b ∨ ∨ f g ∨ i 決定 伝播 Lv 1 ¬a b Lv 2 c Lv 3 ¬e f g ¬i 矛盾発生: h ∧ ¬h 10 / 55
  29. 含意グラフによる矛盾解析 Lv 1 ¬a C1 C6 b ¬h C4 Lv

    2 c C7 g C3 C6 ⊥ ¬i C4 Lv 3 ¬e C3 f C5 h 矢印は「左の割当てが節を単位節にし,右の割当てを伝播」を表す. 11 / 55
  30. 含意グラフによる矛盾解析 conflict cut Lv 1 ¬a C1 C6 b ¬h

    C4 Lv 2 c C7 g C3 C6 ⊥ ¬i C4 Lv 3 ¬e C3 f C5 h b ∧ f ⇒ g ∧ ¬i ∧ h ∧ ¬h ⇒ ⊥ ¬(b ∧ f ) = ¬b ∨ ¬f C5 ⊗h C6 = ¬f ∨ ¬b ∨ i, cut を横切る割当てを否定した節を 学習する. ⊗g C4 = ¬b ∨ ¬f . ⊗i C7 = ¬f ∨ ¬b ∨ ¬g, 11 / 55
  31. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] ∨ ∨ ∨ ∨

    b d e ¬f C5 : ¬f ∨ C6 : ¬b ∨ C7 : ¬g ∨ h ¬h ¬i C1 : a C2 : c C3 : a C4 : ¬b ∨ ∨ f g ∨ i 決定 伝播 Lv 1 ¬a b Lv 2 c Lv 3 ¬e f g ¬i 矛盾発生: h ∧ ¬h 12 / 55
  32. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] C1 : C2 :

    C3 : C4 : a c a ¬b ∨ ∨ ∨ ∨ b d e ¬f C5 : C6 : C7 : LC8 : ¬f ¬b ¬g ¬b ∨ ∨ ∨ ∨ h ¬h ¬i ¬f ∨ ∨ f g ∨ i 決定 伝播 Lv 1 ¬a b Lv 2 c Lv 3 ¬e f g ¬i 学習節を生成: ¬b ∨ ¬f 12 / 55
  33. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] C1 : C2 :

    C3 : C4 : C5 : C6 : C7 : LC8 : a c a ¬b ¬f ¬b ¬g ¬b ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ b d e ∨ f ¬f ∨ g h ¬h ∨ i ¬i ¬f Lv 1 決定 伝播 ¬a b Lv 2 Lv 3 Lv 1 へバックジャンプ 12 / 55
  34. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] C1 : C2 :

    C3 : C4 : C5 : C6 : C7 : LC8 : a c a ¬b ¬f ¬b ¬g ¬b ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ b d e ¬f h ¬h ¬i ¬f ∨ f ∨ g ∨ i Lv 1 決定 伝播 ¬a b ¬f e Lv 2 Lv 3 単位伝播 12 / 55
  35. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] C1 : C2 :

    C3 : C4 : C5 : C6 : C7 : LC8 : a c a ¬b ¬f ¬b ¬g ¬b 決定 伝播 ∨ b ∨ d ¬a ¬f Lv 1 b ∨ e ∨ f ∨ ¬f ∨ g 2 ∨ h ≒ DPLL +Lv矛盾解析 CDCL + 節学習 ∨ ¬h ∨ i Lv 3 ∨ ¬i ∨ ¬f e 12 / 55
  36. SAT ソルバーの仕組みの歴史 (MiniSat 以前) ▶ 1960 年代 ▶ DPLL (Davis-–Putnam-–Logemann-–Loveland)

    [Davis+, 1962] ▶ 1990 年代 ▶ CDCL (Conflict Driven Clause Learning) [Bayardo Jr.+, 1997, Marques-Silva+, 1999] ▶ 2000 年以降 ▶ 変数選択ヒューリスティック VSIDS [Moskewicz+, 2001] ▶ 2 リテラルウォッチ [Moskewicz+, 2001] ▶ リスタート [Luby+, 1993, Selman+, 1996, Eén+, 2003] ▶ Phase Saving [Pipatsrisawat+, 2007] ▶ 学習節の評価尺度 [Audemard+, 2009, 鍋島+, 2012] 13 / 55
  37. SAT ソルバーの仕組みの歴史 (MiniSat 以前) ▶ 1960 年代 ▶ DPLL (Davis-–Putnam-–Logemann-–Loveland)

    [Davis+, 1962] ▶ 1990 年代 ▶ CDCL (Conflict Driven Clause Learning) [Bayardo Jr.+, 1997, Marques-Silva+, 1999] ▶ 2000 年以降 ▶ 変数選択ヒューリスティック VSIDS [Moskewicz+, 2001] ▶ 2 リテラルウォッチ [Moskewicz+, 2001] ▶ リスタート [Luby+, 1993, Selman+, 1996, Eén+, 2003] ▶ Phase Saving [Pipatsrisawat+, 2007] ▶ 学習節の評価尺度 [Audemard+, 2009, 鍋島+, 2012] どの技術がどのくらい効いているのか? 13 / 55
  38. 高速化技術の貢献度 (MiniSat まで) CPU time (seconds) SAT Competition / SAT

    Race 2004–2010 の application・industrial 部門から 収集し、内容重複を除いた 1,000 問による比較 ([Katebi+, 2011] の調査を踏襲). M-CL (196) M-RST (373) M-2WL (431) M-VSIDS (267) M-PHS (418) MiniSat full (448) 1000 800 600 400 200 0 0 100 200 300 400 500 600 Solved instances 700 800 900 1000 14 / 55
  39. 高速化技術の貢献度 (MiniSat まで) CPU time (seconds) SAT Competition / SAT

    Race 2004–2010 の application・industrial 部門から 収集し、内容重複を除いた 1,000 問による比較 ([Katebi+, 2011] の調査を踏襲). M-CL (196) M-RST (373) M-2WL (431) Kissat full (833) M-VSIDS (267) M-PHS (418) MiniSat full (448) 1000 800 600 400 200 0 0 100 200 300 400 500 600 Solved instances 700 800 900 1000 14 / 55
  40. SAT ソルバーの仕組みの歴史(MiniSat 以後) ▶ 学習節の生成・評価・管理:探索中に得た「追加節」を評価し,有用な節 を残し,かつ,節を短くする [Audemard+, 2009, Fleury+, 2021].

    ▶ 探索の集中/多様化(intensification/diversification):有望な領域を深 掘りする一方,停滞時には restart や phase 変更で別領域へ移る [Oh, 2015, Biere+, 2020]. ▶ 求解前/求解中の簡単化(preprocessing/inprocessing)と再符号化: 前処理を探索中にも繰り返し,変数消去,節短縮,隠れた回路構造の抽 出を行う [Järvisalo+, 2012, Fleury+, 2023]. ▶ solver engineering:データ配置を詰め直し,cache・memory アクセス のコストを減らす [Biere+, 2024a]. これらの機能を Kissat の 41 のオプションで制御し ablation study を行った. 15 / 55
  41. 高速化技術の貢献度(Kissat まで) CPU time (seconds) SAT Competition / SAT Race

    2004–2010 の application・industrial 部門から 収集し、内容重複を除いた 1,000 問による比較. M-CL (196) M-PHS (418) M-VSIDS (267) M-2WL (431) M-RST (373) MiniSat full (448) Kissat flat (664) K-simplify (773) K-search (784) K-quality (788) K-phase (831) K-struct (825) Kissat full (833) K-eng (830) 1000 800 600 400 200 0 0 100 200 300 400 500 600 Solved instances 700 800 900 1000 16 / 55
  42. SAT ソルバーの国際競技会 目的 ▶ SAT ソルバーとその開発を促進すること ▶ 新しく挑戦的なベンチマークを収集すること ▶ 最新ソルバーの現状を評価すること

    歴史 1992 年から SAT ソルバーの国際競技会が開催されている. ▶ 3 competitions in the 90s (1992, 1993, 1996) ▶ 18 SAT Competitions (2002–) ▶ 5 SAT Races (2006, 2008, 2010, 2015, 2019) ▶ 1 SAT Challenge (2012) 17 / 55
  43. SAT Competition 2026 部門 Main Experimental AI Generated / AI-Tuned

    Parallel Cloud web 対象・特徴 逐次 SAT ソルバー.SAT モデルと UNSAT 証明の 出力が必須 証明生成が未対応の新しい求解技術を評価 AI で生成・調整したソルバーの特別サブ部門 1 台の AWS 計算機(64 vCPU)を用いる並列ソ ルバー 100 台の AWS 計算機を用いる分散並列ソルバー 参加数 17 2 逐次 12 10 2(1 失格) この活発な競技会が SAT ソルバーの性能向上とコミュニティの醸成に大きく貢献して いる! 18 / 55
  44. 発表内容 ▶ SAT ソルバー ▶ DPLL/CDCL ▶ 近年の技術と性能への貢献度 ▶ SAT

    Competition ▶ 制約ソルバーへの応用 ▶ SAT 符号化を使う CSP ソルバー: kat ▶ LCG ソルバー: OR-Tools (CP-SAT) ▶ SMT ソルバー: Z3, CVC ▶ MIP を使う? SAT を使う? ▶ 固定費付き輸送問題(FCTP) ▶ Colored N-Queen ▶ 2 次元矩形パッキング問題 ▶ SAT に関する研究の紹介 19 / 55
  45. どうやって命題論式以外の制約を扱えるようにするのか? 組合せ問題の例 整数変数: 制約: x, y ∈ {2, 3, 4,

    5, 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ 4) ∨ (2x + y ≤ 13) 符号化を使う方法 1. 整数変数を命題変数および論理式に変換する 2. 制約を命題論理式に変換する 20 / 55
  46. 直接符号化 [de Kleer, 1989] アイデア 各整数変数 x とそのドメインの各値 i に対して,x

    = i を表す命題変数 px=i を 用いる. 整数変数 x ∈ {2, 3, 4, 5, 6} に対して用いる命題変数 px=2 , px=3 , px=4 , px=5 , px=6 整数変数は常にちょうど 1 つに値しか取らないことを以下の節で表現する. (px=2 ∨ px=3 ∨ px=4 ∨ px=5 ∨ px=6 ) ∧ (少なくとも 1 つ) ∧ ¬px=i ∨ ¬px=j (高々 1 つ) 2≤i<j≤6 21 / 55
  47. 直接符号化 [de Kleer, 1989] x=2 x=3 x=4 x=5 x=6 px=2

    T F F F F px=3 F T F F F px=4 F F T F F px=5 F F F T F px=6 F F F F T 整数変数への値割当に応じて,命題変数は 1 つだけ T となる.いわゆる one-hot 表現である. 22 / 55
  48. 直接符号化 [de Kleer, 1989, Walsh, 2000] 制約 x + y

    ≤ 7 (x, y ∈ {2, 3, 4, 5, 6}) は,違反点 (図中の × 点) を列挙すること で以下の 15 節に符号化される. y 7 ¬(px=2 ∧ py=6 ) ¬(px=3 ∧ py=5 ) ¬(px=3 ∧ py=6 ) ¬(px=4 ∧ py=4 ) ¬(px=4 ∧ py=5 ) ¬(px=4 ∧ py=6 ) ¬(px=5 ∧ py=3 ) ¬(px=5 ∧ py=4 ) ¬(px=5 ∧ py=5 ) ¬(px=5 ∧ py=6 ) ¬(px=6 ∧ py=2 ) ¬(px=6 ∧ py=3 ) ¬(px=6 ∧ py=4 ) ¬(px=6 ∧ py=5 ) ¬(px=6 ∧ py=6 ) 6 X 5 X X X X X X X X X X X X X 4 3 2 X 1 0 1 2 3 4 5 6 7 x 23 / 55
  49. 順序符号化 [Tamura+, 2009] アイデア 各整数変数 x とそのドメインの各値 i に対して,x ≤

    i を表す命題変数 px≤i を 用いる. 各整数変数 x に対して用いる命題変数 px≥3 , px≥4 , px≥5 , px≥6 整数変数の値の順序関係を以下の節で表現する. ¬px≥6 ∨ px≥5 (x ≥ 6 ならば x ≥ 5) ¬px≥5 ∨ px≥4 (x ≥ 5 ならば x ≥ 4) ¬px≥4 ∨ px≥3 (x ≥ 4 ならば x ≥ 3) 24 / 55
  50. 順序符号化 [Tamura+, 2009] x=2 x=3 x=4 x=5 x=6 px≥2 F

    T T T T px≥3 F F T T T px≥4 F F F T T px≥5 F F F F T 整数変数への値割当に応じて,命題変数は 1 進数 (aka. thermometer) 表現と なる. 25 / 55
  51. 順序符号化 [Tamura+, 2009] 制約 x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) は,違反する範囲を表すことで以下の 5 節 に符号化される. y 7 ¬py≥6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 6 X 5 X X X X X X X X X X X X X 4 3 2 X 1 0 1 2 3 4 5 6 7 x 26 / 55
  52. 順序符号化 [Tamura+, 2009] 制約 x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) は,違反する範囲を表すことで以下の 5 節 に符号化される. y 7 ¬py≥6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 6 X 5 X X X X X X X X X X X X X 4 3 2 X 1 0 1 2 3 4 5 6 7 x 26 / 55
  53. 順序符号化 [Tamura+, 2009] 制約 x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) は,違反する範囲を表すことで以下の 5 節 に符号化される. y 7 ¬py≥6 6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 5 X X X X X X X X X X X X X X 4 3 2 X 1 0 1 2 3 4 5 6 7 x 26 / 55
  54. 順序符号化 [Tamura+, 2009] 制約 x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) は,違反する範囲を表すことで以下の 5 節 に符号化される. y 7 ¬py≥6 6 ¬(px≥3 ∧ py≥5 ) 5 ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 X X X X X X X X X X X X X X 4 3 2 X 1 0 1 2 3 4 5 6 7 x 26 / 55
  55. 順序符号化 [Tamura+, 2009] 制約 x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) は,違反する範囲を表すことで以下の 5 節 に符号化される. y 7 ¬py≥6 6 ¬(px≥3 ∧ py≥5 ) 5 ¬(px≥4 ∧ py≥4 ) 4 ¬(px≥5 ∧ py≥3 ) ¬px≥6 X X X X X X X X X X X X X X 3 2 X 1 0 1 2 3 4 5 6 7 x 26 / 55
  56. 順序符号化 [Tamura+, 2009] 制約 x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) は,違反する範囲を表すことで以下の 5 節 に符号化される. y 7 ¬py≥6 6 ¬(px≥3 ∧ py≥5 ) 5 ¬(px≥4 ∧ py≥4 ) 4 ¬(px≥5 ∧ py≥3 ) ¬px≥6 X X X X X X X X X X X X X X 3 2 X 1 0 1 2 3 4 5 6 7 x 26 / 55
  57. 組合せ問題の SAT 符号化 以降,DE, OE を直接符号化,順序符号化を表す写像とする. SAT 問題 (順序符号化) 元の問題

    x, y ∈ {2, 3, 4, 5, 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) ∧ (x − y ≤ 4) ∨ (2x + y ≤ 13) ⇐⇒ OE(x) OE(y) p∨q r∨s p ↔ OE(x + y ≤ 7) q ↔ OE(x − 2y ≥ 3) r ↔ OE(x − y ≤ −4) s ↔ OE(2x + y ≤ 13) このように符号化により CNF を得ることができれば,SAT ソルバーで解くこ とができる. 27 / 55
  58. 発表内容 ▶ SAT ソルバー ▶ DPLL/CDCL ▶ 近年の技術と性能への貢献度 ▶ SAT

    Competition ▶ 制約ソルバーへの応用 ▶ SAT 符号化を使う CSP ソルバー: kat ▶ LCG ソルバー: OR-Tools (CP-SAT) ▶ SMT ソルバー: Z3, CVC ▶ MIP を使う? SAT を使う? ▶ 固定費付き輸送問題(FCTP) ▶ Colored N-Queen ▶ 2 次元矩形パッキング問題 ▶ SAT に関する研究の紹介 28 / 55
  59. LCG ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 伝播 Lv 1 Lv 2 CNF (SAT ソルバー) OE(x) ∧ OE(y) DE(x) ∧ DE(y) ChannelingCon 制約伝播器 (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 29 / 55
  60. LCG ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) Lv 1 伝播 px=2 Lv 2 CNF (SAT ソルバー) OE(x) ∧ OE(y) DE(x) ∧ DE(y) ChannelingCon 制約伝播器 (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 29 / 55
  61. LCG ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) Lv 1 伝播 px=2 Lv 2 CNF (SAT ソルバー) OE(x) ∧ OE(y) DE(x) ∧ DE(y) ChannelingCon 制約伝播器 (x + y ≤ 7) ∨ (x − 2y ≥ 3) x = 2 → (y ≤ 5) ∨ ⊥ (x − y ≤ −4) ∨ (2x + y ≥ 13) x = 2 → (y ≥ 6) ∨ ⊥ 29 / 55
  62. LCG ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) Lv 1 px=2 Lv 2 py=4 伝播 CNF (SAT ソルバー) OE(x) ∧ OE(y) DE(x) ∧ DE(y) ChannelingCon 制約伝播器 (x + y ≤ 7) ∨ (x − 2y ≥ 3) x = 2 → (y ≤ 5) ∨ ⊥ (x − y ≤ −4) ∨ (2x + y ≥ 13) x = 2 → (y ≥ 6) ∨ ⊥ 29 / 55
  63. LCG ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) CNF (SAT ソルバー) OE(x) ∧ OE(y) DE(x) ∧ DE(y) ChannelingCon Lv 1 px=2 Lv 2 py=4 伝播 制約伝播により矛盾検出 制約伝播器 (x + y ≤ 7) ∨ (x − 2y ≥ 3) x = 2 → (y ≤ 5) ∨ ⊥ (x − y ≤ −4) ∨ (2x + y ≥ 13) x = 2 → (y ≥ 6) ∨ ⊥ 29 / 55
  64. LCG ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 伝播 Lv 1 Lv 2 CNF (SAT ソルバー) OE(x) ∧ OE(y) DE(x) ∧ DE(y) ChannelingCon px=2 → py≤5 px=2 → py≥6 ¬px=2 ∨ ¬py=4 伝播節と学習節を CNF に追加し bj 制約伝播器 (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 29 / 55
  65. LCG ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 伝播 Lv 1 Lv 2 CNF (SAT ソルバー) (良いところ) 少ない節で解き始めることができる. OE(x) ∧ OE(y) (悪いところ) 学習節の獲得が遅くなる. DE(x) ∧ DE(y) 制約伝播器 ChannelingCon (x + y ≤ 7) ∨ (x − 2y ≥ 3) px=2 → py≤5 (x − y ≤ −4) ∨ (2x + y ≥ 13) px=2 → py≥6 ¬px=2 ∨ ¬py=4 29 / 55
  66. 発表内容 ▶ SAT ソルバー ▶ DPLL/CDCL ▶ 近年の技術と性能への貢献度 ▶ SAT

    Competition ▶ 制約ソルバーへの応用 ▶ SAT 符号化を使う CSP ソルバー: kat ▶ LCG ソルバー: OR-Tools (CP-SAT) ▶ SMT ソルバー: Z3, CVC ▶ MIP を使う? SAT を使う? ▶ 固定費付き輸送問題(FCTP) ▶ Colored N-Queen ▶ 2 次元矩形パッキング問題 ▶ SAT に関する研究の紹介 30 / 55
  67. SMT ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) Lv 1 (x − y ≤ −4) ∨ (2x + y ≥ 13) Lv 2 伝播 CNF (SAT ソルバー) 背景理論ソルバー 31 / 55
  68. SMT ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) p q (x − y ≤ −4) ∨ (2x + y ≥ 13) r s 伝播 Lv 1 Lv 2 CNF (SAT ソルバー) p∨q r∨s 背景理論ソルバー 31 / 55
  69. SMT ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) p q (x − y ≤ −4) ∨ (2x + y ≥ 13) r s Lv 1 伝播 q Lv 2 CNF (SAT ソルバー) p∨ q 背景理論ソルバー r∨s x − 2y ≥ 3 31 / 55
  70. SMT ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) p q (x − y ≤ −4) ∨ (2x + y ≥ 13) r s Lv 1 q Lv 2 r 伝播 CNF (SAT ソルバー) p∨ q 背景理論ソルバー r ∨s x − 2y ≥ 3 x − y ≤ −4 31 / 55
  71. SMT ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) p q (x − y ≤ −4) ∨ (2x + y ≥ 13) r s CNF (SAT ソルバー) Lv 1 q Lv 2 r 伝播 理論伝播により矛盾検出 p∨ q 背景理論ソルバー r ∨s x − 2y ≥ 3 x − y ≤ −4 31 / 55
  72. SMT ソルバー 決定 元の問題 x, y ∈ {2, . .

    . , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) p q (x − y ≤ −4) ∨ (2x + y ≥ 13) r s CNF (SAT ソルバー) p∨q r∨s ¬q ∨ ¬r Lv 1 伝播 q Lv 2 学習節 ¬q ∨ ¬r を追加し backjump 背景理論ソルバー x − 2y ≥ 3 31 / 55
  73. SMT ソルバー 元の問題 x, y ∈ {2, . . .

    , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) p q (x − y ≤ −4) ∨ (2x + y ≥ 13) r s Lv 1 決定 伝播 q ¬r Lv 2 単位伝播 (良いところ) SAT と理論ソルバーの分離が出来る. CNF (SAT ソルバー) (悪いところ) 横断的な学習が難しい. p∨q 背景理論ソルバー r∨s x − 2y ≥ 3 ¬q ∨ ¬r x − y > −4 31 / 55
  74. 発表内容 ▶ SAT ソルバー ▶ DPLL/CDCL ▶ 近年の技術と性能への貢献度 ▶ SAT

    Competition ▶ 制約ソルバーへの応用 ▶ SAT 符号化を使う CSP ソルバー: kat ▶ LCG ソルバー: OR-Tools (CP-SAT) ▶ SMT ソルバー: Z3, CVC ▶ MIP を使う? SAT を使う? ▶ 固定費付き輸送問題(FCTP) ▶ Colored N-Queen ▶ 2 次元矩形パッキング問題 ▶ SAT に関する研究の紹介 32 / 55
  75. 固定費付き輸送問題(FCTP) どの経路を開き,どれだけ輸送するか ∑ ∑ fij yij min cij xij +

    s.t. ij ∑ ij xij = si , ∑ j 0 ≤ xij ≤ Uij yij , xij = dj , 実験条件 Glover FCTP(全入力値が整数) CP-SAT では xij も整数変数としてモデル化 単一スレッド,各 3 回(大規模は予備実 験 1 回) CP-SAT 規模 i yij ∈ {0, 1}. ▶ xij : 輸送量(連続フロー) ▶ yij : 経路を開くか(離散選択) ▶ cij , fij , si , dj , Uij : 与えられた定数 Gurobi 10×10 15×15 10×20 0.13–0.28 秒 0.03–0.07 秒 2.85–5.60 秒 0.32–0.37 秒 0.54–3.62 秒 0.03–0.31 秒 50×50 gap 30×100 gap 50×100 gap 2.44–2.97% 3.17–3.41% 3.30–3.55% 0.50–0.71% 0.84–0.88% 0.94–1.03% 小規模 6 問の幾何平均で Gurobi が 8.68 倍高速 33 / 55
  76. Colored N-Queen Queen グラフを n 色で彩色 実験条件 n × n

    盤の各マスを 1 色で塗り,同じ行・ 列・対角線上のマスには異なる色を割り 当てる. 10 秒,単一スレッド,各 3 回.第 1 行の色 対称性を除去. ▶ 各色は「互いに攻撃しない n 個の Queen」を表す. ▶ 行・列・対角線ごとの AllDifferent が中心. ▶ 連続量を持たない離散的な CSP. 8(UNSAT) 3/3,0.018 秒 3/3,5.34 秒 9(UNSAT) 3/3,0.208 秒 0/3,時間切れ 10(UNSAT) 2/3,8.40–9.08 秒 0/3,時間切れ 11(SAT) 0/3,時間切れ 0/3,時間切れ n(答) CP-SAT Gurobi n = 8 の UNSAT 証明は CP-SAT が約 300 倍高速 color(r, c) ∈ {1, . . . , n} CP-SAT: 整数色+ AllDifferent.Gurobi: 0–1 one-hot + clique 制約.各ソルバーに自然な定式化を使用. 34 / 55
  77. 矩形パッキング問題を例題にした性能評価 目的 組合せ問題におけるソルバー性能の 1 つの参考資料を作ること 比較したソルバー ▶ 数理最適化ソルバー: CPLEX, Gurobi,

    SCIP, OR-Tools CBC ▶ CP ソルバー: OR-Tools (CP-SAT), ACE ▶ SMT ソルバー: Z3, CVC5 ベンチマーク: Consecutive Square Packing ▶ 入力: 整数値 n ▶ 制約: 1x1, 2x2, ..., nxn の正方形を重ならずに配置する ▶ 出力: 全ての正方形を配置するのに必要な最小の正方形コンテナの辺長 10 から 100 までの 90 問および 500, 1000 の 2 問の合計 92 問. 35 / 55
  78. 計算機実験 (続き) 実験設定 ▶ CPU: Intel(R) Xeon(R) Gold 6346 CPU

    @ 3.10GHz ▶ MEM: 128 GB ▶ 時間制限: 1800 秒 ▶ 実行は各ソルバーの設定でシングルスレッドに制限 評価指標 1. 最適値を見つけた問題数と計算時間 (カクタスプロット) 2. 制限時間内に見つけた最良解の品質 (ヒートマップ) 謝辞 この比較では Gurobi 社,IBM 社から貸与された学術ライセンスを使用しまし た.御礼申し上げます. 36 / 55
  79. 1) 最適値を見つけた問題数と計算時間 1400 Wall Clock Time (seconds) 1200 1000 800

    600 ace cplex cpoptimizer cvc5 gurobi_indicator_int_all gurobi_indicator_int_obj gurobi_indicator_mip ortools_cbc ortools_cpsat scip z3 400 200 0 2 4 6 8 10 12 Number of Instances Solved 14 16 37 / 55
  80. 2) 制限時間内に見つけた最良解の品質 ▶ 横軸: インスタンスの入力サイズ n ▶ 縦軸: ソルバー ▶

    色: =最良, =解は出たが最悪, =解が出なかった ⋆=最適値 Z3 SCIP GRB-IO CPOpt 0 10 90 80 70 60 50 40 30 20 10 OR-SAT 38 / 55
  81. 発表内容 ▶ SAT ソルバー ▶ DPLL/CDCL ▶ 近年の技術と性能への貢献度 ▶ SAT

    Competition ▶ 制約ソルバーへの応用 ▶ SAT 符号化を使う CSP ソルバー: kat ▶ LCG ソルバー: OR-Tools (CP-SAT) ▶ SMT ソルバー: Z3, CVC ▶ MIP を使う? SAT を使う? ▶ 固定費付き輸送問題(FCTP) ▶ Colored N-Queen ▶ 2 次元矩形パッキング問題 ▶ SAT に関する研究の紹介 39 / 55
  82. SAT 型 CSP ソルバーの基本的な手続き CSP 符号化 SAT SAT ソルバー CSP

    の解 復号化 SAT の解 Donald E. Knuth: “Thus the art of problem encoding turns out to be just as important as the art of devising algorithms for satisfiability.” 40 / 55
  83. kat の手続き XCSP パース CSP 制約伝播 CSPprop 制約変換 CSPlinear 制約伝播

    符号化準備 CSP≥ CSPprop : ドメイン削減 CSPlinear : 線形制約の選言の連言 CSP≥ : ≥ 制約へ正規化 符号化 SAT SAT ソルバー SAT の解 CEGAR 節追加 復号化 CSP の解 41 / 55
  84. kat の手続き XCSP パース CSP ▶ ▶ ▶ ▶ ▶

    ▶ 制約伝播 CSPprop 制約変換 CSPlinear 制約伝播 符号化準備 CSP≥ CSPprop : ドメイン削減 CSPlinear : 線形制約の選言の連言 CSP≥ : ≥ 制約へ正規化 順序符号化 直接符号化 対数符号化 支持符号化 CEGAR External Propagator 符号化 SAT SAT ソルバー SAT の解 CEGAR 節追加 復号化 CSP の解 41 / 55
  85. SAT 型 CSP ソルバー kat の性能 FLoC 2026 Olympic Games

    計算論理分野最大級の国際会議 FLoC 2026(リスボン)併催の XCSP3 Competition 2026 にて,kat が Main CSP 部門で共同優勝した. ▶ XCSP3 は CSP/COP ソルバーの国際競技会であり,2005 年に始まった前 身から続く. ▶ 共通入力形式 XCSP3 の下で,世界各国の教育研究機関のソルバーが性能 を競う. ▶ Main CSP は標準的な制約充足問題を対象とする中心部門である. 42 / 55
  86. 独立集合遷移問題 (ISRP) への応用 [Soh+, 2026] 1 3 4 2 5

    6 Is = I0 7 3→1 1 3 4 2 5 6 7 I1 独立集合再構成問題(ISRP) ▶ 入力:グラフ G,初期・目標独立集合 Is , Ig ▶ 1 回に 1 つの token を移し,常に独立 集合を保つ ▶ 目的:Is から Ig への最短系列 6→5 1 3 4 2 5 6 1→4 7 I2 1 3 4 2 5 6 7 I3 = Ig SAT 型ソルバー SRIP ▶ incremental SAT による bounded model checking ▶ clique 分割と token 固定・単調性制約で 圧縮・枝刈り ▶ Rust 実装,CaDiCaL 3.0 を使用 結果 CoRe Challenge 693 問中 477 問で最短系列を求め,比較ソルバー中最多. 44 / 55
  87. ハイブリッド符号化 [Soh+, 2017] ▶ 順序符号化 [Tamura+, 2009] (実装: Sugar web

    ) ▶ 伝播性能は良いが,問題の規模が大きくなると性能が悪くなる. ▶ 対数符号化 [Iwama+, 1994] ▶ 伝播性能は悪いが, 問題の規模が大きくても解くことができる. ▶ ハイブリッド符号化 [Soh+, 2017] (実装: Fun-sCOP web ) ▶ 任意の符号化をチャネリング制約無しで組合せることができる符号化法. ▶ 順序符号化と対数符号化を融合することで良いところを組合せた符号化を 作ることが可能. ▶ 各整数変数は順序符号化もしくは対数符号化のどちらか一つで符号化され, 各制約は両方の符号化変数を含むことができる. 45 / 55
  88. ハイブリッド符号化: 例 L O 整数変数 x1 , x2 ∈ {0,

    1, 2, 3} を考える. 制約 2x1 + x2 ≥ 5 は τ{x ◦ τ{x によっ 2} 1} て以下のように符号化される. L O (τ{x ◦ τ{x )(2x1 + x2 ≥ 5) 2} 1} O ⇐⇒ τ{x (2x1 + px2 ,0 + 2px2 ,1 ≥ 5) 1} ∧ ⇐⇒ (x1 ≥ d1 + 1) ∨ (px2 ,0 + 2px2 ,1 ≥ 5 − 2d1 ) d1 ∈{0,1,2,3} ⇐⇒ (px1 ≤1 ) ∧ (px1 ≤2 ∨ (px2 ,0 + 2px2 ,1 ≥ 3)) ∧ (px1 ≤3 ∨ (px2 ,0 + 2px2 ,1 ≥ 1)) 46 / 55
  89. システム生物学と遺伝子制御ネットワーク ▶ システム生物学とは,生物の活動を遺伝子・タンパク質・細胞などが相 互に作用する複雑なシステムとして捉え,その全体的な挙動や機能を理 解しようとする学問分野である. 遺伝子 a タンパク質 a 遺伝子

    b タンパク質 b The Nobel Committee for Physiology or Medicine / Illustration: Annika Röhl ▶ 遺伝子制御ネットワークとは,遺伝子の相互作用を頂点を遺伝子,辺を 調節因子としたグラフで表現したものである. 47 / 55
  90. ブーリアンネットワークと不動点 ブーリアンネットワーク (BN) BN は遺伝子制御ネットワークの代表的な数理モデルの 1 つである.遺伝子の 状態を 1 と

    0 の二値,調節因子は命題論理式で表す. v1t+1 = v2t v1 v2t+1 = ¬v3t v3t+1 = ¬v1t ∧ v2t v3 v2 状態遷移図と不動点 100 110 111 101 000 010 011 001 十分長く遷移を続けると 110 (不動点) に到達し遷移しなくなる (≓ 細胞の定 常 (最終) 状態). 48 / 55
  91. SAT 型 BN 不動点計数ソルバー [Higuchi+, 2025] これまでの手法を不動点の計数に応用することで既存研究を大きく上回る性 能を達成した. 1000 CPU

    Time [s] 100 10 PyBoolNet fASP-conj SAF fASP-src Hybrid Enum. AEON Direct Count. Indirect Count. Hybrid Count. 1 0.1 0.01 49 / 55
  92. 未知の不動点の計数 [Higuchi+, 2025] 不動点の数が未知であった実世界のネットワークに対し,その数を正確に計 数することに成功した (IJCAI 2025 で発表). Instance #Vars

    #Attractors #113 ER-STRESS 182 1168455003694263561093120 #122 NSP14 168 33278627362665583108034953216 #124 NSP9-PROTEIN 252 13611294676837538538534984297270728458240 #144 SNF1-AMPK-PATHWAY 202 10096027719780900754667077632 #220 H.-RESPONSE-IN-L. 342 2656331146614175432704000 #221 MYCOBACTERIAL-L. 317 2473901162496 Alzheimer 762 1355318094474400392445140020586319209-7103960354330270737143428036029317120 Cholocystokinin 383 47935169240579835005239296 Yeast-Pheromone 246 5711631030629640192 50 / 55
  93. まとめ ▶ SAT ソルバー ▶ DPLL/CDCL,近年の高速化技術とその貢献度,SAT Competition ▶ 制約ソルバーへの応用 ▶

    SAT 符号化を使う CSP ソルバー kat ▶ LCG ソルバー (OR-Tools CP-SAT) と SMT ソルバー (Z3, CVC) ▶ MIP を使う? SAT を使う? ▶ FCTP,Colored N-Queen,2 次元矩形パッキングで比較 ▶ SAT に関する研究の紹介 ▶ SRIP,ハイブリッド符号化,ブーリアンネットワーク,ASPITAL 53 / 55
  94. まとめ ▶ SAT ソルバー ▶ DPLL/CDCL,近年の高速化技術とその貢献度,SAT Competition ▶ 制約ソルバーへの応用 ▶

    SAT 符号化を使う CSP ソルバー kat Take Home ▶ LCG ソルバー (OR-Tools CP-SAT) とMessage: SMT ソルバー (Z3, CVC) ▶ MIP を使う ? SAT を使う? 問題の構造に合う表現とソルバーを選ぶ ▶ FCTP,Colored N-Queen,2 次元矩形パッキングで比較 ― SAT はその強力な選択肢 ▶ SAT に関する研究の紹介 ▶ SRIP,ハイブリッド符号化,ブーリアンネットワーク,ASPITAL 53 / 55
  95. 研究プロジェクト ▶ 今日紹介した研究は番原睦則先生 (名古屋大学) と鍋島英知先生 (山梨大 学) と行ってきた. ▶ 2025

    年から 3 人で KRR (Knowledge Representation and Reasoning) プ ロジェクトを始めた. ▶ 大学では番原先生と二人で研究室を運営している. ▶ 興味のある方はぜひご連絡ください! 54 / 55
  96. LymphoSAT:ドメイン特化の超専門化 web LLM で合成した 126 個の専門 SAT ソルバと,一般 SAT ソルバ

    Kissat を組み合 わせる. h matc DIMACS CNF 95 次元の 構造特徴量 family matcher no m atch 専門ソルバ 126 個 /U NKN Kissat Ofallback WN ▶ 問題形状を検出し,最初に適合した family 専用ソルバへ振り分ける. ▶ 専門ソルバは構造を復元し,SAT 探索以外の専用アルゴリズムも使う. ▶ 名前は「一般的な自然免疫+特定病原体に強い適応免疫」の比喩に由来 する. 1 / 24
  97. LymphoSAT:LLM による専門ソルバ開発 1. Global Benchmark Database の各 family を train

    80%/ validation 20% に分割 2. coding agent に train を渡し,family 専用ソルバを生成 3. 外部環境で 600 秒評価し,モデルまたは VeriPB 証明を検査 4. validation で Kissat より PAR-2 が良く,誤答がないものだけ採用 生成結果 ▶ 189 family 中 125 で専門ソルバを 採用 ▶ 未収録の GF(3) 線形方程式用を加え て計 126 ▶ 合成:Claude Opus 4.6,GPT-5.5 等 ▶ LLM 約$10,000,GCP 評価約$5,000 専門化の例 family 専用アルゴリズム XOR-chain Fermat sliding-puzzle random-circuits pigeon-hole GF(2) ガウス消去 整数因数分解 IDA* AVX-512 列挙 構造的証明生成 2 / 24
  98. LymphoSAT:SAT Competition 2026 の結果 Main SAT・AI Generated 部門 solver LymphoSAT

    通常部門 1 位 solved PAR-2 146 2813.50 136 3430.95 ▶ AI Generated 部門で優勝 ▶ 通常部門 1 位より 10 問多く求解 ▶ LymphoSAT 系統だけが解いた問 題は 15 問 結果をどう読むか ▶ ユニーク 15 問中 12 問は,著者自 身が BYOB で提出した GF(3) 線形 方程式 ▶ その 12 問を除くと 146 問から 134 問となり,通常部門 1 位の 136 問 を下回る ▶ 既知 family への特化と,未知 family への汎化をどう評価する かが課題 問題 family を認識し,専用アルゴリズムを自動生成する方向性を示した. 3 / 24
  99. 補足:Kissat ablation と options(1/2) Kissat 4.0.4 options 実験上の機能群 学習節品質・矛盾解 析

    技術と代表論文 eagersubsume, focusedtiers, otfs, promote, shrink, tier1, tier1relative, tier2, tier2relative LBD/glue と多段 tier [Audemard+, 2009];on-the-fly strengthening;all-UIP 節縮約 [Fleury+, 2021] bumpreasons, chrono, jumpreasons, reluctantint, reluctantlim, reorder, restartreusetrail, SAT/UNSAT 探索モード [Oh, 2015]; stable LBD restart [Audemard+, 2012]; trail 再利用 [van der Tak+, 2011]; 年代順 backtrack [Nadel+, 2018] phase 選択・多様化 lucky, randec, rephase, target, warmup Rephasing・target phase [Biere+, 2020];random decision; 初期 assignment 構築 探索・restart 22 options full から表の 1 行だけを flat-tier 値へ戻し,機能群単位で ablation する. 4 / 24
  100. 補足:Kissat ablation と options(2/2) 実験上の機能群 古典的簡単化 構造推論・再符号化 engineering・配置 Kissat 4.0.4

    options eliminate, forward, preprocess, probe, simplify, substitute, transitive, vivify 技術と代表論文 Inprocessing [Järvisalo+, 2012]; BVE・subsumption [Eén+, 2005]; vivification/LCM [Luo+, 2017]; binary implication graph ands, backbone, congruence, definitions, gate 認識・definition mining equivalences, extract, factor, ifthenelse, sweep [Fleury+, 2023];BIG backbone [Froleyks+, 2023];BVA/reencoding [Manthey+, 2012];equivalence sweeping・congruence closure [Biere+, 2024c, Biere+, 2024b] compact, tumble arena/変数の compact 化と index 並替え;Kissat 固有の memory/cache engineering [Biere+, 2024a] 19 options(計 41 options) option には master switch・閾値・scheduler も含まれ,41 個の独立した研究技術を意味しない. 5 / 24
  101. Algorithm 1: SAT ソルバー (CDCL) 入力: CNF 形式の論理式 ψ ,部分割当て

    α 出力: SAT もしくは UNSAT 1 決定レベル ← 0; 2 while true do 3 (res, α) ← 単位伝播(ψ, α); 4 if res = done then return SAT; 5 if res = conflict then 6 if 決定レベル = 0 then return UNSAT; 7 (C, bl) ← 矛盾解析(ψ, ν) ; 8 ψ ← ψ ∪ {C} ; 9 ν ← {(xi , vi ) ∈ ν | level(xi ) ≤ bl} ; 10 dl ← bl; 11 12 13 else dl ← dl + 1; 未割当て変数 x とその値 v を選ぶ; // 学習節と bl を計算 // 学習節の追加 // backjump 7 / 24
  102. ベンチマーク結果:問題シリーズ別 問題シリーズ Accordion AlmostMagic ChainReaction CrazyFrog CrazyFrog-table Cryptanalysis EFPA GracefulGraph

    Heterosquare-easy Heterosquare-fair Heterosquare-hard LangfordBin LotteryDesign PegSolitaireTable RamseyPartition Rostering RotatingRostering SEDF TilingRythmicCanons 合計 総問題数 12 12 14 5 5 11 12 10 7 4 4 12 12 12 15 15 14 10 14 200 Max Domain 51 750 110 0 2745 4 7 85 216060 8020 8020 479 31 75 4 39 3 29 899 制約種類 El,Grp,Ins,Int AD,Grp,Int,Sum AD,Grp,Int Cir AD,Ext,Grp,Int Cnt,Grp,Int,Sum Card,Grp,Sum AD,Grp,Int AD,Grp,Int,Sum AD,Grp,Int,Sum AD,Grp,Int,Sum El,Grp,Int AD,Grp,Int Ext,Grp,Ins Card,Grp,NV AD,Grp,Ins,Int,Reg Card,Cnt,Ext,Grp,Int AD,Card,El,Ext,Grp AD,Grp,Ins,Int,NV sCOP ortools 12 12 8 8 7 9 0 5 1 2 0 11 10 8 4 4 2 7 2 2 0 1 6 9 10 9 4 4 7 5 6 13 14 13 10 6 0 1 103 129 8 / 24
  103. Algorithm 2: LCG ソルバー 入力: (X, D, C),部分割当て α, 出力:

    SAT/UNSAT (P, ψ) ← 整数変数を符号化(X, D); dl ← 0; 2 while true do 3 (res, α) ← 単位伝播(ψ, α); 4 (res, α) ← 制約伝播(C, α); 5 if res = done then return SAT; 6 if res = conflict then 7 if dl = 0 then return UNSAT; // 命題レベル/整数レベルの伝播/学習節と bl を計算 8 (C, bl) ← 矛盾解析(ψ, C, α) ; 9 ψ ←ψ∪C ; 10 α ← {(pi , vi ) ∈ α | level(pi ) ≤ bl} ; 11 dl ← bl; 1 12 13 14 15 // 学習節の追加 // backjump else dl ← dl + 1; 未割当て変数 p ∈ P とその値 v を選ぶ; α ← α ∪ {(p, v)}; 9 / 24
  104. Algorithm 3: SMT ソルバー 入力: (X, T),部分割当て α, 出力: SAT/UNSAT

    (P, ψ) ← 命題抽象化(X, T); dl ← 0; 2 while true do 3 (res, α) ← 単位伝播(ψ, α); 4 (res, α) ← 理論伝播(T, α); 5 if res = done then return SAT; 6 if res = conflict then 7 if dl = 0 then return UNSAT; // 命題レベルと理論レベルの学習節と bl を計算 8 (C, bl) ← 矛盾解析(ψ, T, α) ; 9 ψ ←ψ∪C ; 10 α ← {(pi , vi ) ∈ α | level(pi ) ≤ bl} ; 11 dl ← bl; 1 12 13 14 15 // 学習節の追加 // backjump else dl ← dl + 1; 未割当て変数 p ∈ P とその値 v を選ぶ; α ← α ∪ {(p, v)}; 10 / 24
  105. Reference I Audemard, Gilles and Simon, Laurent (2009). Predicting learnt

    clauses quality in modern SAT solvers. In Proceedings of the 21st International Joint Conference on Artificial Intelligence (IJCAI 2009), pages 399–404. Audemard, Gilles and Simon, Laurent (2012). Refining restarts strategies for SAT and UNSAT. In Proceedings of the 18th International Joint Conference on Principles and Practice of Constraint Programming (CP 2012), LNCS 7514, pages 118–126. 11 / 24
  106. Reference II Bayardo Jr., Roberto J. and Schrag, Robert (1997).

    Using CSP look-back techniques to solve real-world SAT instances. In Proceedings of the 14th National Conference on Artificial Intelligence (AAAI 1997), pages 203–208. Biere, Armin, Faller, Tobias, Fazekas, Katalin, Fleury, Mathias, Froleyks, Nils , and Pollitt, Florian (2024a). CaDiCaL, gimsatul, IsaSAT and Kissat entering the SAT Competition 2024. Technical Report B-2024-1, University of Helsinki. 12 / 24
  107. Reference III Biere, Armin, Fazekas, Katalin, Fleury, Mathias , and

    Froleyks, Nils (2024b). Clausal congruence closure. In Theory and Applications of Satisfiability Testing – SAT 2024, pages 6:1–6:25. Biere, Armin, Fazekas, Katalin, Fleury, Mathias , and Froleyks, Nils (2024c). Clausal equivalence sweeping. In FMCAD 2024, pages 236–241. Biere, Armin and Fleury, Mathias (2020). Chasing target phases. In Pragmatics of SAT 2020. 13 / 24
  108. Reference IV Davis, Martin, Logemann, George , and Loveland, Donald

    W. (1962). A machine program for theorem-proving. Communications of the ACM, 5(7):394–397. de Kleer, Johan (1989). A comparison of ATMS and CSP techniques. In Proceedings of the 11th International Joint Conference on Artificial Intelligence (IJCAI 1989), pages 290–296. Eén, Niklas and Biere, Armin (2005). Effective preprocessing in SAT through variable and clause elimination. In Proceedings of the 8th International Conference on Theory and Applications of Satisfiability Testing (SAT 2005), LNCS 3569, pages 61–75. 14 / 24
  109. Reference V Eén, Niklas and Sörensson, Niklas (2003). An extensible

    SAT-solver. In Proceedings of the 6th International Conference on Theory and Applications of Satisfiability Testing (SAT 2003), LNCS 2919, pages 502–518. Fleury, Mathias and Biere, Armin (2021). Efficient all-UIP learned clause minimization. In Theory and Applications of Satisfiability Testing – SAT 2021, pages 171–187. Fleury, Mathias and Biere, Armin (2023). Mining definitions in Kissat with kittens. Formal Methods in System Design, 60:381–404. 15 / 24
  110. Reference VI Froleyks, Nils, Yu, Emily , and Biere, Armin

    (2023). BIG backbones. In FMCAD 2023, pages 162–167. 鍋島 英知, 岩沼 宏治 , 井上 克巳 (2012). Glueminisat 2.2.5: 単位伝搬を促す学習節の積極的獲得戦略に基づく高速 SAT ソルバー. コンピュータソフトウェア, 29(4):211–230. Higuchi, Rei, Soh, Takehide, Berre, Daniel Le, Magnin, Morgan, Banbara, Mutsunori , and Tamura, Naoyuki (2025). A sat-based method for counting all singleton attractors in boolean networks. 16 / 24
  111. Reference VII In Proceedings of the Thirty-Fourth International Joint Conference

    on Artificial Intelligence, IJCAI 2025, Montreal, Canada, August 16-22, 2025, pages 2601–2609. ijcai.org. 堀岡 真未, 宋 剛秀 , 田村 直之 (2021). Cdcl 型 sat ソルバーの内部動作可視化ツール. B3. Iwama, Kazuo and Miyazaki, Shuichi (1994). SAT-variable complexity of hard combinatorial problems. In Proceedings of the IFIP 13th World Computer Congress, pages 253–258. 17 / 24
  112. Reference VIII Järvisalo, Matti, Heule, Marijn J. H. , and

    Biere, Armin (2012). Inprocessing rules. In Automated Reasoning - 6th International Joint Conference, IJCAR 2012, pages 355–370. Katebi, Hadi, Sakallah, Karem A. , and Silva, João P. Marques (2011). Empirical study of the anatomy of modern sat solvers. In Proceedings of the 14th International Conference on Theory and Applications of Satisfiability Testing (SAT 2011), LNCS 6695, pages 343–356. Luby, Michael, Sinclair, Alistair , and Zuckerman, David (1993). Optimal speedup of Las Vegas algorithms. Information Processing Letters, 47(4):173–180. 18 / 24
  113. Reference IX Luo, Mao, Li, Chu-Min, Xiao, Fan, Manyà, Felip

    , and Lü, Zhipeng (2017). An effective learnt clause minimization approach for CDCL SAT solvers. In Proceedings of the Twenty-Sixth International Joint Conference on Artificial Intelligence, IJCAI 2017, pages 703–711. Manthey, Norbert, Heule, Marijn J. H. , and Biere, Armin (2012). Automated reencoding of boolean formulas. In HVC 2012, pages 102–117. Marques-Silva, João P. and Sakallah, Karem A. (1999). GRASP: A search algorithm for propositional satisfiability. IEEE Transactions on Computers, 48(5):506–521. 19 / 24
  114. Reference X Moskewicz, Matthew W., Madigan, Conor F., Zhao, Ying,

    Zhang, Lintao , and Malik, Sharad (2001). Chaff: Engineering an efficient SAT solver. In Proceedings of the 38th Design Automation Conference (DAC 2001), pages 530–535. Nadel, Alexander and Ryvchin, Vadim (2018). Chronological backtracking. In Theory and Applications of Satisfiability Testing - SAT 2018, pages 111–121. 20 / 24
  115. Reference XI Oh, Chanseok (2015). Between SAT and UNSAT: The

    fundamental difference in CDCL SAT. In Theory and Applications of Satisfiability Testing - SAT 2015, pages 307–323. Pipatsrisawat, Knot and Darwiche, Adnan (2007). A lightweight component caching scheme for satisfiability solvers. In Proceedings of the 10th International Conference on Theory and Applications of Satisfiability Testing (SAT 2007), LNCS 4501, pages 294–299. 21 / 24
  116. Reference XII Selman, Bart, Kautz, Henry , and Cohen, Bram

    (1996). Local search strategies for satisfiability testing. In Johnson, David J. and Trick, Michael A., editors, Cliques, Coloring, and Satisfiability: the Second DIMACS Implementation Challenge, volume 26 of DIMACS Series in Discrete Mathematics and Theoretical Computer Science, pages 521–532. American Mathematical Society. Soh, Takehide, Banbara, Mutsunori , and Tamura, Naoyuki (2017). Proposal and evaluation of hybrid encoding of CSP to SAT integrating order and log encodings. International Journal on Artificial Intelligence Tools, 26(1):1–29. 22 / 24
  117. Reference XIII Soh, Takehide, Kuwahara, Akifumi, Banbara, Mutsunori, Tamura, Naoyuki,

    Kobayashi, Yasuaki, Nozaki, Yuta , and Ito, Takehiro (2026). SRIP: a sat-based system for independent set reconfiguration. In Wassermann, Renata, Mugnier, Marie-Laure , and Baader, Franz, editors, Proceedings of the 23rd International Conference on Principles of Knowledge Representation and Reasoning, KR 2026, Lisbon, Portugal, July 20-23, 2026, pages 764–774. IJCAI Organization. Tamura, Naoyuki, Taga, Akiko, Kitagawa, Satoshi , and Banbara, Mutsunori (2009). Compiling finite linear CSP into SAT. Constraints, 14(2):254–272. 23 / 24
  118. Reference XIV van der Tak, Peter, Ramos, Antonio , and

    Heule, Marijn J. H. (2011). Reusing the assignment trail in CDCL solvers. In Journal on Satisfiability, Boolean Modeling and Computation, volume 7, pages 133–138. Walsh, Toby (2000). SAT v CSP. In Proceedings of the 6th International Conference on Principles and Practice of Constraint Programming (CP 2000), pages 441–456. 24 / 24