1 / 10

Proceduri de decizie bazate pe SAT

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

erek
Download Presentation

Proceduri de decizie bazate pe SAT

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Proceduri de decizie bazate pe SAT • SAT solvere • SMT solvere • Aplicatii

  2. 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) • …

  3. 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, …

  4. 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)

  5. 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

  6. 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

  7. 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))

  8. Procedura DPLL moderna • slide-urile 20-59 din http://research.microsoft.com/en-us/um/people/leonardo/oregon08.pdf

  9. SMT sovere • slide-urile 60-79 din http://research.microsoft.com/en-us/um/people/leonardo/oregon08.pdf

  10. 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.

More Related