Shrnutí. Vladimír Brablec

Podobne dokumenty
Aproximace funkcí 1,00 0,841 1,10 0,864 1,20 0,885. Body proložíme lomenou čarou.

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Mocninné řady 1 / 18

Edita Pelantová, katedra matematiky / 16

Necht je funkce f spojitá v intervalu a, b a má derivaci v (a, b). Pak existuje bod ξ (a, b) tak, že f(b) f(a) b a. Geometricky

Numerické metody 8. května FJFI ČVUT v Praze

Co nám prozradí derivace? 21. listopadu 2018

Linea rnı (ne)za vislost

1 Soustava lineárních rovnic

Úvodní informace. 18. února 2019

Kristýna Kuncová. Matematika B2 18/19

Funkce zadané implicitně. 4. března 2019

Automatové modely. Stefan Ratschan. Fakulta informačních technologíı. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Numerické metody minimalizace

(1) Derivace. Kristýna Kuncová. Matematika B2 17/18. Kristýna Kuncová (1) Derivace 1 / 35

Obsah: CLP Constraint Logic Programming. Úvod do umělé inteligence 6/12 1 / 17

Inverzní Z-transformace

MATEMATIKA 3. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

Kristýna Kuncová. Matematika B2

Geometrická nelinearita: úvod


Paradoxy geometrické pravděpodobnosti

Elementární funkce. Edita Pelantová. únor FJFI, ČVUT v Praze. katedra matematiky, FJFI, ČVUT v Praze

TGH01 - Algoritmizace

Určitý (Riemannův) integrál a aplikace. Nevlastní integrál. 19. prosince 2018

Statistika (KMI/PSTAT)

3. Problémy s omezujícími podmínkami (CSP Constraint Satisfaction Problems)

TGH01 - Algoritmizace

5. a 12. prosince 2018

Logika V. RNDr. Kateřina Trlifajová PhD. Katedra teoretické informatiky Fakulta informačních technologíı BI-MLO, ZS 2011/12

TGH08 - Optimální kostry

Matematika 2, vzorová písemka 1

Matematika (KMI/PMATE)

Petr Křemen FEL ČVUT. Petr Křemen (FEL ČVUT) Vysvětlování modelovacích chyb 133 / 156

DFT. verze:

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 3. listopadu Filip Železný (ČVUT) Vytěžování dat 3. listopadu / 1

(2) Funkce. Kristýna Kuncová. Matematika B2. Kristýna Kuncová (2) Funkce 1 / 25

Komplexní analýza. Martin Bohata. Katedra matematiky FEL ČVUT v Praze Martin Bohata Komplexní analýza Úvod 1 / 32

Kapitola 4: Soustavy diferenciálních rovnic 1. řádu

Cauchyova úloha pro obyčejnou diferenciální rovnici

Matematika III Stechiometrie stručný

Stochastické modelování v ekonomii a financích Konzistence odhadu LWS. konzistence OLS odhadu. Předpoklady pro konzistenci LWS

Lineární algebra - iterační metody

Diferenciální rovnice základní pojmy. Rovnice se

Internet a zdroje. (Zdroje na Internetu) Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17.

Powyższe reguły to tylko jedna z wersji gry. Istnieje wiele innych wariantów, można też ustalać własne zasady. Miłej zabawy!

Obsah. Zobrazení na osmistěn. 1 Zobrazení sféry po částech - obecné vlastnosti 2 Zobrazení na pravidelný konvexní mnohostěn

podle přednášky doc. Eduarda Fuchse 16. prosince 2010

NÁVOD K POUŽITÍ KEZELÉSI KÉZIKÖNYV INSTRUKCJA OBSŁUGI NÁVOD NA POUŽÍVANIE. Česky. Magyar. Polski. Slovensky

Západočeská univerzita v Plzni Fakulta aplikovaných věd. Katedra matematiky. Semestrální práce - matematika a byznys

Zadání: Vypočítejte hlavní momenty setrvačnosti a vykreslete elipsu setrvačnosti na zadaných

