Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 3 noiembrie 2014

Documente similare
LOGICA MATEMATICA SI COMPUTATIONALA Sem. I,

ExamView Pro - Untitled.tst

Logică și structuri discrete Logică propozițională Marius Minea marius/curs/lsd/ 27 octombrie 2014

Logică și structuri discrete Logica predicatelor Casandra Holotescu

Paradigme de programare

Logică și structuri discrete Mulțimi Casandra Holotescu

Logică și structuri discrete Limbaje regulate și automate Marius Minea marius/curs/lsd/ 24 noiembrie 2014

Logică și structuri discrete Relații. Funcții parțiale Marius Minea marius/curs/lsd/ 20 octombrie 2014

Prelegerea 4 În această prelegere vom învăţa despre: Algebre booleene; Funcţii booleene; Mintermi şi cuburi n - dimensionale. 4.1 Definirea algebrelor

15. Logică matematică cu aplicații în informatică - MI 3

Probleme date la examenul de logică matematică şi computaţională. Partea a II-a Claudia MUREŞAN Universitatea din Bucureşti Facultatea de Matematică ş

Microsoft Word - Mapa 0.doc

Microsoft Word - Algoritmi genetici.docx

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par

ALGORITMICĂ. Seminar 3: Analiza eficienţei algoritmilor - estimarea timpului de execuţie şi notaţii asimptotice. Problema 1 (L) Să se determine număru

Prelegerea 3 În această prelegere vom învăţa despre: Clase speciale de latici: complementate. modulare, metrice, distributive şi 3.1 Semi-distributivi

ALGORITMII ŞI REPREZENTAREA LOR Noţiunea de algoritm Noţiunea de algoritm este foarte veche. Ea a fost introdusă în secolele VIII-IX de către Abu Ja f

Microsoft PowerPoint - Curs_SDA_9_RO_2019_v2.pptx

Grafuri - Concepte de baza. Tipuri de grafuri. Modalitati de reprezentare

Slide 1

Microsoft Word - cap1p4.doc

Ministerul Educatiei, Cercetarii si Tineretului Grup Scolar Gh. Asachi Galati Proiect pentru obtinerea certificatului de competente profesionale Speci

Limbaje de ordinul I LOGICA DE ORDINUL I Un limbaj L de ordinul I este format din: o mulţime numărabilă V = {v n n N} de variabile; conectorii şi ; pa

Subiectul 1

carteInvataturaEd_2.0_lectia5.pdf

PowerPoint Presentation

Analiză statică Analiza fluxului de date 23 octombrie 2014

Analiză de flux de date 29 octombrie 2012

Microsoft Word - TIC5

Grafuri neorinetate Aplicatii 1 Care este numărul maxim de componente conexe pe care le poate avea un graf neorientat cu 20 noduri şi 12 muchii? a. 6

Facultatea de Matematică Anul II Master, Geometrie Algebrică Mulţimi algebrice ireductibile. Dimensiune 1 Mulţimi ireductibile Propoziţia 1.1. Fie X u

L4. TEOREMELE ALGEBREI BINARE. FUNCȚII LOGICE ELEMENTARE. OPERAȚII LOGICE PE BIT. SINTEZA FUNCȚIILOR LOGICE DIN TABELE DE ADEVĂR 1. Obiective Prin par

Curs 3 Permutari cu repetitie. Combinari. Algoritmi de ordonare si generare

Distanţa euclidiană (indusă de norma euclidiană) (în R k ). Introducem în continuare o altă aplicaţie, de această dată pe produsul cartezian R k XR k,

Diapositive 1

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

1

Microsoft PowerPoint - Curs_SDA_10_RO_2019_v1.pptx

Cursul 8 Funcţii analitice Vom studia acum comportarea şirurilor şi seriilor de funcţii olomorfe, cu scopul de a dezvălui o proprietate esenţială a ac

D.Rusu, Teoria măsurii şi integrala Lebesgue 6 MĂSURA LEBESGUE Cursul 5 Teorema 6.26 Există submulţimi ale lui R care nu sunt măsurabile Lebesgue. Dem

Curs7

Curs 8: Tehnica divizării (I) Algoritmi si structuri de date - Curs 8 1

E_d_Informatica_sp_SN_2014_bar_10_LRO

Microsoft Word - Curs_08.doc

Microsoft Word - _arbori.docx

