¿Es obligatorio definir las transiciones en cada alfabeto posible en Autómatas finitos deterministas?


13

Mañana es mi presentación y quiero aclarar mis conceptos ...

He leído que en DFA, "Para cada estado, se debe definir la transición en todos los símbolos posibles (alfabeto)".

¿Es obligatorio para cada estado definir la transición en todos los símbolos posibles en DFA? Si no es así, ¿puede dar algún ejemplo?


1
¡Bienvenido a CS.SE! Preferimos que haga solo una pregunta por publicación. Esto parece dos preguntas separadas. Sería mejor publicar el segundo (sobre NFA) por separado. Además, ¿ha buscado a fondo en este sitio y ha verificado la definición formal en su libro de texto? Si no, debe hacerlo antes de preguntar; y deberías mostrarnos en la pregunta qué encontraste cuando hiciste eso.
DW

Gracias por cálida bienvenida, que de hecho me buscado en este sitio y en Google también, pero estoy consiguiendo puntos de vista contrarios que en realidad me confunde ..
HQuser

La segunda pregunta se ha eliminado, pero puede encontrarla en el historial de edición y publicarla por separado como una pregunta separada utilizando el botón 'Hacer pregunta' en la esquina superior derecha. Sin embargo, antes de preguntar, asegúrese de hacer la investigación sugerida y díganos en la pregunta qué investigación ha realizado, incluso díganos qué libros de texto ha leído. En cuanto a esta pregunta, aún puede editar esta pregunta para abordar los comentarios que le di aquí buscando la definición formal en su libro de texto, incluyéndola en la pregunta, y mostrando su interpretación de esa definición.
DW

99
De todos modos, esto parece cubierto por cs.stackexchange.com/q/12587/755 . Votos de la comunidad, por favor: ¿es un duplicado?
DW

1
Realmente no entiendo tu pregunta. Parece ser "He leído que la definición es X. ¿Es la definición X?"
David Richerby

Respuestas:


12

Un DFA se especifica con los siguientes datos:

  • Un alfabeto .Σ
  • Un conjunto de estados .Q
  • Un estado inicial q0 0Q
  • Un conjunto de estados finales FQ
  • Una función de transición δ:Q×ΣQ

Como puedes ver en la firma de δ


77
Excepto que los DFA a veces se definen con una función de transición parcial.
Gilles 'SO- deja de ser malvado'

66
Tiene razón, no existe una definición "oficial" de un DFA. Pero la lectura del OP revela la influencia de esta definición particular.
Yuval Filmus el

Debería decir explícitamente que la función de transición es total.
Ryan

24

Suponga que a un DFA se le permitieron transiciones faltantes. ¿Qué sucede si encuentra un símbolo que no tiene una transición definida? El resultado es indefinido. Eso parecería violar la característica "determinista" de un DFA.

Sin embargo, es trivial transformar un DFA tan incompleto en un DFA completo. Simplemente agregue un nuevo estado, illegaly asigne cualquier transición indefinida al illegalestado. Finalmente, agregue transiciones para cada símbolo del illegalestado de nuevo a sí mismo. Este illegalestado a menudo se denomina estado sumidero , porque una vez que los datos caen en el sumidero no hay forma de salir.

Entonces, desde una perspectiva práctica, es algo discutible, siempre y cuando tenga una forma bien definida de manejar las transiciones faltantes.


10
Cuidado: una transición no definida no hace que el autómata no sea determinista, sino que esté incompleto. Hay algunas definiciones de DFA que permiten tales transiciones indefinidas precisamente porque es trivial completarlo sistemáticamente.
Darkhogg

1
@Darkhogg, no estoy necesariamente en desacuerdo, pero ¿no dependería el determinismo de un DFA incompleto de cómo una implementación particular maneja estas transiciones indefinidas / faltantes? ¿Y tal implementación no completaría implícitamente el DFA?
Nathan Davis

1
No, no depende de la implementación, depende de la definición. Si define DFA como que tiene una función de transición total y luego utiliza una función parcial, seguro, tiene un comportamiento indefinido y puede terminar con no determinismo, pero eso no es un hecho. Sin embargo, los DFA a veces se definen explícitamente para usar una función parcial, y cuando se encuentra con una transición indefinida, el comportamiento es "no aceptar", punto. No hay determinismo ni nada funky allí, para ninguna implementación porque el resultado se define incluso si la transición no lo es.
Darkhogg

Por cierto: también puedes hacer la transformación inversa. Tome un "autómata total" y elimine un estado de sumidero para obtener un "autómata incompleto". Al final, la única diferencia es que un autómata total siempre puede leer una palabra hasta el final, y luego decide si acepta la palabra o no, mientras que un autómata parcial puede rechazar algunas palabras antes de leer todas sus palabras. caracteres.
Bakuriu

5

ΣQρQ×Σ×Qδ:(Q×Σ)2QEl |δ(q,σ)El |1 para todos qQ y σΣy completa siδ(q,σ)de nuevo para todos qQ y σΣ.

Una NFA acepta una palabra si tiene una ejecución de aceptación. Un autómata determinista tiene como máximo una carrera. Un autómata completo tiene al menos una carrera.

Algunos autores definen recortar autómatas como aquellos en los que cada estado está en alguna ruta desde un estado inicial a un estado final. Para ciertos idiomas, no puede tener autómatas que sean tanto recortados como completos. En esos casos, es conveniente mantener el requisito de integridad fuera de la definición de autómata determinista.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.