Logică și structuri discrete. Marius Minea marius/curs/lsd/ 31 octombrie 2016

Σχετικά έγγραφα
Curs 10 Funcţii reale de mai multe variabile reale. Limite şi continuitate.

Elemente de logicǎ matematicǎ

Metode iterative pentru probleme neliniare - contractii

Curs 14 Funcţii implicite. Facultatea de Hidrotehnică Universitatea Tehnică "Gh. Asachi"

Curs 4 Serii de numere reale

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor X) functia f 1

(a) se numeşte derivata parţială a funcţiei f în raport cu variabila x i în punctul a.

Functii definitie, proprietati, grafic, functii elementare A. Definitii, proprietatile functiilor

DISTANŢA DINTRE DOUĂ DREPTE NECOPLANARE

V.7. Condiţii necesare de optimalitate cazul funcţiilor diferenţiabile

5. FUNCŢII IMPLICITE. EXTREME CONDIŢIONATE.

Curs 1 Şiruri de numere reale

Metode de interpolare bazate pe diferenţe divizate

Sisteme diferenţiale liniare de ordinul 1

a n (ζ z 0 ) n. n=1 se numeste partea principala iar seria a n (z z 0 ) n se numeste partea

Asupra unei inegalităţi date la barajul OBMJ 2006

