Binary Decision Diagrams

Ähnliche Dokumente
Grundlagen digitaler Systeme WS12

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

4. OBDDs und Modellüberprüfung

Präsentation BDDs Binary Decision Diagrams

Was bisher geschah Wissensrepräsentation und -verarbeitung in Zustandsübergangssystemen Constraint-Systemen Logiken Repräsentation von Mengen

Darstellung Boolescher Funktionen

Binary Decision Diagrams (BDDs) 1

Rechnerstrukturen. Michael Engel und Peter Marwedel WS 2013/14. TU Dortmund, Fakultät für Informatik

Formale Systeme. Binary Decision Diagrams. Prof. Dr. Bernhard Beckert WS 2010/2011 KIT INSTITUT FÜR THEORETISCHE INFORMATIK

Vorlesung : Binäre Entscheidungsdiagramme (BDDs) Dr. Carsten Sinz

Binary Decision Diagrams (Einführung)

Binärer Entscheidungsbaum. für Boole sche Funktionen. (binary decision tree: BDT) Kapitel 4: Binäre Entscheidungsdiagramme

Rechnerstrukturen WS 2012/13

Übung 4: Aussagenlogik II

Aufgabe. Gelten die folgenden Äquivalenzen?. 2/??

Logik für Informatiker

Technische Informatik - Eine Einführung

DuE-Tutorien 4 und 6. Tutorien zur Vorlesung Digitaltechnik und Entwurfsverfahren Christian A. Mandery. WOCHE 4 AM

4. Induktives Definieren - Themenübersicht

2.9 Formale Verifikation

Allgemeingültige Aussagen

Normalformen boolescher Funktionen

Binäre Suchbäume (binary search trees, kurz: bst)

Grundlagen der Logik

Kapitel L:II. II. Aussagenlogik

Resolutionskalkül. wird t als eine Menge K t von Klauseln geschrieben, welche die einzelnen Maxterme repräsentieren:

Formale Grundlagen der Informatik 1 Kapitel 16 Normalformen und Hornformeln

Syntax der Aussagenlogik. Vorlesung Logik Sommersemester 2012 Universität Duisburg-Essen. Formel als Syntaxbaum. Teilformel A 3 A 1 A 4

5. Vorlesung: Normalformen

Logik für Informatiker

Weitere NP-vollständige Probleme

Aussagenlogik. Mengenlehre. Relationen. Funktionen. Zahlentheorie. Vollständige Induktion. Reihen. Zahlenfolgen. WS 2016/17 Torsten Schreiber

Informatik I Tutorium WS 07/08

Eingebettete Systeme

Clausthal C G C C G C. Informatik II Bäume. G. Zachmann Clausthal University, Germany Beispiele.

Informatik I WS 07/08 Tutorium 24

Dank. Grundlagen der Theoretischen Informatik / Einführung in die Theoretische Informatik I. Reduktion. Komplexitätsklassen.

Zusammenfassung des Stoffes zur Vorlesung Formale Systeme

TU5 Aussagenlogik II

11.1 Grundlagen - Denitionen

Künstliche Intelligenz Logische Agenten & Resolution

Einführung (1/3) Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (1) Vorlesungen zur Komplexitätstheorie.

Logik für Informatiker

Uwe Bubeck: Binary Decision Diagrams 2

Electronic Design Automation (EDA) Technology Mapping

Logik für Informatiker

2. Schaltfunktionen und ihre Darstellung

2. Schaltfunktionen und ihre Darstellung

VU Grundlagen digitaler Systeme

Informatik A (Autor: Max Willert)

Boolesche Funktionen und Schaltkreise

Aussagenlogik. Aussagenlogik. Syntax Semantik Formeln, Modelle, Tautologien und Anwendungen Folgerungen, Wissen Bernd Baumgarten

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Einführung in die Theoretische Informatik. Inhalte der Lehrveranstaltung. Definition (Boolesche Algebra) Einführung in die Logik

Informationsverarbeitung auf Bitebene

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

Formale Systeme. Übung: Reinhard Hemmerling Büsgenweg 4, Raum 89 (1. Stock) rhemmer<at>gwdg.de

Konjunktive und disjunktive Normalformen

Tableaukalkül für Aussagenlogik

Boole'sches Modell <is web>

3. Grundlegende Begriffe von Logiken - Aussagenlogik

3. Klausur Einführung in die Theoretische Informatik Seite 1 von 14

