Il significato della complessità dello stato negli automi e nelle lingue normali?


14

Sto leggendo " Concatenazione di lingue regolari e complessità descrittiva " di Galina Jiraskova, 2009 sulla complessità dello stato risultante dalla concatenazione di due lingue regolari (di Galina Jiraskova), ma non riesco a capire quali sarebbero le implicazioni pratiche della complessità dello stato . Il primo banale pensiero che mi colpì fu che una maggiore complessità avrebbe richiesto più tempo e spazio alla macchina. È corretto? Inoltre ci sono altri luoghi in cui la complessità dello stato è rilevante e significativa?

Modifica: la complessità dello stato di una lingua normale è il minor numero di stati in qualsiasi automa deterministico finito (dfa) che accetta la lingua. La complessità dello stato non deterministico di una lingua regolare è definita come il minor numero di stati in qualsiasi automa finito non deterministico (nfa) per la lingua.


Cosa certa. Modificata la domanda!
Airmine

Sembra possibile che il documento che stai leggendo risponda in qualche modo alla domanda ...? Puoi citarlo in modo più dettagliato, ad esempio il titolo e preferibilmente un link al pdf, se disponibile? La complessità dello stato di FSM si presenta in molte applicazioni e ha anche implicazioni teoriche ...
vzn

Sì, ho guardato il foglio e ho guardato attraverso i riferimenti. Impossibile trovare molte informazioni relative alle applicazioni della complessità dello stato.
Airmine

3
praticamente qualsiasi applicazione FSM (che ce ne sono molte) deve considerare la complessità dello stato per problemi "banali" non banali. esempio. Gli FSM sono utilizzati nel riconoscimento vocale in cui gli stati sono fonemi e questo può portare a grandi FSM. Gli FSM sono anche ampiamente utilizzati in applicazioni EE, ad esempio circuiti, ecc. Lì un FSM con elevata complessità è un circuito "grande". tuttavia il documento in questione esamina principalmente la complessità teorica del problema in cui i limiti superiore / inferiore di "esplosione" o "minimizzazione efficiente" (compressione) sono proprietà chiave da studiare ....
vzn,

Non esattamente "pratico", ma la complessità dello stato gioca un ruolo nell'inferenza basata sulla diversità degli automi finiti di Rivest e Schapire: [conferenza ; diario ].
Neal Young,

Risposte:


18

La complessità dello stato riguarda in realtà la descrizione concisa di un oggetto (in questo caso, un linguaggio normale), non la complessità computazionale. L'argomento generale è chiamato "complessità descrittiva" in letteratura e trae ispirazione, in parte, dal classico documento del 1971 di Meyer e Fischer intitolato "Economia di espressione di Automata, grammatiche e sistemi formali" (vedi http: // persone .csail.mit.edu / meyer / economy-of-description.pdf ). Questa è ancora un'area attiva, con una conferenza annuale (DCFS - complessità descrittiva dei sistemi formali).

Per quanto riguarda le applicazioni, in qualsiasi luogo in cui il programma si basa essenzialmente su una macchina a stati finiti (ad es. Parser) sarà utile avere questa macchina a stati finiti il ​​più piccola possibile.


2
Oh ok. Quindi, in sostanza, ridurre la complessità dello stato aiuta a ottenere una rappresentazione minima di una determinata lingua, piuttosto che renderne più semplice l'elaborazione?
Airmine,

Inoltre, poiché la maggior parte degli algoritmi sugli automi dipende direttamente dalla complessità dello stato, la riduzione degli stati viene spesso effettuata con un ulteriore motivo di minimizzazione della complessità computazionale.
Denis,

9

Vorrei aggiungere un esempio concreto all'eccellente risposta di Jeffrey Shallit.

Supponiamo di voler creare un dizionario Scrabble (TM). Puoi pensare a diversi modi per rappresentare il tuo dizionario, come un elenco di parole, tentativi (alberi di lettere) o automi deterministici. Secondo [1], ridurre al minimo un trie a un dawg [= DFA] produce un incredibile risparmio di spazio; il numero di nodi è ridotto da 117.150 a 19.853. Il lessico rappresentato come elenco di parole non elaborate richiede circa 780 Kbyte, mentre il nostro dawg può essere rappresentato in 175 Kbyte.

Come puoi vedere, la complessità dello stato conta davvero in questo caso, specialmente se vuoi scrivere un programma efficiente come hanno fatto gli autori.

[1] Appel e Jacobson Il programma di scrabble più veloce del mondo , Communications of the ACM 31 , 572-578 (1988).


4

La prova che è determinabile se una grammatica arbitraria deterministica senza contesto (o equivalentemente un automa deterministico di pushdown) ha un automa a stati finiti equivalente che descrive la stessa lingua è essenzialmente una prova della complessità dello stato di automi finiti che descrivono linguaggi deterministici senza contesto: il limite sulla dimensione di questi automi finiti in termini di automi deterministici dà limiti sulla lunghezza della procedura di decisione.

Per i dettagli, consultare " Regolarità e problemi correlati per gli automi pushdown deterministici " di Leslie G. Valiant.

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.