ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094

Podobné dokumenty
Rozhodovací procedury a verifikace Pavel Surynek, KTIML

Výroková a predikátová logika - V

Matematická logika. Rostislav Horčík. horcik

Výroková a predikátová logika - II

Výroková a predikátová logika - II

Výroková logika - opakování

Výroková a predikátová logika - III

12. Globální metody MI-PAA

Výroková a predikátová logika - III

Výroková a predikátová logika - II

Matematická logika. Rostislav Horčík. horcik

Základy logiky a teorie množin

3.10 Rezoluční metoda ve výrokové logice

vhodná pro strojové dokazování (Prolog) metoda založená na vyvracení: dokazuje se nesplnitelnost formulí

Unbounded Model Checking

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

Formální systém výrokové logiky

Výroková a predikátová logika - XIII

Programování. s omezujícími podmínkami. SAT a lokáln. Algoritmus GSAT. Algoritmus GSAT. Roman Barták

Matematická logika. Miroslav Kolařík

Databázové systémy. * relační kalkuly. Tomáš Skopal. - relační model

SAT řešič pomocí algoritmů inspirovaných přírodou. Jan Klátil, Milan Rybář

Metoda hrubé sily, backtracking a branch-and-bound

Výroková a predikátová logika - IV

Logika. 5. Rezoluční princip. RNDr. Luděk Cienciala, Ph. D.

Negativní informace. Petr Štěpánek. S použitím materiálu M.Gelfonda a V. Lifschitze. Logické programování 15 1

Sémantika výrokové logiky. Alena Gollová Výroková logika 1/23

Výroková a predikátová logika - X

Výroková a predikátová logika - X

Optimalizace & soft omezení: algoritmy

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Dijkstrův algoritmus

Jak jsem potkal logiku. Převod formule do (úplného) disjunktivního tvaru. Jan Hora

Efektivní heuristika pro SAT založená na znalosti komponent souvislosti grafu problému *

Predikátová logika. prvního řádu

Výroková a predikátová logika - IX

Výroková a predikátová logika - IX

Místo pojmu výroková formule budeme používat zkráceně jen formule. Při jejich zápisu

Výroková a predikátová logika - XII

Základní pojmy matematické logiky

Třídy složitosti P a NP, NP-úplnost

Rezoluce ve výrokové logice

popel, glum & nepil 16/28

Výroková a predikátová logika - XII

PODOBÁ SE JAZYKU C S NĚKTERÝMI OMEZENÍMI GLOBÁLNÍ PROMĚNNÉ. NSWI162: Sémantika programů 2

1 Pravdivost formulí v interpretaci a daném ohodnocení

Každé formuli výrokového počtu přiřadíme hodnotu 0, půjde-li o formuli nepravdivou, a hodnotu 1, půjde-li. α neplatí. β je nutná podmínka pro α

DSA, První krok: máme dokázat, že pro left = right vrátí volání f(array, elem, left, right)

Logika a logické programování

ŘÍKÁME, ŽE FUNKCE JE ČÁSTEČNĚ SPRÁVNÁ (PARTIALLY CORRECT), POKUD KDYŽ JE SPLNĚNA PRECONDITION

Logika. 2. Výroková logika. RNDr. Luděk Cienciala, Ph. D.

Úvod do TI - logika Výroková logika - pokračování (3.přednáška) Marie Duží

IV113 Validace a verifikace. Převod LTL formule na Büchi automat. Jiří Barnat

Přijímací zkouška - matematika

Predik atov a logika - pˇredn aˇska () Predik atov a logika - pˇredn aˇska / 16

Systém přirozené dedukce výrokové logiky

NP-úplnost problému SAT

Inference v deskripčních logikách

Úvod do informatiky. Miroslav Kolařík

Rezoluční kalkulus pro výrokovou logiku

Algoritmy. Z. Sawa (VŠB-TUO) Úvod do teoretické informatiky 15. dubna / 39

Marie Duží

Výroková logika dokazatelnost

Logika Libor Barto. Výroková logika

Základy algoritmizace. Hašování

1 Predikátová logika. 1.1 Syntax. jaký mohou mít formule význam (sémantiku). 1. Logických symbolů: 2. Speciálních (mimologických) symbolů:

Co je obsahem? O čem bude přednáška? plánování a rozvrhování. ono se to někde používá? aplikace? řešící algoritmy.

Aplikace: Znalostní báze