SEMINAR 14. Funcţii de mai multe variabile (continuare) ( = 1 z(x,y) x = 0. x = f. x + f. y = f. = x. = 1 y. y = x ( y = = 0

Seminariile Capitolul X. Integrale Curbilinii: Serii Laurent şi Teorema Reziduurilor

SERII NUMERICE. Definiţia 3.1. Fie (a n ) n n0 (n 0 IN) un şir de numere reale şi (s n ) n n0

Lucrare. Varianta aprilie I 1 Definiţi noţiunile de număr prim şi număr ireductibil. Soluţie. Vezi Curs 6 Definiţiile 1 şi 2. sau p b.

Planul determinat de normală şi un punct Ecuaţia generală Plane paralele Unghi diedru Planul determinat de 3 puncte necoliniare

Curs 2 Şiruri de numere reale

2. Circuite logice 2.4. Decodoare. Multiplexoare. Copyright Paul GASNER

Definiţia generală Cazul 1. Elipsa şi hiperbola Cercul Cazul 2. Parabola Reprezentari parametrice ale conicelor Tangente la conice

riptografie şi Securitate

Functii Breviar teoretic 8 ianuarie ianuarie 2011

Analiza în curent continuu a schemelor electronice Eugenie Posdărăscu - DCE SEM 1 electronica.geniu.ro

5.4. MULTIPLEXOARE A 0 A 1 A 2

Criptosisteme cu cheie publică III

Integrala nedefinită (primitive)

MARCAREA REZISTOARELOR

Examen AG. Student:... Grupa:... ianuarie 2011


Capitolul 4. Integrale improprii Integrale cu limite de integrare infinite

Orice izometrie f : (X, d 1 ) (Y, d 2 ) este un homeomorfism. (Y = f(x)).

3.4. Minimizarea funcţiilor booleene

III. Serii absolut convergente. Serii semiconvergente. ii) semiconvergentă dacă este convergentă iar seria modulelor divergentă.

3.4. Minimizarea funcţiilor booleene

2 Transformări liniare între spaţii finit dimensionale

Subiecte Clasa a VII-a

1.3 Baza a unui spaţiu vectorial. Dimensiune

CIRCUITE LOGICE CU TB

Cursul Măsuri reale. D.Rusu, Teoria măsurii şi integrala Lebesgue 15

BARAJ DE JUNIORI,,Euclid Cipru, 28 mai 2012 (barajul 3)

COLEGIUL NATIONAL CONSTANTIN CARABELLA TARGOVISTE. CONCURSUL JUDETEAN DE MATEMATICA CEZAR IVANESCU Editia a VI-a 26 februarie 2005.

R R, f ( x) = x 7x+ 6. Determinați distanța dintre punctele de. B=, unde x și y sunt numere reale.

Fig Impedanţa condensatoarelor electrolitice SMD cu Al cu electrolit semiuscat în funcţie de frecvenţă [36].

Arhitectura Calculatoarelor. Fizică - Informatică an II. 2. Circuite logice. Copyright Paul GASNER 1

Reprezentare si rationament folosind clauze precise. Capitolul 2

Principiul Inductiei Matematice.

Subiecte Clasa a VIII-a

1. ELEMENTE DE ALGEBRĂ BOOLEANĂ

Criterii de comutativitate a grupurilor

Aplicaţii ale principiului I al termodinamicii la gazul ideal

Seminar 5 Analiza stabilității sistemelor liniare

CONCURS DE ADMITERE, 17 iulie 2017 Proba scrisă la MATEMATICĂ

Laborator 11. Mulţimi Julia. Temă

Capitolul 4 PROPRIETĂŢI TOPOLOGICE ŞI DE NUMĂRARE ALE LUI R. 4.1 Proprietăţi topologice ale lui R Puncte de acumulare

O generalizare a unei probleme de algebră dată la Olimpiada de Matematică, faza judeţeană, 2013

Geometrie computationala 2. Preliminarii geometrice

Conice. Lect. dr. Constantin-Cosmin Todea. U.T. Cluj-Napoca

5.5. REZOLVAREA CIRCUITELOR CU TRANZISTOARE BIPOLARE

Curs 4. I.4 Grafuri. Grafuri orientate

Logică și structuri discrete. Logica predicatelor. Marius Minea 10 noiembrie 2014

Ecuaţia generală Probleme de tangenţă Sfera prin 4 puncte necoplanare. Elipsoidul Hiperboloizi Paraboloizi Conul Cilindrul. 1 Sfera.

Componente şi Circuite Electronice Pasive. Laborator 3. Divizorul de tensiune. Divizorul de curent

2. Circuite logice 2.2. Diagrame Karnaugh. Copyright Paul GASNER 1

Funcţii Ciudate. Beniamin Bogoşel

Concurs MATE-INFO UBB, 1 aprilie 2017 Proba scrisă la MATEMATICĂ


Limbaje de Programare Curs 3 Iteraţia. Reprezentare internă. Operatori pe biţi

Esalonul Redus pe Linii (ERL). Subspatii.

George Georgescu 1, Afrodita Iorgulescu 2 1 Universitatea din Bucureşti, Catedra de Fundamentele Informaticii 2 Academia de Studii Economice, Catedra

EDITURA PARALELA 45 MATEMATICĂ DE EXCELENŢĂ. Clasa a X-a Ediţia a II-a, revizuită. pentru concursuri, olimpiade şi centre de excelenţă

Ecuatii exponentiale. Ecuatia ce contine variabila necunoscuta la exponentul puterii se numeste ecuatie exponentiala. a x = b, (1)

SEMINAR TRANSFORMAREA FOURIER. 1. Probleme

III. Reprezentarea informaţiei în sistemele de calcul

Complexitate și calculabilitate. Recapitulare

Capitolul 2 - HIDROCARBURI 2.5.ARENE

2. Circuite logice 2.5. Sumatoare şi multiplicatoare. Copyright Paul GASNER

Metode de demonstraţie pentru teorema de completitutine - studiu comparativ -

Lectia VI Structura de spatiu an E 3. Dreapta si planul ca subspatii ane

6 n=1. cos 2n. 6 n=1. n=1. este CONV (fiind seria armonică pentru α = 6 > 1), rezultă

Ovidiu Gabriel Avădănei, Florin Mihai Tufescu,

z a + c 0 + c 1 (z a)

CURS 11: ALGEBRĂ Spaţii liniare euclidiene. Produs scalar real. Spaţiu euclidian. Produs scalar complex. Spaţiu unitar. Noţiunea de normă.

Cum folosim cazuri particulare în rezolvarea unor probleme

SEMINARUL 3. Cap. II Serii de numere reale. asociat seriei. (3n 5)(3n 2) + 1. (3n 2)(3n+1) (3n 2) (3n + 1) = a

T R A I A N ( ) Trigonometrie. \ kπ; k. este periodică (perioada principală T * =π ), impară, nemărginită.

Proiectarea filtrelor prin metoda pierderilor de inserţie

Capitolul 2 - HIDROCARBURI 2.4.ALCADIENE

Spatii liniare. Exemple Subspaţiu liniar Acoperire (înfăşurătoare) liniară. Mulţime infinită liniar independentă

VII.2. PROBLEME REZOLVATE

Conice - Câteva proprietǎţi elementare

2.1 Sfera. (EGS) ecuaţie care poartă denumirea de ecuaţia generală asferei. (EGS) reprezintă osferă cu centrul în punctul. 2 + p 2

Capitolul 2 - HIDROCARBURI 2.3.ALCHINE

Problema a II - a (10 puncte) Diferite circuite electrice

f(x) = l 0. Atunci f are local semnul lui l, adică, U 0 V(x 0 ) astfel încât sgnf(x) = sgnl, x U 0 D\{x 0 }. < f(x) < l +

CURS XI XII SINTEZĂ. 1 Algebra vectorială a vectorilor liberi

Curs 2 DIODE. CIRCUITE DR

Transcript:

Logică și structuri discrete Logică propozițională Marius Minea marius@cs.upt.ro http://cs.upt.ro/ marius/curs/lsd/ 31 octombrie 2016

Logica stă la baza informaticii circuite logice: descrise în algebra booleană calculabilitate: ce se poate calcula algoritmic? metode formale: demonstrarea corectitudinii programelor inteligența artificială: cum reprezentăm și deducem cunoștințe? baze de date relaționale etc.

Exemple de specificații RFC822: Standard for ARPA Internet Text Messages (e-mail) If the Reply-To field exists, then the reply should go to the addresses indicated in that field and not to the address(es) indicated in the From field. Contracte pentru funcții în limbaje de programare Bertrand Meyer, Eiffel, 1986; acum în mai toate limbajele incl. pentru C în anul 1, http://c0.typesafety.net int log(int x) //@requires x >= 1; //@ensures \result >= 0; //@ensures (1 << \result) <= x;

Din istoria logicii Aristotel (sec.4 î.e.n.): primul sistem de logică formală (riguroasă) Gottfried Wilhelm Leibniz (1646-1714): logică computațională raționamentele logice pot fi reduse la calcul matematic George Boole (1815-1864): The Laws of Thought: logica modernă, algebră booleană (logică și mulțimi) Gottlob Frege (1848-1925): logica simbolică clasică Begriffsschift: formalizare a logicii ca fundament al matematicii Bertrand Russell (1872-1970): Principia Mathematica (cu A. N. Whitehead) formalizare încercând să elimine paradoxurile anterioare Kurt Gödel (1906-1978): teoremele de incompletitudine (1931): nu există axiomatizare consistentă și completă a aritmeticii

Logică și gândire computațională Computational logic folosirea logicii pentru a efectua sau raționa despre calcule programare logică: descrie declarativ ce, rezultă automat cum logica ne permite să verificăm programele scrise Algorithm = Logic + Control R. Kowalski, 1979 componenta logică: cunoștințele folosite (înțelesul algoritmului) + componenta de control: strategiile de execuție eficiența Computational thinking Computational thinking is the thought processes involved in formulating a problem and expressing its solution(s) in such a way that a computer human or machine can effectively carry out.... computational thinking will be a fundamental skill [...] used by everyone by the middle of the 21st Century. J. Wing, http://socialissues.cs.toronto.edu/?p=279.html

Operatori logici uzuali Știm deja: operatorii logici NU ( ), SAU ( ), ȘI ( ) let bisect an = an mod 400 = 0 an mod 4 = 0 && not (an mod 100 = 0) Tabele de adevăr: p p F T T F negație NU C:! ML: not p q p q F T F F T T T T disjuncție SAU C/ML: p q p q F T F F F T F T conjuncție ȘI C/ML: &&

Logica propozițională Unul din cele mai simple limbaje (limbaj putem exprima ceva) așa cum codificăm numere, etc. în biți putem exprima probleme prin formule în logică Discutăm: Cum definim o formulă logică: forma ei (sintaxa) vs. înțelesul ei (semantica) Cum reprezentăm o formulă? pentru a opera eficient cu ea Cum folosim logica pentru a lucra cu alte noțiuni din informatică? (mulțimi, relații, automate) Ce sunt demonstrațiile și raționamentul logic? cum putem demonstra? se poate demonstra (sau nega) orice?

Propoziții logice O propoziție (logică) e o afirmație care e fie adevărată, fie falsă, dar nu ambele simultan. Sunt sau nu propoziții? 2 + 2 = 5 x + 2 = 4 Toate numerele prime mai mari ca 2 sunt impare. x n + y n = z n nu are soluții întregi nenule pentru niciun n > 2 Dacă x < 2, atunci x 2 < 4 Logica matematică ne permite să raționăm precis. trebuie să definim precis ce e logica propozițională sintaxa (cum arată/e formată) și semantica (ce înseamnă)

Sintaxa logicii propoziționale Un limbaj e definit prin simbolurile sale și prin regulile după care le combinăm corect. Simbolurile logicii propoziționale: propoziții: notate deobicei cu litere p, q, r, etc. operatori (conectori logici): negație, implicație, paranteze ( ) Formulele logicii propoziționale: definite prin inducție structurală, o formulă complexă e construită din formule mai simple: orice propoziție (numită și formulă atomică) ( α) dacă α este o formulă (α, β numite subformule) (α β) dacă α și β sunt formule Omitem parantezele redundante, considerând mai prioritar ca Operatorii cunoscuți pot fi definiți folosind și : α β def = (α β) (ȘI) α β def = α β (SAU) α β def = (α β) (β α) (echivalență)

Sintaxa (concretă și abstractă) vs. semantică Sintaxa: o mulțime de reguli care definește construcțiile unui limbaj aici: formulele logicii propoziționale NU spune ce înseamnă o formulă Semantica: definește înțelesul unei construcții (unui limbaj) Sintaxa concretă precizează modul exact de scriere. O formulă e: prop formulă formulă formulă sau formulă formulă Sintaxa abstractă: interesează structura formulei din subformule: propoziție, negația unei formule, conjuncția/disjuncția a 2 formule În ML, putem definim un tip recursiv urmărind sintaxa abstractă: type boolform = V of string Neg of boolform And of boolform * boolform Or of boolform * boolform Numele de constructori And, Or, etc. sunt alese de noi. Tipul reprezintă structura formulelor, nu simboluri concrete (, ), nici scrierea infix sau prefix, etc.

Implicația logică p q numită și condițional(ă) p: antecedent (sau ipoteză) q: consecvent (sau concluzie) Semnificație: dacă p e adevărat, atunci q e adevărat (if-then) dacă p nu e adevărat, nu știm nimic despre q (poate fi oricum) Deci, p q e fals doar dacă p e adevărat și q e fals (dacă p, atunci q ar trebui să fie adevărat) q p q F T p F T T Tabelul de adevăr: T F T Exprimat cu alți conectori: p q = p q

Implicația în vorbirea curentă și în logică În limbajul natural, dacă... atunci denotă adesea cauzalitate dacă plouă, iau umbrela În logica matematică, NU înseamnă cauzalitate 3 e impar 2 e număr prim implicație adevărată, T T În demonstrații, vom folosi ipoteze relevante (legate de concluzie) Vorbind, spunem adesea dacă gândind dacă și numai dacă (echivalență, o noțiune mai puternică!) Exemplu: Dacă depășesc viteza, iau amendă. ATENȚIE: fals implică orice! (vezi tabelul de adevăr) un raționament cu o verigă falsă poate duce la orice concluzie un paradox (p p) distruge încrederea într-un sistem logic

Despre implicație Fiind dată o implicație p q, definim: reciproca: q p inversa: p q contrapozitiva: q p Contrapozitiva e echivalentă cu formula inițială (directa). Inversa e echivalentă cu reciproca. p q NU e echivalent cu q p (reciproca)

Calculul în logică: funcții de adevăr Formula e o noțiune sintactică. Valoarea de adevăr e o noțiune semantică. Definim riguros cum calculăm valoarea de adevăr a unei formule. O funcție de adevăr v atribuie la orice formulă o valoare de adevăr {T, F} astfel încăt: v(p) e definită { pentru fiecare propoziție atomică p. T dacă v(α) = F v( α) = F dacă v(α) = T { F dacă v(α) = T și v(β) = F v(α β) = T în caz contrar Exemplu: fie v(a) = T, v(b) = F, v(c) = T putem calcula v pentru orice formulă cu propoziții din {a, b, c} v((a b) c): avem v(a b) = F pentru că v(a) = T și v(b) = F (cazul 1) și atunci v((a b) c) = T (cazul 2: v(a b) = F)

Interpretări ale unei formule O interpretare a unei formule = o evaluare pentru propozițiile ei O intrepretare satisface o formulă dacă o evaluează la T. Spunem că interpretarea e un model pentru formula respectivă. Exemplu: pentru formula a ( b c) ( a c) interpretarea v(a) = T, v(b) = F, v(c) = T o satisface interpretarea v(a) = T, v(b) = T, v(c) = T nu o satisface. O formulă poate fi: tautologie (validă): adevărată în toate interpretările realizabilă (en. satisfiable): adevărată în cel puțin o interpretare contradicție (nerealizabilă): nu e adevărată în nicio interpretare contingență: adevărată în unele interpretări, falsă în altele (nici tautologie, nici contradicție)

Tabela de adevăr Tabela de adevăr prezintă valoarea de adevăr a unei formule în toate interpretările posibile 2 n interpretări dacă formula are n propoziții a b c a (b c) F F F T F F T T F T F T F T T T T F F T T F T T T T F F T T T T a b c (a b) c F F F F F F T T F T F F F T T T T F F T T F T T T T F F T T T T Două formule sunt echivalente dacă au același tabel de adevăr Două formula φ și ψ sunt echivalente dacă φ ψ e o tautologie

Exemple de tautologii a a a a (a b) a b (a b) a b (a b) ( a c) (a b) ( a c) a (b c) (a b) c (p q) p q (p q) q p p q p (p q) q (p q) p q (p q) (q r) (p r) regulile lui de Morgan

Algebra Booleană Pe mulțimi,, și complementul formează o algebră booleană. Tot o algebră booleană formează în logică și, și : Comutativitate: A B = B A A B = B A Asociativitate: (A B) C = A (B C) și (A B) C = A (B C) Distributivitate: A (B C) = (A B) (A C) și A (B C) = (A B) (A C) Identitate: există două valori (aici F și T) astfel ca: A F = A A T = A Complement: A A = T A A = F Alte proprietăți (pot fi deduse din cele de mai sus): Idempotență: A A = A A A = A Absorbție: A (A B) = A A (A B) = A A (A B) = A B (din distributivitate și complement)

Reprezentarea formulelor boolene E bine ca o reprezentare să fie: canonică (un obiect să fie reprezentat într-un singur fel) avem egalitate dacă și numai dacă au aceeași reprezentare simplă și compactă (ușor de implementat / stocat) ușor de prelucrat (algoritmi simpli / eficienți) O astfel de reprezentare: diagrame de decizie binare (Bryant, 1986)

Descompunerea după o variabilă Fixând valoarea unei variabile într-o formulă, aceasta se simplifică: Fie f = (a b) (a c) ( a b c). f a=t = T T ( b c) = b c f a=f = b c T = b c Pentru orice formulă, putem scrie f = a f a=t a f a=f =descompunerea Shannon, exprimă f în funcție de valoarea lui a. În program (ML), am scrie let f = if a then not b c else b && not c Continuând pentru cele două subformule, obținem în final un arbore de decizie: dând valori la variabile (a =T, b =F, c =T ) și urmând ramurile respective, frunza la care ajungem (T sau F ) dă valoarea funcției E o reprezentare echivalentă mai compactă decât tabelul de adevăr, ceea ce e util în practică Simplificând arborele de decizie obținem o diagramă de decizie (graf)

Arbori de decizie binari x 1 x 2 x 2 x 3 x 3 x 3 x 3 0 0 0 1 0 1 0 1 f (x 1, x 2, x 3 ) = ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) (x 1 x 2 x 3 ) de ex. f (T, F, T ) = T, f (F, T, F ) = F, etc. noduri terminale: valoarea funcției (0 sau 1, adică F sau T) noduri neterminale: variabile x i (de care depinde funcția) ramuri: low(nod) / high(nod) : atribuire F/T a variabilei din nod Fixând ordinea variabilelor, arborele e unic (canonic), dar ineficient: 2 n combinații posibile, la fel ca tabela de adevăr

Reducerea nr. 1: Comasarea nodurilor terminale păstrăm o singură copie pentru nodurile 0 și 1 x 1 x 2 x 2 x 3 x 3 x 3 x 3 0 0 0 1 0 1 0 1 x 1 x 2 x 2 x 3 x 3 x 3 x 3 0 1

Reducerea nr. 2: Comasarea nodurilor izomorfe Dacă low(n 1 ) = low(n 2 ) și high(n 1 ) = high(n 2 ), comasăm n 1 și n 2 (dacă nodurile au același rezultat pe ramura fals, și același rezultat pe ramura adevărat, ele se comportă la fel și le comasăm) x 1 x 2 x 2 x 1 x 2 x 2 x 3 x 3 x 3 x 3 x 3 x 3 0 1 0 1

Reducerea nr. 3: Eliminarea testelor inutile Dacă un nod dă același rezultat pe ramurile fals și adevărat, nodul poate fi eliminat x 1 x 1 x 2 x 2 x 2 x 3 x 3 x 3 0 1 0 1

De la arbore la diagramă de decizie binară x 1 x 1 x 2 x 2 x 2 x 3 x 3 x 3 x 3 0 0 0 1 0 1 0 1 x 3 0 1 arbore de decizie binar diagramă de decizie binară

Diagrame de decizie binare Rezultatul obținut: binary decision diagram (BDD) (reprezentare introdusă de R. Bryant în 1986) Putem s-o construim recursiv, descompunând după o variabilă: x 1 f = x 1 f x1 =T x 1 f x1 =F f x1 =F f x1 =T construind f x1 =T și f x1 =F apoi comasând eventuale noduri comune între cele două părți A devenit standard în industria circuitelor integrate digitale toate companiile și programele de proiectare o folosesc Pentru a verifica egalitatea a două funcții se construiesc BDD-uri pentru cele două funcții dacă funcțiile sunt egale, se obține același obiect BDD se verifică direct și eficient egalitatea funcțiilor

Construim mai simplu o BDD pentru o funcție f (x 1, x 2, x 3 ) = ( x 1 x 2 x 3 ) (x 1 x 2 x 3 ) (x 1 x 2 x 3 ) Alegem o variabilă: x 1. Calculăm f x1 =F și f x1 =T Construim BDD-urile pentru cele două funcții (direct, dacă sunt simple, altfel continuăm recursiv, alegând următoarea variabilă) x 2 x 3 x 3 0 1 0 1 f x1 =F = x 2 x 3 f x1 =T = x 3 x 1 x 2 Adăugăm nodul cu x 1 deasupra. Remarcăm că diagrama cu x 3 e comună și păstrăm o singură copie x 3 0 1

Forma normală conjunctivă (conjunctive normal form) formula = conjuncție de clauze clauză = disjuncție de literali literal = propoziție sau negația ei (a b d) ( a b) ( a c d) ( a b c) Similar: forma normală disjunctivă (disjuncție de conjuncții) Transformarea unei formule în formă normală conjunctivă ducem (repetat) negația înăuntru (regulile lui de Morgan) (A B) = A B (A B) = A B ducem (repetat) disjuncția înăuntru (distributivitate) (A B) C = (A C) (B C) Abordarea naivă poate crește exponențial dimensiunea formulei: (p 1 p 2 p 3 ) (q 1 q 2 q 3 ) = (p 1 (q 1 q 2 q 3 )) (p 2 (q 1 q 2 q 3 )) (p 3 (q 1 q 2 q 3 )) = (p 1 q 1 ) (p 1 q 2 ) (p 1 q 3 ) (p 2 q 1 ) (p 2 q 2 ) (p 2 q 3 ) (p 3 q 1 ) (p 3 q 2 ) (p 3 q 3 )

Transformarea Tseitin Dă o formulă realizabilă dacă și numai dacă cea inițială e realizabilă echirealizabilă (en. equisatisfiable) Dimensiunea formulei rezultante e liniară în cea a formulei inițiale Pentru fiecare operator introducem o nouă propoziție reprezintă subformula calculată de acel operator Scriem (în CNF) că noua propoziție e echivalentă cu subformula (implicație în ambele sensuri) Obținem regulile de transformare pentru cei trei operatori formula p formula rescriere in CNF A ( A p) (p A) (A p) ( A p) A B (A B p) (p A B) ( A B p) (A p) (B p) A B (p A B) (A B p) (A B p) ( A p) ( B p) Rezultă o formulă cu mai multe propoziții nu e echivalentă dar e realizabilă dacă și numai dacă formula inițială e realizabilă deci o putem folosi în verificarea realizabilității

Transformarea Tseitin: exemplu Numerotăm operatorii din formulă: (a 1 b) (c 2 d) pentru simplitate, nu e nevoie să numerotăm negațiile și nici conectorii la nivelul final (...) (...) Introducem propozițiile: p 1 a 1 b, p 2 c 2 d. Scriem relațiile intrare-ieșire pentru fiecare operator în parte și adăugăm formula pentru operatorul care dă rezultatul. Legăm toate acest relații prin conjuncție: ( a b p 1 ) (a p 1 ) ( b p 1 ) p 1 reprezintă a b ( c d p 2 ) (c p 2 ) (d p 2 ) p 2 reprezintă c d (p 1 p 2 ) vrem ca toată formula să fie adevărată Putem transforma direct conjuncții/disjuncții multiple ȘI ( A 1 A 2 A 3 p) (A 1 p) (A 2 p) (A 3 p) ȘAU (A 1 A 2 A 3 p) ( A 1 p) ( A 2 p) ( A 3 p)

Transformarea Tseitin: formula ca circuit logic (a b) (c 1 d) intrarea fiecărei porți: propoziție nouă nu trebuie numerotat sub și nici operatorul final Avem un singur operator de exprimat: (a b) p 1 formula (p 1 c d) ce înseamnă p 1 c d a b p 1 p 1 Scriem fiecare echivalență în CNF, sau direct după regulile dinainte; punem conjuncție între ele (a b) p 1 (nivelul final cu rezultatul) (c d p 1 ) ( c p 1 ) ( d p 1 )

Realizabilitatea unei formule propoziționale (satisfiability) Se dă o formulă în logică propozițională. Există vreo atribuire de valori de adevăr care o face adevărată? = e realizabilă (engl. satisfiable) formula? (a b d) ( a b) ( a c d) ( a b c) Găsiți o atribuire care satisface formula? Formula e în formă normală conjunctivă (conjunctive normal form) = conjuncție de disjuncții de literali (pozitive sau negate) Fiecare conjunct (linie de mai sus) se numește clauză

Cum stabilim dacă o formulă e realizabilă? Reguli de simplificare: R1) Un literal singur într-o clauză are o singură valoare fezabilă: în a ( a b c) ( a b c) a trebuie să fie T în (a b) b ( a b c) b trebuie să fie F R2a) Dacă un literal e T, pot fi șterse clauzele în care apare (ele sunt adevărate, și nu mai influențează formula) R2b) Dacă un literal e F, el poate fi șters din clauzele în care apare (nu ajută în a face clauza adevărată) Exemplele de mai sus se simplifică: a ( a b c) ( a b c) b=f a=t (a b) b ( a b c) a (și de aici a = T, deci formula e realizabilă) (b c) ( b c)

Cum stabilim dacă o formulă e realizabilă? R3) Dacă nu mai sunt clauze, am terminat (și avem o atribuire) Dacă se ajunge la o clauză vidă, formula nu e realizabilă a ( a b) ( b c) ( a b c) a=t b ( b c) ( b c) b=t c c c=t ( c devine clauza vidă nerealizabilă) Dacă nu mai putem face reduceri după aceste reguli? a=t a ( a b c) ( b c) (b c) ( b c)?? R4) Alegem o variabilă și încercăm (despărțim pe cazuri) cu valoarea F cu valoarea T O soluție pentru oricare caz e bună (nu căutăm o soluție anume). Dacă nici un caz nu are soluție, formula nu e realizabilă.