Obsah. Limita posloupnosti a funkce. Petr Hasil. Limita posloupnosti. Pro a R definujeme: Je-li a < 0, pak a =, a ( ) =. vlastní body.

návod k použití instrukcja obsługi

Jednoduchá zobrazení. Podpořeno z projektu FRVŠ 584/2011.

Algebra I Cvičení. Podstatná část příkladů je převzata od kolegů, jmenovitě Prof. Kučery, Doc. Poláka a Doc. Kunce, se

Matematika pro ekonomiku

prof. RNDr. Roman Kotecký DrSc., Dr. Rudolf Blažek, PhD Pravděpodobnost a statistika Katedra teoretické informatiky Fakulta informačních technologií

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Vybrané kapitoly z matematiky

fakulty MENDELU v Brně (LDF) s ohledem na disciplíny společného základu (reg. č. CZ.1.07/2.2.00/28.

Anna Kratochvílová Anna Kratochvílová (FJFI ČVUT) PDR ve zpracování obrazu / 17

Definice Řekneme, že PDA M = (Q,Σ,Γ,δ,q 0,Z 0,F) je. 1. pro všechna q Q a Z Γ platí: kdykoliv δ(q,ε,z), pak δ(q,a,z) = pro všechna a Σ;

Euklidovský prostor. Funkce dvou proměnných: základní pojmy, limita a spojitost.

Teorie. kuncova/ Definice 1. Necht f je reálná funkce a a R. Jestliže existuje.

Ústav teorie informace a automatizace RESEARCH REPORT. Pavel Boček, Karel Vrbenský: Implementace algoritmu MIDIA v prostředí Google Spreadsheets

Złożoność obliczeniowa

Martin Pergel. 26. února Martin Pergel

GENETICKÉ PROGRAMOVÁNÍ S JAZYKEM BRAINFUCK

návod k použití instrukcja obsługi

Katedra aplikované matematiky FEI VŠB Technická univerzita Ostrava

Návod k obsluze 2 Ďäçăßĺň ńţóçň 10 Instrukcja obsugi 18 Kullanma Kýlavuzu 26

ZÁPADOČESKÁ UNIVERZITA V PLZNI FAKULTA PEDAGOGICKÁ Katedra matematiky. Dudek Martin. obor Matematická studia

(a). Pak f. (a) pro i j a 2 f

Průvodce studiem V této kapitole se budeme zabývat diferenciálním počtem pro funkce více

Rovnice proudění Slapový model

kontaktní modely (Winklerův, Pasternakův)

Populační algoritmy a jejich uplatnění pro segmentaci obrazu. Pavel Jedlička

Matematika 1 Jiˇr ı Fiˇser 24. z aˇr ı 2013 Jiˇr ı Fiˇser (KMA, PˇrF UP Olomouc) KMA MAT1 24. z aˇr ı / 52

Příručka k rychlé instalaci: NWD2105. Základní informace. 1. Instalace softwaru

ČVUT FEL, K October 1, Radek Mařík Ověřování modelů II October 1, / 39

Obsah. 1.2 Integrály typu ( ) R x, s αx+β

Návod k použití BUBNOVÁ SUŠIČKA

Statistika (KMI/PSTAT)

B0B99PRPA Procedurální programování

Vlastnosti. Příprava. Czech - 2 -

Quick sort, spojové struktury

Logický agent, výroková logika

Jednoduchá zobrazení. Podpořeno z projektu FRVŠ 584/2011.

Kompaktnost v neklasických logikách

Tabulky, součin tabulek

Návod k použití Instrukcja obsługi Návod na používanie

Petr Hasil. c Petr Hasil (MUNI) Nekonečné řady MA III (M3100) 1 / 187

ZÁVĚREČNÁ KONFERENCE Poslanecká sněmovna PČR Praha MEZINÁRODNÍ DOTAZNÍKOVÉ ŠETŘENÍ ANKIETY MIEDZYNARODOWE

Katedra kybernetiky laboratoř Inteligentní Datové Analýzy (IDA) Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Metody, s nimiž se seznámíme v této kapitole, lze použít pro libovolnou

Hry. šachy, backgammon, poker

Logický agent, výroková logika

MATEMATIKA 3 NUMERICKÉ METODY. Katedra matematiky a didaktiky matematiky Technická univerzita v Liberci

TVL LED NÁVOD K POUŽITÍ NÁVOD NA POUŽITIE

A71100TSW0 CS MRAZNIČKA NÁVOD K POUŽITÍ 2 PL ZAMRAŻARKA INSTRUKCJA OBSŁUGI 18 SL ZAMRZOVALNIK NAVODILA ZA UPORABO 35

návod k použití instrukcja obsługi manual de instruções návod na používanie

Transkrypt:

Řešení problému SAT s využitím lokálního prohledávání Vladimír Brablec Seminář z umělé inteligence II, 2010

Motivace Obsah referátů Články, podle nichž je prezentace vytvořena 1 Selman B., Kautz H., Cohen B.: Local Search Strategies for Satisfiability Testing, 1995. 2 Schöning U.: New Algorithms for k-sat Based on the Local Search Principle, 2001. 3 Gu J., Purdom P. W., Franco J., Wah B. W.: Algorithms for the Satisfiability (SAT) Problem: A Survay, 1991.

Motivace Obsah referátů Motivace SAT je rozhodnutelný (tabulková metoda) SAT je NP-úplný 2-SAT je v P formuli kolika proměnných zvládneme vyřešit za 10 dní? procesor 2 10 9 operací / s (tj. asi 2 31 ) 10 dnů = 864 000 s (tj. méně než 2 20 ) celkem tedy formule může mít kolem 50 proměnných to je málo!

Motivace Obsah referátů Motivace cíl: řešit formule s tisíci či dokonce milióny proměnných proč? řada aplikací (HW/SW verification, AI planning,...) cíl je dosažitelný na řadě reálných problémů (heuristiky) v obecném případě nebudeme lepší než tabulková metoda

Motivace Obsah referátů Co zaznělo minule procedura DPLL úplná metoda postupně ohodnocující atomy 3 druhy heuristik: nalezení nutného ohodnocení proměnné volba další proměnné, kterou máme ohodnotit řešení konfliktů (formule není splněna vygenerovaným ohodnocením)

Motivace Obsah referátů Co zazní dnes lokální metody řešení SAT (často nejsou úplné) základní metody a jejich experimentální srovnání analýza dalších algoritmů

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Reprezentace problému vstup: výroková formule v CNF (konjunkce klauzulí) klauzule je disjunkce literálů literál je výroková proměnná nebo její negace výstup: fle je splnitelná (existuje ohodnocení výrokových proměnných prvky {0,1}, které splňuje fli), nebo není splnitelná

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Neúplnost lokálního prohledávání zdá se, že lok. prohledávání se hodí jen na problémy, kdy nám stačí splnit co největší počet klauzulí překvapivě, s vysokou pravděpodobností lze najít splňující ohodnocení všech klauzulí často najdeme splňující ohodnocení, nikdy však nedokážeme, že fle není splnitelná vede k nutnosti přeformulování některých problémů

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Algoritmus GSAT prohledává prostor pravdivostních ohodnocení všech atomů (rozdíl oproti DPLL) sousední stavy mají od aktuálního stavu Hammingovu vzdálenost rovnou 1 počáteční stav - náhodně vygenerované ohodnocení tělo algoritmu - cyklus dokud není nalezeno splňující ohodnocení nebo vyčerpán čas unsat(v) počet klauzulí nesplněných aktuálním ohodnocením v najdi proměnnou p, jejíž překlopení hodnoty by vedlo k nejmenší hodnotě unsat(v) překlop hodnotu proměnné p

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Lokální minima Co dělat, když překlopení žádné proměnné nevede k takovému ohodnocení v k+1, že unsat(v k+1 ) < unsat(v k )? pouhé přijetí stavů, které mají unsat(v k+1 ) = unsat(v k ) vede k dramaticky vyšší šanci najít globální minimum patrně bude třeba ošetřit zpětné kroky

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Obrázek: cit. [1], s. 3

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Lokální minima restartovat prohledávání (tj. znovu začít od náhodného stavu) stochastická verze mezi sousedními stavy, které zlepšují unsat, vybírá náhodně s pravděpodobností danou velikostí zlepšení nemusí se vydat do souseda, který nejvíc zlepšuje unsat (pomalejší konvergence)

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Simulované žíhání algoritmus náhodně vybere sousední stav a vydá se do něj, pokud: je to stav nezhoršující unsat - vždy je to stav zhoršující (unsat(v k ) < unsat(v k+1 )) - s pravděpodobností e unsat(v k+1 ) unsat(v k ) T, kde T se průběžně snižuje překvapivě se ukázalo výhodnější držet T konstantní možné vysvětlení: stěžejní práce spočívá ve splnění několika posledních klauzulí - zde je již T nízká optimální hodnota T experimentálně stanovena na 0,2 pro náhodné problémy

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Náhodná procházka Základní algoritmus vybírá sousední stav zcela náhodně - přitom jen testuje, zda už nejde o splňující ohodnocení úplná metoda, ale pomalá není prakticky použitelná

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Modifikovaný algoritmus - analýza dle [1] začíná s náhodným ohodnocením náhodně vybere nesplněnou klauzuli a v ní nějaký literál překlopí hodnotu vybraného literálu předchozí 2 kroky opakuje pro 2-SAT najde splňující ohodnocení v čase O(n 2 ) s pravděpodobností blížící se 1 na obecné problémy se nehodí

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Kombinace hladového alg. a náhodné procházky Random Walk Strategy s pravděpodobností p překlop hodnotu proměnné v nějaké nesplněné klauzuli (čili každá proměnná vyskytující se v nějaké nesplněné klauzuli má stejnou šanci) s pravděpodobností 1 p udělej hladový pohyb (GSAT) Random Noise Strategy s pravděpodobností p překlop hodnotu náhodně zvolené proměnné s pravděpodobností 1 p udělej hladový pohyb (GSAT) u obou strategií byla experimentálně stanovena optimální hodnota p mezi 0,5 a 0,6.

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Paprskové hledání začneme s k náhodnými ohodnoceními prozkoumáme všechny jejich sousedy a vybereme z nich k nejlepších (tj. splňujících nejvíc klauzulí) opakujeme

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Algoritmus WSAT náhodně vybere nesplněnou klauzuli z této klauzule s pravděpodobností p vybere náhodně literál a s pravděpodobností 1 p vybere literál hladově překlopí hodnotu literálu a opakuje postup

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Srovnání algoritmů GSAT s restarty a zlepšujícími nebo stejně dobrými stavy Random Walk Strategy Random Noise Strategy Simulované žíhání U všech algoritmů max. 1000 restartů a 20 hodin

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Náhodné problémy - testovací data náhodné instance CNF flí jsou vhodné k porovnání algoritmů jak ale generovat těžké náhodné problémy? nageneruj L náhodných klauzulí, kde každá obsahuje K náhodně vybraných proměnných, které jsou z 50% znegované těžké fle jsou ty, u kterých je pravděpodobnost okolo 50%, že budou splněny u 3-SAT to odpovídá poměru L 4.3N

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Obrázek: cit. [1], s. 7

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Plánovací problémy snadno jsou nalezena ohodnocení splňující téměř všechny klauzule téměř optimální stavy však odpovídají např. špatně umístěnému disku na dně (v problému Hanoi)

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Obrázek: cit. [1], s. 8

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Tvorba obvodů na základě chování neznámého obvodu (známe vstupy a jim příslušící výstupy) obvod zkonstruovat navíc máme jistá omezení na počty hradel

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Obrázek: cit. [1], s. 9

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Problémy lokálního prohledávání Obrázek: cit. [3], s. 30

Základní algoritmy - přehled Experimentální srovnání algoritmů Problémy lokálního prohledávání Tunelová heuristika překlopí hodnotu proměnných, pokud to nezmění počet nesplněných klauzulí hledání smyček

Random Funkce procedure (a: assignment; m: integer ): boolean;

Random Funkce procedure (a: assignment; m: integer ): boolean; begin

Random Funkce procedure (a: assignment; m: integer ): boolean; begin if ϕ(a) = 1 then return true;

Random Funkce procedure (a: assignment; m: integer ): boolean; begin if ϕ(a) = 1 then return true; if m = 0 then return false;

Random Funkce procedure (a: assignment; m: integer ): boolean; begin if ϕ(a) = 1 then return true; if m = 0 then return false; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a }