Kapitola 6: Omezení integrity. Omezení domény

Centrální plánování cest pro mnoho agentů Centralized Multi-agent Path Planning

Použití dalších heuristik

Další NP-úplné problémy

Hranová konzistence. Arc consistency AC. Nejprve se zabýváme binárními CSP. podmínka odpovídá hraně v grafu podmínek

KMI/ALM3 Mgr. Petr Osička, Ph.D. ZS ANO je slovo 1 a kódováním NE je slovo 0, pak je problém popsán pomocí dvojice L, R takové, že:

1 REZOLUČNÍ FORMÁLNÍ DŮKAZY

Výrazy a operátory. Operátory Unární - unární a unární + Např.: a +b

Přednáška 3. Rekurze 1

Normální formy. (provizorní text)

V této výukové jednotce se student seznámí se základními pojmy a algoritmy ve výrokové logice.

Modely Herbrandovské interpretace

Výroková a predikátová logika - VII

NTIN099 Algoritmické aspekty booleovských funkcí a parametrizovaná složitost

Abstraktní datové typy FRONTA

Cvičení 4. negace konjunkce disjunkce implikace ekvivalence. a) Najděte UDNF, UKNF a stanovte log. důsledky. 1) [p (p q)] [( p q) (q p)]

Logika. 6. Axiomatický systém výrokové logiky

kontrola povinnosti údajů kontrola rozsahu čísel kontrola ové adresy, telefonního čísla nutná součást každého software

Rezoluční kalkulus pro logiku prvního řádu

Predikátová logika [Predicate logic]

Pravidlové znalostní systémy

ÚVODNÍ ZNALOSTI. datové struktury. správnost programů. analýza algoritmů

IA008 Computational logic Version: 6. května Formule je v konjunktivní normální formě (CNF), pokud má tvar α 1... α n,

verze 29/9/09 textu o logice, aritmetice a M. Bizzarrimu.

teorie logických spojek chápaných jako pravdivostní funkce

Tableaux metody. Jiří Vyskočil 2011

Plánováníá a rozvrhování

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Disjunktivní a konjunktivní lní tvar formule. 2.přednáška

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Výpočet globálního stavu

LOGICKÉ OBVODY 2 kombinační obvody, minimalizace

Transkript:

10 ROZHODOVACÍ PROCEDURY A VERIFIKACE PAVEL SURYNEK, KTIML HTTP://KTIML.MFF.CUNI.CZ/~SURYNEK/NAIL094 Matematicko-fyzikální fakulta Univerzita Karlova v Praze 1

ROZHODOVÁNÍ TEORIÍ POMOCÍ SAT ŘEŠIČE (SMT) 2 Rozhodovací procedury a verifikace, 10. přednáška

SAT řešič a obecné teorie (1) Budeme chtít využít efektivity SAT řešiče při rozhodování obecných teorií. Nechť T je nějaká teorie (například logika s rovností a neinterpretovanými funkcemi). Budeme předpokládat existenci rozhodovací procedury pro konjunktivní fragment teorie T (rozhodované formule mají tvar konjunkce literálů) rozhodovací procedura bude značena DECIDE T. Cílem je zkonstruovat rozhodovací proceduru pro T, která bude vytvořena integrací rozhodovací procedury DECIDE T a SAT řešiče. Obě technologie budou kooperovat SAT řešič vybírá literály, které je nutno splnit, aby byla splněna booleovská struktura formule. Rozhodovací procedura DECIDE T kontroluje, zda je výběr provedený SAT řešičem konzistentní s teorií T. Výhodou je efektivita, obecnost a modularita 3 Rozhodovací procedury a verifikace, 10. přednáška

SAT řešič a obecné teorie (2) Teorie T bude bezkvantifikátorová teorie se signaturou Σ. Výrokové kódování literálů: Každému Σ-literálu l bude přiřazena výroková proměnná e(l), kterou budeme nazývat výrokovým kódem literálu l (propositional encoder). Výrokové kódování formulí v NNF tvaru: Kódování lze rozšířit na celou formuli, nechť φ je Σ-formule v NNF tvaru, potom e(φ) bude označovat výrokovou formuli, která vznikla nahrazením každého literálu ve φ jeho výrokovým kódem. Formule e(φ) se nazývá výroková kostra formule φ (propositional skeleton). Př.: Σ-literál x=y bude kódován výrokovou proměnnou e(x=y). φ := (x = y) (x = z) nechť je Σ-formule. Výroková kostra formule φ tedy je e(φ) := e(x = y) e(x = z). SAT řešič bude pracovat nad (postupně modifikovanou) výrokovou kostrou rozhodované formule. 4 Rozhodovací procedury a verifikace, 10. přednáška