1. Operatii cu matrici 1 Cerinte: Sa se realizeze functii pentru operatii cu matrici patratice (de dimensiune maxima 10x10). Operatiile cerute sunt: A

Microsoft Word - Mihailesc Dan_Test logica (1).doc

Calcul Numeric

Notiuni de algebra booleana

Consultatii ELa123, 06 ianuarie 2014

Teoreme cu nume 1. Problema (Năstăsescu IX, p 147, propoziţia 5) Formula lui Chasles Pentru orice puncte M, N şi P avem MN + NP = MP.

CAPITOLUL I

Slide 1

Microsoft Word - Curs_07.doc

Modelarea si Simularea Sistemelor de Calcul

CASA CORPULUI DIDACTIC BRAILA PROGRAM DE FORMARE INFORMATICA SI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: TIMOFTI V. AFRODITA COLEGIUL

Retele Petri si Aplicatii

Cursul 12 (plan de curs) Integrale prime 1 Sisteme diferenţiale autonome. Spaţiul fazelor. Fie Ω R n o mulţime deschisă şi f : Ω R n R n o funcţie de

OPERATII DE PRELUCRAREA IMAGINILOR 1

SSC-Impartire

Sistem de supraveghere video inteligent cu localizarea automata a evenimentelor de interes SCOUTER, cod proiect PN-II-IN-DPST , contract nr