Random Funkce procedure (a: assignment; m: integer ): boolean; begin if ϕ(a) = 1 then return true; if m = 0 then return false; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a } for i := 1 to k do if (a l i, m 1) then return true;

Random Funkce procedure (a: assignment; m: integer ): boolean; begin if ϕ(a) = 1 then return true; if m = 0 then return false; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a } for i := 1 to k do if (a l i, m 1) then return true; return false;

Random Funkce procedure (a: assignment; m: integer ): boolean; begin if ϕ(a) = 1 then return true; if m = 0 then return false; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a } for i := 1 to k do if (a l i, m 1) then return true; return false; end

Random Korektnost necht a je splňující ohodnocení fle a a je aktuální ohod. se vzdáleností d pro aspoň jedno ohodnocení (a l i ); i {1,... k} je jeho vzdálenost d 1 Př.: {( p q), ( p s), p}; a = (0, 0, 0) modifikace: jednou překlopenou proměnnou už nepřeklápět zpátky mezi nesplněnými klauzulemi vybrat tu nejkratší

Random Složitost a kompletní alg. každé volání (a, m) může vyvolat až k volání (a l, m) složitost je tedy O(k m ) celý alg.: volat (0 n, n 2 ) a (1n, n 2 ) složitost O(k n 2 ) má význam jen pro 3-SAT, kde 3 n 2 1.732 n

