La PizarraMatemática.

Grado en Matemáticas

Autómatas finitos deterministas

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.

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.

  1. Dos palabras

    01 pertenece a L, pero 10 no.

  2. Repetición

    111 también pertenece: repetir símbolos está permitido.

  3. Vacía

    ε no tiene último símbolo, así que no pertenece a este lenguaje.

Resultado

Reconocer L significa aceptar exactamente esas palabras.

Lo comprobamos

Σ* contiene tanto palabras aceptadas como rechazadas.

La palabra vacía no es el lenguaje vacío

Comparar ∅ y {ε}.

  1. Primer conjunto

    ∅ no contiene ninguna palabra.

  2. Segundo

    {ε} contiene una palabra de longitud cero.

  3. Máquinas

    Un DFA puede rechazar todo o aceptar solo ε; son lenguajes diferentes.

Resultado

Cero palabras y una palabra de longitud cero no son lo mismo.

Lo comprobamos

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 transición extendida satisface δ*(q,ε)=q y δ*(q,wa)=δ(δ*(q,w),a).

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.

  1. Primer símbolo

    Desde P leer cero deja P.

  2. Siguientes

    Leer uno lleva a I; leer el segundo uno vuelve a P.

  3. Final

    Se agotó la entrada en P, por lo que acepta.

Resultado

Traza P→P→I→P.

Lo comprobamos

No se necesita recordar la palabra entera dentro del estado.

Un paso aceptante intermedio no basta

En esa misma máquina ejecutar 1101.

  1. Dos primeros

    P→I→P: el prefijo 11 se aceptaría si terminase ahí.
  2. Seguir

    El cero conserva P y el último uno lleva a I.

  3. Decidir

    La palabra completa acaba en I y se rechaza.

Resultado

La aceptación se consulta al final.

Lo comprobamos

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.

Dos estados bastan para recordar la paridad de todos los prefijos
Cada estado resume una propiedadPI0011P: cantidad par de unos.I: cantidad impar de unos.1010: P→I→I→P→PSolo importa dónde terminamos.Doble círculo: estado aceptante.
El estado P, inicial y aceptante, lleva doble círculo. El estado I no acepta. Un cero deja el estado igual y un uno cambia al otro; las flechas superiores e inferiores indican sentidos opuestos entre P e I. La flecha que llega desde fuera marca el inicio, no consume un símbolo. La palabra uno cero uno cero produce la traza P, I, I, P, P y se acepta al terminar. P significa cantidad par de unos leídos, no longitud par de la palabra. Un paso por P antes de consumir toda la entrada no decide la aceptación final.

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.

  1. Recorrido

    P→I→I→P→P.
  2. Significado

    El primer uno cambia a impar; el segundo devuelve a par.

  3. Final

    Dos unos: acepta en P.

Resultado

Los ceros no afectan la propiedad resumida.

Lo comprobamos

La longitud cuatro no es la razón de aceptar: importa la cantidad de unos.

Longitud par pero cantidad impar de unos

Ejecutar 1000.

  1. Primer uno

    P pasa a I.

  2. Tres ceros

    I permanece I en cada uno.

  3. Final

    Un solo uno, cantidad impar: rechaza.

Resultado

Paridad de unos y paridad de longitud son propiedades distintas.

Lo comprobamos

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.

  1. Lo que sabemos

    El prefijo tiene cantidad impar de unos.

  2. Añadir cero

    Sigue impar y se queda en I.

  3. Añadir uno

    Pasa a par y a P: la palabra 001001 se acepta.

Resultado

La propiedad del estado permite continuar la prueba.

Lo comprobamos

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.

  1. Casos que engañan

    Aceptaría 11 y 1010, igual que la máquina de paridad de unos.

  2. Contraejemplo

    También aceptaría 01 por tener longitud par, aunque contiene un solo uno.

  3. Diagnóstico

    Su invariante es paridad de longitud, una propiedad diferente.

Resultado

La prueba del invariante detecta qué se está calculando realmente.

Lo comprobamos

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.

  1. Añadir S

    La lectura b desde A lleva al sumidero S.

  2. Cerrar

    Desde S, tanto a como b vuelven a S.

  3. Probar

    aaab llega a S en su último símbolo y se rechaza; ε y aaa aceptan.

Resultado

La máquina completa acepta exactamente las palabras sin b.

Lo comprobamos

No se añade un sumidero aceptante por accidente.

Contar parejas, no trazos

Tres estados y dos símbolos.

  1. Producto

    Cada estado necesita un destino para cada uno de los dos símbolos.

  2. Cantidad

    3·2=6 parejas.
  3. Dibujo

    Si dos símbolos comparten destino, pueden agruparse en una flecha, pero siguen siendo dos entradas de tabla.

Resultado

Seis valores de transición.

