130 likes | 309 Views
Efektivní heuristika pro SAT založená na znalosti komponent souvislosti grafu problému. Tomáš Balyo a Pavel Surynek Matematicko-fyzikální fakulta Univerzita Karlova v Praze. Problém booleovské splnitelnosti (Problém SAT ). Dána booleovská formule
E N D
Efektivní heuristika pro SAT založená na znalosti komponent souvislosti grafu problému Tomáš Balyo a Pavel Surynek Matematicko-fyzikální fakultaUniverzita Karlova v Praze
Problém booleovské splnitelnosti (Problém SAT) • Dána booleovská formule • Obsahuje výrokové proměnné, které mohou nabývat hodnot pravda/nepravda (True/False) • Logické spojky: ¬, ∧, ∨, → (negace, konjunkce, disjunkce, implikace); závorky: (, ) • Výroková proměnná je booleovská formule. Pokud A a B jsou formule, potom také ¬A, (A ∧ B), (A ∨ B), (A → B)jsou rovněž booleovské formule. • Př.: (¬x → ¬y) → (y → x), kde x,y jsou výrokové proměnné • Otázka: Lze formuli splnit? Pokud ano, jaké je ohodnocení proměnných, které splňuje formuli? • Ohodnocení: přiřazení hodnot proměnným formule • Používá se tvar CNF (konjunktivní normální tvar) • konjunkce klauzulí, klauzule = disjunkce literálů,literál = proměnná nebo negace proměnné • Př.: (x ∨ ¬y) ∧ (¬y) ∧ (x ∨ ¬y ∨ z) Znalosti 2009 Tomáš Balyo, Pavel Surynek
Motivace k problémům SAT • Obecně: úlohy, kde je třeba současněsplnit jisté podmínky • Podmínky jsou modelovány jako klauzule • Příklady • Rozvrh služeb zdravotních sester (nurse scheduling) • Chceme splnit podmínky: mohou pracovat maximálně H hodin týdně, některé nemohou mít noční služby, … • Sestavování individuálního školního rozvrhu • Podmínky: student chce navštěvovat matematiku a fyziku, nechce matematiku hned po fyzice, … • Hry: Sudoku, N-královen • Optimalizace dopravy • Návrh hardwaru Znalosti 2009 Tomáš Balyo, Pavel Surynek
Složitost a řešení problému SAT • Problém SAT je NP-úplný – není znám řešící algoritmus pracující v polynomiálním čase • Všechny v současnosti známé algoritmy vyžadujív nejhorším případě exponenciální čas • Existují různé řešící metody • Úplné algoritmy – garantují nalezení řešení • Prohledávání prostoru všech možných ohodnocení proměnných formule • Bez použití vylepšujících technik malé šance na vyřešení v rozumném čase • Dopředný pohled (look ahead) • Propagace (jednotková propagace) • Heuristiky(pro výběr proměnné k ohodnocení) Znalosti 2009 Tomáš Balyo, Pavel Surynek
Metoda DPLL(Davis, Putnam, Logemann & Loveland, 1962) • Téměř všechny úplné řešící systémy pro SAT jsou založeny na DPLL • Prohledávání prostoru všech možných ohodnocení proměnných do hloubky + propagace • Výběr dosud neohodnocené proměnné (podle heuristiky) • Otestování hodnot pravda/nepravda pro vybranou proměnnou • Po přiřazení hodnoty proměnné: • Provést jednotkovou propagaci • Výsledná formule splněna konec • Výsledná formule nesplnitelná návrat Znalosti 2009 Tomáš Balyo, Pavel Surynek
Jednotková propagace • Pokud v dosud nesplněné klauzuli zbývá poslední neohodnocený literál, je nutné jej pravdivě ohodnotit (¬u ∨ w) ∧ (u∨ v) ∧ (u) ∧ (¬w ∨ z) Jednotková klauzule umusí být ohodnoceno pravdivě (w) ∧ (¬w ∨ z) Splněné klauzule a nesplněné literály vyřadíme Jednotková klauzule wmusí být ohodnoceno pravdivě (z) Splněné klauzule a nesplněné literály opět vyřadíme, Zbývá poslední jednotková klauzule z ohodnotíme pravdivě • Splňující ohodnocení formule nalezeno jen s pomocí jednotkové propagace Znalosti 2009 Tomáš Balyo, Pavel Surynek
Nová heuristika pro výběr proměnné (1) • GrafG=(V,E) odvozený z formule (dynamický) • V = { x | x dosud neohodnocená proměnná } • E = { {x,y}| existuje ještě nesplněná klauzule K taková, že xK∧yK} (x2x4) (x2 ¬x1) (x3 ¬x1 ) (x3 ¬x6x5) x2 x6 x2 x6 x3 x3 x1 x4 x4 x5 x5 Po provedení přiřazení x1=nepravda (x2x4) (x3 ¬x6x5) • Komponenty souvislosti grafu lze řešit nezávisle Znalosti 2009 Tomáš Balyo, Pavel Surynek
Nová heuristika pro výběr proměnné (2) • Chceme udržovat znalost o komponentách souvislosti odvozeného grafu • Proměnné k ohodnocení budeme vybírat ze stejné komponenty souvislosti • Prohledávání omezíme pouze na danou komponentu souvislosti • Př.: dvě stejně velké komponenty … složitost 2|V| 2|V|/2 • Explicitní udržování znalosti o komponentách je příliš časově náročné • Vybíráme vždy neohodnocenou proměnnou z klauzule, kde naposledy proběhla jednotková propagace. Žádné navýšení času + jedna proměnná navíc. Znalosti 2009 Tomáš Balyo, Pavel Surynek
Experimentální řešící systém - Mei • Nová heuristika zabudována do experimentálního systému pro řešení SAT problémů – SAT řešičMei • Implementováno v jazyce C • Základem je DPLL • Použito sledování dvou literálů • Žádné další urychlující techniky • Provedeno srovnání s řešícími systémy, které byly úspěšné v soutěžích SAT Competitiona SAT Race • MiniSAT, MiniSAT 2, PicoSAT, zChaff, RSat 2 • Srovnání na náhodných 3-SAT a strukturovaných problémech • Testy provedeny na CPU Intel Pentium M 1.7 GHz Znalosti 2009 Tomáš Balyo, Pavel Surynek
Experimentynáhodné 3-SAT problémy • Problémy vybrány z oblasti fázového přechodu (zdroj: SATLIB) Znalosti 2009 Tomáš Balyo, Pavel Surynek
Experimentystrukturované problémy - holubi • Dirichletův princip – N holubů do N-1 děr,v žádné díře není více než 1 holub (zdroj: SATLIB) NESPLNITELNÉ Znalosti 2009 Tomáš Balyo, Pavel Surynek
Experimentystrukturované problémy - FPGA • Problém směrování v FPGA,vytváření propojení pomocí přepínačů(zdroj: SATLIB) NESPLNITELNÉ Znalosti 2009 Tomáš Balyo, Pavel Surynek
Závěr a budoucí práce • Nová heuristika pro výběr proměnné k ohodnocení • Heuristika založena na implicitní znalosti komponent souvislosti odvozeného grafu • Odvozený graf odráží strukturu problému • Vybíráme proměnné ze stejné komponenty souvislosti • Jednotlivé komponenty souvislosti řešeny nezávisle • Odvozený graf není nutné udržovat explicitně • Stačí vybírat proměnnou z klauzule, kde naposledy proběhla jednotková propagace • Do budoucna plánujeme doplnit experimentální řešící systém o další urychlující techniky Znalosti 2009 Tomáš Balyo, Pavel Surynek