Integrace SAT řešiče a DECIDE T (1) Nechť T je teorie rovnosti. Uvažme formuli φ v negačně normálním tvaru (NNF), kde: φ := (x = y) ((y = z x z) (x = z)). Nejprve je určena výroková kostra formule φ: e(φ) := e(x = y) (e(y = z) e(x z)) e(x = z)). Jelikož jsou kódovány literály a nikoli atomy, e(φ) neobsahuje žádné negace a je tedy triviálně splnitelná. Budeme používat výrokovou formuli B, která se bude postupně vyvíjet. Na začátku položíme B = e(φ). Formule B je předložena SAT řešiči k vyřešení. 5 Rozhodovací procedury a verifikace, 10. přednáška

Integrace SAT řešiče a DECIDE T (2) Přepokládejme, že SAT řešič vrátil splňující ohodnocení α formule B (tedy výrokové kostry), kde: α := { e(x = y) True, e(y = z) True, e(x z) True, e(x = z) False } Rozhodovací procedura DECIDE T bude nyní rozhodovat, zda je konjunkce literálů, která odpovídá ohodnocení výrokových kódů, splnitelná. Množinu literálů, jež odpovídá ohodnocení α bude označována jako Th(α): Literál l je zařazen do Th(α), jestliže α(e(l)) = True. Literál l je zařazen do Th(α), jestliže α(e(l)) = False. Th^(α) bude značit konjunkci literálů v Th(α); tedy Th^(α) = lth(α) l. Konkrétně: Th^(α) = (x = y) (y = z) (x z) (x = z) 6 Rozhodovací procedury a verifikace, 10. přednáška

Integrace SAT řešiče a DECIDE T (3) Rozhodovací procedura DECIDE T detekuje, že Th^(α) = (x = y) (y = z) (x z) (x = z) není splnitelná. Th^(α) je tím pádem validní. K formuli B je přidána (konjunkcí) výroková kostra e(th^(α)), kde: e(th^(α)) := (e(x = y) e(y = z) e(x z) e(x = z)). Tato formule (blokující klauzule či lemma) zakazuje ohodnocení α, to znamená, že případné nové splňující ohodnocení B musí být různé od α. Obecně lemma označujeme jako t. Uvedená volba blokující formule není nutně nejlepší vzhledem k urychlení prohledávání. SAT řešiči předložíme k vyřešení formuli B po modifikaci: α := { e(x = y) True, e(y = z) True, e(x z) False, e(x = z) True } Tedy Th^(α ) = (x = y) (y = z) (x z) (x = z). 7 Rozhodovací procedury a verifikace, 10. přednáška

Integrace SAT řešiče a DECIDE T (4) Nyní je vidět, jak vypadá integrace SAT řešiče a rozhodovací procedury pro teorii T DECIDE T. SAT řešič α e(t) Th^(α) DECIDE T Procedura DECIDE T detekuje, že formule: Th^(α ) = (x = y) (y = z) (x z) (x = z) je splnitelná. Ohodnocení, které splňuje Th^(α ) rovněž splňuje původní formuli s NNF výrokovou strukturou: φ = (x = y) ((y = z x z) (x = z)). Uvedený proces lze několika směry vylepšit: Není třeba čekat na úplné ohodnocení formule B. Když předložíme proceduře DECIDE T formuli Th^(β), kde β je částečné ohodnocení, a DECIDE T odpoví, že Th^(β) je nesplnitelná. Potom je lemma t silnější, neboť blokuje všechna ohodnocení, která rozšiřují β. t 8 Rozhodovací procedury a verifikace, 10. přednáška

Integrace SAT řešiče a DECIDE T (5) Pokračování vylepšení: Význam může mít i situace, když DECIDE T odpoví, že Th^(β) je splnitelná pro částečné ohodnocení β. V takovém případě může DECIDE T odvodit nové implikace. Situaci ilustrujeme na příkladu: β = { e(x = y) True, e(y = z) True } Rozhodovací procedura DECIDE T obdrží formuli: Th^(β) = (x = y) (y = z) A může (pokud je k tomu uzpůsobená) odvodit, že Th^(β) implikuje formuli (x = z), tuto informaci je možno vrátit zpět do SAT řešiče. Předpokládejme, že DECIDE T bude toto umět. Tedy ohodnocení β (díky zpětně propagované informaci) implikuje e(x=z)true a e(x z)false. Toto tzv. propagování teorií (theory propagation) lze přidat ke standardní BCP. 9 Rozhodovací procedury a verifikace, 10. přednáška

