Grundläggande logik och modellteori

Relevanta dokument
Grundläggande logik och modellteori (5DV102)

Grundläggande logik och modellteori

Grundläggande logik och modellteori (5DV102)

Satslogik grundläggande definitioner 3. Satslogik. Uppgift 1. Satslogikens syntax (välformade formler) Satslogikens semantik (tolkningar)

Grundläggande logik och modellteori

p /\ q r DD1350 Logik för dataloger Kort repetition Fö 3 Satslogikens semantik

Lektion 8: Konstruktion av semantiska tablåer för PTL-formler

DD1350 Logik för dataloger. Fö 7 Predikatlogikens semantik

7, Diskreta strukturer

Grundläggande logik och modellteori

Semantik och pragmatik

7, Diskreta strukturer

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Grundläggande logik och modellteori

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer Domäner Tolkningar... 3

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion Varför logik? Satslogik... 2

Föreläsning 9: NP-fullständighet

Föreläsning 8: Intro till Komplexitetsteori

Semantik och pragmatik

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet

Föreläsning 9: Turingmaskiner och oavgörbarhet. Turingmaskinen. Den maximalt förenklade modell för beräkning vi kommer använda är turingmaskinen.

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Algoritmer, datastrukturer och komplexitet

Normalisering av meningar inför resolution 3. Steg 1: Eliminera alla och. Steg 2: Flytta alla negationer framför atomära formler

Föreläsning 8+9: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Kap. 7 Logik och boolesk algebra

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Föreläsning 5: Grafer Del 1

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

DD1350 Logik för dataloger

Logik och bevisteknik lite extra teori

Formell logik Kapitel 3 och 4. Robin Stenwall Lunds universitet

Algoritmer, datastrukturer och komplexitet

Semantik och pragmatik (Serie 3)

Vad är det? Översikt. Innehåll. Vi behöver modeller!!! Kontinuerlig/diskret. Varför modeller??? Exempel. Statiska system

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?

Logik och modaliteter

Algoritmer, datastrukturer och komplexitet

Datastrukturer i kursen. Föreläsning 8 Innehåll. Träd rekursiv definition. Träd

Logik I. Åsa Hirvonen Helsingfors universitet. Våren 2013

MÖNSTER OCH TALFÖLJDER

Logik och kontrollstrukturer

Inlämningsuppgiften. Föreläsning 9 Innehåll. Träd. Datastrukturer i kursen

MATEMATIKENS SPRÅK. Avsnitt 1

Föreläsning 9 Innehåll

Föreläsning 7: Syntaxanalys

Grundläggande logik och modellteori

TATM79: Föreläsning 1 Notation, ekvationer, polynom och summor

Semantik och pragmatik (Serie 4)

Algoritmer, datastrukturer och komplexitet

Om semantisk följd och bevis

Föreläsning 4 Datastrukturer (DAT037)

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

Föreläsning Datastrukturer (DAT037)

Symbolisk data. quote. (define a 1) (define b 2) (jacek johan david) (list a b)

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar

Algoritmer, datastrukturer och komplexitet

Logik. Dr. Johan Hagelbäck.

Komplexitetsklasser och repetition

Viktiga frågor att ställa när ett argument ska analyseras och sedan värderas:

Digital- och datorteknik

Introduktion till predikatlogik. Jörgen Sjögren

Föreläsning Datastrukturer (DAT036)

TATM79: Föreläsning 1 Notation, ekvationer, polynom och olikheter

Programkonstruktion och Datastrukturer

FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS

Algoritmer, datastrukturer och komplexitet

FTEA12:2 Filosofisk Metod. Grundläggande argumentationsanalys II

FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS

Robin Stenwall Lunds universitet

Varför är logik viktig för datavetare?

Övningshäfte 1: Logik och matematikens språk

Abstrakta datatyper. Primitiva vektorer. Deklarera en vektor

Formell logik Kapitel 7 och 8. Robin Stenwall Lunds universitet

Optimala koder. Övre gräns för optimala koder. Gränser. Övre gräns för optimala koder, forts.

Optimala koder. Det existerar förstås flera koder som har samma kodordsmedellängd. Enklaste fallet är att bara byta 0:or mot 1:or.

Lite om bevis i matematiken

Filosofisk logik Kapitel 15. Robin Stenwall Lunds universitet

Robin Stenwall Lunds universitet

