Formulazione equivalente della teoria della complessità in Lambda Calculus?


11

Nella teoria della complessità, la definizione di complessità temporale e spaziale fa riferimento a una macchina di Turing universale: resp. il numero di passaggi prima dell'arresto e il numero di celle sul nastro toccato.

Data la tesi di Church-Turing, dovrebbe essere possibile definire la complessità anche in termini di calcolo lambda.

La mia idea intuitiva è che la complessità temporale può essere espressa come il numero di riduzioni β (possiamo definire la conversione α assente usando gli indici di De Brujin, e η è a malapena una riduzione comunque), mentre la complessità spaziale può essere definita come il numero di simboli (λ, indici DB, simboli "applica") nella riduzione maggiore .

È corretto? In tal caso, dove posso ottenere un riferimento? In caso contrario, come sbaglio?


Risposte:


15

Come fai notare, il calcolo λ ha una nozione apparentemente semplice di complessità temporale: basta contare il numero di passi di riduzione β. Sfortunatamente, le cose non sono semplici. Dovremmo chiedere:

 Is counting β-reduction steps a good complexity measure?

Per rispondere a questa domanda, dovremmo chiarire in primo luogo cosa intendiamo per misura della complessità. Una buona risposta è data dalla tesi di Slot e van Emde Boas : qualsiasi buona misura di complessità dovrebbe avere una relazione polinomiale con la nozione canonica di complessità temporale definita usando le macchine di Turing. In altre parole, dovrebbe esserci una ragionevole codifica tr (.) Dai termini λ-calcolo alle macchine di Turing, tale che per ogni termine di dimensione: riduce a un valore in esattamente quando riduce a un valore in .M|M|Mpoly(|M|)tr(M)poly(|tr(M)|)

Per molto tempo, non era chiaro se ciò potesse essere ottenuto nel calcolo λ. I problemi principali sono i seguenti.

  • Esistono termini che producono forme normali in un numero polinomiale di passaggi di dimensioni esponenziali. Vedi (1). Anche scrivere le forme normali richiede tempo esponenziale.

  • Anche la strategia di riduzione scelta svolge un ruolo importante. Ad esempio esiste una famiglia di termini che riduce in un numero polinomiale di β-step paralleli (nel senso di riduzione λ ottimale (2), ma la cui complessità è non elementare (3, 4).

L'articolo (1) chiarisce il problema mostrando una codifica ragionevole che preserva la classe di complessità PTIME ipotizzando riduzioni Call-By-Name più a sinistra. L'intuizione chiave sembra essere che l'esplosione esponenziale può avvenire solo per ragioni poco interessanti che possono essere sconfitte dalla corretta condivisione dei sotto-termini.

Si noti che documenti come (1) mostrano che classi di complessità grossolana come PTIME coincidono, sia che si contino i passi β, sia i passi della macchina di Turing. Ciò non significa che anche classi di complessità inferiore come O (log n) coincidano. Naturalmente tali classi di complessità non sono stabili anche in base alla variazione del modello di macchina di Turing (ad esempio 1 nastro vs multi-nastro).

Il lavoro di D. Mazza (5) dimostra il teorema di Cook-Levin (completezza of di SAT) usando un linguaggio funzionale (una variante del calcolo λ) invece delle macchine di Turing. L'intuizione chiave è questa:

BooleancircuitsMacchine di Turing=affine λ-Condizioniλ-Condizioni

Non so se la situazione relativa alla complessità dello spazio sia compresa.


  1. B. Accattoli, U. Dal Lago, Beta Reduction è Invariant, infatti .

  2. J.-J. Levy, Reductions corregge e ottimizza in lambda-calcul.

  3. JL Lawall, HG Mairson, Ottimalità e inefficienza: quale non è un modello di costo del calcolo lambda ?

  4. A. Asperti, H. Mairson, la riduzione beta parallela non è ricorsiva elementare .

  5. D. Mazza, la chiesa incontra Cook e Levin .



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.