Líné kódování (1) Nechť φ je Σ-formule ve tvaru NNF: Množina všech literálů formule φ se bude značit jako lit(φ). Zformalizujeme rozhodovací proces demonstrovaný na předchozím příkladě. Následující algoritmus odpoví, zda je vstupní formule φ splnitelná. function LAZY-BASIC(φ): boolean B e(φ) while True do (result,α) SOLVE-SAT(B) if not result then return False else (result,t) DECIDE T (Th^(α)) if result then return True B B e(t) function SOLVE-SAT(B): (boolean,assignment) Rozhodne výrokovou formuli, vrátí indikátor splnitelnosti, případně splňující ohodnocení. φ je nesplnitelná φ je splnitelná function DECIDE T (ψ): (boolean,formula) Rozhodne konjunktivní Σ- formuli ψ v teorii T, vrátí indikátor splnitelnosti, případně lemma. 10 Rozhodovací procedury a verifikace, 10. přednáška

Líné kódování (2) Na formuli t, kterou vrací DECIDE T, jsou kladeny jisté podmínky: (i) Formule t musí být validní v teorii T (tedy T-validní). Př.: Nechť T je teorie rovnosti, pak formule ((x = y) (y = z)) (x = z) je validní v T. (ii) Formule t může obsahovat pouze atomy, které se vyskytují v původní vstupní formuli φ. (iii) Výrokový kód formule t musí zakazovat ohodnocení α; tedy e(t) není splněna ohodnocením α. Podmínka (i) je postačující pro korektnost algoritmu (odpoví-li, odpoví správně), (ii) a (iii) pak garantují, že algoritmus vždy skončí (podmínka (iii) zaručuje, že se žádné ohodnocení nebude opakovat). 11 Rozhodovací procedury a verifikace, 10. přednáška

Integrace líného kódování a DPLL (1) Inkrementální splnitelnost (incremental satisfiability): Nechť B i označuje formuli B v i-té iteraci funkce LAZY-BASIC. Platí, že podmínka reprezentovaná formulí B i+1 je silnější než B i pro každé i=1,2,... Každou naučenou klauzuli, kterou SAT řešič odvodil při řešení B i pro i{1,2,...}, lze použít při řešení B j pro j > i. Jedná se o speciální případ inkrementální splnitelnosti - klauzule jsou pouze přidávany (obecně se mohou klauzule i odebírat, pak je otázka, které naučené klauzule mohou být znovu použity). Volání SOLVE-SAT ve funkci LAZY-BASIC lze nahradit voláním inkrementálního SAT řešiče zvýšení efektivity. Lepší variantou je integrovat rozhodovací proceduru pro teorii T (tedy funkci DECIDE T ) přímo do procedury DPLL (na vstupu je opět Σ-formule φ ve tvaru NNF). 12 Rozhodovací procedury a verifikace, 10. přednáška

Integrace líného kódování a DPLL (2) function LAZY-DPLL(φ): boolean B CNF(e(φ)) if BCP(B,α)=NULL then return False while True do (x,v) SELECT(φ,α) if (x,v)=null then (result,t) DECIDE T (Th^(α)) if result then return True B B e(t) while not result where (result,α) BCP(B,α) do (level,φ) ANALYZE-CONFLICT(B,α) if level < 0 then return False else BACK-TRACK(B,level) else α α {α(x)=v} while not result where (result,α) BCP(B,α) do (level,φ) ANALYZE-CONFLICT(B,α) if level < 0 then return False else BACK-TRACK(B,level) 13 Rozhodovací procedury a verifikace, 10. přednáška φ je nesplnitelná φ je splnitelná φ je nesplnitelná φ je nesplnitelná function CNF(B): formula Převede zadanou formuli na tvar CNF. procedure BACK-TRACK (B, level) Vrátí se na zadanou úroveň rozhodování, zruší pozdější rozhodnutí. function SELECT (B,α): (variable, boolean) Vybere neohodnocenou proměnnou vzhledem k α a její ohodnocení; vrací NULL, když všechny proměnné ohodnoceny

