2. Zahlen und Logik Überblick Zahlen Informatik II SS 2006 Logik Kapitel 2: Zahlen und Logik Informationsdarstellung Zahlensysteme Rechnerarithmetik Aussagenlogik und logische Gatter Prädikatenlogik Teil 2: Logik Dr. Michael Ebner Dipl.-Inf. Marco Zibull Lehrstuhl für Telematik Institut für Informatik Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Ziel: Rechnerarithmetik implementieren 2.2-2 Darstellung binärer Größen Bitweise logische Operationen E E=A?B = x"34" ? x"1C" In digitalen Systemen werden Informationen in binärer Form dargestellt. Binäre Größen können von jedem Baustein dargestellt werden, der nur 2 Operationszustände besitzt. Beispiel: Schalter. Zuweisung der Zustände 0 für offen und 1 für geschlossen ermöglicht die Darstellung binärer Werte. Typischerweise werden folgende Spannungen zugewiesen: ? ... beliebige logische Verknüpfung a5 a4 a3 a2 a1 a0 Operand A 1 1 0 1 0 0 Operand A b5 b4 b3 b2 b1 b0 Operand B 0 1 1 1 0 0 Operand B e5 e4 e3 e2 e1 e0 Ergebnis E 1 0 0 0 0 0 Ergebnis E Binäre 1: Eine beliebige Spannung zwischen 2V und 5V Binäre 0: Eine beliebige Spannung zwischen 0V und 0.8V Spannungen zwischen 0.8V und 2V werden nicht genutzt und können zu Beschädigungen führen. Logik Universität Göttingen - Informatik II - SS 2006 2.2-3 Logik Universität Göttingen - Informatik II - SS 2006 2.2-4 2. Zahlen und Logik 2. Zahlen und Logik Boolesche Algebra (1/2) Boolesche Algebra: Definition der Booleschen Algebra Variable, die nur zwei Werte annehmen können. Diese Werte werden mit L - H , wahr - falsch oder 0 - 1 bezeichnet. Boolesche Variable sind logische Variable. Boolesche Operatoren: Die Booleschen Algebra (speziell die Aussagenlogik) ist ein Formalismus zur Beschreibung der Funktion digitaler Komponenten. Binäre oder Boolesche Variable (BV): Boolesche Algebra (2/2) Auf Boolesche Variable können Boolesche Operatoren angewendet werden: NOT, OR, AND,XOR, ... Boolesche Ausdrücke, Boolesche Funktionen: Boolesche Ausdrücke oder Boolesche Funktionen ergeben sich durch Verknüpfung von Boolesche Variable mit Booleschen Operatoren. Die Booleschen Algebra ist eine algebraische Struktur. Sie besteht aus einer Menge M = {e1, e2, …}, den Operatoren ψ und φ, Axiomen und wichtigen Sätzen. Eine spezielle Boolesche Algebra ist die Aussagenlogik. Sie wird charakterisiert durch folgende Eigenschaften: M: {0,1} e: 1 wahr n: 0 falsch ψ: ∧ zweistellige Operation φ: ∨ zweistellige Operation Die Boolesche Algebra wurde von George Boole um 1850 entwickelt Claude Shannon verwendete um 1937 die Boolesche Algebra als erster für den Schaltungsentwurf Logik Universität Göttingen - Informatik II - SS 2006 2.2-5 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Operation Wahrheitstabellen Eingaben Funktion x1,..,xn f(x) Ausgabe y Darstellung der Abhängigkeiten zwischen der Eingabe und Ausgabe Alle möglichen Kombinationen der Eingabe (A,B) werden mit der korrespondierenden Ausgabe (X) angegeben. Beispiel: Eingabe Funktion von n Eingangsvariablen: A B Nur vom gegenwärtigen Wert der Eingänge anhängig, kein "Gedächtnis" y = f(x) = f(xn, ... ,x3,x2,x1), xi ∈ {0,1} Für n Eingangsvariablen gibt es 2n Wertekombinationen. Die Wertekombinationen heißen auch die Belegungen Xj der Eingangsvariablen 2.2-6 Logische Operationen können auf zwei, sinngemäß gleiche Wege dargestellt werden: Boolescher Ausdruck: endlich, aber nicht eindeutig Wahrheitstabelle: endlich und eindeutig Ausgabe ? X 2.2-7 A 0 1 0 1 X 0 0 0 1 Die Ausgabe ist nur 1, wenn beide Eingaben 1 sind. Logik Universität Göttingen - Informatik II - SS 2006 B 0 0 1 1 Logik Universität Göttingen - Informatik II - SS 2006 2.2-8 2. Zahlen und Logik 2. Zahlen und Logik UND-Operator ODER-Operator Name UND (AND) Tabelle b 0 0 1 1 Schriftlich a 0 1 0 1 y 0 0 0 1 y = a ∧ b oder = ab oder =a*b UND wird verwendet, um Bits gezielt auf 0 zu setzen. Dazu hat die Maske an allen Bitpositionen, die übernommen werden sollen, eine 1 und an den Stellen, die rückgesetzt werden sollen, eine 0. Name ODER (OR) Tabelle b 0 0 1 1 x“14“ = x"34" ∧ x"1C" 1 1 0 1 0 0 Operand A 0 1 1 1 0 0 Operand B Schriftlich y 0 1 1 1 y = a ∨ b oder =a+b Gatter & a 0 1 0 1 OR wird verwendet, um Bits gezielt auf 1 zu setzen. Dazu hat die Maske an allen Bitpositionen, die übernommen werden sollen, eine 0 und an den Stellen, die gesetzt werden sollen, eine 1. x“3C“ = x"34“ ∨ x"1C" 1 1 0 1 0 0 Operand A 0 1 1 1 0 0 Operand B 1 1 1 1 0 0 Ergebnis E ≥1 Gatter 0 1 0 1 0 0 Ergebnis E Logik Universität Göttingen - Informatik II - SS 2006 2.2-9 2. Zahlen und Logik NICHT (NOT) Tabelle a 0 1 Gängige logische Operationen: XOR NICHT wird auch als Inverses oder Komplement bezeichnet. y 1 0 Name XOR Tabelle b 0 0 1 1 x“0B“ = ~x"34" Schriftlich Gatter y=a 1 1 0 1 0 0 Operand A 0 0 1 0 1 1 Ergebnis E Schriftlich 1 a 0 1 0 1 y 0 1 1 0 y = a b oder =a⊕b Sprache "C" XOR wird verwendet, um Bits gezielt zu invertieren. Dazu hat die Maske an allen Bitpositionen, die invertiert werden sollen, eine 1 und an allen sonstigen Stellen eine 0. x“28“ = x"34" x"1C" 1 1 0 1 0 0 Operand A 0 1 1 1 0 0 Operand B 1 0 1 0 0 0 Ergebnis E y=a^b Logik Universität Göttingen - Informatik II - SS 2006 2.2-10 2. Zahlen und Logik NICHT-Operator Name Logik Universität Göttingen - Informatik II - SS 2006 2.2-11 Logik Universität Göttingen - Informatik II - SS 2006 2.2-12 2. Zahlen und Logik 2. Zahlen und Logik Gatter (1/2) Gatter (2/2) Funktion Elektrische Realisierung mittels Schalter: Relais, Knipser, Röhren, bipolare Transistoren, Feldeffekt – Transistoren (MOS-FET), etc. Knipser Gatter Knipser Realisierung Funktion Realisierung NOT Q=ā a Gatter MOS-FET MOS-FET _ a a + + L AND A a Q & b a Q b Q B Q a b NAND A & Q B + + OR A a b a b >=1 B Q Q Q a NOR b A 2.2-13 2. Zahlen und Logik a∨0=a a∧0=0 R1 a∨1=1 a∧1=a R2 a∨a=a a∧a=a R3 a∨a=1 a∧a=0 a=a Assoziativgesetz Logik Universität Göttingen - Informatik II - SS 2006 a ∨ (b ∨ c) = (a ∨ b) ∨ c = a∨b ∨c Anwendung der Regeln Vereinfachung von Ausdrücken Beispiel 1: Y = A ∧ B ∧ C ∧ D ∨ A ∧ B ∨ ( B ∨ (A ∧ A) ) R4 = A ∧ B ∧ C ∧ D ∨ A ∧ B ∨ ( B ∨ 0) ) R1 ... =A∧B∧C∧D∨A∧B∨B =A∧B∧C∧D∨B =B R4 R5 a ∧ (b ∧ c) = (a ∧ b) ∧ c = a∧b ∧c R6 Kommutativgesetz a∨b=b∨a a∧b=b∧a R7 Distributivgesetz a ∨ (b ∧ c) = (a ∨ b) ∧ (a ∨ c) a ∧ (b ∨ c) = (a ∧ b) ∨ (a ∧ c) R8 Beispiel 2: R9 R5: De Morgan: Absorptionsgesetz De Morgan'sches Gesetz 2.2-14 2. Zahlen und Logik 10 Regeln für logische Operationen Boolesche Variablen a, b Elemente aus {0,1} Q + Logik Universität Göttingen - Informatik II - SS 2006 >=1 B a ∨ (a ∧ b) = a (a ∨ b) = a ∧ b Universität Göttingen - Informatik II - SS 2006 a ∧ (a ∨ b) = a (a ∧ b) = a ∨ b Y=(A∧B∧C) +(D∧E∧F) Y = ( A ∧ B ∧ C ) + (D ∧ E ∧ F ) Y = ( A ∧ B ∧ C ) ∧ (D ∧ E ∧ F ) R10 Logik 2.2-15 Logik Universität Göttingen - Informatik II - SS 2006 2.2-16 2. Zahlen und Logik 2. Zahlen und Logik Implikationen aus dem De Morgan'schen Gesetz (a ∨ b) = a ∧ b A (a ∨ b) Q (a ∧ b) = a ∨ b NOR 1 B A & Q 1 B 1 A & (a ∧ b) Q B Alternative NOR Darstellung a∧b A NAND B A a∧b >=1 >=1 Q 1 a∨b >=1 Q B Q B Name NAND Tabelle b 0 0 1 1 Schriftlich y=a∧b Das NAND-Symbol ist abgesehen von dem kleinen Kreis am Ausgang identisch mit dem AND-Symbol. Der kleine Kreis stellt die Invertierung dar. a 0 1 0 1 y 1 1 1 0 1 1 0 1 0 0 Operand A 0 1 1 1 0 0 Operand B 1 0 1 0 1 1 Ergebnis E & Alternative NAND Darstellung A & NAND-Operator Gatter a∨b Invertieren Logik Universität Göttingen - Informatik II - SS 2006 2.2-17 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik NOR-Operator Name NOR Tabelle b 0 0 1 1 Schriftlich a 0 1 0 1 Alternative Darstellung von Gattern Das NOR-Symbol ist abgesehen von dem kleinen Kreis am Ausgang identisch mit dem OR-Symbol. Der kleine Kreis stellt die Invertierung dar. Für die Gatter UND, ODER, NICHT, NAND und NOR gibt es eine Alternative Darstellung y 1 0 0 0 1 y=a∨b 1 0 1 0 0 Operand A Invertiere jeden Eingang und Ausgang des Standardsymbols Ändere das Operationssymbol von UND zu ODER, oder von ODER zu UND Die alternative Darstellung repräsentiert den gleichen physikalischen Baustein. Beispiele: A Gatter 2.2-18 0 ≥1 1 1 1 0 0 Operand B 1 1 Ergebnis E NOR 0 0 0 0 NAND 2.2-19 & Q >=1 Q B & B Logik Universität Göttingen - Informatik II - SS 2006 Q B A Invertieren A >=1 A Q B Logik Universität Göttingen - Informatik II - SS 2006 2.2-20 2. Zahlen und Logik 2. Zahlen und Logik Vollständige Operatorensysteme Ein vollständiges Operatorensystem erlaubt die Darstellung aller möglichen Funktionen Die folgenden Systeme sind u.a. vollständig: Normalformen (1/2) Bei zweistelligen, booleschen Funktionen sind dies 16 Möglichkeiten NICHT: UND: ODER Beschränkung auf ein vollständiges Operatorensystem reicht nicht für Eindeutigkeit Die Normalformen dienen dazu, anhand von Zustandstabellen Schaltungen zu entwickeln. Dabei werden logische Funktionen in Schaltkreise umgesetzt. Randbedingungen: Beispiel für NAND: UND, ODER, NICHT UND, NICHT ODER, NICHT NAND NOR Es gibt keinen eindeutigen booleschen Ausdruck für eine boolesche Funktion a∧a (a∧b)∧(a∧b) (a∧a)∧(b∧b) die Zahl der Schaltkreise sollte möglichst gering sein die einzelnen Bauelemente sollten möglichst gleich sein Standarddarstellung im Operatorensystem UND/ODER/NICHT Logik Universität Göttingen - Informatik II - SS 2006 2.2-21 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Normalform (2/2) Übersetzungsregel für disjunktive Normalform Disjunktive Normalform (DNF) disjunktive Verknüpfung von Konjunktionen Konjunktionen müssen alle Variablen enthalten (bejaht oder negiert) Konjunktionsterme werden Minterme genannt In der DNF werden alle UND – Verknüpfungen (Konjunktionen) disjunktiv verknüpft (ODER- verknüpft), deren Ausgangsvariablen den Wert „1“ annehmen. amerikanischer Ausdruck: “sum of products“ (SOP) Konjunktive Normalform (KNF) Konjunktive Verknüpfung von Disjunktionen Disjunktionen müssen alle Variablen enthalten (bejaht oder negiert) Disjunktionsterme werden Maxterme genannt In der KNF werden alle ODER – Verknüpfungen (Disjunktionen) konjunktiv verknüpft (UND- verknüpft), deren Ausgangsvariablen den Wert „0“ annehmen. Man geht von der Einsstellenmenge aus. Für jede Belegung ersetzt man die 1 durch eine bejahte Variable die 0 durch eine negierte Variable und bildet eine UND Verknüpfung (Minterm). Die Maxterme werden ODER verknüpft “Disjunktive Normalform“ DNF Logik Universität Göttingen - Informatik II - SS 2006 2.2-22 2.2-23 Logik Universität Göttingen - Informatik II - SS 2006 2.2-24 2. Zahlen und Logik 2. Zahlen und Logik DNF Übersetzung Übersetzungsregel für konjunktive Normalform Man geht von der Nullstellenmenge aus. Für jede Belegung ersetzt man die 0 durch eine bejahte Variable die 1 durch eine negierte Variable und bildet eine ODER Verknüpfung (Maxterm). Die Maxterme werden UND verknüpft “Konjunktive Normalform“ KNF Oktal Index (x4,x3,x2,x1) f -> y 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 0,0,0,0 0,0,0,1 0,0,1,0 0,0,1,1 0,1,0,0 0,1,0,1 0,1,1,0 0,1,1,1 1,0,0,0 1,0,0,1 1,0,1,0 1,0,1,1 1,1,0,0 1,1,0,1 1,1,1,0 1,1,1,1 -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> 0 0 0 1 0 0 1 0 0 1 - Beispiel: Durch 3 teilbare BCD Ziffern Å Logische 1 für: x4 = 0, x3 = 0, x2 = 1, x1 = 1 x4 x3 x2 x1 Å Logische 1 für: x4 = 0, x3 = 1, x2 = 1, x1 = 0 x4 x3 x2 x1 Å Logische 1 für: x4 = 1, x3 = 0, x2 = 0, x1 = 1 x4 x3 x2 x1 E = {3, 6, 11} 3 (0,0,1,1) 6 (0,1,1,0) 11 (1,0,0,1) y= x4 x3 x2 x1 ∨ x4 x3 x2 x1 ∨ x4 x3 x2 x1 Logik Universität Göttingen - Informatik II - SS 2006 2.2-25 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2.2-26 2. Zahlen und Logik Übersetzung DNF Gleichung in Hardware Beschreibung von logischen Schaltnetze Jede Gleichung läßt sich 1:1 in Hardware umsetzen y = x4 x3 x2 x1 ∨ x4 x3 x2 x1 ∨ x4 x3 x2 x1 Logische Schaltnetze können mit den grundlegenden logischen Verknüpfungen UND, ODER und NICHT beschrieben werden: 1. x4 1 x3 1 x2 1 x1 1 2. 3. & & >1 y & x = AB ∨ C x = (A ∨ B) C x = (A ∨ B) C ∨ A Die Verwendung nur eines Gattertyps erleichtert die technische Realisierung, weswegen NAND oder NOR basierte Systeme oftmals verwendet werden. Logische Schaltnetze können durch die Minimierung der logischen Verknüpfung minimiert werden In vielen Fällen sind einfachere Schaltungen schneller Weniger Gatter reduziert die Kosten Es wird weniger Energie benötigt Logik Universität Göttingen - Informatik II - SS 2006 2.2-27 Logik Universität Göttingen - Informatik II - SS 2006 2.2-28 2. Zahlen und Logik 2. Zahlen und Logik Minimierung Minimierungsverfahren DNF liefert relativ aufwendige Lösungen Baut auf den Mintermen auf Jedes UND Gatter enthält alle Eingangsvariablen Nicht praktikabel in „echten“ Anwendungen Es gibt 3 Arten von Minimierungsverfahren Die Suche nach einer einfacheren Lösung ist Ziel der Optimierung (Minimierung). Voraussetzung jeder Optimierung: Kostenfunktion beschreibt Ziel. In unserem Fall: Möglichst wenige, möglichst kleine Gatter Genauer: Die Anzahl der Eingänge in alle Gatter soll minimal werden. In einer Gleichung ist dann die Anzahl der Variablen aller Terme plus die Anzahl der Terme (Länge) minimal. _ _ _ Y = (D C B A) ∨ (D C B) ∨ (E C) => L = 4+3+2+3 = 12 algebraische Verfahren graphische Verfahren (z.B. KV-Diagramme) tabellarische/algorithmische Verfahren (z.B. Quine/McCluskeyVerfahren) Algebraische Verfahren werden praktisch nicht verwendet Graphische Verfahren sind für bis zu 6 Variablen handhabbar Tabellarische Verfahren sind auch für mehr als 6 Variablen geeignet Wie erzielen wir möglichst kleine Gatter? Wir versuchen, durch Anwendung der Rechenregeln, die einzelnen Terme kürzer zu machen. Logik Universität Göttingen - Informatik II - SS 2006 2.2-29 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2.2-30 2. Zahlen und Logik Algebraische Minimierung Blöcke Vereinfachung durch Ausklammern und Anwendung der Regeln: _ _ _ _ _ _ _ Bsp: y = c b a ∨ c b a = c a (b ∨ b) = c a 1 = c a In Belegungsschreibweise c b a y _ c b a 0 1 1 -> 1 _ _ c b a 0 0 1 -> 1 Zwei Belegungen, die sich nur in einer Komponente unterscheiden, heißen benachbart. Die identischen Komponenten heißen "gebundene", die unterschiedlichen "freie" Komponenten. Die freien Komponenten werden durch einen "-" gekennzeichnet. Es entsteht ein (Belegungs-) Block. Ein Block mit r freien Komponenten enthält ("überdeckt") 2r Belegungen. Beispiel: Wir suchen Belegungen, die Einsstellen sind und sich nur in einer Komponente unterscheiden (benachbart sind) 4 (0,1,0,0) (0,1,0,-) 5 (0,1,0,1) Logik Universität Göttingen - Informatik II - SS 2006 2.2-31 Logik Universität Göttingen - Informatik II - SS 2006 2.2-32 2. Zahlen und Logik 2. Zahlen und Logik Minimierung über Nachbarschaftsbeziehungen Oktal Index 0 1 2 3 4 5 6 7 (x3,x2,x1) f -> y 0,0,0 0,0,1 0,1,0 0,1,1 1,0,0 1,0,1 1,1,0 1,1,1 -> -> -> -> -> -> -> -> 0 0 0 0 1 1 0 1 Bildung größerer Blöcke Zugehörige DNF: Oktal Index 0 1 2 3 4 5 6 7 y = (x3 x2 x1) ∨ (x3 x2 x1) ∨ (x3 x2 x1) Benachbarte Belegungen: Minimierte Gleichung: 4: 5: Block: y = (x3 x2) ∨ (x3 x2 x1) 1, 0, 0 1, 0, 1 1, 0, - (x3,x2,x1) f -> y 0,0,0 0,0,1 0,1,0 0,1,1 1,0,0 1,0,1 1,1,0 1,1,1 -> -> -> -> -> -> -> -> 0 0 0 0 1 1 1 1 Benachbarte Belegungen: 4: 1, 0, 0 5: 1, 0, 1 Block: 1, 0, 1, 0, 1, 1, 6: 1, 1, 0 Block: 1, -, 7: 1, 1, 1 Block: 1, 1, - Zugehörige DNF: y = (x3 x2 x1) ∨ (x3 x2 x1) ∨ (x3 x2 x1) ∨ (x3 x2 x1) Minimierte Gleichung: y = x3 Logik Universität Göttingen - Informatik II - SS 2006 2.2-33 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Blockbildung bei komplizierteren Funktionen Oktal Index 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 (x4,x3,x2,x1) f -> 0,0,0,0 0,0,0,1 0,0,1,0 0,0,1,1 0,1,0,0 0,1,0,1 0,1,1,0 0,1,1,1 1,0,0,0 1,0,0,1 1,0,1,0 1,0,1,1 1,1,0,0 1,1,0,1 1,1,1,0 1,1,1,1 -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> Minimierte Gleichung: y Zusammenfassung Blockbildung Mögliche Blöcke: 1 0/2: 00-0 0 2/6: 0-10 1 2/12: -010 0 5/7: 01-1 0 5/15: -101 1 5/7/15/17: -1-1 6/7: 0111 6/16: -110 6/7/16/17: -111 0 7/17: -111 2/12/6/16: --10 1 11/15: 1-01 1 12/16: 1-10 0 15/17: 11-1 0 16/17: 1111 1 1 _ _ _ _ _ y = x4x3x1 ∨ x4x2x1 ∨ x3x1 ∨ x2x1 Die Bildung von Blöcken kann zur Minimierung herangezogen werden. Benachbarte Blöcke können zu größeren Blöcken zusammengefasst werden Betrachtet werden nur die Einsstellen Benachbarte Belegungen werden zu Blöcken zusammengefasst. es gelten dieselben Regeln. Blöcke bestehen immer aus 2r Belegungen (r = Anzahl der Striche) Ein Block, der sich nicht mehr vergrößern lässt, heißt "Primblock" Gesucht ist die minimale Anzahl von möglichst großen Blöcken, die alle Einsstellen überdeckt. Übergang zur disjunktiven Form Für Blöcke gelten dieselben Übersetzungsregeln, aber freie Komponenten ("Striche") werden ignoriert. Ein aus einem Primblock entstehender Term heißt "Primimplikant" Logik Universität Göttingen - Informatik II - SS 2006 2.2-34 2.2-35 Logik Universität Göttingen - Informatik II - SS 2006 2.2-36 2. Zahlen und Logik 2. Zahlen und Logik Minimierung per KV-Diagramm Karnaugh-Veitch-Diagramme Erstellung durch wechselweise horizontales und vertikales Spiegeln x1 KV-Diagramme bieten einen graphischen Weg zur Minimierung Es können minimale konjunktive oder disjunktive Formen gebildet werden 0 KV-Diagramm: x1 x2 0 1 2 3 x1 x2 0 1 5 4 2 3 7 6 x1 x2 2.2-37 2. Zahlen und Logik x5 x3 x1 x1 0 1 5 4 2 3 7 6 12 13 17 16 10 11 15 14 x2 x4 0 1 5 4 24 25 21 20 2 3 7 6 26 27 23 22 12 13 17 16 36 37 33 32 10 11 15 14 34 35 31 30 x3 x3 Logik Universität Göttingen - Informatik II - SS 2006 Koordinatendarstellung der Funktionstabelle Jede Zelle entspricht einer Belegung (Achtung: Zahlen sind im Oktalsystem angegeben) 1 Logik Universität Göttingen - Informatik II - SS 2006 2.2-38 2. Zahlen und Logik KV-Diagramm Minimierung per KV-Diagramm x5 x2 x2 Eintragung in das KV-Diagramm x1 x1 0 1 5 4 24 2 3 7 6 26 25 27 2 3 21 20 23 22 33 32 12 13 17 16 36 10 11 15 14 34 35 31 30 50 51 55 54 74 75 71 70 52 53 57 56 76 77 73 72 42 43 47 46 66 67 63 62 40 41 45 44 64 65 61 60 37 Oktal Index 0 1 2 3 4 5 6 7 x4 (x3,x2,x1) f -> y 0,0,0 0,0,1 0,1,0 0,1,1 1,0,0 1,0,1 1,1,0 1,1,1 -> -> -> -> -> -> -> -> 0 0 0 0 1 1 0 1 __ __ x3 __ x2 x1 ∨ x3 x2 x1 ∨ x3 x2 x1 x6 x1 x2 x3 0 0 1 1 0 0 1 0 x3 Logik Universität Göttingen - Informatik II - SS 2006 2.2-39 Universität Göttingen - Informatik II - SS 2006 Logik 2.2-40 x4 2. Zahlen und Logik 2. Zahlen und Logik Blockbildung im KV-Diagramm Interpretation eines KV-Diagramms x1 1 0 0 x2 x1 0 0 0 0 0 0 x2 0 __ __ x3 x2 x1 0 1 x2 0 0 x3 x1 0 0 0 0 0 x3 x2 x1 0 x2 0 1 0 0 x3 0 x3 x1 ÎDarstellung der DNF einer Schaltfunktion x2 __ __ x3 x2 x1 x3 0 0 0 0 x1 0 1 0 0 1 0 1 1 0 1 0 x3 __ __ x3 x2 x1 __ __ x3 x2 x1 ∨ x3 x2 __ x1 ∨ __ x3 __ x2 __ x1 ∨ x3 x2 x1 Logik Universität Göttingen - Informatik II - SS 2006 2.2-41 2. Zahlen und Logik x1 x2 0 1 1 0 0 1 0 0 0 0 1 1 0 0 0 1 1 2 0 0 1 0 1 3 0 0 1 1 1 4 0 1 0 0 0 5 0 1 0 1 0 6 0 1 1 0 0 7 0 1 1 1 0 10 1 0 0 0 0 11 1 0 0 1 1 12 1 0 1 0 0 13 1 0 1 1 1 14 1 1 0 0 0 15 1 1 0 1 0 16 1 1 1 0 0 17 1 1 1 1 0 A 1 B 1 0 1 1 2 1 12 0 5 3 0 13 11 6 16 0 15 D 14 0 0 C __ _ _ 0 17 1 0 7 0 1 10 4 0 0 __ _ _ _ _ __ DNF: Z = A B C D ∨ A B C D ∨ A B C D ∨ A B C D Minterme: 0: 0000 1: 0001 13: 1011 00-0 (Blöcke) 2: 0010 3: 0011 00-1 11: 100110-1 _ _ _ __ _ Minimierte Gleichung: Z = A C D ∨ A C D ∨ ACD Primblöcke: 00-- -0-1 __ _ Minimierte Gleichung mit Primtermen: Z = C D ∨ A C Logik Universität Göttingen - Informatik II - SS 2006 2.2-42 Blockbildung bei unvollständig definierten Schaltfunktionen x1 0 D C B A Z 2. Zahlen und Logik Beispiel für Blockbildung in KV-Diagrammen 1 Fall 0 x2 x3 x1 1 0 0 1 1 0 0 1 x3 Vorläufige Blöcke. Es entfällt je x3. x2 1 0 0 1 1 0 0 1 Freistellen (do not care Stellen) können 0 oder 1 sein. Festlegung derart, dass maximal große Blöcke entstehen. x3 Endgültiger Block. Es entfällt x2. x1 Kann ein vorläufiger Block nicht mehr durch einen weiteren, symmetrisch gelegenen gleich großen Block vergrößert werden, so erhält man den maximal großen Block: Primblock Der zugehörige Term heißt Primterm. x2 x1 0 1 - 0 0 1 - - x2 x3 0 1 0 1 x1 - 0 =1 =0 =1 x3 - x2 0 1 0 1 - 0 =1 =0 =1 - x3 Jede vollständige Blocküberdeckung ist eine gültige Darstellung einer Funktion. Vollständig: Jede Einsstelle wird von einem Block überdeckt. Logik Universität Göttingen - Informatik II - SS 2006 2.2-43 Logik Universität Göttingen - Informatik II - SS 2006 2.2-44 2. Zahlen und Logik 2. Zahlen und Logik Minimierung per KV-Diagramm Minimierung per KV-Diagramm (1/3) Minimierungsverfahren Minimierungsverfahren 1. Spezifikation der Funktion durch Terme 2. Eintragung in das KV-Diagramm 3. Bestimmen der Primblöcke Beispiel Sukzessive Bildung von Blöcken mit 2, dann 4, dann 8 Belegungen, usw. Verfolgung aller möglichen Kombinationen Wenn Blockbildung abbricht, sind alle Primblöcke gefunden. Ergebnis: 4. Auswahl der kleinsten Anzahl Primblöcke, die zur vollständigen Überdeckung nötig sind Bereits erledigt: 1. Spezifikation der Funktion durch Terme 2. Eintragung in das KV-Diagramm x1 Identifikation der Kerne: Markierung aller Primblöcke, welche alleine eine Funktionsstelle überdecken. Falls diese bereits alle Stellen überdecken, ist minimale Lösung erreicht. Reichen diese nicht zur Überdeckung aller Stellen aus, müssen weitere Primblöcke hinzugenommen werden. 0 1 1 0 x2 0 0 1 1 0 0 1 - 5. Bildung eines kürzesten Ausdrucks (DMF: disjunktive Minimalform) 1 0 0 x3 Logik Universität Göttingen - Informatik II - SS 2006 2.2-45 2. Zahlen und Logik x4 Logik Universität Göttingen - Informatik II - SS 2006 2.2-46 2. Zahlen und Logik Minimierung per KV-Diagramm (2/3) Minimierung per KV-Diagramm Beispiel (3/3) x1 Beispiel 4. Auswahl der kleinsten Anzahl Primblöcke, die zur vollständigen Überdeckung nötig sind • Identifikation der Kerne: Markierung aller Primblöcke, welche alleine eine Funktionsstelle überdecken. • Falls diese bereits alle Stellen überdecken, ist minimale Lösung erreicht. • Reichen diese nicht zur Überdeckung aller Stellen aus, müssen weitere Primblöcke hinzugenommen werden. 3. Bestimmen der Primblöcke • Sukzessive Bildung von Blöcken mit 2, dann 4, dann 8 Belegungen, usw. • Verfolgung aller möglichen Kombinationen • Wenn Blockbildung abbricht, sind alle Primblöcke gefunden. w2 x1 w4 Primimplikanten: x2 0 1 1 0 0 0 1 1 0 0 1 - - 1 0 0 w3 w1 => x4 w5 x3 Grau gekennzeichnete Blöcke: Primblöcke w1 = x3 x2 __ __ w2 = x4 x2 x1 __ w3 = x4 x3 x1 __ __ w4 = x3 x2 x1 __ __ w5 = x4 x3 x2 5. Bildung eines kürzesten Ausdrucks (DMF: disjunktive Minimalform) Logik Universität Göttingen - Informatik II - SS 2006 2.2-47 Universität Göttingen - Informatik II - SS 2006 x2 0 1 1 0 0 0 1 1 0 0 1 - - 1 0 0 x1 x2 x4 x3 0 1 1 0 0 0 1 1 0 0 1 - - 1 0 0 x3 x4 Logik 2.2-48 2. Zahlen und Logik 2. Zahlen und Logik Minimierung mittels KV-Diagramm Oktal Index 0 1 2 3 4 5 6 7 Blöcke: 10– 1-1 (x3,x2,x1) f -> y 0,0,0 0,0,1 0,1,0 0,1,1 1,0,0 1,0,1 1,1,0 1,1,1 -> -> -> -> -> -> -> -> 0 0 0 0 1 1 0 1 Minimierung in der konjunktiven Form x1 0 x2 0 0 2 0 0 1 3 1 1 5 7 1 0 4 6 x3 Kern-Blöcke: 101-1 •• • >1 •• • >1 y & •• • •• • Minimierte Gleichung: __ y = x3 x2 ∨ x3 x1 >1 z.B. _ _ y= (a ∨ b ∨ c) (a ∨ b ∨ c) Logik Universität Göttingen - Informatik II - SS 2006 2.2-49 2. Zahlen und Logik Bei BCD kodierten Ziffern können nur Werte von 0 bis 9 vorkommen: Das Verhalten der Schaltung bei Eingangswerten > 9 (118) ist gleichgültig. R = { 12,13,14,15,16,17} E = { 3,6,11} N = {0,1,2,4,5,7,10} Universität Göttingen - Informatik II - SS 2006 2.2-50 2. Zahlen und Logik Ermittlung der Maxterme Beispiel Durch 3 teilbare BCD Ziffern Logik Universität Göttingen - Informatik II - SS 2006 Oktal Index (x4,x3,x2,x1) f -> y Oktal Index (x4,x3,x2,x1) f -> y 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 0,0,0,0 0,0,0,1 0,0,1,0 0,0,1,1 0,1,0,0 0,1,0,1 0,1,1,0 0,1,1,1 1,0,0,0 1,0,0,1 1,0,1,0 1,0,1,1 1,1,0,0 1,1,0,1 1,1,1,0 1,1,1,1 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 0,0,0,0 0,0,0,1 0,0,1,0 0,0,1,1 0,1,0,0 0,1,0,1 0,1,1,0 0,1,1,1 1,0,0,0 1,0,0,1 1,0,1,0 1,0,1,1 1,1,0,0 1,1,0,1 1,1,1,0 1,1,1,1 -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> 0 0 0 1 0 0 1 0 0 1 - Logik 2.2-51 -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> -> 0 0 0 1 0 0 1 0 0 1 - ÅLogische 0 für: x4 ∨ x3 ∨ x2 ∨ x1 = 0 • •• •• • ÅLogische 0 für: _ x4 ∨ x3 ∨ x2 ∨ x1 = 0 Logik Universität Göttingen - Informatik II - SS 2006 2.2-52 2. Zahlen und Logik 2. Zahlen und Logik KNF für Beispiel N = {0,1,2,4,5,7,10} Minimierung mit KV-Diagramm x1 y= 0 0 (0,0,0,0) 1 (0,0,0,1) 2 (0,0,1,0) 4 (0,1,0,0) 5 (0,1,0,1) 7 (0,1,1,1) 10 (1,0,0,0) (x4 ∨ x3 ∨ x2 ∨ x1) _ ∧ (x4 ∨ x3 ∨ x2 ∨ x1) _ ∧ (x4 ∨ x3 ∨ x2 ∨ x1) _ ∧ (x4 ∨ x3 ∨ x2 ∨ x1) _ _ ∧ (x4 ∨ x3 ∨ x2 ∨ x1) _ _ _ ∧ (x4 ∨ x3 ∨ x2 ∨ x1) _ ∧ (x4 ∨ x3 ∨ x2 ∨ x1) x2 0 0 2 12 - 0 1 1 5 0 3 0 7 13 - 17 - 10 11 0 1 15 - 0 1 4 6 16 14 - x4 x3 y = (x2 ∨ x4) ∧ (x1 ∨ x3) _ _ ∧ (x3 ∨ x1) Logik Universität Göttingen - Informatik II - SS 2006 2.2-53 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Überblick Logik I Zahlen Informationsdarstellung Zahlensysteme Rechnerarithmetik Logik Aussagenlogik und logische Gatter Prädikatenlogik „Logik handelt vom Umgang mit Aussagen (propositions). Aussagen sind sprachliche gebilde, die entweder wahr oder falsch sind.“ (Informatik-Handbuch, Kapitel 1.1) In der Logik werden nur Beziehungen zwischen atomaren (unteilbaren) Aussagen betrachtet. Um Auszudrücken, das eine gewisse Aussage A in einer bestimmten Situation S (bzw. Semantik) wahr ist, schreibt man S╞ A („in S gilt A“) (Modellbeziehung zwischen S und A). Es werden in der Logik nur Beziehungen zwischen Aussagen betrachtet. Die Entscheidung über eine Modellbeziehung zwischen Situation und Aussage ist oftmals schwierig zu treffen. Beispiel: „Programm P terminiert“ oder „Es wird immer Kriege geben“ Quelle: Informatik-Handbuch Logik Universität Göttingen - Informatik II - SS 2006 2.2-54 2.2-55 Logik Universität Göttingen - Informatik II - SS 2006 2.2-56 2. Zahlen und Logik 2. Zahlen und Logik Logik II Übergang zur Prädikatenlogik Das Innere einer Aussage ist irrelevant. Es geht nur um die Kombinierbarkeit von Aussagen Symbole für Aussagen werden Aussagenvariablen genannt Aussagenlogische Formeln werden aus den aussagenlogischen Variablen, den Wahrheitswerten wahr und falsch und den Operationen Negation, Konjunktion, Disjunktion, Implikation und Äquivalenz gebildet. Fehlender Bezug zu innerer Struktur einer Aussage soll behoben werden Es soll Aussagen über Individuen und deren Beziehungen (wie z.B. Eigenschaften, Relationen, Klassen) möglich sein Syntaktisch stärker als Aussagenlogik, aber mit einer semantischen Spezialisierung Daher ist die Aussagenlogik kein Teilsystem der Prädikatenlogik Siehe Begriff Struktur in weiterführender Literatur Logik Universität Göttingen - Informatik II - SS 2006 2.2-57 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Syntax/Semantik/Pragmatik I 2.2-58 Syntax/Semantik/Pragmatik II Syntax: Die Beziehung(en) von Zeichen untereinander. (Schreibweise) Semantik: Die Beziehung(en) von Zeichen zur Welt. (Bedeutung) Pragmatik: Die Beziehung(en) von Zeichen zu den Erzeugern und Interpretern von Zeichen. Eigenschaften von Programmiersprachen werden auf verschiedenen Ebenen festgelegt Syntax Semantik Syntax Zeichen Zeichen Pragmatik Die Semantik regelt die Bedeutung einzelner Sprachelemente und ihr Zusammenspiel. Pragmatik Benutzer/ Situation Die Syntax ist die "Rechtschreibung" einer Programmiersprache. Die Pragmatik beschreibt Einschränkungen und Randbedingungen, die sich aus konkreten Implementierungen heraus ergeben. Die Grenzen zwischen Syntax und Semantik, sowie zwischen Semantik und Pragmatik sind verschwommen und lassen sich nicht eindeutig ziehen. (Quelle: FH München, FB 07 Informatik/Mathematik Prof. Dr. R. Schiedermeier – Vorlesung "Programmieren I„, 1996/97) Bedeutung Semantik Logik Universität Göttingen - Informatik II - SS 2006 2.2-59 Logik Universität Göttingen - Informatik II - SS 2006 2.2-60 2. Zahlen und Logik 2. Zahlen und Logik Syntax/Semantik/Pragmatik III Objektsprache und Metasprache Syntax und Semantik in Bezug auf Logik Syntax Gesamtheit der Vorschriften über den strukturellen Aufbau von Formeln und Herleitungen. Semantik Objektsprache Metasprache Übergang von einer Formel zu Ihrer Interpretation in einer bestimmten Situation, wodurch Ihre Bedeutung festgelegt wird. Aussagen über Objekte Aussagen als Objekt Beispiel: „Studierende sind strebsam“ Die Modellbeziehung liefert die Verbindung zwischen Syntax und Semantik Die Funktion einer Sprache, sich auf Sprache selbst zu beziehen Beispiel: „Es gibt weibliche und männliche Studierende“ Beispiel aus der Informatik: Beschreibung eines Unix-Befehls Befehlsbeschreibung: less <Datei> Eingabe in Kommandozeile: less meinetextdatei.txt Die Zeichenreihe <Datei> ist also ein Platzhalter für einen Dateinamen und gehört daher zur Metasprache. Siehe Syntaxbeschreibung von Programmiersprachen, Befehlen, etc. Logik Universität Göttingen - Informatik II - SS 2006 2.2-61 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Logischer Operator: Implikation Prädikatenlogik erster Stufe mit Identität: Definition/Elemente N-stellige prädikatenlogische Formel/Ausdruck A: Mn →B (abzählbar unendliche) Grundmenge M (über die Individuen) Menge der Wahrheitswerte B Operationen Sonstige Zeichen Negation ¬, Konjunktion ∧, Disjunktion ∨, Implikation →, Äquivalenz ↔ Runde Klammern (, ) Gleichheitszeichen (Identität) = Allquantor ∀: ∀x ∈ M bedeutet „für alle x ∈ M gilt“ (Kurz: ∀x) Existenzquantor ∃: ∃ x ∈ M bedeutet „es gibt ein x ∈ M, so dass gilt“ (Kurz: ∃x) 2.2-63 Q w w f f P→Q w w f w ex falsum quod libet (aus Falschem folgt Beliebiges; aus falschem (folgt), was beliebt. ) D.h. aus etwas Falschem kann ich alles folgern. wenn P, dann Q P impliziert Q aus P folgt Q Logik Universität Göttingen - Informatik II - SS 2006 P w f w f Umgangssprachlich: Funktionen F: Mn → M, f(x1, x2, …, xn) = y mit x1, x2, …, xn ,y ∈ M Prädikate P: Mn → B, P(x1, x2, …, xn) = y mit x1, x2, …, xn ∈ M, y ∈ B Wahrheitstabelle wenn P wahr ist, dann muss auch Q wahr sein wenn P falsch ist, dann kann Q wahr oder falsch sein Variablen aus der (abzählbaren unendlichen) Grundmenge Konstanten aus der (abzählbaren unendlichen) Grundmenge Relationen Es gilt: P → Q ≡ ¬ P ∨ Q Die logische Implikation hat keine kausale Bedeutung. Es gilt alleine die logische Bedeutung, welche durch die Wahrheitstabelle gegeben ist. P → Q sei wahr: Quantoren Terme Implikation P → Q wahr und falsch 2.2-62 Logik Universität Göttingen - Informatik II - SS 2006 2.2-64 2. Zahlen und Logik 2. Zahlen und Logik Logischer Operator: Äquivalenz Äquivalenz P ↔ Q Es gilt: P ↔ Q ≡ (P → Q) ∧ (Q → P) Die logische Äquivalenz hat keine kausale Bedeutung. Es gilt alleine die logische Bedeutung, welche durch die Wahrheitstabelle gegeben ist. Die Aussagen P und Q müssen unter jeder möglichen Interpretation denselben Wahrheitswert annehmen P w f w f Q w w f f P↔Q w f f w wenn P wahr ist, dann muss auch Q wahr sein wenn P falsch ist, dann muss auch Q falsch sein P genau dann, wenn Q Allquantor für alle Objekte der Grundmenge Existenzquantor über mindestens ein Objekt der Grundmenge Konvention für Bezeichner ≡ wird verwendet wenn die absolute Gleichheit betont werden soll und wird daher bei Definitionen oder der Beschreibung von Ergebnissen bevorzugt eingesetzt ↔ dient eher als einfacher Operator in Formeln In der Mathematik bzw. bei Metaaussagen wird das Zeichen ⇔ verwendet/bevorzugt. Variable stehen für (noch) nicht bekannte Objekte Prädikate sind Namen von Eigenschaften, Relationen, Klassen, etc. Quantoren erlauben Aussagen über Mengen Umgangssprachlich Aussagen werden in Termen und Prädikate aufgelöst und dargestellt Terme sind Namen von Objekten (aus der Grundmenge) In der Logik ist die Schreibweise ≡ und ↔ zueinander äquivalent Wahrheitstabelle P ↔ Q sei wahr: Prädikatenlogik: Details Variablen: x, y, z Konstanten: a, b, c Prädikate: P, Q, R Funktionen: f, g, h Ausdrücke, Formeln; A, B, C Für Operatoren gelten die gleichen Regeln wie in der Aussagenlogik. Logik Universität Göttingen - Informatik II - SS 2006 2.2-65 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Prädikatenlogik zweiter Stufe Quantoren – Gültigkeitsbereich (scope) In der Prädikatenlogik erster Stufe können wir über Individuen der Grundmenge quantifizieren. ∃x: P(x) ∀x: P(x) In den Ausdrücken ∀x(P) oder ∃x(P) ist P der Gültigkeitsbereich der Variablen x Gebundene Variable Freie Variable Geschlossener Ausdruck Die nächste Stufe (zweite Stufe) erlaubt die Quantifizierung über Prädikate ∃P(x): P(x) ∀(P(x): P(x) Wir betrachten in der Vorlesung nur die 1. Stufe. Eine Variable im Gültigkeitsbereich eines Quantors nennt sich gebunden. Eine nicht gebundene Variable nennt sich frei. Ein Ausdruck ohne freie Variablen nennt sich geschlossen. Offener Ausdruck Ein Ausdruck mit mindestens einer freien Variablen nennt sich offen. Logik Universität Göttingen - Informatik II - SS 2006 2.2-66 2.2-67 Logik Universität Göttingen - Informatik II - SS 2006 2.2-68 2. Zahlen und Logik 2. Zahlen und Logik Beispiele zu Gültigkeitsbereichen Quantoren – Regeln I Schachtelung Geschachtelte Allquantoren können vertauscht werden Geschachtelte Existenzquantoren können vertauscht werden Allquantoren und Existenzquantoren dürfen im allgemeinen nicht vertauscht werden. ∃x (∃y ( P(x,y))) ≡ ∃y (∃x ( P(x,y))) Auseinanderziehen ∀x ( ∀y ( P(x,y))) ≡ ∀y ( ∀x ( P(x,y))) ∀x (P(x) ∧ Q(x)) ≡ ∀x (P(x)) ∧ ∀x (Q(x)) ∃x (P(x) ∨ Q(x)) ≡ ∃x (P(x)) ∨ ∃x (Q(x)) Folgerungen (Vorsicht!!!) ∀x (P(x)) ∨ ∀x (Q(x)) ⇒ ∀x (P(x) ∨ Q(x)) ∃x (P(x) ∧ Q(x)) ⇒ ∃x (P(x)) ∧ ∃x (Q(x)) Logik Universität Göttingen - Informatik II - SS 2006 2.2-69 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Quantoren – Regeln II ¬(∀x (P(x))) ≡ ∃x (¬(P(x))) ¬(∃ x (P(x))) ≡ ∀x (¬(P(x))) Man kommt mit nur einem Quantor aus, indem man einfach folgendes setzt Skopusveränderung (x taucht in P auf, aber nicht in Q) Folgerung aus den Quantorenregeln Negation 2.2-70 ∀x (P(x)) ∧ Q ≡ ∀x (P(x) ∧ Q) ∀x (P(x)) ∨ Q ≡ ∀x (P(x) ∨ Q) ∃x (P(x)) ∧ Q ≡ ∃x (P(x) ∧ Q) ∃x (P(x)) ∨ Q ≡ ∃x (P(x) ∨ Q) ∀x (P(x)) → Q ≡ ∃x (P(x) → Q) ∃x (P(x)) → Q ≡ ∀x (P(x) → Q) Q → ∀x (P(x)) ≡ ∀x (Q → P(x)) Q → ∃x (P(x)) ≡ ∃x (Q → P(x)) ∀x (P(x)) ≡ ¬∃ x (¬ P(x)) oder ∃x (P(x)) ≡ ¬∀ x (¬P(x)) Der besseren Lesbarkeit wegen ist die Verwendung beider Quantoren sinnvoll. Namen der quantifizierten Variablen ist belanglos ∀x (P(x)) ≡ ∀y (P(y)) ∃ x (P(x)) ≡ ∃z (P(z)) Logik Universität Göttingen - Informatik II - SS 2006 2.2-71 Logik Universität Göttingen - Informatik II - SS 2006 2.2-72 2. Zahlen und Logik 2. Zahlen und Logik Normalformen: Pränexform Tautologie und Erfüllbarkeit Zu jeder prädikatenlogischen Formel gibt es mindestens eine logisch äquivalente Pränexform: Q1X1 (Q2X2 … (QnXn(A) …)) Allgemeingültig (Tautologie/Nullaussage) Qi Quantoren Xi Variablen A Ausdruck der keine Quantoren enthält Erfüllbarkeit Beispiele: ∀x (P(x) ∨ Q(y)) ∧ (∃z(R(z) ∨ P(z))) (keine Pränexform) ∀x ∃z ((P(x) ∨ Q(y)) ∧ (R(z) ∨ P(z))) (Pränexform) Man nennt eine prädikatenlogische Formel A allgemeingültig, wenn sie für alle möglichen Belegungen ihrer Argumente immer ein „wahr“ liefert, d.h. A: Mn → B, ∀x ∈ Mn : A(x) = wahr Beispiel: x ∨ ¬x ist immer erfüllt Man nennt eine prädikatenlogische Formel A erfüllbar, wenn es eine Belegung Ihrer Argumente gibt, bei der sie den Wert „wahr“ liefert, d.h. A: Mn → B, ∃ x ∈ Mn : A(x) = wahr Beispiel: x ∧ ¬x ist nicht erfüllbar Die Begriffe Tautologie und Erfüllbarkeit gelten mit entsprechenden Definitionen natürlich auch in der Aussagenlogik. Logik Universität Göttingen - Informatik II - SS 2006 2.2-73 Logik Universität Göttingen - Informatik II - SS 2006 2. Zahlen und Logik 2. Zahlen und Logik Erfüllbarkeitsproblem (satisfaction problem) Formeln der Form: (a1 ∨ a2) ∧ (a3 ∨ a4) ∧ (a5 ∨ a6) ∧ (a7 ∨ a8) … (an-1 ∨ an) Semantik der Prädikatenlogik: Interpretation 2-SAT Test auf Erfüllbarkeit (satisfaction) geht polynomial Formeln der Form: (a1 ∨ a2 ∨ a3) ∧ (a4 ∨ a5 ∨ a6) ∧ (a7 ∨ a8 ∨ a9) … (an-2 ∨ an-1 ∨ an) Wann sind Ausdrücke/Formeln der Prädikatenlogik wahr? Variablen ai darf mehrmals vorkommen 3-SAT Klasse NP = Non-deterministic Polynomial time Bezeichnet eine Klasse von Problemen, die von einer nichtdeterministischen Turingmaschine in polynomialer Zeit positive Antworten produzieren kann. Der Beweis, das es keinen polynomialen Algorithmus dafür gibt, ist eines der größten offenen Probleme in der Informatik (P/NP-Problem) Siehe Komplexitätstheorie in Informatik III Informell: Wenn Sie einen wahren Sachverhalt (über den Diskursbereich) beschreiben Formeller: Variablen ai darf mehrmals vorkommen Test auf Erfüllbarkeit ist wohl exponentiell. Oder??? 3-Sat ist das 1. NP-schwere Problem (siehe Cook 1971) Interpretationsrelation I: T → B T ⊆ M* (T ist Teilmenge der Potenzmenge der Grundmenge) Die Elemente von T heißen Aussagen B ist die Menge der Wahrheitswerte Die Abbildung I bildet eine Belegung der Eingangswerte (Aussage) einer Formel auf einen Wahrheitswert ab I ist die Interpretation einer Aussage (im Sinne von wahr oder falsch) Logik Universität Göttingen - Informatik II - SS 2006 2.2-74 2.2-75 Logik Universität Göttingen - Informatik II - SS 2006 2.2-76 2. Zahlen und Logik 2. Zahlen und Logik Ausblick Weitere Beispiele Compilerbau (Kapitel 7) Automaten und Sprachen (Kapitel 6) Betriebssysteme (Kapitel 5) Maschinenorientierte Programmierung (Kapitel 4) von-Neumann-Rechner (Kapitel 3) Speicher Zahlen und Logik (Kapitel 2) Kommunikation (Kapitel 8) von-Neumann-Rechner Logik Universität Göttingen - Informatik II - SS 2006 2.2-77 Logik Universität Göttingen - Informatik II - SS 2006 2.2-78