Cursul 6 Cadru topologic pentru R n În continuarea precedentei părţi, din cursul 5, dedicată, în întregime, unor aspecte de ordin algebric (relative l

PowerPoint-Präsentation

B

G.I.S. Curs 3

Școala: Clasa a V-a Nr. ore pe săptămână: 4 Profesor: MATEMATICĂ Clasa a V-a Aviz director PLANIFICARE CALENDARISTICĂ ORIENTATIVĂ Nr. crt. Unitatea de

Microsoft Word - Curs_09.doc

DOMENIUL: Matematica

Fâciu N. Maria-Ema CASA CORPULUI DIDACTIC BRĂILA PROGRAM DE FORMARE INFORMATICĂ ȘI TIC PENTRU GIMNAZIU CLASA A V-A SERIA 1 GRUPA 2 CURSANT: Fâciu N. M

Microsoft Word - Planuri_Mate_

Coman Marinela Furnizor program formare acreditat: CCD BRĂILA Denumire program: INFORMATICĂ ŞI TIC PENTRU GIMNAZIU Clasa a V-a Categorie: 1; Tip de co

E_d_Informatica_sp_MI_2015_bar_02_LRO

Probleme proiect TP BITPERM Implementați un algoritm care citește de la intrarea standard două numere naturale și scrie la ieșirea standard da

Tiberiu Trif Analiză matematică 2 Calcul diferențial și integral în R n

I. INTRODUCERE 1. Necesitatea studiului logicii Teodor DIMA În activitatea noastră zilnică, atunci când învăţăm, când încercăm să fundamentăm o părere

Logică computațională O introducere practică pentru studenți la informatică Note de curs Adrian Crăciun 24 ianuarie

Laborator 2: Instrucţiuni Java şi lucru cu şiruri de caractere Întocmit de: Adina Neculai Îndrumător: Asist. Drd. Gabriel Danciu 18 octombrie 2011

Limbaje de Programare Curs 5 – Siruri de caractere

LUCRAREA 8 PROGRAMAREA NELINIARĂ ÎN REZOLVAREA PROBLEMELOR DIN ENERGETICĂ. METODE DE ORDINUL Aspecte generale Programarea neliniară are o foart

Aproximarea functiilor prin metoda celor mai mici patrate

2.1.Tipul tablou unidimensional

TEORIA MĂSURII Liviu C. Florescu Universitatea Al.I.Cuza, Facultatea de Matematică, Bd. Carol I, 11, R Iaşi, ROMANIA, e mail:

Şiruri de numere reale Facultatea de Hidrotehnică Universitatea Tehnică Gheorghe Asachi Iaşi, 2015 Analiză Matematică Lucian Maticiuc 1 / 29

Slide 1

Examenul de bacalaureat 2012

Elemente de aritmetica

Paradigme de programare

Cursul 7 Formula integrală a lui Cauchy Am demonstrat în cursul precedent că, dacă D C un domeniu simplu conex şi f : D C o funcţie olomorfă cu f cont

De la BIT la procesor

Probleme rezolvate informatica: Probleme rezolvate grafuri si a

1. Găsiți k numerele cele mai apropiate într-un şir nesortat Dându-se un şir nesortat și două numere x și k, găsiți k cele mai apropiate valori de x.

MergedFile

Capitole Speciale de Informatică Curs 4: Calculul scorurilor în un sistem complet de extragere a informaţiilor 18 octombrie 2018 Reamintim că în cursu

Poo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java Interfaţa Iterator Interfaţa C

Document2

Slide 1

ALGORITHMICS

Electricitate II

OLM_2009_barem.pdf

Transcriere:

Logică și structuri discrete Logică propozițională Marius Minea marius@cs.upt.ro http://www.cs.upt.ro/ marius/curs/lsd/ 3 noiembrie 2014

Unde aplicăm verificarea realizabilității? probleme de căutare și planificare Cum reprezentăm eficient formulele boolene? diagrame de decizie binare Ce înseamnă o demonstrație logică?

Unde aplicăm logica booleană? Calculatoarele sunt construite din circuite logice realizează aceleași funcții ca în logică (ȘI, SAU, NU) Numerele sunt reprezentate în calculator în baza 2 valori boolene (F sau T, 0 sau 1) Aritmetica pe numere e implementată prin circuite logice let rec add a b = if b = 0 then a else add (a lxor b) ((a land b) lsl 1) Mulțimile pot fi reprezentate prin șiruri de valori boolene pentru fiecare element: face sau nu parte din mulțime? Orice noțiune din matematică sau realitate e reprezentată pe biți

Aplicație: Planificarea = găsirea unei secvențe de acțiuni care duc la o țintă dorită Exemple: deplasările unor roboți inteligenți comportamentul sistemelor autonome (sonde spațiale) rezolvarea de probleme (de tip puzzle, jocuri, etc.) În general: într-un sistem descris prin stări și acțiuni (tranziții), cum găsim o cale de la o stare inițială la o stare țintă (finală)?

Exemplu: ordonarea a 3x3 piese Se poate reface ordinea? Din câte mutări? 2 5 1 3 4 8 6 7 starea jocului e dată de numărul de pe fiecare din cele 9 poziții: un vector de stare v = (p 1, p 2,..., p 9 ), p i [0..8] (0 = liber) fiecare valoare p i poate fi reprezentată boolean (cu 4 biți) sau direct: b ij = piesa j (0..8) e pe poziția i (1..9) cu constrângeri: un singur b ij adevărat pentru fiecare i (un singur număr în fiecare loc) O stare e descrisă printr-o formulă logică peste variabilele de stare (elementele vectorului de stare) Starea inițială din figură: S 0 ( v) = p 1 = 2 p 2 = 0 p 3 = 5 p 4 = 1 p 5 = 3 p 6 = 4 p 7 = 8 p 8 = 6 p 9 = 7

Reprezentarea unei mutări Indexăm stările: dacă v k e starea curentă, v k+1 e cea următoare. O mutare e schimbarea între două piese de pe poziții vecine s și d toate celealte piese rămân la fel: p i k+1 = p ik pt. i s, d mutarea e posibilă doar dacă una din pozițiile s, d e liberă (0) m k (s, d) = (p s k+1 = p dk ) (p d k+1 = p sk ) (p i k+1 = p ik ) (p sk = 0 p dk = 0) i s,d Sunt 12 perechi de poziții vecine: P = {(1, 2), (1, 4),... (8, 9)} 123 456 789 Toate mutările posibile definesc o relație între starea curentă și cea următoare: relația de tranziție a sistemului R( v k, v k+1 ) = (s,d) P m k (s, d) (avem disjuncție pentru că facem (doar) una din mutările posibile)

Reprezentarea unui șir de mutări Prima mutare: R( v 0, v 1 ) = (p 10 = 0 p 20 = 0) p 11 = p 20 p 21 = p 10 p 31 = p 30... p 91 = p 90 (p 10 = 0 p 40 = 0) p 11 = p 40 p 41 = p 10 p 21 = p 20... p 91 = p 90... (p 80 = 0 p 90 = 0) p 91 = p 80 p 81 = p 90 p 31 = p 30... p 71 = p 70 Un lanț de k mutări: R( v 0, v 1 ) R( v 1 v 2 )... R( v k 1, v k ) O tranziție și un șir de tranziții se pot reprezenta ca formule logice Starea finală e tot o formulă peste elementele vectorului de stare v: S f ( v) = p 1 = 1 p 2 = 2... p 7 = 7 p 8 = 8 p 9 = 0 Există o soluție în k pași dacă și numai dacă S 0 ( v 0 ) R( v 0, v 1 ) R( v 1 v 2 )... R( v k 1, v k ) S f ( v k )

Găsirea unui plan Fie S 0 ( v) și S f ( v) formulele ce exprimă stările inițiale și finale A ajunge la S f din S 0 în 1 mutare e realizabilă formula S 0 ( v 0 ) R( v 0, v 1 ) S f ( v 1 ) ( v 0 e o stare inițială și v 1 o stare finală și e o tranziție între ele) A ajunge la S f din S 0 în k mutări e realizabilă formula S 0 ( v 0 ) R( v 0, v 1 )... R( v k 1, v k ) S f ( v k ) Găsim un plan de lungime minimă căutând succesiv soluții pentru formule tot mai complexe Există și alți algoritmi dedicați planificării. Aici am redus problema la o exprimare simplă, fundamentală: determinarea realizabilității unei formule boolene (problema SAT)

Reprezentarea formulelor boolene Forma normală conjunctivă e utilă în determinarea realizabilității dar există formule a căror reprezentare în CNF crește exponențial În general, avem nevoie de o reprezentare ușor manipulabilă compactă pentru majoritatea formulelor tipice O astfel de reprezentare: diagrame de decizie binare (Bryant, 1986)

Arborele de decizie binar 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 ) noduri terminale: valoarea funcției (0 sau 1) 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