Integrace líného kódování a DPLL (3) Algoritmus je možné dále vylepšit, uvažujme formuli φ, která obsahuje celočíselnou proměnnou x 1 a literály x 1 10 a x 1 <0 (mimo jiné). Předpokládejme, že bylo vybráno ohodnocení e(x 1 10) True a e(x 1 <0) True. Rozhodovací procedura DECIDE T pro T by ihned detekovala nesplnitelnost pro konjunkci těchto dvou literálů. Ovšem DECIDE T je zavolána až v okamžiku, kdy ohodnocení výrokových proměnných je úplné. Tedy ohodnocování následující po ohodnocení e(x 1 10) True a e(x 1 <0) True představuje zbytečnou práci. Rozhodovací proceduru DECIDE T by bylo vhodné volat už pro částečná ohodnocení výrokových kódů: Částečná ohodnocení, která nelze rozšířit na úplná splňující, mohou být včas zakázána. Implikovaná ohodnocení mohou být vrácena zpět SAT řešiči. Př.: Jakmile e(x 1 10) True, může DECIDE T odvodit, že e(x 1 <0) musí být False. 14 Rozhodovací procedury a verifikace, 10. přednáška

Pokročilejší integrace s DPLL (1) Na vstupu je opět Σ-formule φ ve tvaru NNF, algoritmus odpoví, zda je φ splnitelná function DPLL T (φ): boolean B CNF(e(φ)) if BCP(B,α)=NULL then return False while True do (x,v) SELECT(φ,α) if (x,v)=null then return True α α {α(x)=v} do while not result where (result,α) BCP(B,α) do (level,φ) ANALYZE-CONFLICT(B,α) if level < 0 then return False else BACK-TRACK(B,level) (ignoredresult,t) DECIDE T (Th^(α)) B B e(t) while t True 15 Rozhodovací procedury a verifikace, 10. přednáška φ je nesplnitelná Zde dojde k propagaci teorie T do SAT řešiče. φ je splnitelná, α je úplné ohodnocení. φ je nesplnitelná Na formuli t se kladou další podmínky, aby byla zaručena konečnost algoritmu.

Pokročilejší integrace s DPLL (2) Podmínky, které musí splňovat odvozená formule t: Formule t musí být implikována φ a musí se omezovat na atomy vyskytující se v φ. Jestliže Th^(α) je nesplnitelná, potom e(t) musí zakazovat ohodnocení α. Jestliže Th^(α) je splnitelná, potom je potřeba splnit jednu ze dvou následujících podmínek, aby byla zajištěna konečnost algoritmu: (i) e(t) je vynucující klauzule (konfliktní klauzule taková, že obsahuje právě jeden literál z aktuální rozhodovací úrovně), po přidání e(t) k B je v rámci volání BCP ohodnocen kód nějakého literálu. (ii) Když DECIDE T nedokáže najít formuli t, že e(t) je vynucující klauzule, pak t i e(t) jsou ekvivalentní hodnotě True. Pokud jsou všechny výrokové proměnné ohodnocené a Th^(α) je splnitelná, potom nastane případ (ii). 16 Rozhodovací procedury a verifikace, 10. přednáška

Pokročilejší integrace s DPLL (3) Uvažujme příklad, kdy vstupní formule φ obsahuje dva literály: x 1 10 a x 1 < 0 pro celočíselnou proměnnou x 1. Máme tedy dva výrokové kódy e(x 1 10) a e(x 1 < 0). Po ohodnocení α = {e(x 1 < 0) True}, procedura DECIDE T detekuje, že (x 1 10) je implikovaná, tedy: t = (x 1 10) (x 1 < 0) je T-validní formule. Odpovídající vynucující klauzule vzhledem k ohodnocení α tedy je: e(t) = e(x 1 10) e(x 1 < 0). Po přidání e(t) k formuli B dojde k okamžitému odvození e(x 1 < 0) (a možná k dalším odvozením). Poznámka: Používají se dvě varianty procedury DECIDE T, jedna varianta v rámci algoritmů LAZY-BASIC a LAZY-DPLL generuje blokující klauzuli, druhá varianta v rámci DPLL T, která generuje blokující klauzule, které jsou zároveň vynucující. 17 Rozhodovací procedury a verifikace, 10. přednáška