Random Algoritmus Random for t times do begin Choose an assignment a, uniformly at random; if (a, β) then accept end; reject

Random Složitost Random jak zvolit t a β, aby pravděpodobnost chyby byla zanedbatelná a zároveň složitost co nejmenší? složitost je O(t k β ) jedno volání (a, β) najde optimání ohodnocení s pravděpodobností β ( n ) i i=0 2 n

Random Složitost Random pravděpodobnost, že cesta od žádného z t náhodných počátečních ohodnocení nevedla k nalezení optima, je t β ( n ) i 1 i=0 2 n když vhodně zvolíme t tak, aby tato pravděpodobnost byla co nejmenší, vyjde nám celková složitost O ( t k β) ( [2 O ββ (1 β) 1 β k β] ) n

Random Složitost Random poslední výraz je minimalizován, když β = 1 složitost potom vyjde ( 2 k k+1 ) n pro případ 3-SAT to dává 1.5 n k+1

Random Deterministický předchozí algoritmus upravíme - místo náhodných počátečních ohodnocení vybereme {a 1... a n } tak, aby {0, 1} n = t i=1 H β(a i ), kde H β (a) je množina ohodnocení, která mají od a vzálenost nejvýš β chtěli bychom najít co nejmenší β a t v ideálním případě platí t = 2n β ( n ) i i=0 když ( to opět upravíme, dostaneme složitost [2 O ββ (1 β) 1 β k β] ) n

