Collegamento tra cancelli NAND e completezza di Turing


14

So che le porte NAND possono essere utilizzate per creare circuiti che implementano ogni tabella di verità e che i moderni computer sono costituiti da porte NAND. Qual è il legame teorico tra le porte NAND e la completezza di Turing? Mi sembra che i circuiti di gate NAND siano più vicini agli automi finiti rispetto alle macchine Turing. La mia intuizione è che posso costruire infradito, e quindi registri e memoria, al di fuori delle porte della NAND, e la memoria illimitata è una proprietà cruciale dei sistemi completi di Turing. Sto cercando una spiegazione più teorica o matematica, o suggerimenti su cosa leggere.


1
"I computer moderni sono costruiti con porte NAND" Sono abbastanza sicuro che sia falso. Le librerie di celle tipiche per i progetti digitali contengono decine quando non centinaia di porte e variano in funzione (cercare porte AOI), nonché in fan-in e fan-out.
Programmatore

Hai ragione, intendevo in senso teorico che tutta la logica digitale può essere costruita su NANDS, che sono considerate funzionalmente complete
bsm

Risposte:


9

C'è davvero poca connessione. Per una comprensione approfondita, lasciami spiegare la connessione tra programmi e circuiti .

Un programma (o algoritmo o macchina ) è un meccanismo per calcolare una funzione. Per sicurezza, supponiamo che l' input sia una stringa binaria e che l' output sia un output booleano b . La dimensione dell'input è potenzialmente illimitata. Un esempio è un programma che determina se l'input è la codifica binaria di un numero primo.xb

Un circuito (booleano) è una raccolta di istruzioni per calcolare alcune funzioni finite . Possiamo immaginare il circuito come un circuito elettrico, o pensarlo come una sequenza di istruzioni (questa visione è chiamata confusamente un programma a linea retta ). Concretamente, possiamo supporre che l' input sia una stringa binaria di lunghezza n e che l' output sia booleano. Un esempio è un circuito che determina se l'ingresso codifica un numero primo (proprio come prima, solo ora l'ingresso deve essere di lunghezza n ).x nn

Possiamo convertire un programma in un circuito P n che simula P su ingressi di lunghezza n . La sequenza corrispondente dei circuiti P 0 , P 1 , P 2 , ... non è arbitraria - possono essere tutti costruiti da un programma che ha dato n uscite P n . Chiamiamo una tale sequenza di circuiti un circuito uniforme (confusamente, spesso pensiamo alla sequenza come un "singolo" circuito P n per un n indefinito ).PPnPnP0,P1,P2,nPnPnn

Non tutte le sequenze di circuiti sono uniformi. In effetti, una sequenza di circuiti può calcolare ogni funzione dalle stringhe al booleano, calcolabile o non calcolabile! Tuttavia, nella teoria della complessità siamo interessati a tali modelli non uniformi in cui i circuiti sono limitati. Ad esempio, la domanda P = NP afferma che i problemi NP-completi non possono essere risolti con algoritmi temporali polinomiali. Ciò implica che i problemi NP-completi non possono essere risolti da circuiti uniformi di dimensioni polinomiali. Si ipotizza inoltre che i problemi NP-completi non possano essere risolti da circuiti di dimensioni polinomiali senza il requisito di uniformità .

I modelli di calcolo completi di Turing sono modelli che realizzano tutte le funzioni calcolabili (e non di più). Al contrario, sistemi completi di gate (come AND, OR, NOT o NAND) consentono di calcolare funzioni finite arbitrarie utilizzando circuiti costituiti da questi gate. Tali sistemi completi possono calcolare funzioni completamente arbitrarie usando sequenze (illimitate) di circuiti.


Puoi spiegare "una sequenza di circuiti può calcolare ogni funzione dalle stringhe al booleano, calcolabile o non calcolabile"? La loro capacità di calcolare funzioni non computabili (dal punto di vista della completezza di Turing) deriva dalla restrizione sulla dimensione dell'input?
bsm,

2
nn

Puoi spiegarlo, @YuvalFilmus? Sembra strano che una funzione incontestabile come la complessità di Kolmogorov sarebbe improvvisamente "calcolabile" usando i circuiti.
Cort Ammon - Ripristina Monica il

2
fn

3

In effetti hai ragione. Un circuito logico combinatorio equivale a un automa finito. I cancelli NAND non li rendono più potenti; sono usati perché è semplicemente più economico costruire un circuito logico digitale con un solo tipo di gate piuttosto che costruirlo con tutti i diversi gate. In effetti, una porta NAND può essere costruita solo da una porta AND e una porta NOT. Le infradito rendono il circuito di Turing completo. Ecco una chiave pratica:

Circuiti combinatori ~ Automi finiti ~ Lingue regolari ~ Espressioni regolari ~ Calcolo proposizionale ~ Programmi a linea retta

Circuiti sequenziali ~ Macchine di Turing ~ Linguaggi ricorsivamente enumerabili ~ Calcolo predicato ~ ricorsiveμ

Se vuoi saperne di più, c'è un ottimo libro che puoi scaricare gratuitamente in formato PDF che spiega tutto questo:

https://cs.brown.edu/people/jes/book/pdfs/ModelsOfComputation.pdf

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.