Diagrame de decizie binare Rezultatul obținut: binary decision diagram (BDD) (reprezentare introdusă de R. Bryant în 1986) 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

Sintaxă și semantică Pentru logica propozițională, am discutat: Sintaxa: o formulă are forma: propoziție sau ( formulă) sau (formulă formulă) Semantica: calculăm valoarea de adevăr (înțelesul), pornind de la cea a propozițiilor { T dacă v(α) = F v( α) = F dacă v(α) = T { F dacă v(α) = T și v(β) = F v(α β) = T în caz contrar

Deducții logice Deducția ne permite să demonstrăm o formulă în mod sintactic (folosind doar structura ei) E bazată pe o regulă de inferență (de deducție) ϕ 1 ϕ 1 ϕ 2 ϕ 2 modus ponens (din ϕ 1 și ϕ 1 ϕ 2 deducem/inferăm ϕ 2 ) și un set de axiome (formule care pot fi folosite ca premise/ipoteze) A1: α (β α) A2: (α (β γ)) ((α β) (α γ)) A3: ( β α) (α β) în care α, β etc. pot fi înlocuite cu orice formule

Alte reguli de deducție Modus ponens e suficient pentru a formaliza logica propozițională dar sunt și alte reguli de deducție care simplifică demonstrațiile p q q p modus tollens (reducere la absurd) p p q generalizare (introducerea disjuncției) p q p p q p q p q q r p r specializare (simplificare) eliminare (silogism disjunctiv) tranzitivitate (silogism ipotetic)

Deducție Fie H o mulțime de formule. O deducție (demonstrație) din H e un șir de formule A 1, A 2,, A n, astfel ca i 1, n 1. A i este o axiomă, sau 2. A i este o ipoteză (o formulă din H), sau 3. A i rezultă prin modus ponens din A j, A k anterioare (j, k < i) Spunem că A n rezultă din H (e deductibil, e o consecință). Notăm: H A n Exemplu: demonstrăm că ϕ ϕ (1) ϕ ((ϕ ϕ) ϕ)) A1 (2) ϕ ((ϕ ϕ) ϕ)) ((ϕ (ϕ ϕ)) (ϕ ϕ)) A2 (3) (ϕ (ϕ ϕ)) (ϕ ϕ) MP(1,2) (4) ϕ (ϕ ϕ) A1 (5) ϕ ϕ MP(3,4) Verificarea unei demonstrații e un proces simplu, mecanic (cele 3 reguli de mai sus), chiar dacă găsirea demonstrației poate fi dificilă.

