Was bisher geschah Wissensrepräsentation und -verarbeitung in I Zustandsübergangssystemen I Logiken Repräsentation von Mengen aussagenlogischer Regeln: I Wissensbasis (Kontextwissen): Formelmenge, Problembeschreibung (Wissen über den speziellen Fall): Formel Problemlöseverfahren: Schließen, (evtl. Folgern) I Wissensbasis: Entscheidungstabelle, Problembeschreibung: Falldaten (Merkmalswerte) Problemlöseverfahren: Auswahl der zu den Falldaten passenden Regel (Folgern) I Wissensbasis: (binärer) Entscheidungsbaum, Problembeschreibung: Falldaten (Merkmalswerte) Problemlöseverfahren: Verfolgung des zu den Falldaten passenden Pfades (Folgern) 74 Effektivere Darstellung binärer Entscheidungsbäume Beispiel: ϕ mit Mod(ϕ) = {W0000 , W0011 , W1100 , W1111 } Schrittweise Anwendung (ebenenweise von Blättern zur Wurzel) der folgenden Operationen auf einen Entscheidungsbaum T (oder BDD): Verschmelzung von Knoten , die Wurzeln gleicher Teilbäume sind (Vereinigung der Kantenmarkierungen) Kontraktion von Kanten zwischen einem Knoten und seinem Kind, falls dieses sein einziges Kind ist (Vereinigung der Knotenmarkierungen, gleichzeitige Entscheidung nach mehreren Kriterien) Ergebnis: markierter gerichteter azyklischer Graph (DAG), hat meist weniger Knoten als T 75 Binary Decision Diagrams kompakte Darstellungsform für Boolesche Funktionen Binary Decision Diagram (BDD): markierter gerichteter azyklischer Graph (DAG) mit Markierungen: I innere Knoten: Variablen I Kanten: 0 oder 1 und den folgenden Eigenschaften: I BDD hat eine Wurzel, I jeder innere Knoten hat Grad 2, je einen mit 0 und einen mit 1 markierten Nachfolger I jedes Blatt hat Grad 0 76 ROBDDs Variablenordnung: totale Ordnung > auf Variablenmenge BDD heißt genau dann bzgl. der Variablenordnung > geordnet, falls auf jedem Pfad von der Wurzel zu einem Blatt die Variablen in der Reihenfolge der Variablenordnung vorkommen. Beispiel: ϕ mit Mod(ϕ) = {W0000 , W0011 , W1100 , W1111 } mit Variablenordnungen [x, y , z, u] und [x, z, y , u] BDD heißt genau dann OBDD (ordered binary decision diagram), wenn es bzgl. einer Variablenordnung geordnet ist OBDD heißt genau dann ROBDD (reduced ordered binary decision diagram), wenn keine der Reduktionsoperationen (Knotenverschmelzung, Kantenkontraktion) möglich ist. 77 Eigenschaften von ROBDDs I für jede Variablenordnung kanonische Repräsentation (bis auf Isomorphie eindeutig) I Erfüllbarkeit, Allgemeingültigkeit trivial I Größe ist abhängig von Variablenordnung Beispiel: (u ∧ v ) ∨ (w ∧ x) ∨ (y ∧ z) mit Variablenordnungen [u, v , w, x, y , z] und [u, w, y , v , x, z] I es gibt Formeln, für die jede Variablenreihenfolge ein exponentiell großes ROBDD liefert I Verfahren zur Konstruktion 78 AL(P) → BDD gegeben: Variablenordnung I top-down (Shannon-Expansion, ite-NF): IA: falls ϕ Wahrheitswert, direkte BDD-Erzeugung (Blatt) IS: rekursive Erzeugung von BDDs mit I I I Wurzelmarkierung: größte vorkommende Variable x 0-Kind: BDD für Formel ϕ[x 7→ 0] 1-Kind: BDD für Formel ϕ[x 7→ 1] danach Reduktion Beispiel: (x ∨ y ) ∧ (x ∨ ¬y ∨ z) ∧ ¬z I bottom-up: falls ϕ Wahrheitwertkonstante oder Atom, direkte BDD-Erzeugung Konstruktion des BDD für ϕ aus BDDs für Teilformeln mit Hilfe der BDD-Operationen (für ∨, ∧, ¬) 79 Operationen auf BDDs gegeben: BDDs Bϕ und Bψ I ϕ ∧ ψ: jeden 1-Knoten in Bϕ durch Bψ ersetzen I ϕ ∨ ψ: jeden 0-Knoten in Bϕ durch Bψ ersetzen I ¬ϕ: alle Blattmarkierungen x durch 1 − x ersetzen Ergebnis meist nicht geordnet und nicht reduziert 80 BDD → AL(P) direktes Ablesen I einer Formel in ite-NF oder I einer Menge von Regeln Beispiele: Für BDD (Tafel): I ite-Formel I Menge aussagenlogischer Regeln 81 Darstellungsformen Boolescher Funktionen Boolesche Funktion f : {0, 1}m → {0, 1}n I Wertetabelle (Wahrheitswerttabelle, Entscheidungstabelle) I aussagenlogische Formel(n) ϕ ∈ AL({x1 , . . . , xn }) I Modellmenge (Urbild f −1 (1)) I ite-Formel(n) I binäre Entscheidungsbäume I (RO)BDDs Beispiele: I verschiedene Darstellungen für (p ∧ q) ∨ (r ∧ s) I BDD zur ite-Formel ite(p, ite(q, ite(r , t, f), f), t) (Tafel) I zu p → (q ∧ r ) äquivalente ite-Formel: ite(p, ite(q, ite(r , t, f), f), t) 82