Interactive NoteBook (c) Dr. Stefan Bosse

Boolesche Funktionen und Binäre Entscheidungsbäume

Name
Matrikelnummer

Einführung

Lese Folien 27 bis 65 hier Modul C.

Boolesche Funktionen

Eine boolesche Funktion f(a,b,c,..) bildet eine Menge von n Eingabevariablen auf m Ausgabevariablen ab:

\[ f(x_1,x_2,x_3,..,x_n) : B^n \rightarrow B^m \]

Boolesche Funktionen bestehen aus Variablen, Verknüpfungen, und Werten.


Im ersten Beispiel können Boolesche Funktionen algebraisch und symbolisch automatisch evaluiert und vereinfacht werden:

Boolesche Funktionsevaluierung (Symbolische Vereinfachung)

 ▸ 
 ✗ 

Aufgabe.

Lösung

Im nächsten Beispiel kann aus einer booleschen Funktion eine Funktionstabelle erstellt werden.

Boolesche Funktionsevaluierung (Erzeugung Tabelle)

 ▸ 
 ✗ 

Aufgabe.

Teste ob die automatische Reduktion korrekt ist anhand der vorherigen Aufgabenbeispiele und dem Vergleich über die Funktionstabelle. Dazu kann im Tabellengenerator die Syntax y1=a+b+c y2=a+b verwendet werden (multiple BF, je eine BF pro Zeile).


Erstelle im nächsten Schritt die DNF und KNF Terme in folgender Funktionstabelle (jeweils entsprechend für y=1/0 Zeilen):

Hier kann die Funktion auf Korrektheit getestet werden:

Test 1
 ▸ 
 ✗ 

Entscheidungsbäume

Einführung

Lese Folien 66 bis 78 hier Modul C.

\[ \begin{gathered} f(x) = {\text{if x = 1 then }}{{\text{f}}_{\text{1}}}{\text{ else }}{{\text{f}}_{\text{0}}} = \left\{ {\begin{array}{*{20}{c}} {{f_1},x = 1} \\ {{f_0},x = 0} \end{array}} \right. \hfill \\ f(x) = (x \Rightarrow {f_1}) \vee (x \Rightarrow {f_0}) \hfill \\ \end{gathered} \]

Erzeugung

(a+b+c)|a

Definition 1. Shanon Zerlegung
\[ \begin{gathered} f(a,b,c,..):(a,b,c,..) \to y \hfill \\ \operatorname{var} (f) = \{ a,b,c,..\} \hfill \\ f{|_{x \in \operatorname{var} (f)}} = {f_0}{|_{x = 0}} \vee {f_1}{|_{x = 1}} \hfill \\ \end{gathered} \]

Im folgenden Beispiel kann ein Funktionsausdruck ε nach einer Variable xvars(ε) zerlegt werden:

Shanon Zerlegung

 ▸ 
 ✗ 

Für folgende Aufgabe kann nachfolgende Graphenvisualisierung genutzt werden.

Aufgabe.

Leite für die Funktion f(a,b,c,d)=!a*!b*!c+!a*b*!c+a*b*!c+a*!b*c*d+!a*b*c einen BDD ab.

  1. Auswertereihenfolge der Variablen ist [a,b,c,d]
  2. Auswertereihenfolge der Variablen ist [d,b,a,c]
  3. Auswertereihenfolge der Variablen ist [d,c,b,a]

Wie unterscheiden sich die Bäume? Gibt die Höhe (Anzahl der Ebenen) und die Anzahl der Knoten an.


Lösung

BDD Konstruktion

 ▸ 
 ✗ 

Reduktion

BDD Reduktion

 ▸ 
 ✗ 

Frage. Welche Reduktionen wurden im obigen Beispiel durchgeführt (ABC)?

Reduziere folgenden BDD und füge ihn zu dem nicht reduzierten Baum:

Aufgabe BDD Reduktion

 ▸ 
 ✗ 


Autor: Stefan Bosse
Version: 2.12.2019 Draft!
Tutorial 2