Es gibt in der Tat wenig Verbindung. Lassen Sie mich zum besseren Verständnis den Zusammenhang zwischen Programmen und Schaltkreisen erläutern .
Ein Programm (oder Algorithmus oder Maschine ) ist ein Mechanismus zum Berechnen einer Funktion. Nehmen wir zur Sicherheit an, dass die Eingabe eine binäre Zeichenfolge und die Ausgabe eine boolesche Ausgabe . Die Größe der Eingabe ist möglicherweise unbegrenzt. Ein Beispiel ist ein Programm, das bestimmt, ob die Eingabe die binäre Codierung einer Primzahl ist.xb
x nn
PPnPnP0, P1, P2, …nPnPnn
Nicht jede Folge von Schaltkreisen ist einheitlich. In der Tat kann eine Folge von Schaltkreisen jede Funktion von Strings bis zu Booleschen, berechenbaren oder nicht berechenbaren, berechnen! In der Komplexitätstheorie interessieren uns jedoch solche uneinheitlichen Modelle, bei denen die Schaltkreise eingeschränkt sind. Zum Beispiel besagt die Frage P = NP, dass NP-vollständige Probleme nicht durch polynomielle Zeitalgorithmen gelöst werden können. Dies impliziert, dass NP-vollständige Probleme nicht durch Polynomgrößen-Einheitsschaltungen gelöst werden können. Es wird außerdem vermutet, dass NP-vollständige Probleme nicht durch Polynomgrößenschaltungen ohne die Forderung nach Gleichförmigkeit gelöst werden können .
Turing-Complete-Berechnungsmodelle sind Modelle, die alle berechenbaren Funktionen (und nicht mehr) realisieren. Im Gegensatz dazu ermöglichen vollständige Gatesysteme (wie AND, OR, NOT oder NAND) die Berechnung beliebiger endlicher Funktionen unter Verwendung von Schaltungen, die aus diesen Gates bestehen. Solche vollständigen Systeme können unter Verwendung von (uneingeschränkten) Folgen von Schaltkreisen vollständig beliebige Funktionen berechnen.