Řešení obtížných případů problému splnitelnosti Booleovských formulí Pavel Surynek Katedra teoretické informatiky a matematické logiky Matematicko-fyzikální fakulta Univerzita Karlova, Praha
O čem to je ? Řešení obtížných případů SAT pro dnešní SAT řešící systémy Konzistenční technika formule interpretována jako graf hledání struktur v grafu - kliky zjednodušení nebo rozhodnutí původní formule Srovnání s nejlepšími SAT řešícími systémy Pavel Surynek, STTI 2007
Původně neúspěch Úryvek z recenze „... the last section investigates the idea of exploiting the consistency for solving SAT. In my opinion, this is somewhat (too) optimistic. The graph structure is already very well exploited by SAT algorithms...“ Pokusili jsme se tento názor vyvrátit (podpořit náš optimismus) Pavel Surynek, STTI 2007
Obtížné SAT problémy Obtížné problémy pro dnešní SAT řešící systémy nelze (heuristicky) uhádnout řešení heuristiky neuspějí ►► prohledávání Typicky nesplnitelné SAT problémy kódující Dirichletův princip (Pigeon-hole principle) Ohodnocení = svědek Nesplnitelnost žádný svědek Pavel Surynek, STTI 2007
Náš přístup Vstup - Booleovská formule v CNF Interpretujeme jako graf konfliktů vrcholy - literály hrany - konflikty mezi literály například: x a ¬x jsou v konfliktu (nemohou být splněny zároveň) Aplikujeme konzistenci ►► nové konflikty Výstup - ekvivalentní (jednodušší) formule nebo odpověď „nesplnitelná“ Pavel Surynek, STTI 2007
Detaily konzistence Zahuštění grafu konfliktů aplikujeme bodovou hranovou konzistenci hustější graf = vhodnější pro další krok Najdeme (hladově) kliky nejvýše jeden literál z kliky může být splněn příspěvek literálu x...c(x) = počet klauzulí s x příspěvek kliky K...c(K) = max xK c(x) když například ∑ Kkliky c(K)<počet klauzulí ►► nesplnitelná formule Zobecnění = kliková konzistence podformule a bodově Pavel Surynek, STTI 2007
Kliková konzistence Zvolíme podformuli B = podmnožina klauzulí příspěvek literálu x k podformuli B......c(x,B) = počet klauzulí v B s obsahující x příspěvek kliky K k podformuli B......c(K,B) = max xK c(x,B) když ∑ Kkliky c(K,B)<počet klauzulí B ►► nesplnitelná formule Bodový přístup... literál x nekonzistentní ∑ Kkliky bez x c(K,B)<počet klauzulí B-c(x,B) Pavel Surynek, STTI 2007
Jak to vypadá vizuálně (1) „Vložte 7 holubů do 6-ti děr“ Pavel Surynek, STTI 2007
Jak to vypadá vizuálně (2) Po odvození nových konfliktů - SAC Pavel Surynek, STTI 2007
Jak to vypadá vizuálně (3) Po aplikaci klikové konzistence - unSAT Pavel Surynek, STTI 2007
Složitost Konstrukce grafu konfliktů polynomiální Bodová hranová konzistence polynomiální (ale pro reálné problémy časově náročné) Kliková konzistence vzhledem k jedné podformuli polynomiální Problém: konzistence vzhledem k více podformulím (polynomiálně mnoho podformulí) Pavel Surynek, STTI 2007
Testované SAT řešící systémy MiniSAT zChaff HaifaSAT kritérium výběru: poskytován zdrojový kód Testované problémy (Fadi Aloul) Pigeon Hole Urquhart Field Programmable Gate Array Soutěživé srovnání Pavel Surynek, STTI 2007 vítězové podle SAT Competition 2005 a SAT Race 2006
Výsledky experimentů Pavel Surynek, STTI 2007 Instance Decision (seconds) Speedup ratio w.r.t. MiniSAT Speedup ratio w.r.t zChaff Speedup ratio w.r.t HaifaSAT chnl10_ > chnl10_ > chnl10_ > chnl11_120.70> > urq3_ N/A urq4_5> N/A urq5_5> N/A urq6_5> N/A hole hole > hole110.20> > hole120.30> > fpga10_ > fpga10_ > fpga10_ > fpga10_151.39> > Opteron 1600 MHz, Mandriva Linux 10.1
Shrnutí a závěr Zpracování SAT problému pomocí klikové konzistence formule interpretována jako graf konfliktů hladové nalezení klik odvození nových konfliktů výstup: ekvivalentní formule nebo rozhodnutí Experimenty mnohanásobné urychlení oproti nejlepším SAT řešícím systémům Chcete vědět víc ? ITI Série Pavel Surynek, STTI 2007