Spiegazione delle classi P e NP tramite lambda-calcolo


36

Nell'introduzione e nella spiegazione Classi di complessità P e NP spesso fornite tramite la macchina di Turing. Uno dei modelli di calcolo è il lambda-calcolo. Capisco, che tutti i modelli di calcolo sono equivalenti (e se possiamo introdurre qualcosa in termini di macchina di Turing, possiamo introdurlo in termini di qualsiasi modello di calcolo), ma non ho mai visto le spiegazioni sulle classi di complessità P e NP attraverso lambda-calcolo . Qualcuno può spiegare le nozioni di classe di complessità P e NP senza la macchina di Turing e solo con il calcolo lambda come modello di calcolo.


5
Il loro potere computazionale è equivalente solo per funzioni su numeri naturali, non per tipi più alti o altre impostazioni.
Kaveh,

La completezza di Turing è a volte un concetto più teorico per mostrare una connessione, ma le "conversioni" più applicate tra i sistemi completi di TM non sono sempre effettivamente realizzate nella pratica, cioè a volte più sulle prove dell'esistenza ...
vzn,

Risposte:


40

Le macchine di Turing e il calcolo λ sono equivalenti solo alle funzioni NN che possono definire.

Dal punto di vista della complessità computazionale sembrano comportarsi diversamente. Il motivo principale per cui le persone usano le macchine di Turing e non il calcolo del λ per ragionare sulla complessità è che l'uso del calcolo del λ porta ingenuamente a misure di complessità non realistiche, perché è possibile copiare liberamente termini (di dimensione arbitraria) in singoli passaggi di riduzione β , ad esempio (λx.xxx)MMMM.In altre parole, singole fasi di riduzione in λ-calculus sono un modello di costo scadente. Al contrario, i singoli passaggi di riduzione della macchina di Turing funzionano alla grande (nel senso di essere buoni predittori della durata del programma nel mondo reale).

Non è noto come recuperare completamente la teoria della complessità convenzionale basata sulla macchina di Turing nel calcolo λ . In una recente svolta (2014) Accattoli e Dal Lago sono riusciti a dimostrare che a grandi classi di complessità temporale come P , NP ed EXP può essere data una formulazione di calcoli λ naturali . Ma classi più piccole come O(n2) o O(nlogn) non può essere presentato utilizzando le tecniche Accattoli / Dal Lago.

Non è noto come recuperare la complessità dello spazio convenzionale usando il calcolo λ .


4
Sento il bisogno di chiarire qui: non esiste una "tecnica" speciale che Accattoli e Dal Lago usano per "presentare" le classi temporali. La presentazione è "ingenuo", uno: definire come la classe dei linguaggi decidibile da un λ -termine in f ( n ) β -riduzione passi, sotto qualsiasi strategia di riduzione standard ( ad esempio, più a sinistra -outermost). Accattoli e Dal Lago hanno mostrato, usando tecniche provenienti dalla logica lineare, che esiste un polinomio p tale che λ T I M E ( fλTIME(f(n))λf(n) βp .λTIME(f(n))=TIME(p(f(n))
Damiano Mazza,

@DamianoMazza Sì, è vero, quello che volevo dire è che non penso che le tecniche utilizzate per mostrare questo risultato possano essere usate per mostrare ad esempio . λTIME(n2)=TIME(n2)
Martin Berger,

3
Va bene, ho capito. In realtà, la mia ipotesi è che : classi di complessità come T I M E ( n 2 ) o T I M E ( n log n ) non sono robuste , non ci si può aspettare che siano stabili sotto i cambiamenti nel modello computazionale (questo è notoriamente il caso anche se ci atteniamo alle macchine di Turing, ad esempio nastro singolo o nastro multiplo).λTIME(n2)TIME(n2)TIME(n2)TIME(nlogn)
Damiano Mazza,

3
@DamianoMazza Sono d'accordo, allo stesso modo per la dimensione dell'alfabeto scelto. Ma un algoritmo che gira in su una macchina n -tape può essere simulato in 5 k f 2 ( n ) su una macchina a 1 nastro, un modesto ingrandimento quadratico. Qual è lo scoppio dell'attuale traduzione di Accattoli e Dal Lago? Non ricordo se lo dichiarano esplicitamente. f(n)n5kf2(n)
Martin Berger,

1
@Jake L'articolo citato parla della beta-normalizzazione (vedi pagina due). Risultati simili erano già noti per altre forme di riduzione, come la riduzione debole (ovvero, call-by-value) —vedi Dal Lago & Martini, 2008 (discussi in quel documento e in cstheory.stackexchange.com/a/397/989 ).
Blaisorblade,

12

Incollo parte di una risposta che ho scritto per un'altra domanda :

La complessità computazionale implicita mira a caratterizzare le classi di complessità mediante linguaggi dedicati. I primi risultati come il Teorema di Bellantoni-Cook sono stati dichiarati in termini di funzioni ricorsive in , ma i risultati più recenti utilizzano il vocabolario e le tecniche del calcolo λ . Vedi questa breve introduzione alla complessità computazionale implicita per ulteriori informazioni e indicazioni, o gli atti dei seminari DICE .μλ

Esistono caratterizzazioni di (almeno) per mezzo del calcolo λ .FPλ


5

PNP

PNP

Alcune ulteriori caratterizzazioni di classi di complessità computazionale in termini di complessità algoritmica (Kolmogorov-Solomonov) possono essere trovate (per esempio) qui e qui .

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.