Idiomas aceptados por versiones modificadas de autómatas finitos

16

Un autómata finito determinista (DFA) es un modelo de máquina de estados capaz de aceptar todos los lenguajes regulares. Los DFA se pueden definir (y generalmente se definen) de tal manera que cada estado debe proporcionar alguna transición para todos los elementos del alfabeto de entrada; en otras palabras, la función de transición δ:Q×ΣQ debería ser una función (total).

Imagine lo que llamaremos un autómata finito doblemente determinista (DDFA). Se define de manera similar a un DFA, con dos excepciones: primero, en lugar de la transición que conduce de un estado a otro para cada símbolo de entrada posible, debe conducir a dos estados distintos; segundo, para aceptar una cadena, todas las rutas potenciales deben cumplir una u otra de las siguientes condiciones:

  1. Todas las rutas potenciales a través del DDFA conducen a un estado de aceptación (lo llamaremos DDFA de tipo 1).
  2. Todas las rutas potenciales a través del DDFA conducen al mismo estado de aceptación (lo llamaremos DDFA de tipo 2).

Ahora para mi pregunta:

L(DFA)L(DDFA)L(DDFA)=L(DFA)L(DDFA)L(DFA)L(DDFA)L(DFA)L(DDFA)

Las pruebas (o al menos bocetos moderadamente desarrollados) son apreciadas, si no son demasiado complicadas.

Patrick87
fuente

Respuestas:

9

Esto combinado con la respuesta de Alex da la imagen completa.

puede probarse adaptando la construcción habitual del conjunto de potencia con una condición de estado final modificada. En la construcción del conjunto de potencia, los estados son conjuntos de estados del autómata original. Por lo general, después de realizar la construcción del conjunto de potencia, un estado es final si uno de los estados del conjunto es final en el autómata original.L(DDFA)L(DFA)

  • En el DDFA tipo 1, los estados finales en el autómata construido son los conjuntos donde todos los elementos son finales en el autómata original.

  • En el DDFA de tipo 2, los estados finales son los conjuntos de singleton de los estados finales del autómata original.

En ambos casos, los autómatas resultantes son DFA.

Ahora los type-2DDFA pueden expresar solo los idiomas y , dependiendo de si el estado inicial es aceptable o no. Esto se debe a que las dos transiciones de un estado deben ir a estados distintos, pero la aceptación solo es posible si terminan en el mismo estado.{ϵ}

Dave Clarke
fuente
7

Para comenzar el análisis, puedo decir que para el tipo-1.L(DFA)L(DDFA)

Puede hacerlo duplicando un DFA y agregando bordes a estados duplicados. Si un estado tiene una transición a s 2 en x , también realiza una transición de s 1 a s 2 en x . Además, s 1 tiene una transición a s 2 y s 2 en x . Obviamente, esto significa que casi siempre estaremos en los estados s i y s i al mismo tiempo (o posiblemente solo ss1s2xs1s2xs1s2s2xsisisi, inicialmente), y por lo tanto reconoceremos el mismo idioma.

Actualización: también tenemos para el tipo 2, ya que no existe un DDFA de tipo 2 que reconozca el idioma { a } . Si intenta hacer un DDFA de este tipo, tiene un estado inicial s , y luego tiene que tener dos bordes salientes para los estados s 1 y s 2 en una a , pero estos estados deben ser distintos y, por lo tanto, las dos rutas de aceptación finalizan en diferentes estados de aceptación.L(DFA)L(DDFA){a}ss1s2a

Junto con la respuesta de Dave Clarke, eso le da el análisis completo.

Alex ten Brink
fuente
¡Muy agradable detectar ese contraejemplo para el tipo 2!
Dave Clarke
@ Dave Clarke: gracias. Es un ejemplo un poco tonto, pero funciona :)
Alex ten Brink
"Patológico" en lugar de "tonto".
Dave Clarke
Muy buen trabajo, muchachos. Había cuatro cosas que verificar, y cada uno de ustedes tiene dos. A menos que cualquiera de ustedes se oponga, seleccionaré @DaveClarke como respuesta, solo porque tiene menos reputación que Alex.
Patrick87
1
En una nota relacionada, ¿le gustaría dar más detalles sobre los idiomas aceptados por los DDFA de tipo 2, o debería hacer una pregunta por separado y vincularla a esta?
Patrick87