t-äre Bäume können - wie Binärbäume - degenerieren, d.h. durch ungünstige Einfügereihenfolge kann ein unausgewogener Baum mit großer Höhe entstehen.

Normalformen von Schaltfunktionen

Erfüllbarkeit und Allgemeingültigkeit

Einführung in die Theoretische Informatik

1. Welche der folgenden Aussagen zur Verifikation nach Hoare ist richtig?

Ersetzbarkeitstheorem

Darstellungsarten für 3D-Körper. Boundary Representation (BRep):

Was ist Logik? Was ist Logik? Aussagenlogik. Wahrheitstabellen. Geschichte der Logik eng verknüpft mit Philosophie

Beweisen mit Semantischen Tableaux

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

Mathematik-Vorkurs für Informatiker Aussagenlogik 1

Relationen und DAGs, starker Zusammenhang

Boolesche Algebra (1)

Formale Systeme. Das Erfu llbarkeitsproblem. Prof. Dr. Bernhard Beckert, WS 2017/2018

Technische Informatik I

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Darstellung von negativen binären Zahlen

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Einführung in die Boolesche Algebra

Computational Logic Algorithmische Logik Boolesche Algebra und Resolution

Aussagenlogik. Übersicht: 1 Teil 1: Syntax und Semantik. 2 Teil 2: Modellierung und Beweise. Aussagenlogik H. Kleine Büning 1/25

Grundlagen der Programmierung

Beispiel Aussagenlogik nach Schöning: Logik...

Aussagenlogik. Spezifikation und Verifikation Kapitel 1. LTL und CTL Syntax & Semantik. Aussagenlogik: Syntax. Aussagenlogik: Syntax (Alternative)

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

Verkettete Datenstrukturen: Bäume

Theorie der Informatik. Theorie der Informatik. 2.1 Äquivalenzen. 2.2 Vereinfachte Schreibweise. 2.3 Normalformen. 2.

Datenstrukturen. einfach verkettete Liste

kanonische disjunktive Normalform (KDNF, DKF) Disjunktion einer Menge von Mintermen mit gleichen Variablen

Transkript:

Hauptseminar Model Checking Binary Decision Diagrams Kristofer Treutwein 23.4.22

Grundlagen Normalformen Als kanonische Darstellungsform für boolesche Terme gibt es verschiedene Normalformen, u.a. die disjunktive Normalform (DNF) konjunktive Normalform (KNF) if-then-else Normalform (INF) if-then-else Operator Die Boolesche Funktion if x then y else y wird dargestellt als x y,y := (x y ) ( x y ) Kofaktoren Bezüglich einer Variablen x hat ein Boolescher Term t zwei Kofaktoren t x= := t[/x] und t x= := t[/x] Der Kofaktor t x= ist also der Term, der entsteht, wenn für jedes Auftreten von x eingesetzt wird. t x= ergibt sich entsprechend. Die beiden Kofaktoren müssen nicht zwingend unterschiedlich sein. Mit dieser Definition ergibt sich die Shannon Expansion t = x t x=, t x= Die Shannon Expansion zerlegt einen Term in zwei Terme, mit jeweils einer Variablen weniger. Durch fortgesetzte Zerlegung kann also jeder Boolesche Term in einen Term aus geschachtelten if-then-else Operationen umgewandelt werden. Im weiteren wird gezeigt, daß diese Darstellungsform eine kanonische Repräsentation Boolescher Terme ergibt.