Consecința semantică Reamintim: o interpretare e o atribuire de adevăr pentru propozițiile unei formule. O formulă poate fi adevărată sau falsă într-o interpretare. O mulțime de formule H = {ϕ 1,..., ϕ n } implică o formulă ϕ H = ϕ dacă orice interpretare care satisface (formulele din) H satisface ϕ Pentru a stabili consecința semantică trebuie să interpretăm formulele (cu valori/funcții de adevăr) lucrăm cu semantica (înțelesul) formulelor Exemplu: {α β, γ β} = α γ Fie o interpretare v. Cazul 1: v(β) = T. Atunci v(α β) = T și v(γ β) = v(γ). Dacă v(γ) = T, atunci v(α γ) = T, deci afirmația e adevărată. Cazul 2: v(β) = F. La fel, reducem la {α} = α γ (adevărat).

Consistență și completitudine H ϕ : deducție (pur sintactică, din axiome și reguli de inferență) H = ϕ : implicație, consecință semantică (tabele de adevăr) Care e legătura între ele? Consistență: Dacă H e o mulțime de formule, și α este o formulă astfel ca H α, atunci H = α. (Orice teoremă în logica propozițională este o tautologie). Completitudine: Dacă H e o mulțime de formule, și α este o formulă astfel ca H = α, atunci H α. (Orice tautologie este o teoremă). Deci, logica propozițională e consistentă și completă. Ca să demonstrăm o formulă, putem arăta că e validă. Pentru aceasta, verificăm că negația ei nu e realizabilă.

Rezoluția (în calculul propozițional) Rezoluția e o regulă de inferență care produce o nouă clauză din două clauze cu literale complementare (p și p). p α p β rezoluție α β Clauza obtinută = rezolventul celor două clauze în raport cu p Exemplu: rez p (p q r, p s) = q r s Modus ponens poate fi privit ca un caz particular de rezoluție: p false p q false q Rezoluția e o regulă de inferență validă: am văzut că {p α, p β} = α β Corolar: dacă α β e contradicție, la fel și (p α) ( p β). Folosim rezoluția pentru a arăta că o formulă e o contradicție. e o metodă de refutație (respingere a unei afirmații) Putem demonstra o teoremă (tautologie) prin reducere la absurd arătând prin rezoluție că negația ei e o contradicție (nerealizabilă).

Cum folosim rezoluția (în calculul propozițional) Pornim de la o formulă în formă normală conjunctivă (CNF). Adăugăm rezolvenți, încercând să obținem clauza vidă: Se formează clauze mai simple anulând un literal cu negația lui. reducem numărul de propoziții simplificând formula, și păstrând realizabilitatea (dar nu echivalența) Alegem un literal (propoziție) l, formăm și adăugăm toți rezolvenții dacă avem m clauze cu l și n clauze cu l, creăm m n rezolvenți ștergem cele m+n clauze inițiale (doar în logica propozițională!) Dacă vreun rezolvent e clauza vidă, formula e nerealizabilă Dacă nu mai putem crea rezolvenți (literalele au polaritate unică), formula e realizabilă (facem T toate literalele rămase) Problemă: numărul de clauze poate crește exponențial. DPLL: rezoluție doar la clauze unitare + despărțire pe cazuri (formula nu crește, dar poate încerca nr. exponențial de cazuri)

Metoda rezoluției: exemplu 1 (a b d) b negat ( a b) b negat ( a c d) ( a b c) b pozitiv Luăm o propoziție cu ambele polarități (b) și construim rezolvenții rez b (a b d, a b c) = a d a c = T rez b ( a b, a b c) = a a c = a c Adăugăm noii rezolvenți (ignorăm T); eliminăm vechile clauze cu b ( a c d) ( a c) Nu mai putem crea rezolvenți. Nu avem clauza vidă. formula e realizabilă, de exemplu cu a = F. Sau cu c = T. Obs: nici a = F nici c = T nu sunt suficiente în formula inițială, trebuie să mai dăm o valoare și lui b (F)

Metoda rezoluției: exemplu 2 a ( a b) ( b c) ( a b c) Aplicăm rezoluția după c, avem o singură pereche de clauze: rez c ( b c, a b c) = b a b = a b Eliminăm cele două clauze cu c și adăugăm clauza nouă: a ( a b) ( a b) Aplicăm rezoluția după b: rez b ( a b, a b) = a a = a Eliminăm cele două clauze cu b, adăugăm clauza nouă: Aplicăm rezoluția după a: rez a (a, a) = F (clauza vidă) Deci formula inițială e o contradicție (e nerealizabilă). a a