Komplexitaet-WS-2010.. - Parallele Systeme
Komplexitaet-WS-2010.. - Parallele Systeme
Komplexitaet-WS-2010.. - Parallele Systeme
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
124 Vorlesungsskript von E. Best / Stand: 17. Januar 2011<br />
Definition 5.1.4 Berechnung durch einen Booleschen Schaltkreis<br />
Sei f: {0,1} n → {0,1} m Boolesche Funktion mit f = (f1,...,fm) und fj: {0,1} n → {0,1} (1 ≤ j ≤ m).<br />
Ein Boolescher Schaltkreis C = (g1,...,gk) berechnet f genau dann, wenn für alle j, 1 ≤ j ≤ m, ein i,<br />
1 ≤ i ≤ k, existiert mit fj = result(gi). 5.1.4<br />
Beispiel: (Abbildung 5.1) f = (f1,f2,f3), m = 3, n = 4.<br />
f1 = x1 ∧(x2 ∨x3) = result(∧,x1,(∨,x2,x3))<br />
f2 = ...<br />
f3 = ...<br />
Definition 5.1.5 Größe und Tiefe eines Booleschen Schaltkreises<br />
Die Größe (auch: die Kosten) eines Schaltkreises ist die Anzahl der (internen) Bausteine. Die Boolesche<br />
Größe c(f) einer Booleschen Funktion f ist die Größe eines kleinsten ( ” billigsten“) Schaltkreises, der f<br />
berechnet.<br />
Die Tiefe (auch: Zeit oder Zeitbedarf) eines Schaltkreises ist die Länge (gemessen in der Anzahl der<br />
Gatter) eines längsten gerichteten Pfades im Schaltkreis. Die Boolesche Tiefe d(f) einer Booleschen<br />
Funktion f ist die Tiefe eines flachsten (d.h. schnellsten) Schaltkreises, der f berechnet. 5.1.5<br />
C steht für ” Circuit“, c für ” cost“ und d für ” depth“.<br />
Beispiel (Abbildung 5.1): Größe 6, Tiefe 4.<br />
Die Tiefe entspricht dem, was für Turingmaschinen bisher als ” Zeitbedarf“ definiert war. Die Größe ist<br />
jedoch ein neues Komplexitätsmaß und entspricht ungefähr dem Hardwareverbrauch.<br />
Zu einem gegebenen Schaltkreis sind dessen Größe und Tiefe durch Abzählen im Allgemeinen leicht<br />
zu bestimmen. Zu einer gegebenen Booleschen Funktion sind deren Boolesche Größe bzw. Boolesche<br />
Tiefe im Allgemeinen jedoch sehr schwer bestimmbar, denn es werden die entsprechenden Minima über<br />
alle möglichen Schaltkreise gebildet. Zudem muss ein kleinster“ Schaltkreis nicht unbedingt auch ein<br />
”<br />
” flachster“ sein, und umgekehrt.<br />
5.2 Einige Beispiele<br />
5.2.1 Addition von zwei Variablen<br />
Wir betrachten die Funktion s: {0,1} 2 → {0,1} 2 , die die partielle Summe s0 und den Übertrag s1 liefern<br />
soll. Schaltkreise dazu sind in Abbildung 5.2 (separat für s0 und s1) und zusammenfassend (für s) in<br />
Abbildung 5.3 angegeben.<br />
x1 x2 s1 (Übertrag) s0 (Summe)<br />
0 0 0 0<br />
0 1 0 1<br />
1 0 0 1<br />
1 1 1 0<br />
s0(x1,x2) = (x1 ∧x2)∨(x1 ∧x2)<br />
s1(x1,x2) = (x1 ∧x2)