Boolesche Schaltung

Im Computerkomplexitätstheorie und Komplexität der Schaltung, a Boolesche Schaltung ist eine mathematische Modell zum Kombination Digitale Logikkreise. EIN formelle Sprache Kann von einer Familie von Booleschen Schaltungen entschieden werden, eine Schaltung für jede mögliche Eingangslänge.
Boolesche Schaltungen werden in Bezug auf die definiert Logik -Tore Sie beinhalten. Zum Beispiel kann eine Schaltung enthalten sein binär Und und oder Tore und einstellig Keine Tore oder vollständig durch binäre beschrieben werden NAND -Tore. Jedes Tor entspricht einigen Boolesche Funktion das braucht eine feste Anzahl von Bits als Eingang und Ausgabe ein einzelnes Bit.
Boolesche Schaltkreise bieten ein Modell für viele in verwendete digitale Komponenten in Technische Informatik, einschließlich Multiplexer, Addierer, und Arithmetische Logikeinheiten, aber sie schließen aus Sequentielle Logik. Sie sind eine Abstraktion, die viele Aspekte, die für die Gestaltung realer digitaler Logikschaltungen relevant sind Metastabilität, ausschwärmen, Glitches, Energieverbrauch, und Ausbreitungsverzögerung Variabilität.
Formale Definition
Bei einer formalen Definition von Booleschen Schaltungen beginnt Vollmer mit der Definition einer Basis als festgelegt B von booleschen Funktionen, entsprechend den im Schaltungsmodell zulässigen Toren. Eine boolesche Schaltung über eine Basis B, mit n Eingaben und m Ausgänge werden dann als endliches definiert Regie acyclische Graphen. Jeder Scheitelpunkt entspricht entweder einer Basisfunktion oder einer der Eingänge, und es gibt einen Satz von genau m Knoten, die als Ausgänge gekennzeichnet sind.[1]: 8 Die Kanten müssen auch eine gewisse Bestellung haben, um zwischen verschiedenen Argumenten für dieselbe boolesche Funktion zu unterscheiden.[1]: 9
Als Sonderfall a Aussageformel oder Boolescher Ausdruck ist eine Boolesche Schaltung mit einem einzelnen Ausgangsknoten, bei dem jeder andere Knoten hat ausschwärmen von 1. Somit kann eine Boolesche Schaltung als Generalisierung angesehen werden, die gemeinsam genutzte Subformulas und mehrere Ausgänge ermöglicht.
Eine gemeinsame Grundlage für Boolesche Schaltungen ist das Set {UND, ODER, NICHT}, welches ist funktionell vollständig, ich. e. aus denen alle anderen Booleschen Funktionen konstruiert werden können.
Rechenkomplexität
Hintergrund
Eine bestimmte Schaltung wirkt nur auf Eingänge mit fester Größe. Jedoch, formelle Sprachen (das String-basiert Darstellungen von Entscheidungsprobleme) enthalten Zeichenfolgen unterschiedlicher Längen, sodass Sprachen nicht vollständig von einem einzigen Schaltkreis erfasst werden können (im Gegensatz zum Turing -Maschinenmodell, bei dem eine Sprache vollständig von einer einzelnen Turing -Maschine beschrieben wird). Eine Sprache wird stattdessen durch a dargestellt Kreislauffamilie. Eine Schaltkreisfamilie ist eine unendliche Liste von Schaltungen , wo hat Eingabevariablen. Eine Schaltkreisfamilie soll eine Sprache entscheiden Wenn, für jede Zeichenfolge , ist in der Sprache dann und nur dann, wenn , wo ist die Länge von . Mit anderen Worten, eine Sprache ist die Reihe von Zeichenfolgen, die, wenn sie auf die Stromkreise angewendet werden, die ihren Längen entsprechen, auf 1 bewerten.[2]: 354
Komplexitätsmaßnahmen
Mehrere wichtige Komplexitätsmaßnahmen kann auf booleschen Schaltungen definiert werden, einschließlich Schaltkreis, Schaltungsgröße und der Anzahl der Wechsel zwischen und Toren und oder Toren. Beispielsweise ist die Größenkomplexität eines Booleschen Schaltkreises die Anzahl der Tore in der Schaltung.
Es besteht eine natürliche Verbindung zwischen Komplexität der Schaltungsgröße und Zeitkomplexität.[2]: 355 Intuitiv erfordert eine Sprache mit geringer Zeitkomplexität (dh relativ wenige sequenzielle Operationen auf a Turing Maschine)) hat auch eine kleine Kreislaufkomplexität (dh relativ wenige boolesche Operationen erfordert). Formal kann gezeigt werden, dass, wenn eine Sprache in ist , wo ist eine Funktion dann hat es Schaltungskomplexität .
Komplexitätsklassen
Mehrere wichtige Komplexitätsklassen werden in Bezug auf boolesche Schaltungen definiert. Der allgemeinste davon ist P/poly, die Reihe von Sprachen, die durch polynomiale Kreisträgerfamilien entschlossen sind. Es folgt direkt aus der Tatsache, dass Sprachen in Schaltkomplexität haben das PP/poly. Mit anderen Worten, jedes Problem, das in der Polynomzeit durch eine deterministische Turing-Maschine berechnet werden kann, kann auch von einer Polynomgröße berechnet werden. Es ist ferner der Fall, dass die Aufnahme richtig ist (d. H. P.P/Poly), weil es nicht entschlossene Probleme gibt, die in P/Poly liegen. P/Poly hat eine Reihe von Eigenschaften, die es bei der Untersuchung der Beziehungen zwischen Komplexitätsklassen sehr nützlich machen. Insbesondere ist es hilfreich bei der Untersuchung von Problemen im Zusammenhang mit P gegen NP. Zum Beispiel, wenn es eine Sprache in NP gibt, die nicht in p/poly ist, dann pNp.[3]: 286 P/Poly hilft auch, die Eigenschaften des Polynomhierarchie. Zum Beispiel wenn Np ⊆ P/Poly, dann kollabiert der pH -Wert zu . Eine vollständige Beschreibung der Beziehungen zwischen P/Poly und anderen Komplexitätsklassen finden Sie in "Bedeutung von P/Poly". P/Poly hat auch das interessante Merkmal, dass es äquivalent definiert werden kann als die Klasse von Sprachen, die von einer Polynom-Zeit-Turing-Maschine mit einem polynomartigen Raub erkannt werden Beratungsfunktion.
Zwei Unterklassen von P/Poly, die selbst interessante Eigenschaften haben, sind NC und AC. Diese Klassen werden nicht nur in Bezug auf ihre Schaltungsgröße definiert, sondern auch in Bezug auf ihre Tiefe. Die Tiefe einer Schaltung ist die Länge der längsten gerichteter Weg Von einem Eingangsknoten zum Ausgangsknoten. Die Klasse NC ist die Reihe von Sprachen, die von Leiterfamilien gelöst werden können, die nicht nur auf Polynomgröße, sondern auch auf haben können Polylogarithmic Tiefe. Der Klassen-AC ist ähnlich wie NC definiert, aber die Gates dürfen einen unbegrenzten Fan-In haben (dh das und und und oder Tore können auf mehr als zwei Bits angewendet werden). NC ist eine wichtige Klasse, da sich herausstellt, dass sie die Klasse von Sprachen repräsentiert, die effizient sind Parallelalgorithmen.
Schaltungsbewertung
Das Schaltungswertproblem - Das Problem der Berechnung der Ausgabe eines bestimmten Booleschen Schaltkreises auf einem bestimmten Eingang Saite - ist ein P-Complete Entscheidungsproblem.[3]: 119 Daher wird dieses Problem als "von Natur aus sequentiell" in dem Sinne angesehen, dass es wahrscheinlich keinen effizienten, hochparallele Algorithmus gibt, der das Problem löst.
Vollständigkeit
Logikkreise sind physikalische Darstellung einfacher logischer Operationen und oder nicht (und deren Kombinationen, wie z. boolsche Algebra. Sie sind im Sinne vollständig, dass sie jeden deterministischen Algorithmus ausführen können. Es kommt jedoch vor, dass dies nicht alles ist, was es gibt. In der physikalischen Welt begegnen wir auch Zufälligkeit, die in kleinen Systemen bemerkenswert sind, die von Quantisierungseffekten bestimmt werden, was durch die Theorie der Quantenmechanik beschrieben wird. Logikkreise können keine Zufälligkeit erzeugen und in diesem Sinne einen unvollständigen Logiksatz bilden. Abhilfe dazu findet sich beim Hinzufügen eines Ad-hoc-Zufallsgenerators zu Logiknetzwerken oder Computern wie in Probabilistische Turing -Maschine. Eine kürzlich durchgeführte Arbeit [4] hat ein theoretisches Konzept einer von Natur aus zufälligen Logikschaltung namens eingeführt Zufälliger Flip-Flop, was den Satz vervollständigt. Es packt bequem Zufälligkeit und ist mit deterministischen booleschen Logikschaltungen interoperabel. Eine algebraische Struktur, die der Booleschen Algebra entspricht und die zugehörigen Methoden des Schaltungskonstruktons und der Reduktion für den erweiterten Satz noch zugehörigen, ist jedoch noch unbekannt.
Siehe auch
Fußnoten
- ^ a b Vollmer, Heribert (1999). Einführung in die Komplexität der Schaltung. Berlin: Springer. ISBN 3-540-64310-9.
- ^ a b Sipser, Michael (2006). Introduction to the Theory of Computation (2. Aufl.). USA: Thomson -Kurs -Technologie. ISBN 978-0-534-95097-2.
- ^ a b Arora, Sanjeev; Barak, Boaz (2009). Rechenkomplexität: ein moderner Ansatz. Cambridge University Press. ISBN 978-0-521-42426-4.
- ^ Stipčević, Mario; Batelić, Mateja (2022). "Entropieüberlegungen in verbesserten Schaltungen für einen biologisch inspirierten zufälligen Impulscomputer". Wissenschaftliche Berichte. 12: 115. doi:10.1038/s41598-021-04177-9.