100 likes | 225 Views
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
E N D
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.