DFA minimo che soddisfa una visione limitata di una lingua


12

Supponiamo che uno abbia una lingua LΣ , ma non si sa quali stringhe fanno effettivamente parte della lingua. Tutto ciò che si ha è una visione finita della lingua: una serie finita di stringhe AL che sono note per essere nella lingua, e una serie finita di stringhe B(ΣL) che sono noti per non essere nella linguaggio.

Ad esempio, supponiamo che io abbia A={ab,aaab,aaaaabb} e B={b,aab,aaaba} . Potrei avere la lingua L={a2i+1bj | i,jN} , poiché Ae B sono coerenti con L , oppure potrei avere un linguaggio completamente diverso.

La mia domanda è: esiste un modo noto per creare un DFA (automi finiti deterministici) che accetta le stringhe in A e rifiuta le stringhe in B , con un numero minimo o quasi minimo di stati? Qual è la complessità di questo problema? Quanto è buono approssimando L (supponendo che L abbia una complessità descrittiva abbastanza bassa, e A e B siano grandi)?

Domanda originale su math.stackexchange.com. Ho deciso di ripubblicare qui dopo aver ricevuto nessuna risposta sulla domanda originale e non avendo idea di dove cercarli. Se qualcuno potesse indirizzarmi verso la ricerca in questo settore, sarebbe molto apprezzato.



2
La risposta ben scritta di Lev alla domanda che ho collegato riguarda già l'approossimabilità.
Tsuyoshi Ito,

6
Ho anche scritto un post sul blog che approfondisce la mia risposta originale cstheory.blogoverflow.com/2011/08/on-learning-regular-languages
Lev Reyzin

1
Non riesco a vedere la differenza tra "la tua versione" e il risultato di inapprossimabilità citato da Lev nella risposta. Inoltre, non riesco a vedere la connessione tra "la tua versione" e "andare dall'altra parte".
Tsuyoshi Ito,

1
AB

Risposte:



0

Mi sembra che tu possa usare un raffinamento dell'equivalenza di Myhill-Nerode per questo problema.

x Σ u x A v x BuvxΣuxAvxBABuv

Basta studiare questa relazione su prefissi di elementi di e . Questo ti darà un limite inferiore al numero di stati necessari. Non sono sicuro che ti dia direttamente un modo per costruire l'automa minimo, ma è almeno un percorso da esplorare.AB


-1

Penso che questo problema possa essere stato inesatto espresso dall'interrogante. Apparentemente l'interrogante vuole un algoritmo che generalizzi infinite parole sulla base di specifici esempi di parole finite, usando una sorta di induzione meccanizzata, cioè riconoscendo schemi apparenti negli esempi.

Oltre ad alcune ricerche sulla teoria delle CS citate nei commenti, c'è anche qualche ricerca più empirica in quest'area, ad es. Di seguito, usando le ANN per creare FSM da esempi. Nota che è sempre possibile eseguire un algoritmo di minimizzazione DFA standard sul risultato. La libreria FSM di AT&T è utile per lavorare in quest'area.

L'interrogatore non è specifico del suo dominio problematico, che può aiutare a comprendere la struttura degli esempi e ottenere riferimenti più specifici. Tuttavia, un esempio che può essere visto sono gli algoritmi AI nei giochi che utilizzano algoritmi FSM. Sospetto che ci siano alcuni casi in cui gli FSM vengono appresi da esempi usando algoritmi di apprendimento.

[1] Apprendimento di una classe di grandi macchine a stati finiti con una rete neurale ricorrente C. Lee Giles, 1, BG Horne, T. Lin 1995

[2] Apprendimento degli FSM con reti ricorrenti autocontrollo di Zeng & Smyth 1993

[3] Biblioteca ATM di FSM


1
il tuo secondo link si collega a questa domanda. Dove si suppone di collegare?
Artem Kaznatcheev

oops, thx, fixed
vzn
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.