Proceduri de decizie bazate pe SAT
100 likes | 235 Vues
Proceduri de decizie bazate pe SAT. SAT solvere SMT solvere Aplicatii. Proceduri de decizie. programe Booleene satisfiabilitatea formulelor propozitionale programe aritmetice satisfiabilitatea formulelor propozitionale modulo teoria aritmeticii lineare
Proceduri de decizie bazate pe SAT
E N D
Presentation Transcript
Proceduri de decizie bazate pe SAT • SAT solvere • SMT solvere • Aplicatii
Proceduri de decizie • programe Booleene • satisfiabilitatea formulelor propozitionale • programe aritmetice • satisfiabilitatea formulelor propozitionale modulo teoria aritmeticii lineare • programe pentru analiza managementului memoriei • satisfiabilitatea formulelor propozitionale modulo teoria aritmeticii lineare + tablouri (arrays) • …
SAT • prima problema NP-completa (Cook 1972) • algoritmul Davis-Putnam (1960) • bazat pe rezolutie • poate utiliza spatiu de memorie exponential • algoritm Davis-Putnam Logemann-Loveland DPLL (1962) • bazat pe cautare • constituie baza solverelor moderne • “Conflict-driven learning and non-chronological backtracking” (1996) • revenirea in forta a rezolutiei! • SAT-solvere de succes: • GRASP, SATO, Chaff, ZChaff, BerkMin, …
Satisfiabilitate modulo teorii (SMT) • SMT-solvere Alt-Ergo, Ario, Barcelogic, Beaver, Boolector, CVC, CVC Lite, CVC3, DPT (Intel), ExtSAT, Harvey, HTP, ICS (SRI), Jat, MathSAT, OpenSMT, Sateen, Simplify, Spear, STeP, STP, SVC, Sword, TSAT, UCLID, Yices (SRI), Zap, Zapato, Z3 (Microsoft)
Algoritmul Davis-Putnam 1/3 Data o multime de clauze C, se considera regulile: 1: Daca exista o clauza (c l l) C, se inlocuieste cu (c l) 2: Daca exista o clauza (c b b) C, se elimina din C 3a: Daca b nu apare in nicio clauza din C, se elimina din C orice clauza care contine b 3b: Daca b nu apare in nicio clauza din C, se elimina din C orice clauza care contine b
Algoritmul Davis-Putnam 2/3 procedure Davis-Putnam SatureazaCaplicandregulile 1, 2, 3a, si 3b while (C nonempty) { Alege o variabila b care apareintr-o clauza din C C’ = {resolvent(b,c1,c2)|c1,c2 C } SatureazaC’ aplicandregulile 1, 2, 3a, si 3b if (() C’) return ‘nesatisfiabila’ C = C’ } return ‘satisfiabila’ end
Algoritmul Davis-Putnam 2/3 • Corectitudine • regulile 1, 2, 3a, si 3b pastreaza satisfiabilitatea • C’ = b. C • Complexitate • daca n este numarul de clauze din multimea de intrare, atunci numarul de clauze dupa a i-a iteratie este O(n^(2^i))
Procedura DPLL moderna • slide-urile 20-59 din http://research.microsoft.com/en-us/um/people/leonardo/oregon08.pdf
SMT sovere • slide-urile 60-79 din http://research.microsoft.com/en-us/um/people/leonardo/oregon08.pdf
Applications • Extended Static Checking. • Spec#, VCC, HAVOC • ESC/Java • Predicate Abstraction. • SLAM/SDV (device driver verification). • Test-case generation. • Pex, Sage • Bounded Model Checking (BMC) & k-induction. • Symbolic Simulation. • Planning & Scheduling. • Equivalence checking.