Lingue accettate da versioni modificate di automi finiti


16

Un automa finito deterministico (DFA) è un modello di macchina a stati in grado di accettare tutti e solo i linguaggi regolari. I DFA possono essere (e solitamente sono) definiti in modo tale che ogni stato deve fornire una transizione per tutti gli elementi dell'alfabeto di input; in altre parole, la funzione di transizione dovrebbe essere una funzione (totale).δ:Q×ΣQ

Immagina quello che chiameremo un automa finito doppiamente deterministico (DDFA). È definito in modo simile a un DFA, con due eccezioni: primo, invece della transizione che conduce da uno stato a un altro stato per ogni possibile simbolo di input, deve portare a due stati distinti; secondo, per accettare una stringa, tutti i potenziali percorsi devono soddisfare l'una o l'altra delle seguenti condizioni:

  1. Tutti i potenziali percorsi attraverso il DDFA portano a uno stato accettante (lo chiameremo DDFA di tipo 1).
  2. Tutti i potenziali percorsi attraverso il DDFA portano allo stesso stato di accettazione (lo chiameremo DDFA di tipo 2).

Ora per la mia domanda:

Quali lingue accettano i DDFA di tipo 1 e di tipo 2? In particolare, è possibile che , o ? Nel caso in cui , esiste una facile descrizione di ?L(DFA)L(DDFA)L ( D D FL(DDFA)=L(DFA)L(DDFA)L(DFA)L(DDFA)L(DFA)L(DDFA)

Le prove (o almeno schizzi moderatamente arricchiti) sono apprezzate, se non sono troppo complicate.

Risposte:


9

Questo combinato con la risposta di Alex fornisce il quadro completo.

L(DDFA)L(DFA) può essere provato adattando la consueta costruzione del powerset con una condizione di stato finale modificata. Nella costruzione del gruppo di potenza, gli stati sono insiemi di stati dell'automa originale. Di solito dopo aver eseguito la costruzione del powerset, uno stato è definitivo se uno degli stati nell'insieme è definitivo nell'automa originale.

  • Nel DDFA di tipo 1, gli stati finali nell'automa costruito sono gli insiemi in cui tutti gli elementi sono definitivi nell'automa originale.

  • Nel DDFA di tipo 2, gli stati finali sono gli insiemi singleton degli stati finali dell'automa originale.

In entrambi i casi, gli automi risultanti sono DFA.

Ora i tipi-2DDFA possono esprimere solo le lingue e , a seconda che lo stato iniziale accetti o meno. Questo perché le due transizioni da uno stato devono passare a stati distinti, ma l'accettazione è possibile solo se finiscono sullo stesso stato.{ϵ}


7

Per iniziare l'analisi, posso dire che per il tipo 1.L(DFA)L(DDFA)

Puoi farlo duplicando un DFA e aggiungendo bordi agli stati duplicati. Se uno stato ha una transizione da s 2 su x , fai anche una transizione da s 1 a s 2 su x . Inoltre, s 1 ha una transizione a s 2 e s 2 su x . Ovviamente, questo significa che saremo quasi sempre negli stati s i e s i allo stesso tempo (o forse solo s is1s2xs1s2xs1s2s2xsisisi, inizialmente), e quindi riconosceremo la stessa lingua.

Aggiornamento: abbiamo anche per il tipo 2, in quanto non esiste un DDFA di tipo 2 che riconosce la lingua { a } . Se provi a creare un tale DDFA, hai uno stato iniziale s , quindi devi avere due fronti in uscita per gli stati s 1 e s 2 su una a , ma questi stati devono essere distinti e quindi i due percorsi di accettazione terminano in diversi stati accettanti.L(DFA)L(DDFA){a}ss1s2a

Insieme alla risposta di Dave Clarke, questo ti dà l'analisi completa.


Molto bello individuare quel contro esempio per il tipo 2!
Dave Clarke,

@Dave Clarke: grazie. È un esempio un po 'sciocco, ma funziona :)
Alex ten Brink

"Patologico" al posto di "sciocco".
Dave Clarke,

Bel lavoro ragazzi. C'erano quattro cose da controllare e ognuna ne aveva due. A meno che nessuno dei due oggetti, selezionerò la risposta di @DaveClarke, solo perché ha meno rappresentante di Alex.
Patrick87

1
Su una nota correlata, ti piacerebbe approfondire le lingue accettate dai DDFA di tipo 2 o dovrei porre una domanda separata e un link a questo?
Patrick87
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.