Uppgifter i TDDC75: Diskreta strukturer Kapitel 8 Ordning och oändlighet

KOKBOKEN 1. Håkan Strömberg KTH STH

Klassdeklaration. Metoddeklaration. Parameteröverföring

Programmeringsteknik med C och Matlab

Föreläsning 6: Induktion

Kap.6 Grafer. Egenskaper: Handskakningslemmat och Eulers formel Sats om eulerkrets/väg Isomorfi och representation av grafer Graffärgning

MA2047 Algebra och diskret matematik

Kompletteringsmaterial. K2 Något om modeller, kompakthetssatsen

2 Matematisk grammatik

Robin Stenwall Lunds universitet

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt, lära oss

Om modeller och teorier

FUZZY LOGIC. Christopher Palm chrpa087

Hur implementera algoritmerna på maskinnivå - datorns byggstenar

729G11 Artificiell Intelligens Marcus Johansson Marjo581. Fuzzy logic. Marcus Johansson Marjo581

Grundläggande datalogi - Övning 9

Transkript:

Grundläggande logik och modellteori Kapitel 6: Binära beslutsdiagram (BDD) Henrik Björklund Umeå universitet 22. september, 2014

Binära beslutsdiagram Binära beslutsdiagram (Binary decision diagrams, BDDs) Normalformen If-then-else Reducerade och ordnade BDD:er Användningsområden

Partiella tilldelningar I den här föreläsningen kommer vi att använda substitutioner. Låt A vara en välformad formel i satslogiken (P, C). Då är A{T /p} formeln som resulterar när atomen p P ersätts med. T.ex., med så och A = (p q) (p r) A{T /p} = ( q) ( r) q A{F /q, F /r} = (p ) (p )

Logiska funktioner Varje välformad satslogisk formel A över atomerna {p 1,..., p k } kan ses som en logisk funktion f A från {F, T } k till {F, T }. Funktionen f A tilldelar den Boolska vektorn b 1,..., b k {F, T } k sanningsvärdet f (b 1,..., b k ) = A {b 1 /p 1,..., b k /p k }. Exempel: Om A = (p q) r blir f A (T, F, T ) = A {T /p, F/q, T /r} = (T F) T = T, och f A (F, T, F ) = A {F /p, T /q, F /r} = (F T ) F = F.

Binära beslutsdiagram Binära beslutsdiagram (eng. binary decision diagrams, BDD) är en användbar datatyp för att representera logiska formler. En BDD D representerar en formel A med atomerna p 1,..., p k som en riktad acyklisk graf (DAG). Noderna i D delas upp i terminaler som saknar utgående kanter och är märkta med sanningsvärdena F och T, och icke-terminaler som har utgående kanter och är märkta med p 1,..., p k. Ingen atom får förekomma mer än en gång på någon stig från roten till en terminal. Varje icke-terminal v har exakt en hög (heldragen) och en låg (streckad) utgående kant. De motsvarar resultatet av att tilldela atomen som märker v sanningsvärdet T respektive F.

Binära beslutsdiagram Formeln A = (p q) r kan representeras av det binära beslutsträdet p q q r r r r T T F T F T T T Ett beslutsträd är ett trivialt beslutsdiagram

Binära beslutsdiagram Genom att slå ihop identiska delträd får vi en mer kompakt BDD för A. p q q r r T F

Normalformen if-then-else Låt A B; C vara if-then-else operatorn vars semantik är A B; C = (A B) ( A C). Formeln A B; C är alltså sann om både A och B är sanna, eller om A är falsk och C sann. Delformeln A kallas här för ett testuttryck. Alla formler kan skrivas om till att bara innehålla operatorerna if-then-else, T, och F. Detta kan dessutom göras så att varje symbol är ett testuttryck om och endast om den är en atom. Den här normalformen kallas if-then-else normalformen (INF). Exempel: Formeln p kan skrivas som p F; T, medan formeln p q blir p (q T ; F); (q F; T ). Kontrollera gärna själv att sanningstabellerna stämmer överens.

Shannons expansion Låt A vara en formell som innehåller atomen p. Följande ekvivalens kallas för Shannons expansion av A med avseende på p. A p A {T /p}; A {F /p}. Genom att använda Shannons expansion kan vi skriva om en godtycklig formel A på INF: Om A saknar atomer så är formeln antingen ekvivalent med F eller T, vilka båda är formler på INF. Annars väljer vi en atomer p som förekommer i A och skapar Shannon-expansionen p A {T /p}; A {F/p}. Eftersom både A {T /p} och A {F/p} innehåller en atom mindre än A så kan vi rekursivt skriva om dessa till INF. Låt oss kalla resultaten för A T och A F. INF formeln för A blir då p A T ; A F.

