03.09.2013 Aufrufe

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitaet-WS-2010.. - Parallele Systeme

Komplexitaet-WS-2010.. - Parallele Systeme

MEHR ANZEIGEN
WENIGER ANZEIGEN

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)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!