Un autómata lee una palabra de izquierda a derecha y conserva un pequeño resumen de lo que ha visto. Ese resumen es el estado. Empezaremos con palabras cortas, daremos significado a cada estado y después justificaremos que la regla sirve para cualquier longitud.
Si necesitas repasar:
1. Un lenguaje es un conjunto de palabras, no un idioma hablado
Un alfabeto Σ es un conjunto finito de símbolos. Una palabra es una lista finita ordenada de ellos. Σ* reúne todas esas palabras, incluida ε, la palabra vacía. Un lenguaje L es cualquier subconjunto de Σ*.
Un DFA se describe por (Q,Σ,δ,q₀,F): estados finitos no vacíos, alfabeto, transición, inicio y estados aceptantes. La función total δ:Q×Σ→Q asigna exactamente un destino a cada estado y símbolo. No dispone de una memoria que crezca con la entrada.
Orden y repetición importan
Σ={0,1}; L contiene las palabras que terminan en uno.
Dos palabras
01 pertenece a L, pero 10 no.
Repetición
111 también pertenece: repetir símbolos está permitido.
Vacía
ε no tiene último símbolo, así que no pertenece a este lenguaje.
Reconocer L significa aceptar exactamente esas palabras.
Σ* contiene tanto palabras aceptadas como rechazadas.
La palabra vacía no es el lenguaje vacío
Comparar ∅ y {ε}.
Primer conjunto
∅ no contiene ninguna palabra.
Segundo
{ε} contiene una palabra de longitud cero.
Máquinas
Un DFA puede rechazar todo o aceptar solo ε; son lenguajes diferentes.
Cero palabras y una palabra de longitud cero no son lo mismo.
El estado inicial decide el caso sin símbolos.
2. Una transición por símbolo y una decisión al terminar
Empezamos en q₀. Consumimos el primer símbolo, seguimos su transición y repetimos hasta agotar la entrada. Solo entonces miramos si el estado está en F.
La palabra vacía no hace ningún movimiento: se acepta exactamente cuando q₀∈F.
Seguir una máquina pequeña
Estados P e I: un cero deja el estado igual, un uno lo cambia; inicio P y solo P acepta. Ejecutar 011.
Primer símbolo
Desde P leer cero deja P.
Siguientes
Leer uno lleva a I; leer el segundo uno vuelve a P.
Final
Se agotó la entrada en P, por lo que acepta.
Traza P→P→I→P.
No se necesita recordar la palabra entera dentro del estado.
Un paso aceptante intermedio no basta
En esa misma máquina ejecutar 1101.
Dos primeros
P→I→P: el prefijo 11 se aceptaría si terminase ahí.Seguir
El cero conserva P y el último uno lleva a I.
Decidir
La palabra completa acaba en I y se rechaza.
La aceptación se consulta al final.
Visitar P antes no detiene automáticamente la ejecución.
3. Los estados deben tener un significado que podamos mantener
Para contar la paridad de unos basta recordar si hemos visto una cantidad par o impar. P representa par; I, impar. No necesitamos almacenar el número exacto.
Cero no cambia ese número y deja el estado. Uno aumenta la cantidad en uno y cambia par por impar o al revés. P es inicial porque cero unos es par; también es el único aceptante.
Dos unos separados por ceros
Ejecutar 1010.
Recorrido
P→I→I→P→P.Significado
El primer uno cambia a impar; el segundo devuelve a par.
Final
Dos unos: acepta en P.
Los ceros no afectan la propiedad resumida.
La longitud cuatro no es la razón de aceptar: importa la cantidad de unos.
Longitud par pero cantidad impar de unos
Ejecutar 1000.
Primer uno
P pasa a I.
Tres ceros
I permanece I en cada uno.
Final
Un solo uno, cantidad impar: rechaza.
Paridad de unos y paridad de longitud son propiedades distintas.
El estado conserva la información necesaria para esta propiedad, no todas las características de la palabra.
4. Una prueba por prefijos valida todas las palabras
El invariante es: después de cualquier prefijo, el estado representa la paridad de sus unos. Se cumple en ε porque la cantidad inicial es cero.
Si se añade cero, no cambia la paridad ni el estado. Si se añade uno, cambian ambas. La inducción sobre la longitud prueba el invariante para todos los prefijos y, al terminar, aceptación equivale a la propiedad pedida.
Aplicar el invariante sin contar desde el principio
El prefijo 0010 termina en I. Añadir 01.
Lo que sabemos
El prefijo tiene cantidad impar de unos.
Añadir cero
Sigue impar y se queda en I.
Añadir uno
Pasa a par y a P: la palabra 001001 se acepta.
La propiedad del estado permite continuar la prueba.
No se ha afirmado que el estado guarde la cantidad exacta de unos.
Varias pruebas buenas pueden ocultar un diseño malo
Una máquina cambia de estado con cualquier símbolo, en vez de solo con uno.
Casos que engañan
Aceptaría 11 y 1010, igual que la máquina de paridad de unos.
Contraejemplo
También aceptaría 01 por tener longitud par, aunque contiene un solo uno.
Diagnóstico
Su invariante es paridad de longitud, una propiedad diferente.
La prueba del invariante detecta qué se está calculando realmente.
Comprobar unas cuantas palabras no sustituye al argumento para todas.
5. Una transición ausente se hace explícita con un sumidero
En un DFA completo, q estados y a símbolos requieren q·a parejas definidas. Una flecha puede llevar varias etiquetas y representar varias parejas; no se cuentan solo flechas dibujadas.
Para completar una tabla parcial añadimos un sumidero no aceptante. Todo paso ausente llega a él y cada símbolo lo mantiene allí. Así el rechazo no depende de desaparecer de la ejecución.
Completar el lenguaje a* sobre {a,b}
Un estado A inicial aceptante repite a y no tenía paso para b.
Añadir S
La lectura b desde A lleva al sumidero S.
Cerrar
Desde S, tanto a como b vuelven a S.
Probar
aaab llega a S en su último símbolo y se rechaza; ε y aaa aceptan.
La máquina completa acepta exactamente las palabras sin b.
No se añade un sumidero aceptante por accidente.
Contar parejas, no trazos
Tres estados y dos símbolos.
Producto
Cada estado necesita un destino para cada uno de los dos símbolos.
Cantidad
3·2=6 parejas.Dibujo
Si dos símbolos comparten destino, pueden agruparse en una flecha, pero siguen siendo dos entradas de tabla.
Seis valores de transición.
La cantidad de estados alcanzables se revisa aparte.
6. No determinismo significa recordar posibilidades, no adivinar la respuesta
Un NFA puede ofrecer varias transiciones y movimientos ε que no consumen símbolos. Acepta una palabra si existe una ejecución completa aceptante; no hace falta que todas acepten.
El DFA equivalente recuerda un subconjunto de estados posibles. Parte del cierre ε del inicial, avanza cada posibilidad con el símbolo y vuelve a cerrar por ε. Acepta si el subconjunto contiene algún aceptante. Con q estados hay como máximo 2ᑫ subconjuntos, incluido el vacío.
Construir la traza de subconjuntos
A tiene bucle cero y ε hacia B; B lee uno hacia C; C repite uno y es el único aceptante.
Inicio
Cierre ε de A es {A,B}.
Leer 0011
Tras los ceros sigue {A,B}; el primer uno lleva a {C} y el segundo conserva {C}.
Un cero adicional
Desde C no hay cero: el conjunto pasa a ∅ y rechaza 00110.
Se acepta 0011 y se rechaza 00110.
Los pasos no indicados de este NFA son conjuntos vacíos de opciones.
Un movimiento vacío puede decidir ε
A inicial tiene ε hacia C aceptante.
Sin consumir
Ya podemos alcanzar C.
Definición existencial
Existe una ejecución completa aceptante para ε.
Determinización
El estado inicial equivalente incluye A y C, y por eso es aceptante.
ε se acepta aunque A no fuera aceptante.
No se exige que todos los estados posibles acepten.
7. Las parejas de estados combinan dos resúmenes
Para dos DFA del mismo alfabeto usamos estados pareja y actualizamos ambas coordenadas con cada símbolo. Si aceptamos cuando ambas aceptan, reconocemos intersección; si basta una, unión.
Para complemento intercambiamos aceptantes y no aceptantes de un DFA completo. Si había transiciones ausentes, primero se completa: una palabra sin ejecución no se vuelve aceptada solo por cambiar círculos.
Paridad par de unos y terminar en cero
Combinar P/I con un segundo resumen Z: termina en cero; N: no termina en cero, incluida ε.
Inicio
(P,N): cero unos es par, pero la palabra vacía no termina en cero.
110
Acaba en (P,Z), único tipo de pareja aceptante: satisface las dos propiedades.
10
Acaba en (I,Z): cumple la segunda pero no la primera.
La intersección acepta 110 y rechaza 10.
Para unión, 10 sí se aceptaría por la segunda propiedad.
Complementar después de completar
El DFA completo de a* sobre {a,b}.
Original
A acepta y S rechaza; b lleva de A a S y S repite todo.
Intercambiar
Ahora A rechaza y S acepta.
Resultado
Se aceptan exactamente las palabras que contienen alguna b.
ε se rechaza en el complemento.
Sin el sumidero, las palabras con b habrían quedado sin respuesta explícita.
8. Equivalencia significa que ninguna continuación distingue
Dos estados son equivalentes si toda continuación produce la misma respuesta final desde ambos. Si un sufijo acepta desde uno y rechaza desde el otro, no se pueden fusionar.
Para minimizar, quitamos estados inaccesibles y refinamos clases empezando por aceptantes y no aceptantes. Separamos quienes tienen alguna transición hacia clases diferentes y repetimos hasta estabilizar. El cociente resultante es mínimo, salvo renombrado de estados.
Probar que la máquina de paridad ya es mínima
Comparar P e I.
Alcanzables
P se alcanza con ε e I con uno.
Sufijo testigo
La continuación ε acepta desde P y rechaza desde I.
Mínimo
Se necesitan al menos dos estados distintos y nuestro diseño tiene dos.
No se pueden fusionar.
El sufijo vacío también es una continuación válida.
Dos estados aceptantes pueden ser distintos
A y B aceptan; desde A leer uno lleva a C rechazante y desde B leer uno vuelve a B.
Ahora
Sin añadir símbolos, ambos aceptan.
Añadir uno
Desde A se rechaza; desde B se acepta.
Conclusión
El sufijo uno los distingue aunque empezaran en la misma clase aceptante.
La clasificación inicial por aceptación todavía puede refinarse.
No basta mirar solo el doble círculo actual.
9. Memoria finita permite contar restos, pero no cantidades sin límite
Los lenguajes de estos autómatas son regulares, equivalentes a las expresiones regulares matemáticas de unión, concatenación y estrella. Un DFA fijo consume una transición por símbolo: tiempo proporcional a la longitud y memoria de estado constante.
Puede recordar restos de una cuenta, como paridad, pero no un contador arbitrario escondido en sus estados. Comparar dos bloques de longitud igual sin límite, 0ⁿ1ⁿ, no es regular; bombeo y continuaciones lo prueban formalmente.
Contar módulo tres sí necesita memoria finita
Palabras cuya longitud sea múltiplo de tres.
Estados
Restos cero, uno y dos.
Paso
Cualquier símbolo aumenta el resto en uno módulo tres.
Aceptar
Inicio y único aceptante: resto cero, incluyendo ε.
Tres estados bastan para cualquier longitud.
Se recuerda un resto, no la longitud completa.
Igualar dos bloques exigiría estados ilimitados
Prefijos 0ᵃ y 0ᵇ, con a≠b.
Continuación
Añadimos 1ᵃ a ambos.
Respuestas
0ᵃ1ᵃ pertenece al lenguaje, pero 0ᵇ1ᵃ no.
Estados
Los dos prefijos no pueden llegar al mismo estado; hay infinitas cantidades posibles.
Ningún DFA finito reconoce exactamente 0ⁿ1ⁿ.
La longitud de cada palabra es finita; lo que no está acotado es la longitud de todas las entradas posibles.
Ahora lo resolvemos de principio a fin.
EJEMPLO RESUELTO 1
Paridad de unos
Reconoce palabras binarias con número par de unos. Ejecuta 1011.
Interpretar los estados
P indica cantidad par de unos; I, impar. Inicio P y solo P acepta.
Primer uno
P→I.Cero
I→I porque no cambia la cantidad de unos.Segundo y tercer unos
I→P→I.Decisión final
La traza completa es P→I→I→P→I, así que 1011 se rechaza.Comprobar
Contiene tres unos. Haber pasado por P en un prefijo no decide el resultado final.
1011 se rechaza: termina en I con tres unos.
La traza completa es P→I→I→P→I. Haber pasado por P tras el tercer símbolo no determina la aceptación final.
EJEMPLO RESUELTO 2
La palabra vacía
¿Acepta ε el autómata anterior?
Entrada
ε tiene cero símbolos.
Inicio
El estado inicial es P.
Ejecución
No se realiza ninguna transición.
Aceptación
P pertenece al conjunto de aceptantes, así que se acepta ε.
Significado
Contiene cero unos y cero es una cantidad par.
Comprobar la definición
δ*(P,ε)=P.No se ha omitido una entrada especial del lenguaje.
Sí acepta ε.
Cambiar el estado inicial o excluirlo de F alteraría la respuesta a ε; no es un caso que pueda omitirse.
Los símbolos que hemos usado
- Σ
- Alfabeto finito de símbolos.
- Σ*
- Todas las palabras finitas sobreΣ.
- Q
- Conjunto finito no vacío de estados.
- δ
- Función de transiciónQ×Σ→Q.
- q₀
- Estado inicial del autómata.
- F
- Subconjunto de estados aceptantes.
- ε
- Palabra vacía, de longitud cero.
- δ*
- Transición extendida que procesa una palabra completa.
Ahora te toca a ti.
Tienes cinco ejercicios. Inténtalos; las pistas te ayudan si te atascas.
Practicar este tema →