If-then-else normalform Sats: För varje satslogisk formel finns en ekvivalent formel på INF. Genom att skriva om en formel A till INF och rita den resulterande formeln som en graf kan vi hitta ett beslutsträd för A. Om vi sen identifierar alla terminaler märkta med F och alla terminaler märkta med T har vi sen ett enkelt BDD för A.

Ordnade BBD:er En BDD är ordnad om det finns någon linjär ordning p 1 < p 2 <... < p k av atomerna i D som respekteras av alla stigar genom D. I en ordnad BDD finns det därmed inte två atomer p 1 och p 2 och två stigar π 1 och π 2 så att p 1 förekommer före p 2 på stig π 1, men p 2 förekommer före p 1 på stig π 2. Om vi väljer en linjär ordning på atomerna innan vi börjar omskrivningen till INF och sen följer den konsekvent i alla rekursiva anrop, då blir resultatet en ordnad BDD.

Reducerade BBD:er En BDD D är reducerad om (i) det inte finns två olika noder i D som är märkta med samma atom, vars låga kant går till samma nod, och vars höga kant går till samma nod, och (ii) det inte finns någon nod vars höga och låga kant går till samma nod. I en reducerad BDD är därmed följande strukturer förbjudna: p p p

Egenskaper hos ROBDD:er En ROBDD för A kan skapas genom att göra en Shannon-expansion för att få ett beslutsträd, identifiera alla noder markerade med T, identifera alla noder markerade med F, och så länge vilkor (i) och (ii) på föregående sida inte är uppfyllda, slå ihop noder som bryter mot (i) och ta bort noder som bryter mot (ii). Lemma: För varje logisk funktion f : {F, T } k {F, T } finns det exakt en ROBDD med atomordingen p 1 < p 2 <... < p k som representerar f. Lemmat gäller i synnerhet för den konstanta funktionen T, nämligen en graf som bara består av noden T. Givet en ROBDD för en formel A kan vi därför testa i konstant tid om formeln är en tautologi samt om den är satisfierbar (hur?).

Ordningen spelar roll Två BDD:er för formeln (p 1 q 1 ) (p 2 q 2 ), den vänstra med ordningen p 1 < p 2 < q 1 < q 2, den högra med ordningen p 1 < q 1 < p 2 < q 2. p 1 p 1 p 2 p 2 q 1 q 1 q 1 q 1 q 1 q 1 p 2 q 2 q 2 q 2 q 2 T F F T

Att applicera operationer Vi vet hur vi kan konstruera en (RO)BDD, men det är inte alltid smidigt. Om vi har två formler, på formen p A 1 ; A 2 och p B 1 ; B 2 där p är en atom och A 1, A 2, B 1, B 2 är godtyckliga formler, är för alla konnektiv. (p A 1 ; A 2 ) (p B 1 ; B 2 ) p (A 1 B 1 ); (A 2 B 2 ) Denna ekvivalens kan vi använda för att bygga upp en ROBDD botten-upp, samt för att effektivt manipulera formler redan konverterade till ROBDDer.

Algoritmer Det finns många poänger med (RO)BDDer: Algoritmer: Applicera logiska operationer till (RO)BDDer Be om en godtycklig modell (linjär tid) Be om alla modeller (lång tid) Beräkna hur många modeller som existerar Att de är unika gör att man kan sortera och söka bland ekvivalensklasser av formler på ett praktiskt sätt Dock finns det inte alltid en liten (RO)BDD (NP-svårighet).

(RO)BDDer i praktiken När BDDer nämns i litteraturen avses nästan alltid ROBDDer. Närhelst man vill representera och arbeta med logiska formler i program är ROBDDer ett bra alternativ. Typiskt exempel är CAD-mjukvara för att syntetisera logiska kretsar från specifikationer, och inom området formell verifikation för visa att algoritmer är korrekta.

Källor och kommentarer Denna oh-serie är baserad på texten H. Reif Andersson. An Introduction to Binary Decision Diagrams, Lecture Notes, IT University of Copenhagen, Copenhagen. 1999.