Random Modifikovaný algoritmus náhodné procházky for t times do

Random Modifikovaný algoritmus náhodné procházky for t times do begin

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random;

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do begin

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do begin if ϕ(a) = 1 then accept;

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do begin if ϕ(a) = 1 then accept; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a}

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do begin if ϕ(a) = 1 then accept; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a} Choose one of the k literals l i at random;

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do begin if ϕ(a) = 1 then accept; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a} Choose one of the k literals l i at random; Flip the value of l i in assignment a;

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do begin if ϕ(a) = 1 then accept; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a} Choose one of the k literals l i at random; Flip the value of l i in assignment a; end;

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do begin if ϕ(a) = 1 then accept; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a} Choose one of the k literals l i at random; Flip the value of l i in assignment a; end; end;

Random Modifikovaný algoritmus náhodné procházky for t times do begin Choose an assignment a {0, 1} n, uniformly at random; for u times do begin if ϕ(a) = 1 then accept; {Let C = {l 1, l 2,..., l k } be some clause in ϕ with C(a) = 0, i.e. all k literals l i of C are set to 0 under a} Choose one of the k literals l i at random; Flip the value of l i in assignment a; end; end; reject

Random Modifikovaná náhodná proch. - analýza dle [2] necht ϕ je splnitelná fle, vybereme nějaké její splňující ohodnocení a v každé klauzuli fixujeme jeden literál, který je splněn ohodnocením a ; nazveme ho dobrý literál necht náhodné počát. ohodnocení má od a vzdálenost j vzdálenost je náhodná proměnná binomického rozdělení ( ) ( ) n 1 j ( ) 1 n j ( n P[vzdál. od a = j] = = j 2 2 j pokaždé, kdy alg. volí literál z nesplněné klauzule, je šance, že zvolí dobrý literál, 1 k ) 2 n jiný literál zvolí s pravd. 1 1 k to definuje Markovský řetězec

