Circuiti logici combinatori e teoria del calcolo


8

Sto cercando di collegare i circuiti logici combinatori (solo computer basati su porte logiche) con tutto ciò che ho appreso di recente in Teoria del calcolo.

Mi chiedevo se i circuiti logici combinatori possano implementare calcoli allo stesso modo delle macchine a stati finiti. Sembrano radicalmente diversi:

Le macchine a stati finiti, tuttavia, hanno una memoria ben definita nella forma degli stati in cui può trovarsi. I circuiti logici combinatori, tuttavia, non hanno una memoria ben definita, quindi per implementare algoritmi che necessitano di memoria che in qualche modo usano strano metodo di connessione seriale (vedere come del precedente sommatore è collegato a del sommatore corrente nell'immagine qui sotto). CoutCion

Per quanto radicalmente diversi possano sembrare, entrambi sembrano fare calcoli. Ad esempio, entrambi possono implementare un algoritmo per l'addizione binaria (e persino la moltiplicazione binaria), tuttavia le diverse implementazioni potrebbero essere:

FSM:
inserisci qui la descrizione dell'immagine

Combinational Logic Circuit (C, come in e , sta per Carry):CionCout
inserisci qui la descrizione dell'immagine

Sto anche pensando (anche se ancora molto incerto) che possiamo convertire ogni FSM in un corrispondente circuito logico combinatorio.

Quindi mi sto chiedendo:

Combinational Logic Circuits può anche essere considerato un tipo istantaneo di modello di calcolo? Possiamo applicare tutti i concetti che apprendiamo in Teoria della computabilità e Teoria della complessità computazionale, come la complessità dello spazio e la computabilità, ad esso?

Da un lato, sembra che non si adattino come modello di calcolo perché non hanno operazioni elementari (come lettura / scrittura di un nastro, riduzione delle funzioni, passaggi per la ricerca di prove del paradigma di programmazione logica), implementano i loro calcoli istantaneamente.
D'altra parte, sembrano essere adatti come modello di calcolo perché possiamo modellare con loro tutti i tipi di calcolo (l'aggiunta binaria è un esempio) e possono essere visualizzati in modo astratto (concentrandosi solo sulle tabelle di verità e le porte logiche e dimenticare il circuito fisico che potrebbe implementarlo).
Allora, cosa ne pensate ?

Inoltre, se può davvero essere considerato come un modello di calcolo (tipo istantaneo), voi ragazzi avete qualche esempio di altro modello di calcolo simile (anche un tipo istantaneo)?

Grazie mille in anticipo


Potresti voler dare un'occhiata a questo: stackoverflow.com/questions/4908893/…
Utente

Risposte:


9

I circuiti logici sono comuni nella teoria della complessità, dove si chiamano circuiti dei nomi . Esiste una grande differenza tra circuiti e modelli di calcolo come la macchina di Turing: ogni circuito può gestire solo ingressi di dimensioni fisse. Per risolvere questo problema, sotto il modello di calcolo del circuito, per ogni lunghezza di ingresson c'è un circuito Cne insieme calcolano una funzione su stringhe di lunghezza arbitraria. Questo modello di calcolo, come detto, è troppo forte: può calcolare funzioni non calcolabili, anzi tutte le funzioni. Il problema è che una sequenza infinita di circuiti non ha necessariamente una descrizione finita. Per risolvere questo problema, di solito chiediamo che i circuiti siano uniformi , cioè che siano generati da una macchina di Turing, che in ingresson genera Cn.

Il modello di circuito è particolarmente popolare nella teoria della complessità, anche senza la limitazione dell'uniformità. Il motivo è la seguente osservazione: una macchina di Turing che gira in tempo polinomiale può essere convertita in una sequenza (uniforme) di circuiti di dimensioni polinomiali, usando essenzialmente le idee del teorema di Cook (che mostra che SAT è NP-completo). Pertanto, se si desidera dimostrare che un determinato problema non può essere risolto in tempi polinomiali, è sufficiente dimostrare che non può essere risolto da circuiti di dimensioni polinomiali.


Penso di capire l'essenza di questa risposta. Correggimi se sbaglio: la complessità temporale di una macchina di Turing limita la complessità spaziale di un analogo macchinario di circuito. Ma non capisco questa affermazione: "Il modello di calcolo di [The circuit], come affermato, è troppo forte: può calcolare funzioni non calcolabili, anzi tutte le funzioni". Il modello stesso è troppo forte? O la tua affermazione iniziale del modello è più forte di quanto non lo sia attualmente il modello?
kdbanman,

I circuiti senza restrizioni sono un modello computazionale troppo forte. Devi limitarli in qualche modo - o limitare la loro dimensione o struttura, o chiedere che siano uniformi o entrambi.
Yuval Filmus,

Perché limitare il modello, però? A quale vincolo devono conformarsi? Se sono un costrutto teorico, allora non possono fare quello che ci piace?
kdbanman,

Possono, ma non sono utili per la teoria della complessità, poiché possono calcolare ogni possibile funzione.
Yuval Filmus,
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.