Relazione tra complessità dell'algoritmo e classe di automi


8

Non sono stato in grado di trovare un grafico che descriva o rispondi al testo rispondendo alla seguente domanda: Esiste una relazione diretta tra la complessità di un algoritmo (come il caso migliore / peggiore di ordinamento rapido) e la classe di automi che possono implementare l'algoritmo. Ad esempio, esiste una serie di complessità che gli automi push down possono esprimere? Se la risposta è affermativa a tale domanda, esiste una risorsa che descrive la relazione? Grazie!


1
"classe di automi in grado di implementare l'algoritmo" - da quale set? Di solito non ci sarà un solo tipo. Inoltre, google "zoo di complessità".
Raffaello

Risposte:


7

Sì, ci sono relazioni in molti casi!

Ad esempio, è noto che qualsiasi linguaggio accettato dalle macchine contatore con inversione è in (vedere qui ).P

Allo stesso modo, sappiamo che tutti i linguaggi regolari sono in , poiché esiste un algoritmo temporale polinomiale per determinare se un NFA accetta una determinata parola.P

Ci sono troppi da elencare qui, ma in generale, i modelli di calcolo più limitati sono in classi di complessità più facili.


1
Inoltre, i linguaggi senza contesto sono in P ( algoritmo CYK )
vonbrand,

9

Ecco alcuni risultati noti:

  1. REG=DSPACE(1)=NSPACE(1)=DSPACE(o(loglogn))=NSPACE(o(loglogn)) , dove è l'insieme delle lingue regolari. Per le prove, vedere la pagina di Wikipedia su .REGDSPACE

  2. DCFLSC , dove è l'insieme di linguaggi deterministici senza contesto e è la classe di Steve . Vedi la pagina Wikipedia su .DCFLSCDCFL

  3. NLLOGCFLAC1 , dove è l'insieme di lingue che lo spazio di log può essere ridotto in un linguaggio privo di contesto. Vedi la pagina Wikipedia su , che fornisce anche alcune lingue complete per sotto le riduzioni dello spazio di log.LOGCFLLOGCFLLOGCFL

  4. CSL=NSPACE(n) , dove è l'insieme di linguaggi sensibili al contesto. Vedi la pagina Wikipedia su .CSLCSL

  5. La classe di lingue accettata dai PDA nonerasing deterministici è e la classe di lingue accettata dai PDA nonerasing non deterministici è . Vedi la pagina Wikipedia sui PDA .DSPACE(nlogn)NSPACE(n2)

  6. Gli automi a due stack sono equivalenti in potenza alle macchine Turing, ma limitando gli automi si ottengono modelli più deboli. Vedi un rapporto tecnico di San Pietro.


3

Esiste una relazione diretta tra la complessità di un algoritmo (come il caso migliore / peggiore di ordinamento rapido) e la classe di automi che possono implementare l'algoritmo.

La domanda su quale classe di automi può implementare un determinato algoritmo come l'ordinamento rapido è difficile, perché non è chiaro cosa conterebbe come implementazione di tale algoritmo. Per un ordinamento rapido, i confronti eseguiti devono essere certamente gli stessi, ma anche l'ordine in cui si verificano i confronti deve essere lo stesso? Che dire dell'ordine di accesso in lettura a elementi specifici dell'input? L'ordine delle operazioni di copia, spostamento e scambio per elementi specifici?

Dovresti specificare un certo numero di oracoli per quelle operazioni che ti interessano, ma poi sei già in una situazione molto specifica basata sull'algoritmo e abbastanza lontano dalle classi generali di automi comunemente studiate. Il modo per aggirare questo dilemma è parlare di problemi invece di algoritmi e formalizzare i problemi parlando di lingue.

Ad esempio, esiste una serie di complessità che gli automi push down possono esprimere?

Non proprio, perché un automa push down può leggere il suo input solo una volta e solo in avanti. Tuttavia, se si divide la macchina in una parte alla quale è consentito leggere l'input avanti e indietro come desiderato e mantenere un numero finito di puntatori a posizioni di input specifiche (NL) e una parte che è un push down automi che riceve il suo input dall'altra parte, quindi ottieni la classe di complessità LOGCFL , che è uguale a SAC 1 (una classe di circuito).

Se non separare queste due parti e basta aggiungere una pila di NL, allora si ottiene la classe di automi AuxPDA , che è pari alla classe di complessità P . Ma se decidi di limitare il tempo di esecuzione di tali automi (con stack e memoria ausiliaria logaritmica) al tempo polinomiale, otterrai NAuxPDA P , che è di nuovo uguale a LOGCFL. (E se insisti sul runtime polinomiale deterministico, scarta lo stack, ma consenti l'archiviazione ausiliaria pollogaritmica, otterrai SC .)

D'altra parte, se si mantiene la limitazione che gli automi possono leggere il proprio input solo una volta e solo in avanti, e richiedono inoltre che possa usare il suo stack solo in un modo molto deterministico direttamente basato sull'input (ovvero il simbolo di input determina se gli automi spingono qualcosa nello stack, ne estrae qualcosa dallo stack o lascia intatto lo stack), quindi si finisce con un automa pushdown visibilmente, che riconosce esattamente le lingue di parole nidificate , che possono anche essere riconosciute nello spazio logaritmico deterministico .

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.