Boolescher Schaltkreis

Aus testwiki
Zur Navigation springen Zur Suche springen

In der theoretischen Informatik (insbesondere in der Komplexitätstheorie) ist ein boolescher Schaltkreis ein mathematisches Modell für digitale Schaltungen.

Formale Definitionen

Gatter

Gatter sind die Bestandteile, aus denen boolesche Schaltkreise aufgebaut sind. Diese bekommen boolesche Eingaben und kombinieren diese zu einem booleschen Wert als Ausgabe. Es gibt verschiedene Typen von Gattern, die Eingaben unterschiedlich kombinieren. Ein Gatter-Typ ist eine boolesche Funktion, die ein k-Tupel von booleschen Werten auf einen booleschen Wert abbildet.

Beispiele für Gatter-Typen:

  • Die Familie von AND-Gattern: Für jede beliebige Stelligkeit k gibt es ein k-Gatter, das genau dann 1 ausgibt, wenn alle Eingaben 1 sind. Für k=2 notieren wir die Gatter auch mit , d. h., =2
  • Die Familie von OR-Gattern: Für jede beliebige Stelligkeit k gibt es ein k-Gatter, das genau dann 1 ausgibt, wenn mindestens eine Eingabe 1 ist. Für k=2 notieren wir die Gatter auch mit , d. h., =2
  • Das Negations-Gatter ¬: Es hat genau eine Eingabe und gibt 1 aus genau dann, wenn die Eingabe 0 ist.

Boolescher Schaltkreis

Ein n-Input- m-Output-boolescher-Schaltkreis über eine Basis Υ von Gattertypen ist ein gerichteter azyklischer Graph G=(V,E). Die Knoten des Graphen werden auch als Gatter bezeichnet.

  • Es gibt n Knoten i1,i2,,inV, die Inputs, die keine eingehenden Kanten haben.
  • Die verbleiben Knoten werden als interne Knoten bezeichnet.
  • Jedem internen Knoten ist ein Gattertyp υΥ zugeordnet, dessen Stelligkeit mit dem In-Grad des Knoten übereinstimmt (wenn notwendig, wird auch die Reihenfolge der eingehenden Kanten festgelegt).
  • Des Weiteren gibt es m Knoten o1,o2,,om, die als Output-Knoten markiert sind.

Eine häufige Wahl für die Basis Υ ist Υ={,,¬} (manchmal auch als Standardbasis bezeichnet), da mit diesen Gatter-Typen alle Booleschen Funktionen gebildet werden können.

Funktion des Schaltkreises

Für eine Eingabe X=(x1,x2,,xn) wird jedem Knoten vV des Schaltkreises C wie folgt ein Wahrheitswert gv(X){0,1} zugewiesen:

  • Jeder Input-Knoten ij bekommt den Wert xj, d. h. gij(X)=xj.
  • Interne Knoten werden so ausgewertet, dass zuerst alle Vorgänger ausgewertet werden, bevor der Knoten selbst ausgewertet wird und diese Werte dann entsprechend dem Gatter-Typ kombiniert werden.
Für einen internen Knoten vV mit k direkten Vorgängern u1,uk und Gatter-Typ υΥ berechnet man gv(X) als
gv(X)=υ(gu1(X),,guk(X))

Die boolesche Funktion fC(X) eines booleschen Schaltkreises C ist dann

fC(X)=(go1(X),,gom(X)).

Begriffe

  • Der Subschaltkreis eines internen Knotens v besteht aus allen Gattern, die Vorgänger von v sind, d. h., von denen es einen gerichteten Pfad zu v gibt.
  • Der Grad einer Basis Υ ist die maximale Stelligkeit ihrer Elemente.
  • Monotoner Schaltkreis: Ein boolescher Schaltkreis C, bei dem die Funktion fC() monoton in dem Sinne ist, dass, wann immer X=(x1,,xn),Y=(y1,,yn),xjyj für 1jn, auch fC(X)jfC(Y)j für 1jm gilt. Oft werden damit auch boolesche Schaltkreise, die nur aus AND und OR Gattern bestehen, bezeichnet.

Komplexität

Boolesche Schaltkreise sind in der Komplexitätstheorie von Bedeutung, insbesondere im Teilgebiet der Schaltkreiskomplexität (Vorlage:EnS).

Komplexitätsmaße für Schaltkreise

Es gibt unterschiedliche Maße für die Komplexität eines Schaltkreises:

  • Schaltkreisgröße (Vorlage:EnS): Die Anzahl der internen Knoten des Schaltkreises.
  • Schaltkreistiefe (Vorlage:EnS): Die maximale Länge eines Pfades von einem Eingabegatter zu einem Ausgangsgatter.
  • Anzahl der Alternierungen von AND und OR Gattern (Vorlage:EnS).
  • Ingrad / Ausgrad des Schaltkreises: Die maximale Anzahl an eingehenden / ausgehenden Kanten eines Knotens des Schaltkreises. Der Ingrad wird durch die Basis Υ beschränkt.

Komplexitätsklassen

Einige bedeutende Komplexitätsklassen können mit Hilfe boolescher Schaltkreise definiert werden.

  • Die Klasse NC und die dazugehörige Hierarchie NCi
  • Die Klasse AC und die dazugehörige Hierarchie ACi

Schaltkreis-Auswertungsproblem

Vorlage:Hauptartikel

Beim Auswerten eines booleschen Schaltkreises (Vorlage:EnS) berechnet man für einen gegebenen Input-String, der allen Input-Gattern einen Wahrheitswert zuordnet, die Werte der Output-Gatter. Das Entscheidungsproblem, ob ein Output-Gatter eines Schaltkreises für eine gegebene Eingabe wahr ist, ist P-vollständig.

Erfüllbarkeitsproblem für Schaltkreise

Vorlage:Hauptartikel

Das Erfüllbarkeitsproblem für Schaltkreise (Vorlage:EnS) betrachtet einen booleschen Schaltkreis C mit Basis Υ={,,¬} und einem einzigen Output-Gatter und fragt, ob es eine Eingabe gibt, die dieses Gatter auf 1 setzt, d. h., ob es ein X gibt, so dass fC(X)=1. Das Erfüllbarkeitsproblem für Schaltkreise ist NP-vollständig.

Literatur