Lo comprobamos

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 cierre épsilon se aplica antes de leer y después de cada símbolo
El DFA recuerda todos los estados posiblesA → B por ε; B → C por 1A repite 0; C repite 1.PrefijoPosiblesε{A,B}0{A,B}00{A,B}001{C}0011{C}00110∅Si termina en ∅, rechaza.
Un autómata no determinista empieza en A, tiene movimiento sin consumir entrada de A a B, bucle cero en A, transición uno de B a C y bucle uno en C. Solo C acepta; los pasos no indicados no existen. El conjunto inicial del DFA equivalente es A y B, no solo A. Tras dos ceros sigue siendo A y B; leer uno lleva a C y otro uno mantiene C. El cero final no tiene transición desde C y produce el conjunto vacío, que es un estado sumidero rechazante. Aunque el prefijo cero cero uno ya permita aceptar si terminara ahí, la palabra completa cero cero uno uno cero se rechaza.

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.

  1. Inicio

    Cierre ε de A es {A,B}.

  2. Leer 0011

    Tras los ceros sigue {A,B}; el primer uno lleva a {C} y el segundo conserva {C}.

  3. Un cero adicional

    Desde C no hay cero: el conjunto pasa a ∅ y rechaza 00110.

Resultado

Se acepta 0011 y se rechaza 00110.

Lo comprobamos

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.

  1. Sin consumir

    Ya podemos alcanzar C.

  2. Definición existencial

    Existe una ejecución completa aceptante para ε.

  3. Determinización

    El estado inicial equivalente incluye A y C, y por eso es aceptante.

Resultado

ε se acepta aunque A no fuera aceptante.

Lo comprobamos

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 ε.

  1. Inicio

    (P,N): cero unos es par, pero la palabra vacía no termina en cero.

  2. 110

    Acaba en (P,Z), único tipo de pareja aceptante: satisface las dos propiedades.

  3. 10

    Acaba en (I,Z): cumple la segunda pero no la primera.

Resultado

La intersección acepta 110 y rechaza 10.

Lo comprobamos

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}.

  1. Original

    A acepta y S rechaza; b lleva de A a S y S repite todo.

  2. Intercambiar

    Ahora A rechaza y S acepta.

  3. Resultado

    Se aceptan exactamente las palabras que contienen alguna b.

Resultado

ε se rechaza en el complemento.

Lo comprobamos

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.

  1. Alcanzables

    P se alcanza con ε e I con uno.

  2. Sufijo testigo

    La continuación ε acepta desde P y rechaza desde I.

  3. Mínimo

    Se necesitan al menos dos estados distintos y nuestro diseño tiene dos.

Resultado

No se pueden fusionar.

Lo comprobamos

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.

  1. Ahora

    Sin añadir símbolos, ambos aceptan.

  2. Añadir uno

    Desde A se rechaza; desde B se acepta.

  3. Conclusión

    El sufijo uno los distingue aunque empezaran en la misma clase aceptante.

Resultado

La clasificación inicial por aceptación todavía puede refinarse.

Lo comprobamos

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.

  1. Estados

    Restos cero, uno y dos.

  2. Paso

    Cualquier símbolo aumenta el resto en uno módulo tres.

  3. Aceptar

    Inicio y único aceptante: resto cero, incluyendo ε.

Resultado

Tres estados bastan para cualquier longitud.

Lo comprobamos

Se recuerda un resto, no la longitud completa.

Igualar dos bloques exigiría estados ilimitados

Prefijos 0ᵃ y 0ᵇ, con a≠b.

  1. Continuación

    Añadimos 1ᵃ a ambos.

  2. Respuestas

    0ᵃ1ᵃ pertenece al lenguaje, pero 0ᵇ1ᵃ no.

  3. Estados

    Los dos prefijos no pueden llegar al mismo estado; hay infinitas cantidades posibles.

Resultado

Ningún DFA finito reconoce exactamente 0ⁿ1ⁿ.

Lo comprobamos

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.

  1. Interpretar los estados

    P indica cantidad par de unos; I, impar. Inicio P y solo P acepta.

  2. Primer uno

    P→I.
  3. Cero

    I→I porque no cambia la cantidad de unos.
  4. Segundo y tercer unos

    I→P→I.
  5. Decisión final

    La traza completa es P→I→I→P→I, así que 1011 se rechaza.
  6. Comprobar

    Contiene tres unos. Haber pasado por P en un prefijo no decide el resultado final.

Resultado

1011 se rechaza: termina en I con tres unos.

Lo comprobamos

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?

  1. Entrada

    ε tiene cero símbolos.

  2. Inicio

    El estado inicial es P.

  3. Ejecución

    No se realiza ninguna transición.

  4. Aceptación

    P pertenece al conjunto de aceptantes, así que se acepta ε.

  5. Significado

    Contiene cero unos y cero es una cantidad par.

  6. Comprobar la definición

    δ*(P,ε)=P.

    No se ha omitido una entrada especial del lenguaje.

Resultado

Sí acepta ε.

Lo comprobamos

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 →

Para ampliar