Decision Tree Wie durch den Namen schon angedeutet, kann man die ifthen-else Operation x t x=, t x= als Entscheidung an der Variablen x deuten. Also kann jede Boolesche Funktion als Entscheidungsbaum dargestellt werden. Ein Entscheidungsbaum ist ein gerichteter Binärbaum, bei dem die inneren Knoten Variablen darstellen, und die Blätter immer oder sind. y 2 y 2 y y y2 y2 Binary Decision Diagrams Im Unterschied zu Decision Trees sind Decision Diagrams gerichtete zyklenfreie Graphen (DAG) mit einer Quelle(Wurzel) und zwei Senken und. Man gewinnt sie in erster Linie durch Verschmelzung der Blätter des Decision Tree zu den zwei Senken. y Es gibt eine Reihe von unterschiedlichen BDD s. _ reduziertes BDD Ein reduziertes BDD (RBDD) beinhaltet keine redundanten y 2 y 2 Knoten und keine redundanten Teilbäume mehr. _ geordnetes BDD Ein BDD heißt geordnet (OBDD), wenn die Variablen einer festen Sortierung gehorchen. Im weiteren werden folgende Funktionen verwendet: var(k) liefert die Variable, die einem Knoten k zugeordnet ist. var(k) liefert oder für einen terminalen Knoten high(k) liefert den Nachfolgerknoten, der über die Kante erreicht wird low(k) liefert entsprechend den über erreichbaren Knoten. Reduktion von BDD s k k k Ein Knoten kann entfernt werden, wenn beide Ausgangskanten denselben Knoten erreichen, wenn high(k)=low(k) Ein Knoten kann entfernt werden, wenn ein anderer Knoten dieselbe Variable darstellt, und beide Knoten dieselben Nachfolger besitzen. var(k)=var(l) und high(k)=high(l) und low(k)=low(l) bedeutet k=l k k 2 k k 2 k k 2 Gibt es keinen Knoten mehr, der auf diese Weise entfernt werden kann, heißt das BDD reduziert. Die Reduktion kann BDD s entscheidend verkleinern.

Ordnung von Variablen Gehorchen die Variablen einer festen Sortierung < <x 3... und gilt für jeden Pfad k, k 2, k 3,... var(k )<var(k 2 )<var(k 3 ), so heißt das BDD geordnet. Die Sortierung der Variablen kann starke Auswirkung auf die Größe des BDD haben. Allerdings ist die Suche nach der optimalen Sortierung NP-vollständig und die heuristische Wahl einer Sortierung kann beliebig schlecht sein. ROBDD s sind kanonische Darstellung Reduzierte und geordnete BDD s des gleichen Booleschen Terms sind - bis auf Isomorphie - immer gleich. Daher ist die Darstellung eine kanonische Repräsentation von Termen. Insbesondere interessant ist die Darstellung einer Tautologie. Sie besitzt nur einen einzigen Knoten, nämlich den terminalen Knoten. Der Test auf Gleichheit zweier Boolescher Terme ist bei gleicher Variablenordnung sehr einfach, es ist einfach der Test auf Gleichheit der ROBDD s. Bei BDD s ohne (oder unterschiedlicher) Variablensortierung ist der Test nicht einfach, er ist nicht einmal auf polynomielle Zeit begrenzbar. Die Ordnung von Variablen hat aber auch Nachteile; bei ungünstigen Termen kann die Größe des OBDD nicht polynomiell begrenzt werden. Boolesche Operationen mit BDD s ITE Für die Implementierung von BDD s wird die Operation ITE(F,G,H) = F G, H benötigt. Ist F keine Variable, kann die Funktion rekursiv eingesetzt werden, um das BDD zu erzeugen: ITE(F,G,H) = ITE (x, ITE(F x=, G x=, H x= ), ITE(F x=, G x=, H x= )) Boolesche Operationen mit bis zu zwei BDD s als Operanden können durch die ITE- Operation folgendermassen dargestellt werden: F ITE(F,, ) F ITE(F,, ) F G ITE(F, G, ) F G ITE(F,, G) F G ITE(F, G, ) F G ITE(F, G, G)

Kripke Strukturen Transitionssysteme können als Boolesche Funktionen und damit auch als BDD dargestellt werden. Für jeden Zustand ergibt sich aus den atomaren Propositionen eine Konjunktion aus den AP s die gelten und den Negationen derer, die nicht gelten. Im Beispiel gibt es zwei Zustände: a b a b s s 2 s : a b s 2 : a b Die Transitionen werden durch zusätzliche Variablen für die Propositionen im Folgezustand angegeben (hier a für a im Folgezustand und b für b) Die drei Transitionen sind also s s 2 : a b a b s 2 s : a b a b s 2 s 2 : a b a b a a' Zusammengeführt werden die einzelnen Transitionsgleichungen zu einer Disjunktion (a b a b ) (a b a b ) (a b a b ) Daraus lässt sich einfach ein ROBDD erstellen. Leider lässt sich auch hier nicht bestimmen, welche Variablensortierung die günstigste ist. b b' Diese Umwandlung setzt voraus, das die Gültigkeit von AP s eindeutig einem Zustand zugeordnet ist. Ist das nicht der Fall, so kann man durch Einführung zusätzlicher Propositionen diese Eindeutigkeit herstellen.