Minimizzazione DFA multilingue


10

Sono interessato a una leggera generalizzazione di DFA. Come al solito abbiamo lo stato , l'alfabeto finito , un'azione definita su da e stato iniziale ; ma invece della solita serie di terminali, prendiamo una famiglia di sottoinsiemi di . Un DFA multilingue è quindi la tuplaQΣΣ∗Qδ:Q×Σ→Qq0(Ti)i∈1..nQM

(Q,Σ,δ,q0,(Ti))

e è riconosciuto da iff per alcuni . Definisci per essere la famiglia di lingue riconosciute da M, se lo desideri.L⊆Σ∗ML={s∈Σ∗|q0s∈Ti}i∈1..n(Li(M))i∈1..n

Bene, ora per la mia domanda: data una famiglia di lingue regolari , voglio trovare il DFA multilingue multilingue come descritto sopra in modo tale che per tutto , cioè tale cheè ridotto a icona su tutte queste macchine. La mia domanda è: esistono modi noti noti per farlo, forse analogo alla teoria della minimizzazione DFA standard? Al contrario, ci sono prove che questo problema potrebbe essere difficile?(Li)i∈1..nMLi=Li(M)i∈1..n|Q|


7
Mi sembra che l'algoritmo standard basato sul raffinamento delle partizioni, modificato solo per iniziare partizionando il set iniziale di stati a prescindere dal fatto che accetti / non accetti per ciascuno dei sottoinsiemi dati piuttosto che per un singolo set , dovrebbe funzionare subito. Perché non dovrebbe? Suddivide le coppie di stati solo quando devono essere divisi, quindi genera ancora il più grossolano raffinamento possibile degli stati. TiT
— David Eppstein,

1
La prova del commento di @DavidEppstein è semplice se si definisce la relazione di equivalenzax∼y iff per ogni i , dove x ∼ T i y è la relazione di equivalenza di Myhill-Nerode. È quindi possibile procedere seguendo le stesse linee dell'algoritmo di minimizzazione standard. x∼Tiyix∼Tiy
— Shaull

non capisco bene. è la risposta a questo problema trovare il DFA minimo di un'unione di DFA con la stessa "configurazione" tranne gli stati finali diversi, ogni DFA per ? anche il valore di riconoscimento di L = { . . . } non sembra avere esattamente senso, sembra confondere stringhe e insiemi di stati. 1..nL={...}
— vzn,

I punti sollevati da DavidEppstein e Shaull sembrano convincenti, troverò un po 'di tempo per ripassare il teorema di Myhill-Nerode quando avrò tempo di convincermi che il quoziente produce ancora l'automa minimo. Con il senno di poi sembra troppo ovvio.
— gdmclellan,

@vzn: sicuramente non voglio unire le lingue dell'automa originale; e può sovrapporsi. Un multi-lingua DFA con le lingue A e B deve essere in grado di segnalare, ad esempio, che s ∈ A , ma s ∉ B . Per quanto riguarda la notazione usata nel definire il riconoscimento di una lingua, la notazione viene definita estendendo δ a Σ ∗ -azione su Q dalle seguenti regole per tutte le q ∈ Q , σ ∈ Σ , s ∈ Σ ∗ :TiABs∈As∉BδΣ∗Qq∈Q,σ∈Σ,s∈Σ∗ . qσ=δ(q,σ),q(sσ)=(qs)σ
— gdmclellan,

Risposte:


14

Risposta breve . Data una famiglia finita di lingue regolari , esiste un multi-automa completo deterministico minimo unico che riconosce questa famiglia.L=(Li)1⩽i⩽n

Dettagli . Il caso corrisponde alla costruzione standard e il caso generale non è molto diverso nello spirito. Data una lingua L e una parola u , let u - 1 L = { v ∈ A ∗ ∣ u v ∈ L } . Definire una relazione di equivalenza ∼ su A ∗ impostando u ∼ vn=1Luu−1L={v∈A∗∣uv∈L}∼A∗ Dato che L i è regolare, questa congruenza ha un indice finito. Inoltre, è facile vedere che ogni L i è saturo di ~ e che per ogni una ∈ A , u ~ v implica u un ~ v una . Indichiamo con 1 la parola vuota e con [ u ] laclasse ∼ di una parola u

u∼v⟺for each L∈L, u−1L=v−1L
LiLi∼a∈Au∼vua∼va1[u]∼u. Sia essere il multi-automa deterministico definito come segue:AL=(Q,[1],⋅,(Fi)1⩽i⩽n)
  1. ,Q={[u]∣u∈A∗}
  2. ,[u]⋅a=[ua]
  3. . Fi={[u]∣u∈Li}

Per costruzione, se e solo se u ∈ L i e quindi A L accetta la famiglia L . Resta da dimostrare che A L è minima. In realtà è minimo in un forte senso algebrico (il che implica che ha il numero minimo di stati). Sia A = ( Q , q - , ⋅ , ( F i ) 1 ⩽ i ⩽ n ) e A ′[1]⋅u∈Fiu∈LiALLALA=(Q,q−,⋅,(Fi)1⩽i⩽n) essere due multi-automi. Un morfismo f : A → A ′ è una mappa suriettiva da Q a Q ′ tale cheA′=(Q′,q−′,⋅,(Fi′)1⩽i⩽n)f:A→A′QQ′

  1. ,f(q−)=q−′
  2. per , f - 1 ( F ′ i ) = F i , 1⩽i⩽nf−1(Fi′)=Fi
  3. per tutti e q ∈ Q , f ( q ⋅ u ) = f ( q ) ⋅ u .u∈A∗q∈Qf(q⋅u)=f(q)⋅u

Allora per ogni accessibili deterministico multi-automa accettando L , esiste un morfismo da A su A L . Per dimostrarlo, si verifica innanzitutto che se q - ⋅ u 1 = q - ⋅ u 2 = q , allora u 1 ∼ u 2 . Ora f è definito da f ( q ) = [ u ] dove u è una parola tale che q - ⋅ uALAALq−⋅u1=q−⋅u2=qu1∼u2ff(q)=[u]u . Quindi si può dimostrare che f soddisfa le tre proprietà richieste.q−⋅u=qf

La fine è un po 'imprecisa, fammi sapere se hai bisogno di maggiori dettagli.

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.