Random Modifikovaná náhodná proch. - analýza dle [2] z vlastností Markovského řetězce plyne: ( ) 1 j P[cílový stav je dosažen poč. stav je j] = k 1 n ( ) ( ) n 1 j P[cílový stav je dosažen] = 2 n j k 1 j=0 ( ) k n P[cílový stav je dosažen] = 2(k 1) obdobně jako dříve je třeba vhodně zvolit u a t tak, aby byla minimalizována možnost, že alg. nenajde optimum ( ) 2(k 1) n celková složitost alg. pak vyjde k ( ) 4 n 3-SAT je řešen se složitostí 3

Random Alg. nezávislých klauzulí počáteční ohodnocení vybereme chytřeji než zcela náhodně nezávislé klauzule nemají žádnou společnou proměnnou následující alg. spočítá maximální množinu nezávislých klauzulí: C := ; for i := 1 to m do if clause C i is independent of all clauses in C then C := C C i ; pro 3-SAT C n 3

Random Alg. nezávislých klauzulí pokud je C αn každá nezávislá klauzule může být splněna 7 (částečnými) ohodnoceními z 8 splňujících ohodnocení C je 7 C 7 αn dokud nenajdeme splňující ohod. celé ϕ, bereme postupně tato částečná ohodn. všechny nezávislé klauzule jsou jimi splněny ostatní klauzule jsou bud splněny, nebo se z nich staly 2-SAT kluzule 2-SAT je řešitelný polynomiálně máme tedy alg. se slož. O(7 αn )

Random Alg. nezávislých klauzulí pokud je C > αn použije se předchozí alg. (náhodná procházka); trojice proměnných z klauzulí v C budou však ohodnoceny s jinou pravděpodobností: ohodnocení pravděpodobnost 000 0 001 z 010 z 100 z 011 y 101 y 110 y 111 x

Random Alg. nezávislých klauzulí x = 1 7, y = 2 21, z = 4 21 při této konfiguraci je P[nalezení splňujícího ohodn.] [ (3 4 ) 1 3α ( ) ] 3 α n 7 pokud má složitost alg. záviset jen na počáteční enumeraci, položíme α 0.146652 O(1.3303 n ) 7 α = ( ) 4 1 3α ( ) 7 α 3 3

z experimentálně porovnávaných algoritmů vyšel nejlépe Random Walk Strategy analýza dalších algoritmů dopadla takto: - O(1.732 n ) Random - O(1.5 n ) - O( ( 4 n) 3) Alg. nezávislých klauzulí - O(1.3303 n )