Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

SATソルバーと制約ソルバー ~基盤技術と最新動向~

Avatar for tsoh tsoh
November 30, 2025
61

SATソルバーと制約ソルバー ~基盤技術と最新動向~

2025.12.01 シンポジウム: 制約充足、探索、列挙、最適化 ― よい「答え」を見つける技術の最先端

Avatar for tsoh

tsoh

November 30, 2025
Tweet

Transcript

  1. SAT ιϧόʔͱ੍໿ιϧόʔ ʙج൫ٕज़ͱ࠷৽ಈ޲ʙ ૙ ߶ल (ͦ͏ ͚ͨͻͰ) ໊ݹ԰େֶ 2025 ೥

    12 ݄ 1 ೔ (݄) @ ܚጯٛक़େֶ೔٢Ωϟϯύε γϯϙδ΢Ϝɿ ੍໿ॆ଍ɺ୳ࡧɺྻڍɺ࠷దԽ ʕ Α͍ʮ౴͑ʯΛݟ͚ͭΔٕज़ͷ࠷ઌ୺ ୈ 134 ճਓ޻஌ೳجຊ໰୊ݚڀձ (SIG-FPAI) in ਓ޻஌ೳֶձ߹ಉݚڀձ 2025 (SIGAIs) 1 / 44
  2. ૊߹ͤ໰୊ʹର͢Δ੍໿ιϧόʔ ιϧόʔ CaDiCaL, Kissat Exact, SCIP-NaPS OR-Tools (CP-SAT), ACE CP

    Optimizer, Sugar Clingo Z3, CVC5 SCIP, Gurobi, CPLEX X ૊߹ͤ໰୊͸͍Ζ͍Ζͳ੍໿ιϧόʔͰղ͘͜ͱ͕Ͱ͖Δɽ X ֤ιϧόʔ͸ҟͳΔೖྗݴޠ (੍໿) Λ͓࣋ͬͯΓಘҙͳ໰୊ ͕ҟͳΔɽ·ͨղ͘͜ͱ͕Ͱ͖Δ໰୊ͷൣғ΋ҟͳΔɽ 3 / 44
  3. ૊߹ͤ໰୊ʹର͢Δ੍໿ιϧόʔ ιϧόʔ هड़Ͱ͖Δ੍໿ ໰୊ CaDiCaL, Kissat ໋୊࿦ཧࣜʢCNFʣ SAT Exact, SCIP-NaPS

    0-1 ઢܗෆ౳ࣜ PB OR-Tools (CP-SAT), ACE ࢉज़ɼ࿦ཧɼ֎Ԇత੍໿ CSP CP Optimizer, Sugar άϩʔόϧ੍໿ Clingo Ұ֊ड़ޠ࿦ཧࣜ ASP Z3, CVC5 ཧ࿦෇͖࿦ཧࣜ SMT SCIP, Gurobi, CPLEX ࣮਺/੔਺/ઢܗ/ೋ࣍ ਺ཧ࠷దԽ ʢࠞ߹ʣෆ౳ࣜ X ૊߹ͤ໰୊͸͍Ζ͍Ζͳ੍໿ιϧόʔͰղ͘͜ͱ͕Ͱ͖Δɽ X ֤ιϧόʔ͸ҟͳΔೖྗݴޠ (੍໿) Λ͓࣋ͬͯΓಘҙͳ໰୊ ͕ҟͳΔɽ·ͨղ͘͜ͱ͕Ͱ͖Δ໰୊ͷൣғ΋ҟͳΔɽ 3 / 44
  4. ૊߹ͤ໰୊ʹର͢Δ੍໿ιϧόʔ ιϧόʔ هड़Ͱ͖Δ੍໿ ໰୊ CaDiCaL, Kissat ໋୊࿦ཧࣜʢCNFʣ SAT Exact, SCIP-NaPS

    0-1 ઢܗෆ౳ࣜ PB OR-Tools (CP-SAT) , ACE ࢉज़ɼ࿦ཧɼ֎Ԇత੍໿ CSP CP Optimizer, Sugar άϩʔόϧ੍໿ Clingo Ұ֊ड़ޠ࿦ཧࣜ ASP Z3, CVC5 ཧ࿦෇͖࿦ཧࣜ SMT SCIP, Gurobi, CPLEX ࣮਺/੔਺/ઢܗ/ೋ࣍ ਺ཧ࠷దԽ ʢࠞ߹ʣෆ౳ࣜ X ૊߹ͤ໰୊͸͍Ζ͍Ζͳ੍໿ιϧόʔͰղ͘͜ͱ͕Ͱ͖Δɽ X ֤ιϧόʔ͸ҟͳΔೖྗݴޠ (੍໿) Λ͓࣋ͬͯΓಘҙͳ໰୊ ͕ҟͳΔɽ·ͨղ͘͜ͱ͕Ͱ͖Δ໰୊ͷൣғ΋ҟͳΔɽ ଟ͘ͷιϧόʔ͕ SAT ιϧόʔͷٕज़Λ࢖༻͍ͯ͠Δɽ 3 / 44
  5. Q. Կނ࢖ΘΕΔͷ͔? Armin Biere ઌੜͷ Twitter (@ArminBiere) ΑΓ (2020 ೥

    7 ݄ 29 ೔) ܧଓతͳߴ଎Խ ܧଓతͳߴ଎Խ + ֦ுੑ (CNFͱCDCL) 4 / 44
  6. SAT ٕज़ͷԠ༻ SAT PB ASP ALLSAT #SAT QBF SMT MaxSAT

    CSP/COP ج൫ٕज़ DPLL/CDCL 5 / 44
  7. SAT ٕज़ͷԠ༻ SAT PB ASP ALLSAT #SAT QBF SMT MaxSAT

    CSP/COP ج൫ٕज़ DPLL/CDCL 5 / 44
  8. ൃද಺༰ X SAT ιϧόʔ (DPLL/CDCL) X SAT ιϧόʔͷ֦ு ž SAT

    ූ߸Խ ž LCG ιϧόʔ: OR-Tools (CP-SAT) ž SMT ιϧόʔ: Z3, CVC X ૊߹ͤ໰୊ʹ͸ԿΛ࢖͑͹ྑ͍ͷ? ž 2 ࣍ݩۣܗύοΩϯά໰୊Λྫ୊ʹͨ͠ੑೳධՁͷҰྫ ž CPLEX, Gurobi, SCIP ž CP Optimizer, OR-Tools (CP-SAT), ACE ž Z3, CVC5 6 / 44
  9. SAT ໰୊ͱ͸ SAT ໰୊ (Boolean Satisability Problem) ༩͑ΒΕ໋ͨ୊࿦ཧࣜΛਅʹ͢Δ஋ׂ౰͕ͯଘࡏ͢Δ͔൑ఆ͢Δ ໰୊ ྫɿCNF

    ࣜ (p1 ∨ p2 ∨ p3 ) ∧ (¬p1 ∨ ¬p2 ) ∧ (¬p1 ∨ ¬p3 ) ∧ (¬p2 ∨ ¬p3 ) ղ p1 = T, p2 = F, p3 = F 7 / 44
  10. SAT ໰୊ͱ͸ SAT ໰୊ (Boolean Satisability Problem) ༩͑ΒΕ໋ͨ୊࿦ཧࣜΛਅʹ͢Δ஋ׂ౰͕ͯଘࡏ͢Δ͔൑ఆ͢Δ ໰୊ ྫɿCNF

    ࣜ ( p1 ∨ p2 ∨ p3 ) ∧ (¬p1 ∨ ¬p2 ) ∧ (¬p1 ∨ ¬p3 ) ∧ ( ¬p2 ∨ ¬p3 ) ղ p1 = T, p2 = F, p3 = F NP ׬શ໰୊ͷ 1 ͭͰ͋Γɼଟ͘ͷ૊߹ͤ໰୊͸ SAT ໰୊Λ༻͍ͯ දݱͰ͖Δɽ 7 / 44
  11. SAT ιϧόʔͱ͸ SAT ໰୊Λࣗಈతʹղ͘ϓϩάϥϜ ೖྗ CNF ܗࣜͷ࿦ཧࣜ ग़ྗ X ॆ଍Մೳ

    (SAT) + ղ X ॆ଍ෆೳ (UNSAT) ओͳΞϧΰϦζϜ X DPLL (1962) ਂ͞༏ઌ୳ࡧ X CDCL (2000 ࠒ) ֶशʹΑΔޮ཰Խ 8 / 44
  12. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ 9 / 44
  13. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a 9 / 44
  14. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b 9 / 44
  15. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c 9 / 44
  16. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c 9 / 44
  17. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c ¬e 9 / 44
  18. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c ¬e f 9 / 44
  19. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c ¬e f g 9 / 44
  20. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c ¬e f g ¬i 9 / 44
  21. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c ¬e f g ¬i 9 / 44
  22. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c ¬e f g ¬i ໃ६ൃੜ: h ∧ ¬h 9 / 44
  23. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c όοΫτϥοΫ 9 / 44
  24. DPLL [Davis+, 1962] C1 : a ∨ b C2 :

    c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c e ஋൓సͯ͠ܧଓ 9 / 44
  25. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] C1 : a ∨

    b C2 : c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c ¬e f g ¬i ໃ६ൃੜ: h ∧ ¬h 10 / 44
  26. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] C1 : a ∨

    b C2 : c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i LC8 : ¬b ∨ ¬f Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b c ¬e f g ¬i ֶशઅΛੜ੒: ¬b ∨ ¬f 10 / 44
  27. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] C1 : a ∨

    b C2 : c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i LC8 : ¬b ∨ ¬f Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b Lv 2 ΁όοΫδϟϯϓ 10 / 44
  28. CDCL [Bayardo Jr.+, 1997, Marques-Silva+, 1999] C1 : a ∨

    b C2 : c ∨ d C3 : a ∨ e ∨ f C4 : ¬b ∨ ¬f ∨ g C5 : ¬f ∨ h C6 : ¬b ∨ ¬h ∨ i C7 : ¬g ∨ ¬i LC8 : ¬b ∨ ¬f Lv 1 Lv 2 Lv 3 ܾఆ ఻೻ ¬a b ¬f e ୯Ґ఻೻ 10 / 44
  29. SAT ιϧόʔͷ࢓૊Έͷྺ࢙ X 1960 ೥୅ ž DPLL (Davis-Putnam-Logemann-Loveland) [Davis+, 1962]

    X 1990 ೥୅ ž CDCL (Conict Driven Clause Learning) [Bayardo Jr.+, 1997, Marques-Silva+, 1999] X 2000 ೥Ҏ߱ ž ม਺બ୒ώϡʔϦεςΟοΫ VSIDS [Moskewicz+, 2001] ž 2 Ϧςϥϧ΢Υον [Moskewicz+, 2001] ž Ϧελʔτ [Luby+, 1993, Selman+, 1996, Eén+, 2003] ž Phase Saving [Pipatsrisawat+, 2007] ž ֶशઅͷධՁई౓ [Audemard+, 2009, ುౡ+, 2012] 12 / 44
  30. SAT ιϧόʔͷ࢓૊Έͷྺ࢙ X 1960 ೥୅ ž DPLL (Davis-Putnam-Logemann-Loveland) [Davis+, 1962]

    X 1990 ೥୅ ž CDCL (Conict Driven Clause Learning) [Bayardo Jr.+, 1997, Marques-Silva+, 1999] X 2000 ೥Ҏ߱ ž ม਺બ୒ώϡʔϦεςΟοΫ VSIDS [Moskewicz+, 2001] ž 2 Ϧςϥϧ΢Υον [Moskewicz+, 2001] ž Ϧελʔτ [Luby+, 1993, Selman+, 1996, Eén+, 2003] ž Phase Saving [Pipatsrisawat+, 2007] ž ֶशઅͷධՁई౓ [Audemard+, 2009, ುౡ+, 2012] SAT ιϧόʔͷجຊಈ࡞Λ؆୯ͳྫΛ༻͍ͯઆ໌͢Δɽ ΑΓৄ͘͠஌Γ͍ͨํ͸ҎԼΛࢀর͍ͩ͘͞ɽ X ߴ଎ SAT ιϧόʔͷݪཧ (ղઆ࿦จ) [ುౡ+, 2010] MA> 12 / 44
  31. SAT ιϧόʔͷ࢓૊Έͷྺ࢙ X 1960 ೥୅ ž DPLL (Davis-Putnam-Logemann-Loveland) [Davis+, 1962]

    X 1990 ೥୅ ž CDCL (Conict Driven Clause Learning) [Bayardo Jr.+, 1997, Marques-Silva+, 1999] X 2000 ೥Ҏ߱ ž ม਺બ୒ώϡʔϦεςΟοΫ VSIDS [Moskewicz+, 2001] ž 2 Ϧςϥϧ΢Υον [Moskewicz+, 2001] ž Ϧελʔτ [Luby+, 1993, Selman+, 1996, Eén+, 2003] ž Phase Saving [Pipatsrisawat+, 2007] ž ֶशઅͷධՁई౓ [Audemard+, 2009, ುౡ+, 2012] Ͳͷٕज़͕Ͳͷ͘Β͍ޮ͍͍ͯΔͷ͔? 12 / 44
  32. ߴ଎Խٕज़ͷߩݙ౓ (Katebi ଞʹΑΔ) [Katebi+, 2011] X 2WL: 2 Ϧςϥϧ΢Υον, RST:

    Ϧελʔτ, PHS: Phase Saving ੨ࣈ: DPLL ʹͦͷٕज़Λ௥Ճͨ͠ιϧόʔ 13 / 44
  33. ߴ଎Խٕज़ͷߩݙ౓ (Katebi ଞʹΑΔ) [Katebi+, 2011] X 2WL: 2 Ϧςϥϧ΢Υον, RST:

    Ϧελʔτ, PHS: Phase Saving ੺ࣈ: MiniSat 2.2 ͔Βͦͷٕज़Λ࡟আͨ͠ιϧόʔ 13 / 44
  34. Algorithm 1: SAT ιϧόʔ (CDCL) ೖྗ: CNF ܗࣜͷ࿦ཧࣜ ψɼ෦෼ׂ౰ͯ α

    ग़ྗ: SAT ΋͘͠͸ UNSAT  ܾఆϨϕϧ ← 0; while true do ! (res, α) ← ୯Ґ఻೻(ψ, α); " if res = done then return SAT; # if res = conflict then $ if ܾఆϨϕϧ = 0 then return UNSAT; % (C, bl) ← ໃ६ղੳ(ψ, ν) ; // ֶशઅͱ bl Λܭࢉ & ψ ← ψ ∪ {C} ; // ֶशઅͷ௥Ճ ' ν ← {(xi , vi ) ∈ ν | level(xi ) ≤ bl} ; // backjump  dl ← bl;  else  dl ← dl + 1; ! ະׂ౰ͯม਺ x ͱͦͷ஋ v ΛબͿ; " α ← α ∪ {(x, v)}; 14 / 44
  35. ൃද಺༰ X SAT ιϧόʔ (DPLL/CDCL) X SAT ιϧόʔͷ֦ு ž SAT

    ූ߸Խ ž LCG ιϧόʔ: OR-Tools (CP-SAT) ž SMT ιϧόʔ: Z3, CVC X ૊߹ͤ໰୊ʹ͸ԿΛ࢖͑͹ྑ͍ͷ? ž 2 ࣍ݩۣܗύοΩϯά໰୊Λྫ୊ʹͨ͠ੑೳධՁͷҰྫ ž CPLEX, Gurobi, SCIP ž CP Optimizer, OR-Tools (CP-SAT), ACE ž Z3, CVC5 15 / 44
  36. Ͳ͏΍໋ͬͯ୊࿦ࣜҎ֎ͷ੍໿Λѻ͑ΔΑ͏ ʹ͢Δͷ͔? ૊߹ͤ໰୊ͷྫ ੔਺ม਺: x, y ∈ {2, 3, 4,

    5, 6} ੍໿: (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ 4) ∨ (2x + y ≤ 13) ූ߸ԽΛ࢖͏ํ๏  ੔਺ม਺Λ໋୊ม਺͓Αͼ࿦ཧࣜʹม׵͢Δ ੍໿Λ໋୊࿦ཧࣜʹม׵͢Δ 16 / 44
  37. ௚઀ූ߸Խ [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 ͭ) ∧ 2≤i<j≤6 ¬px=i ∨ ¬px=j (ߴʑ 1 ͭ) 17 / 44
  38. ௚઀ූ߸Խ [de Kleer, 1989] px=2 px=3 px=4 px=5 px=6 x

    = 2 T F F F F x = 3 F T F F F x = 4 F F T F F x = 5 F F F T F x = 6 F F F F T ੔਺ม਺΁ͷ஋ׂ౰ʹԠͯ͡ɼ໋୊ม਺͸ 1 ͚ͭͩ T ͱͳΔɽ͍ ΘΏΔ one-hot දݱͰ͋Δɽ 18 / 44
  39. ௚઀ූ߸Խ [de Kleer, 1989, Walsh, 2000] ੍໿ x + y

    ≤ 7 (x, y ∈ {2, 3, 4, 5, 6}) ͸ɼҧ൓఺ (ਤதͷ × ఺) Λ ྻڍ͢Δ͜ͱͰҎԼͷ 15 અʹූ߸Խ͞ΕΔɽ ¬(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 ) x y 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 X X X X X X X X X X X X X X X 19 / 44
  40. ॱংූ߸Խ [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) 20 / 44
  41. ॱংූ߸Խ [Tamura+, 2009] px≥2 px≥3 px≥4 px≥5 x = 2

    F F F F x = 3 T F F F x = 4 T T F F x = 5 T T T F x = 6 T T T T ੔਺ม਺΁ͷ஋ׂ౰ʹԠͯ͡ɼ໋୊ม਺͸ 1 ਐ਺ (aka. thermometer) දݱͱͳΔɽ 21 / 44
  42. ॱংූ߸Խ [Tamura+, 2009] ੍໿ x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) ͸ɼҧ൓͢ΔൣғΛද͢͜ͱ ͰҎԼͷ 5 અʹූ߸Խ͞ΕΔɽ ¬py≥6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 x y 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 X X X X X X X X X X X X X X X 22 / 44
  43. ॱংූ߸Խ [Tamura+, 2009] ੍໿ x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) ͸ɼҧ൓͢ΔൣғΛද͢͜ͱ ͰҎԼͷ 5 અʹූ߸Խ͞ΕΔɽ ¬py≥6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 x y 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 X X X X X X X X X X X X X X X 22 / 44
  44. ॱংූ߸Խ [Tamura+, 2009] ੍໿ x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) ͸ɼҧ൓͢ΔൣғΛද͢͜ͱ ͰҎԼͷ 5 અʹූ߸Խ͞ΕΔɽ ¬py≥6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 x y 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 X X X X X X X X X X X X X X X 22 / 44
  45. ॱংූ߸Խ [Tamura+, 2009] ੍໿ x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) ͸ɼҧ൓͢ΔൣғΛද͢͜ͱ ͰҎԼͷ 5 અʹූ߸Խ͞ΕΔɽ ¬py≥6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 x y 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 X X X X X X X X X X X X X X X 22 / 44
  46. ॱংූ߸Խ [Tamura+, 2009] ੍໿ x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) ͸ɼҧ൓͢ΔൣғΛද͢͜ͱ ͰҎԼͷ 5 અʹූ߸Խ͞ΕΔɽ ¬py≥6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 x y 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 X X X X X X X X X X X X X X X 22 / 44
  47. ॱংූ߸Խ [Tamura+, 2009] ੍໿ x + y ≤ 7 (x,

    y ∈ {2, 3, 4, 5, 6}) ͸ɼҧ൓͢ΔൣғΛද͢͜ͱ ͰҎԼͷ 5 અʹූ߸Խ͞ΕΔɽ ¬py≥6 ¬(px≥3 ∧ py≥5 ) ¬(px≥4 ∧ py≥4 ) ¬(px≥5 ∧ py≥3 ) ¬px≥6 x y 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 X X X X X X X X X X X X X X X 22 / 44
  48. ૊߹ͤ໰୊ͷSAT ූ߸Խ Ҏ߱ɼDE, OE Λ௚઀ූ߸Խɼॱংූ߸ԽΛදࣸ͢૾ͱ͢Δɽ 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) SAT ໰୊ (ॱংූ߸Խ) ⇐⇒ ͜ͷΑ͏ʹූ߸ԽʹΑΓ CNF ΛಘΔ͜ͱ͕Ͱ͖Ε͹ɼSAT ιϧ όʔͰղ͘͜ͱ͕Ͱ͖Δɽ 23 / 44
  49. ൃද಺༰ X SAT ιϧόʔ (DPLL/CDCL) X SAT ιϧόʔͷ֦ு ž SAT

    ූ߸Խ ž LCG ιϧόʔ: OR-Tools (CP-SAT) ž SMT ιϧόʔ: Z3, CVC X ૊߹ͤ໰୊ʹ͸ԿΛ࢖͑͹ྑ͍ͷ? ž 2 ࣍ݩۣܗύοΩϯά໰୊Λྫ୊ʹͨ͠ੑೳධՁͷҰྫ ž CPLEX, Gurobi, SCIP ž CP Optimizer, OR-Tools (CP-SAT), ACE ž Z3, CVC5 24 / 44
  50. 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 Lv 2 ܾఆ ఻೻ ੍໿఻೻ث (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 25 / 44
  51. 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 Lv 2 ܾఆ ఻೻ px=2 ੍໿఻೻ث (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 25 / 44
  52. 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 Lv 2 ܾఆ ఻೻ px=2 ੍໿఻೻ث (x + y ≤ 7) ∨ (x − 2y ≥ 3) x = 2 → (y ≤ 5) ∨ ⊥ (x − y ≤ −4) ∨ (2x + y ≥ 13) x = 2 → (y ≥ 6) ∨ ⊥ 25 / 44
  53. 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 Lv 2 ܾఆ ఻೻ px=2 py=4 ੍໿఻೻ث (x + y ≤ 7) ∨ (x − 2y ≥ 3) x = 2 → (y ≤ 5) ∨ ⊥ (x − y ≤ −4) ∨ (2x + y ≥ 13) x = 2 → (y ≥ 6) ∨ ⊥ 25 / 44
  54. 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 Lv 2 ܾఆ ఻೻ px=2 py=4 ੍໿఻೻ʹΑΓໃ६ݕग़ ੍໿఻೻ث (x + y ≤ 7) ∨ (x − 2y ≥ 3) x = 2 → (y ≤ 5) ∨ ⊥ (x − y ≤ −4) ∨ (2x + y ≥ 13) x = 2 → (y ≥ 6) ∨ ⊥ 25 / 44
  55. 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 px=2 → py≤5 px=2 → py≥6 ¬px=2 ∨ ¬py=4 Lv 1 Lv 2 ܾఆ ఻೻ ఻೻અͱֶशઅΛ CNF ʹ௥Ճ͠ bj ੍໿఻೻ث (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) 25 / 44
  56. ൃද಺༰ X SAT ιϧόʔ (DPLL/CDCL) X SAT ιϧόʔͷ֦ு ž SAT

    ූ߸Խ ž LCG ιϧόʔ: OR-Tools (CP-SAT) ž SMT ιϧόʔ: Z3, CVC X ૊߹ͤ໰୊ʹ͸ԿΛ࢖͑͹ྑ͍ͷ? ž 2 ࣍ݩۣܗύοΩϯά໰୊Λྫ୊ʹͨ͠ੑೳධՁͷҰྫ ž CPLEX, Gurobi, SCIP ž CP Optimizer, OR-Tools (CP-SAT), ACE ž Z3, CVC5 26 / 44
  57. SMT ιϧόʔ ݩͷ໰୊ x, y ∈ {2, . . .

    , 6} (x + y ≤ 7) ∨ (x − 2y ≥ 3) (x − y ≤ −4) ∨ (2x + y ≥ 13) ໋୊ந৅Խ Lv 1 Lv 2 ܾఆ ఻೻ എܠཧ࿦ιϧόʔ 27 / 44
  58. SMT ιϧόʔ ݩͷ໰୊ x, y ∈ {2, . . .

    , 6} (x + y ≤ 7) p ∨ (x − 2y ≥ 3) q (x − y ≤ −4) r ∨ (2x + y ≥ 13) s ໋୊ந৅Խ p ∨ q r ∨ s Lv 1 Lv 2 ܾఆ ఻೻ എܠཧ࿦ιϧόʔ 27 / 44
  59. SMT ιϧόʔ ݩͷ໰୊ x, y ∈ {2, . . .

    , 6} (x + y ≤ 7) p ∨ (x − 2y ≥ 3) q (x − y ≤ −4) r ∨ (2x + y ≥ 13) s ໋୊ந৅Խ p ∨ q r ∨ s Lv 1 Lv 2 ܾఆ ఻೻ q എܠཧ࿦ιϧόʔ x − 2y ≥ 3 27 / 44
  60. SMT ιϧόʔ ݩͷ໰୊ x, y ∈ {2, . . .

    , 6} (x + y ≤ 7) p ∨ (x − 2y ≥ 3) q (x − y ≤ −4) r ∨ (2x + y ≥ 13) s ໋୊ந৅Խ p ∨ q r ∨ s Lv 1 Lv 2 ܾఆ ఻೻ q r എܠཧ࿦ιϧόʔ x − 2y ≥ 3 x − y ≤ −4 27 / 44
  61. SMT ιϧόʔ ݩͷ໰୊ x, y ∈ {2, . . .

    , 6} (x + y ≤ 7) p ∨ (x − 2y ≥ 3) q (x − y ≤ −4) r ∨ (2x + y ≥ 13) s ໋୊ந৅Խ p ∨ q r ∨ s Lv 1 Lv 2 ܾఆ ఻೻ q r ཧ࿦఻೻ʹΑΓໃ६ݕग़ എܠཧ࿦ιϧόʔ x − 2y ≥ 3 x − y ≤ −4 27 / 44
  62. SMT ιϧόʔ ݩͷ໰୊ x, y ∈ {2, . . .

    , 6} (x + y ≤ 7) p ∨ (x − 2y ≥ 3) q (x − y ≤ −4) r ∨ (2x + y ≥ 13) s ໋୊ந৅Խ p ∨ q r ∨ s ¬q ∨ ¬r Lv 1 Lv 2 ܾఆ ఻೻ q ֶशઅ ¬q ∨ ¬r Λ௥Ճ͠ backjump എܠཧ࿦ιϧόʔ x − 2y ≥ 3 27 / 44
  63. SMT ιϧόʔ ݩͷ໰୊ x, y ∈ {2, . . .

    , 6} (x + y ≤ 7) p ∨ (x − 2y ≥ 3) q (x − y ≤ −4) r ∨ (2x + y ≥ 13) s ໋୊ந৅Խ p ∨ q r ∨ s ¬q ∨ ¬r Lv 1 Lv 2 ܾఆ ఻೻ q ¬r ୯Ґ఻೻ എܠཧ࿦ιϧόʔ x − 2y ≥ 3 x − y > −4 27 / 44
  64. ൃද಺༰ X SAT ιϧόʔ (DPLL/CDCL) X SAT ιϧόʔͷ֦ு ž SAT

    ූ߸Խ ž LCG ιϧόʔ: OR-Tools (CP-SAT) ž SMT ιϧόʔ: Z3, CVC X ૊߹ͤ໰୊ʹ͸ԿΛ࢖͑͹ྑ͍ͷ? ž 2 ࣍ݩۣܗύοΩϯά໰୊Λྫ୊ʹͨ͠ੑೳධՁͷҰྫ ž CPLEX, Gurobi, SCIP ž CP Optimizer, OR-Tools (CP-SAT), ACE ž Z3, CVC5 28 / 44
  65. ۣܗύοΩϯά໰୊Λྫ୊ʹͨ͠ੑೳධՁ ໨త ૊߹ͤ໰୊ʹ͓͚Διϧόʔੑೳͷ 1 ͭͷࢀߟࢿྉΛ࡞Δ͜ͱ ൺֱͨ͠ιϧόʔ X ਺ཧ࠷దԽιϧόʔ: CPLEX, Gurobi,

    SCIP, OR-Tools CBC X CP ιϧόʔ: OR-Tools (CP-SAT), ACE X SMT ιϧόʔ: Z3, CVC5 ϕϯνϚʔΫ: Consecutive Square Packing X ೖྗ: ੔਺஋ n X ੍໿: 1x1, 2x2, ..., nxn ͷਖ਼ํܗΛॏͳΒͣʹ഑ஔ͢Δ X ग़ྗ: શͯͷਖ਼ํܗΛ഑ஔ͢Δͷʹඞཁͳ࠷খͷਖ਼ํܗίϯ ςφͷล௕ 10 ͔Β 100 ·Ͱͷ 90 ໰͓Αͼ 500, 1000 ͷ 2 ໰ͷ߹ܭ 92 ໰ɽ 29 / 44
  66. ܭࢉػ࣮ݧ (ଓ͖) ࣮ݧઃఆ X CPU: Intel(R) Xeon(R) Gold 6346 CPU

    @ 3.10GHz X MEM: 128 GB X ੍࣌ؒݶ: 1800 ඵ X ࣮ߦ͸֤ιϧόʔͷઃఆͰγϯάϧεϨουʹ੍ݶ ධՁࢦඪ  ࠷ద஋Λݟ͚ͭͨ໰୊਺ͱܭࢉ࣌ؒ (ΧΫλεϓϩοτ) ੍ݶ࣌ؒ಺ʹݟ͚ͭͨ࠷ྑղͷ඼࣭ (ώʔτϚοϓ) ँࣙ ͜ͷൺֱͰ͸ Gurobi ࣾɼIBM ͔ࣾΒି༩͞Εֶͨज़ϥΠηϯεΛ ࢖༻͠·ͨ͠ɽޚྱਃ্͛͠·͢ɽ 30 / 44
  67. 1) ࠷ద஋Λݟ͚ͭͨ໰୊਺ͱܭࢉ࣌ؒ 2 4 6 8 10 12 14 16

    Number of Instances Solved 0 200 400 600 800 1000 1200 1400 Wall Clock Time (seconds) ace cplex cpoptimizer cvc5 gurobi_indicator_int_all gurobi_indicator_int_obj gurobi_indicator_mip ortools_cbc ortools_cpsat scip z3 31 / 44
  68. 2) ੍ݶ࣌ؒ಺ʹݟ͚ͭͨ࠷ྑղͷ඼࣭ X ԣ࣠: ΠϯελϯεͷೖྗαΠζ n X ॎ࣠: ιϧόʔ X

    ৭: =࠷ྑ, =ղ͸ग़͕ͨ࠷ѱ, =ղ͕ग़ͳ͔ͬͨ ⋆=࠷ద஋ 10 20 30 40 50 60 70 80 90 100 Z3 SCIP GRB-IO CPOpt OR-SAT 32 / 44
  69. SAT ٕज़ͷԠ༻ SAT PB ASP ALLSAT #SAT QBF SMT MaxSAT

    CSP/COP ج൫ٕज़ DPLL/CDCL 33 / 44
  70. SAT ٕज़ͷԠ༻ SAT PB ASP ALLSAT #SAT QBF SMT MaxSAT

    CSP/COP ج൫ٕज़ DPLL/CDCL 33 / 44
  71. ϋΠϒϦουූ߸Խ [Soh+, 2017] X ॱংූ߸Խ [Tamura+, 2009] (࣮૷: Sugar MA>

    ) ž ੔਺ͷॱংؔ܎Λ༻͍͓ͯΓɼઢܗൺֱ ∑ aixi ≥ b ͷූ߸Խ ʹద͍ͯ͠Δɽ ž ॱংූ߸ԽΛ࣮૷ͨ͠ Sugar ͸ 2008 ೥ɼ 2009 ೥ʹ CSP ιϧ όʔڝٕձͷάϩʔόϧ෦໳Ͱ༏উͨ͠ɽ ž ཧ࿦తʹ΋ଞͷූ߸Խʹ͸ͳ͍ྑ͍ੑ࣭Λ͍࣋ͬͯΔ͜ͱ͕ূ ໌͞Ε͍ͯΔ [Petke+, 2011]ɽ ž ͔͠͠ɼ໰୊ͷن໛͕େ͖͘ͳΔͱੑೳ͕ѱ͘ͳΔɽ X ର਺ූ߸Խ [Iwama+, 1994] ž ੔਺ͷ 2 ਐ਺දݱΛ༻͍͓ͯΓίϯύΫτͳ SAT ූ߸Խ͕Մ ೳ͕ͩɼઢܗൺֱʹ͍ͭͯҰൠʹॱংූ߸ԽΑΓੑೳ͕ѱ͍ɽ ž ໰୊ͷن໛͕େ͖ͯ͘΋ղ͘͜ͱ͕Ͱ͖Δɽ X ϋΠϒϦουූ߸Խ [Soh+, 2017] (࣮૷: Fun-sCOP MA> ) ž ॱংූ߸Խͱର਺ූ߸ԽΛ༥߹ͨ͠ SAT ූ߸Խ๏ɽ ž ֤੔਺ม਺͸ॱংූ߸Խ΋͘͠͸ର਺ූ߸ԽͷͲͪΒ͔ҰͭͰ ූ߸Խ͞Εɼ੍֤໿͸྆ํͷූ߸Խม਺ΛؚΉ͜ͱ͕Ͱ͖Δɽ 34 / 44
  72. ϋΠϒϦουූ߸Խ: ྫ ੔਺ม਺ x1 , x2 ∈ {0, 1, 2,

    3} Λߟ͑Δ. ੍໿ 2x1 + x2 ≥ 5 ͸ τL {x2} ◦ τO {x1} ʹΑͬͯҎԼͷΑ͏ʹූ߸Խ͞ΕΔ. (τL {x2} ◦ τO {x1} )(2x1 + x2 ≥ 5) ⇐⇒ τO {x1} (2x1 + px2,0 + 2px2,1 ≥ 5) ⇐⇒ ∧ d1∈{0,1,2,3} (x1 ≥ d1 + 1) ∨ (px2,0 + 2px2,1 ≥ 5 − 2d1 ) ⇐⇒ (px1≤1 ) ∧ (px1≤2 ∨ (px2,0 + 2px2,1 ≥ 3)) ∧ (px1≤3 ∨ (px2,0 + 2px2,1 ≥ 1)) 35 / 44
  73. ։ൃͨ͠CSP ιϧόʔFun-sCOP ͷ৆ྺ ࠃࡍ CSP ιϧόʔڝٕձ XCSP3 ͸ 2005 ೥ʹͦͷલ਎͕࢝·ͬͨྺ࢙ͷ͋Δࠃࡍ

    CSP ιϧ όʔڝٕձͰ͋Γɼੈք֤ࠃͷڭҭݚڀػؔͰ։ൃ͞Ε͍ͯΔ CSP ιϧόʔ͕ଟ਺ࢀՃ͍ͯ͠Δ. X Fun-sCOP ͸ 2018 ೥Ҏ߱ XCSP3 ʹ͓͚Δ࠷΋ॏཁͳ෦໳Ͱ ͋Δ Main CSP ʹຖճࢀՃ͠ҎԼͷ੒੷Λ͓͞Ί͍ͯΔɽ X 2018 ೥༏উ X 2019 ೥४༏উ X 2022 ೥४༏উ X 2023 ೥४༏উ X 2024 ೥ 3 Ґೖ৆ ࠃࡍձٞ CP18 ͷ݁Ռൃද 36 / 44
  74. γεςϜੜ෺ֶͱҨ఻ࢠ੍ޚωοτϫʔΫ X γεςϜੜ෺ֶͱ͸ɼੜ෺ͷ׆ಈΛҨ఻ࢠɾλϯύΫ࣭ɾࡉ ๔ͳͲ͕૬ޓʹ࡞༻͢ΔෳࡶͳγεςϜͱͯ͠ଊ͑ɼͦͷશ ମతͳڍಈ΍ػೳΛཧղ͠Α͏ͱ͢Δֶ໰෼໺Ͱ͋Δɽ The Nobel Committee for Physiology

    or Medicine / Illustration: Annika Röhl Ҩ఻ࢠ a λϯύΫ࣭ a Ҩ఻ࢠ b λϯύΫ࣭ b X Ҩ఻ࢠ੍ޚωοτϫʔΫͱ͸ɼҨ఻ࢠͷ૬ޓ࡞༻Λ௖఺ΛҨ ఻ࢠɼลΛௐઅҼࢠͱͨ͠άϥϑͰදݱͨ͠΋ͷͰ͋Δɽ 37 / 44
  75. ϒʔϦΞϯωοτϫʔΫͱෆಈ఺ ϒʔϦΞϯωοτϫʔΫ (BN) BN ͸Ҩ఻ࢠ੍ޚωοτϫʔΫͷ୅දతͳ਺ཧϞσϧͷ 1 ͭͰ͋ ΔɽҨ఻ࢠͷঢ়ଶΛ 1 ͱ

    0 ͷೋ஋ɼௐઅҼࢠ͸໋୊࿦ཧࣜͰද͢ɽ v1 v2 v3 vt+1 1 = vt 2 vt+1 2 = ¬vt 3 vt+1 3 = ¬vt 1 ∧ vt 2 ঢ়ଶભҠਤͱෆಈ఺ 000 010 011 001 100 110 111 101 े෼௕͘ભҠΛଓ͚Δͱ 110 (ෆ ಈ఺) ʹ౸ୡ͠ભҠ͠ͳ͘ͳΔ (≓ ࡉ๔ͷఆৗ (࠷ऴ) ঢ়ଶ)ɽ 38 / 44
  76. SAT ܕBN ෆಈ఺ܭ਺ιϧόʔ [Higuchi+, 2025] ͜Ε·Ͱͷख๏Λෆಈ఺ͷܭ਺ʹԠ༻͢Δ͜ͱͰطଘݚڀΛେ͖ ্͘ճΔੑೳΛୡ੒ͨ͠ɽ 0.01 0.1 1

    10 100 1000 0 50 100 150 200 250 300 CPU Time [s] Solved Instances PyBoolNet fASP-conj SAF fASP-src Hybrid Enum. AEON Direct Count. Indirect Count. Hybrid Count. 39 / 44
  77. ະ஌ͷෆಈ఺ͷܭ਺ [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 40 / 44
  78. ·ͱΊ X SAT ιϧόʔͱ੍໿ιϧόʔͷجૅٕज़ͱ࠷৽ಈ޲Λ঺հ ž DPLL/CDCL ΞϧΰϦζϜ͕ج൫ٕज़ X SAT ιϧόʔͷ֦ுͱԠ༻

    ž SAT ූ߸Խ (௚઀ූ߸Խɾॱংූ߸Խ) ʹΑΔ໰୊ม׵ ž LCG ιϧόʔ (OR-Tools CP-SAT): ஗Ԇූ߸ԽͰޮ཰Խ ž SMT ιϧόʔ (Z3, CVC5): ཧ࿦ͱ૊Έ߹Θͤͨਪ࿦ ž 2 ࣍ݩۣܗύοΩϯά໰୊ͷੑೳධՁ X ۙ೥ͷݚڀ੒Ռ ž ϋΠϒϦουූ߸Խ (Fun-sCOP): ॱংූ߸Խͱର਺ූ߸Խͷ༥߹ ž ϒʔϧ੍ޚωοτϫʔΫͷෆಈ఺ܭ਺ (IJCAI 2025) ž ASP: એݴతͳ໰୊هड़ͱ࣮༻γεςϜ (ASPITAL) 43 / 44
  79. ݚڀϓϩδΣΫτ X ࠓ೔঺հͨ͠ݚڀ͸൪ݪກଇઌੜ (໊ݹ԰େֶ) ͱುౡӳ஌ઌ ੜ (ࢁསେֶ) ͱߦ͖ͬͯͨɽ X ࠓ೥͔Β

    3 ਓͰ৽͘͠ KRR (Knowledge Representation and Reasoning) ϓϩδΣΫτΛ࢝Ίͨɽ X େֶͰ͸൪ݪઌੜͱೋਓͰݚڀࣨΛӡӦ͍ͯ͠Δɽ X ڵຯͷ͋Δํ͸ͥͻ࿈བྷΛʂ 44 / 44
  80. 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 Articial Intelligence (IJCAI 2009), pages 399404. 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 Articial Intelligence (AAAI 1997), pages 203208. Davis, Martin, Logemann, George , and Loveland, Donald W. (1962). A machine program for theorem-proving. Communications of the ACM, 5(7):394397. 1 / 8
  81. Reference II de Kleer, Johan (1989). A comparison of ATMS

    and CSP techniques. In Proceedings of the 11th International Joint Conference on Articial Intelligence (IJCAI 1989), pages 290296. Eén, Niklas and Sörensson, Niklas (2003). An extensible SAT-solver. In Proceedings of the 6th International Conference on Theory and Applications of Satisability Testing (SAT 2003), LNCS 2919, pages 502518. ುౡ ӳ஌, ؠপ ޺࣏ , Ҫ্ ࠀາ (2012). Glueminisat 2.2.5: ୯Ґ఻ൖΛଅֶ͢शઅͷੵۃత֫ಘઓུʹ جͮ͘ߴ଎ SAT ιϧόʔ. ίϯϐϡʔλιϑτ΢ΣΞ, 29(4):211230. 2 / 8
  82. Reference III 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. In Proceedings of the Thirty-Fourth International Joint Conference on Articial Intelligence, IJCAI 2025, Montreal, Canada, August 16-22, 2025, pages 26012609. ijcai.org. ງԬ ਅະ, ૙ ߶ल , ాଜ ௚೭ (2021). Cdcl ܕ sat ιϧόʔͷ಺෦ಈ࡞ՄࢹԽπʔϧ. B3. 3 / 8
  83. Reference IV Iwama, Kazuo and Miyazaki, Shuichi (1994). SAT-variable complexity

    of hard combinatorial problems. In Proceedings of the IFIP 13th World Computer Congress, pages 253258. 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 Satisability Testing (SAT 2011), LNCS 6695, pages 343356. Luby, Michael, Sinclair, Alistair , and Zuckerman, David (1993). Optimal speedup of Las Vegas algorithms. Information Processing Letters, 47(4):173180. 4 / 8
  84. Reference V Marques-Silva, João P. and Sakallah, Karem A. (1999).

    GRASP: A search algorithm for propositional satisability. IEEE Transactions on Computers, 48(5):506521. Moskewicz, Matthew W., Madigan, Conor F., Zhao, Ying, Zhang, Lintao , and Malik, Sharad (2001). Cha: Engineering an ecient SAT solver. In Proceedings of the 38th Design Automation Conference (DAC 2001), pages 530535. ುౡ ӳ஌ , ૙ ߶ल (2010). ߴ଎ SAT ιϧόʔͷݪཧ. ਓ޻஌ೳֶձࢽ, 25(1):6876. 5 / 8
  85. Reference VI Petke, Justyna and Jeavons, Peter (2011). The order

    encoding: From tractable csp to tractable sat. In Proceedings of the 14th International Conference on Theory and Applications of Satisability Testing (SAT 2011), LNCS 6695, pages 371372. Pipatsrisawat, Knot and Darwiche, Adnan (2007). A lightweight component caching scheme for satisability solvers. In Proceedings of the 10th International Conference on Theory and Applications of Satisability Testing (SAT 2007), LNCS 4501, pages 294299. 6 / 8
  86. Reference VII Selman, Bart, Kautz, Henry , and Cohen, Bram

    (1996). Local search strategies for satisability testing. In Johnson, David J. and Trick, Michael A., editors, Cliques, Coloring, and Satisability: the Second DIMACS Implementation Challenge, volume 26 of DIMACS Series in Discrete Mathematics and Theoretical Computer Science, pages 521532. 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 Articial Intelligence Tools, 26(1):129. 7 / 8
  87. Reference VIII Tamura, Naoyuki, Taga, Akiko, Kitagawa, Satoshi , and

    Banbara, Mutsunori (2009). Compiling nite linear CSP into SAT. Constraints, 14(2):254272. Walsh, Toby (2000). SAT v CSP. In Proceedings of the 6th International Conference on Principles and Practice of Constraint Programming (CP 2000), pages 441456. 8 / 8