I linguaggi fogliari sono un modo meraviglioso per definire uniformemente molte classi di complessità. La maggior parte delle classi di complessità sono generalmente specificate da un modello di calcolo (ad es. TM deterministica / randomizzata) e da un limite di risorse (tempo di log, spazio poligonale, ecc.). Tuttavia, nella formulazione del linguaggio foglia, esiste un solo modello di calcolo e la classe viene specificata fornendo il linguaggio foglia.
I dettagli sono troppo lunghi da spiegare, quindi indirizzerò i lettori interessati a uno di questi due sondaggi:
- Caratterizzazioni uniformi di classi di complessità di H Vollmer
- Corsi di lingua foglia di KW Wagner
Entrambi i sondaggi fanno un ottimo lavoro nel spiegare la formulazione nelle prime pagine.
Nel sondaggio di Wagner, afferma che "risulta che praticamente ogni classe di complessità considerata finora può essere descritta dai linguaggi fogliari".
La mia domanda si riferisce a questa affermazione. So che ci sono alcune classi per le quali non conosciamo una caratterizzazione del linguaggio fogliare, quindi questo significa che le classi non hanno necessariamente una tale caratterizzazione o non l'abbiamo trovata.
Ci aspettiamo che ogni classe di complessità (diciamo tra P e PSPACE) abbia una caratterizzazione del linguaggio foglia? (Limitiamoci a classi di complessità "naturale".) C'è qualche risultato di questo tipo in letteratura?
(Una domanda correlata a cui sarei felice di conoscere la risposta: esiste un metodo (euristico) per elaborare un linguaggio fogliare per una determinata classe?)
EDIT: Suresh sottolinea che c'è una breve definizione delle lingue delle foglie nell'articolo di Wikipedia. Lo sto copiando di seguito.
Diverse classi di complessità sono in genere definite in termini di una macchina di Turing non deterministica a tempo polinomiale, in cui ogni ramo può accettare o rifiutare e l'intera macchina accetta o rifiuta come una funzione delle condizioni dei rami. Ad esempio, una macchina di Turing non deterministica accetta se almeno un ramo accetta e rifiuta solo se tutti i rami rifiutano. Una macchina di Turing co-non deterministica, d'altra parte, accetta solo se tutti i rami accettano e rifiuta se qualsiasi ramo rifiuta. Molte classi possono essere definite in questo modo.