Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi...

58
Introducci´on a la L´ogica y la Computaci´ on Parte III: Lenguajes y Aut´ omatas (3ra versi´ on) 1 Autores: Raul Fervari y Ezequiel Orbe Contenidos 1 Modelos de Computaci´ on 2 1.1 Modelo General de M´ aquina ............................ 2 2 Aut´ omatas Finitos Determin´ ısticos 3 2.1 Sistemas de estados finitos ............................. 3 2.2 Aut´ omata Finito Determin´ ıstico ........................... 5 2.3 Aut´ omatas y su Lenguaje .............................. 7 2.4 Ejercicios ....................................... 12 3 Aut´ omatas Finitos No Determin´ ısticos 13 3.1 Equivalencia entre DFAs y NFAs .......................... 15 3.2 Aut´ omatas Finitos No Determin´ ısticos con ε-transiciones ............. 17 3.3 Ejercicios ....................................... 24 3.4 Expresiones regulares ................................ 26 3.5 Ejercicios ....................................... 37 4 Gram´ aticas y lenguajes 38 4.1 Definiciones b´ asicas y ejemplos ........................... 39 4.2 Clasificaci´ on de Chomsky .............................. 40 4.3 Gram´ aticas regulares ................................ 43 4.4 Ejercicios ....................................... 45 5 Mas all´ a de los lenguajes regulares 46 5.1 Pumping Lemma .................................. 46 5.2 Gram´ aticas Libres de Contexto ........................... 48 5.3 Formas normales de Chomsky y Greibach ..................... 50 5.4 Ejercicios ....................................... 53 5.5 Aut´ omatas con pila ................................. 54 5.6 Ejercicios ....................................... 58 1 Basado en el apunte de Alejandro Tiraboschi (1ra versi´on) y Pedro S´ anchez Terraf (2da versi´ on). 1

Transcript of Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi...

Page 1: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Introduccion a la Logica y la Computacion

Parte III: Lenguajes y Automatas(3ra version) 1

Autores: Raul Fervari y Ezequiel Orbe

Contenidos

1 Modelos de Computacion 21.1 Modelo General de Maquina . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

2 Automatas Finitos Determinısticos 32.1 Sistemas de estados finitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32.2 Automata Finito Determinıstico . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 Automatas y su Lenguaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 Automatas Finitos No Determinısticos 133.1 Equivalencia entre DFAs y NFAs . . . . . . . . . . . . . . . . . . . . . . . . . . 153.2 Automatas Finitos No Determinısticos con ε-transiciones . . . . . . . . . . . . . 173.3 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.4 Expresiones regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.5 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4 Gramaticas y lenguajes 384.1 Definiciones basicas y ejemplos . . . . . . . . . . . . . . . . . . . . . . . . . . . 394.2 Clasificacion de Chomsky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.3 Gramaticas regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5 Mas alla de los lenguajes regulares 465.1 Pumping Lemma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.2 Gramaticas Libres de Contexto . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.3 Formas normales de Chomsky y Greibach . . . . . . . . . . . . . . . . . . . . . 505.4 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.5 Automatas con pila . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

1Basado en el apunte de Alejandro Tiraboschi (1ra version) y Pedro Sanchez Terraf (2da version).

1

Page 2: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

1 Modelos de Computacion

A continuacion estudiaremos un modelo de computacion llamado automata.

Definicion 1.1 (Modelo de Computacion). Un modelo de computacion es un modelo matematicoque aproxima el funcionamiento de una computadora, y mediante el cual se pueden estudiar, desdeun punto de vista teorico, las capacidades y limitaciones de la misma.

En particular, un modelo de computacion nos permite responder con precision preguntalestrascendentales como:

- ¿Que problemas puede resolver una computadora? (Computabilidad)

- ¿Cuales son los problemas computacionalmente dificiles? (Complejidad)

Existen diferentes modelos de computacion, entre los cuales podemos nombrar las Maquinasde Turing (Turing - 1936), los Automatas Finitos (Rabin y Scott - 1950) y el Calculo Lambda(Church - 1936).

Los primeros dos modelos (Maquinas de Turing y Automatas Finitos) se suelen tipificar comomodelos de estados, mientras que el Calculo Lambda como modelo funcional.

Los modelos de computacion difieren principalmente en su poder computacional (que funcionespodemos computar con un modelo) y en que nos permiten estudiar. Por ejemplo, las Maquinas deTuring (MT) y el Calculo Lambda se utilizan para estudiar decidibilidad, esto es, que puede y queno puede resolver una computadora y cuales problemas son decidibles y cuales son indecidibles.Un problema es decidible si existe un algoritmo que, con suficiente tiempo y memoria, siemprepueda resolverlo. Si no existe dicho algoritmo entonces decimos que el problema es indecidible.

1.1 Modelo General de Maquina

Para poner en contexto donde se encuentran los automatas dentro del mundo de los modelosde computacion, empezemos por definir de forma abstracta y simplificada lo que consideraremoscomo una maquina (computadora).

En su forma mas basica, podemos pensar una computadora como compuesta por dos compo-nentes: una memoria y una unidad central de procesamiento (CPU).

CPU

Memoria

Input Output

Figura 1: Modelo General de Maquina

Nos interesa particularmente el tipo de memoria que tiene una maquina, ya que de eso depen-dera su poder computacional. En funcion al tipo de memoria podemos distinguir los siguientestipos de maquinas, ordenadas de menor a mayor poder computacional:

2

Page 3: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

1. Automatas de Estados Finitos (Finite State Automata): Son aquellas maquinas que notienen de memoria temporaria.

2. Automatas con Pila (Pushdown Automata): Son aquellas maquinas que tienen una pilacomo memoria temporaria.

3. Maquinas de Turing (Turing Machines): Son aquellas maquinas que tienen memoria delectura y escritura de acceso aleatoria.

Cada tipo de maquina tiene distinto poder computacional, el cual se va incrementando amedida que el tipo de memoria es menos restrictivo. Como es de esperar, la complejidad tambienaumenta con el poder de computacional.

En esta materia no estudiaremos las Maquinas de Turing, pero sı veremos distintos tipos deAutomatas de Estados Finitos y con Pila, y estudiaremos sus propiedades.

2 Automatas Finitos Determinısticos

2.1 Sistemas de estados finitos

En nuestra vida cotidiana nos encontramos con muchos sistemas que se pueden modelar comosistema de estados finitos. Los mismos siempre se encuentran en un estado determinado dentrode un conjunto finito de estados posibles, y la transicion entre estados se da como consecuenciade recibir un determinado estımulo de entrada (un input). En estos sistemas, podemos considerarque la funcion de un estado es la de recordar una parte relevante de la historia del sistema.

Ejemplo 2.1. Consideremos un interruptor e intentemos modelarlo como un sistema de estadosfinitos. En su forma mas simple podemos pensar un interruptor como un sistema con dos estadosposibles, un estado de ON y un estado de OFF, y en el cual la transicion entre ambos estadosocurre cuando alguien apreta (push) el interruptor. La Figura 2 muestra un diagrama de estesistema.

OFF ON

push

push

Figura 2: Modelo de Estados de un Interruptor

Cuando el interruptor esta en el estado ON, podemos interpretarlo como “recordando” quealguien en algun momento lo apreto y lo puso en ese estado. Si luego de un cierto tiempo,lo observamos y el interruptor esta en el estado OFF, entonces podemos interpretarlo comorecordando que alguien en algun momento lo apreto y lo paso a ese estado.

Todos los sistemas de estados finitos comparten ciertas caracterısticas comunes. En particular,todos tienen:

1. Un estado inicial, en el cual el sistema se inicia,

3

Page 4: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

2. un conjunto de estados finales (o de aceptacion), que representan los estados a los cualesnos interesa llegar, y,

3. el efecto de aplicar una entrada (o input) depende unicamente del estado en el cual seencuentra el sistema cuando se la aplica.

Ejemplo 2.2. Consideremos un expendedor de golosinas, el cual entrega una golosina cuando sele ingresa cierta cantidad de dinero. Supongamos que el expendedor comienza su funcionamientosin dinero, que solo entrega una golosina cuando le han ingresado $ 1 (un peso), y que aceptamonedas de $ 0.25, $ 0.5 y $ 1. El expendedor de alguna forma debe recordar cuanto dinero lehan ingresado para, ası, saber cuando entregar la golosina.

Podemos modelar el expendedor de la siguiente forma:

- Con 5 estados, para cuando el expendedor tenga $ 0, $ 0.25, $ 0.5, $ 0.75 y $ 1 respecti-vamente.

- Inicialmente, el expendedor no tiene dinero, es decir, esta en el estado $ 0.

- Con un solo estado final (el estado $ 0), que es cuando se entrega la golosina.

- Al entregar la golosina, se vuelve al estado inicial.

- Solo acepta monedas de $ 0.25, $ 0.5 y $ 1.

La Figura 3 presenta nuestro modelo del expendedor.

0

0.25

1

0.75

0.50

$1

$0.25

$0.50

$0.25

$0.50

$0.25

$0.25

$0.5

0

Entregar

Figura 3: Modelo de un Expendedor de Golosinas

Ha de notarse que este modelo es una simplificacion de un modelo real de un expendedor yaque no considera las situaciones donde se ingrese mas de $ 1, ¿como lo solucionarıas?

Lo que acabamos de presentar son las caracterısticas basicas de lo que se denominan automatasfinitos determinısticos y como habran podido observar, hasta aquı hemos lidiado con conceptosy nociones sumamente intuitivas. A continuacion, nuestro trabajo sera definirlos y estudiarlosformalmente.

4

Page 5: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

2.2 Automata Finito Determinıstico

Un automata finito determinıstico (DFA) es un modelo matematico de un sistema, con entradasy salidas discretas. Es determinıstico ya que el sistema solo puede estar en una, entre un numerofinito, de configuraciones internas o estados.Ademas, el estado del sistema es la unica informacionque se toma en cuenta para pasar a otro estado cuando el sistema recibe una entrada.

En ciencias de la computacion es posible encontrar numerosos ejemplos de DFAs, y la teorıade automatas es una herramienta sumamente util para estudiar dichos sistemas. Programas talescomo editores de texto y analizadores lexicos, encontrados en la mayorıa de los compiladores, sona menudo modelados como sistemas de estados finitos.

Definicion 2.1 (Automata Finito Determinıstico). Un automata finito determinıstico (DFA) M =(Q,Σ,δ,q0,F) es una 5-upla donde:

1. Q = {q1,q2, . . . ,qm} es un conjunto finito de estados.

2. Σ = {a1,a2, . . . ,an} es un conjunto finito de sımbolos de entrada (o input) .

3. δ : Q×Σ 7→ Q es la funcion (total) de transicion de estados.

4. q0 ∈ Q es el estado inicial.

5. F ⊆ Q son los estados finales.

Ejemplo 2.3. Consideremos el sistema de estados de un interruptor que vimos en el Ejemplo2.1(Figura 2). Definimos el automata M = (Q,Σ,δ,q0,F), de la siguiente forma:

• Q = {ON,OFF}.

• Σ = {push}.

• q0 = OFF.

• F = {ON,OFF}.

• δ definida como:

δ(ON, push) = OFF.δ(OFF, push) = ON.

Es comun representar la funcion de transicion mediante una tabla a doble entrada en la cual,buscando el cruce entre la entrada de un estado q y la entrada de un input a, sabemos comocambia el estado q cuando recibe el input a. En esta tabla es comun marcar el estado inicial conel sımbolo → y los estados finales con el sımbolo ∗.

Ejemplo 2.4. Sea M un automata finito determinıstico con estados {q0,q1,q2}, sımbolos deentrada Σ = {a,b} y las siguientes reglas de transicion: el estado q0 se transforma en q1 si el inputes a y en q0 si el input es b; el estado q1 se transforma en q1 si el input es a y en q2 si el input esb; finalmente, el estado q2 se transforma en q2 si el input es a y en q0 si el input es b. Es decirδ, la funcion de transicion, esta definida por:

δ(q0,a) = q1, δ(q0,b) = q0δ(q1,a) = q1, δ(q1,b) = q2δ(q2,a) = q2, δ(q2,b) = q0

Esta funcion puede ser representada de forma mas compacta con la siguiente tabla:

5

Page 6: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

a b→∗ q0 q1 q0∗ q1 q1 q2

q2 q2 q0

Ejemplo 2.5. Consideremos el modelo de estados del expendedor de golosinas del Ejemplo 2.2(Figura 3). Definimos el automata M = (Q,Σ,δ,q0,F), de la siguiente forma:

• Q = {0,0.25,0.50,0.75,1}.

• Σ = {0.25,0.50,1,E}.

• q0 = 0.

• F = {0}.

• δ definida como:

0.25 0.50 1 E→∗ 0 0.25 0.50 1 −0.25 0.50 0.75 − −0.50 0.75 1 − −0.75 1 − − −

1 − − − 0

Se debe notar que el sistema del Ejemplo 2.5 no es un automata en el sentido de la Definicion 2.1ya que hay estados que no aceptan ciertos inputs y la definicion de un DFA requiere que la funcionde transicion δ sea una funcion total. En la seccion siguiente extenderemos el concepto deautomata, con lo cual este tipo de situaciones sera admisible.Mientras tanto, ¿como modificariasel sistema para que cumpla con la definicion de un DFA?

2.2.1 Diagramas de Transicion

Como han podido observar en los ejemplos anteriores existe una estrecha relacion entre un DFA ysu representacion grafica. De hecho a todo DFA se le puede asignar un grafo, al cual llamaremosdiagrama de transicion.

Definicion 2.2 (Algoritmo de Generacion de Diagramas de Transicion). Sea M = (Q,Σ,δ,q0,F)un DFA, su diagrama de transicion se construye de la siguiente forma:

1. Se agrega un nodo con etiqueta qi, por cada estado qi ∈ Q.

2. Marcamos al nodo correspondiente al estado inicial q0 con una flecha que ingresa.

3. Marcamos los nodos correspondientes a los estados finales qi ∈ F con doble cırculos.

4. Agregamos un eje etiquetado a del nodo qi al nodo q j si existe una transicion δ(qi,a) = q j.

Si tenemos un diagrama de transicion hay un DFA asociado a el mismo; y por lo tanto deahora en mas no distinguiremos entre DFAs y sus diagramas de transicion.

Ejemplo 2.6. Sea M un automata con estados {q0,q1,q2,q3}, sımbolos de input {0,1}, estadoinicial q0 y estado final q0, y donde la funcion de transicion esta dada por la Tabla 1.

La Figura 4 presenta el diagrama de transicion de M, generado usando el algoritmo de laDefinicion 2.2

6

Page 7: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

0 1→ ∗ q0 q2 q1

q1 q3 q0q2 q0 q3q3 q1 q2

Tabla 1:

q0 q1

q2 q3

1

0

1

0

1

0

1

0

Figura 4: Diagrama de Transicion

2.3 Automatas y su Lenguaje

En esta seccion estudiaremos la relacion que existe entre los automatas y los lenguajes. Enparticular nos interesan aquellas sucesiones de sımbolos de entrada que nos llevan del estadoinicial a un estado final, ya que ellas seran las que definan el lenguaje del automata.

Comencemos por introducir las definiciones necesarias que nos permitiran formalizar el lenguajede un automata.

En lo que sigue, consideraremos a un sımbolo, como una entidad abstracta que no definiremosformalmente, ası como en geometrıa no se definen los puntos y las lıneas. Letras y dıgitos sonejemplos de sımbolos frecuentemente usados.

Definicion 2.3 (Alfabeto Σ, Cadena sobre Σ y Σ∗). Un alfabeto (denotado por Σ) es un conjuntofinito de sımbolos. Una cadena (o palabra) sobre el alfabeto Σ es una secuencia finita de sımbolosde Σ. La cadena vacıa ε es la cadena con cero ocurrencias de sımbolos. Σ∗ denota el conjunto detodas las palabras sobre el alfabeto Σ.

Ejemplo 2.7. Sea el alfabeto Σ = {0,1}, luego 01, 000111 y 1010 son cadenas sobre el alfabetoΣ y, Σ∗ = {ε,0,1,00,01,10,11,000, . . .} .

Definicion 2.4 (Longitud de una cadena). La longitud de una cadena w (denotada por |w|) es elnumero de sımbolos que la componen. La cadena vacıa ε tiene longitud cero (|ε|= 0).

Definicion 2.5 (Subcadena, Prefijo y Sufijo). Una subcadena es una secuencia de sımbolos in-cluida en una cadena.

7

Page 8: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Un prefijo de una cadena w es una subcadena de w que comienza con el primer sımbolo de w..

Un sufijo de una cadena w es una subcadena de w que termina con el ultimo sımbolo de w.

Definicion 2.6 (Concatenacion). Dadas dos cadenas α y γ, su concatenacion (denotada por αγ)es la cadena formada escribiendo la primera cadena seguida de la segunda sin espacios en el medio.Para toda cadena α vale que αε = εα = α.

Ejemplo 2.8. Considere la cadena bbabaa. Luego, |bbabaa| = 6; la cadena ab es subcadena debbabaa, mientras que la aab no lo es; la cadena bba es un prefijo de bbabaa, mientras que ba nolo es; la cadena baa es un sufijo de bbabaa, mientras que aba no lo es.

Dadas dos cadenasw = aaa y x = bbb, luego, wx = aaabbb.

Finalmente podemos dar la definicion de un lenguaje sobre un alfabeto.

Definicion 2.7 (Lenguaje sobre un alfabeto Σ). Un lenguaje L sobre un alfabeto Σ es un conjuntode palabras sobre el alfabeto Σ (L⊆ Σ∗).

Ejemplo 2.9. El conjunto de palindromes o capicuas sobre el alfabeto {0,1} es un lenguajeinfinito. Algunos elementos de este lenguaje son ε, 0, 1, 00, 11, 000, 010, 101, 111.

Observacion 2.1. Un lenguaje L sobre un alfabeto Σ no necesita incluir palabras con todos lossımbolos de Σ, por lo tanto, una vez que establecimos que L es un lenguaje sobre Σ, tambiensabemos que sera un lenguaje sobre toda extension de Σ.

Para entender cual es la relacion entre lenguajes y automatas consideremos el automata de laFigura 4:

Este automata tiene como sımbolos de entrada a Σ= {0,1}. Ahora consideremos las secuenciasde entradas que nos llevan del estado inicial q0 a cualquier otro estado. Por ejemplo, para llegar deq0 a q3 podemos hacerlo con las secuencias de sımbolos de entradas 〈0,1〉, o 〈1,0〉, o 〈0,1,1,0,0,1〉.Un analisis similar se puede realizar para los otros estados.

Si consideramos a Σ como un alfabeto, podemos interpretar a las secuencias de sımbolos de en-trada como palabras sobre este alfabeto. Por ejemplo, las secuencias 〈0,1〉, 〈1,0〉 y 〈0,1,1,0,0,1〉se pueden interpretar como las palabras 01, 10 y 011001 respectivamente. Luego podrıamos pre-guntar a que estado nos lleva cada palabra sobre Σ. Por ejemplo, la palabra 11100 nos lleva deq0 a q1, mientras que la palabra 1001 nos lleva de q0 nuevamente a q0.

Es natural entonces, preguntarse cuales son las palabras que nos llevan desde el estado inicial aalgun estado final. Anteriormente habiamos dicho que los estados finales o de aceptacion encierranimplıcitamente una nocion de exito, por lo cual, si una palabra nos lleva del estado inicial a unestado final podrıamos decir que esa palabra es buena o que es aceptada por el automata. Porejemplo, la palabra 1001 es una palabra aceptada por el automata.

Finalmente, el conjunto de palabras aceptadas por un automata M es lo que se denominacomo el lenguaje aceptado por el automata M.

Lo interesante de conocer el lenguaje aceptado por un automata, es que este lenguaje locaracteriza (al automata), por lo cual podemos estudiar diversas propiedades del mismo estudiandosu lenguaje.

En lo que sigue formalizaremos la nocion de lenguaje de un automata.

Definicion 2.8 (Transforma en). Sea M = (Q,Σ,δ,q0,F) un DFA. Una cadena en M es un ele-mento de Σ∗. Sean p,q ∈Q estados de M y α = a0a1 . . .an una cadena en M. Luego, diremos queα transforma q en p (denotado por q α→ p) si partiendo del estado q y aplicando sucesivamentelas entradas a0, a1, hasta an, llegamos al estado p.

8

Page 9: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Observacion 2.2. En lo que sigue nos interesan las siguientes propiedades de la relacion transformaen.

• p ε→ p (ε transforma un estado en si mismo).

• Si α = a0,a1, . . . ,an:

– p α→ q≡ p a0→ q1a1→ . . .

an−1→ qnan→ q.

• Si α = βγ, donde β y γ son cadenas, entonces:

– p α→ q sii existe r ∈ Q tal que pβ→ r

γ→ q.

Definicion 2.9 (Cadena aceptada por un automata). Sea M = (Q,Σ,δ,q0,F) un DFA y α una

cadena en M. Diremos que α es aceptada por M, si existe p ∈ F tal que q0α→ p, esto es, si α

transforma el estado inicial q0 en un estado final p.

Definicion 2.10 (Lenguaje aceptado por un automata). Sea M = (Q,Σ,δ,q0,F) un DFA, ellenguaje aceptado por M se define como:

L(M) = {α ∈ Σ∗| existe p ∈ F tal que q0

α→ p}.

Esto es, L(M) es el conjunto de todas las cadenas aceptadas por el automata.

Ejemplo 2.10. Determinenmos el lenguaje del automata de la Figura 5:

M

q0 q1

1

0

1

0

Figura 5: Automata M1

Luego de inspeccionar el automata y de probar con algunas cadenas es facil ver que el automatasolo acepta palabras con un numero impar de 1’s. Probemos formalmente que este es el lenguajede M1.

Demostracion. Sea w una cadena en M. Luego debemos probar la siguiente proposicion:

q0w→ q1 si y solo si w tiene un nro impar de 1′s.

Lo probamos por induccion en |w|.

Caso Base: |w|= 0 (w = ε)

(→): Trival, ya que q0ε→ q0 y por lo tanto q0

ε→ q1 es falso.(←): Trivial, ya que ε tiene un nro par de 1’s (tiene cero 1’s).

Paso Inductivo: Sea w = xa con |x| ≥ 1 y a ∈ Σ y supongamos que vale la proposicion parax.

(→): Si q0xa→ q1 entonces debemos considerar dos casos:

9

Page 10: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

1. a = 0: Si q0x0→ q1, por definicion de δ, q0

x→ q10→ q1. Luego, por hipotesis inductiva (H.I.),

x tiene un numeroro impar de 1’s y por lo tanto w = x0 tambien tiene un numero impar de1’s.

2. a = 1: Si q0x1→ q1, por definicion de δ, q0

x→ q01→ q1. Luego por H.I., x tiene un numero par

de 1’s (por que de lo contrario tendrıamos que q0x→ q1), y por consiguiente w = x1 tiene

un numero impar de 1’s.

(←): Tenemos que analizar dos casos:

1. a = 0: Si w = x0 tiene un numero impar de 1’s, entonces x tiene un numero impar de 1’s y

por H.I., q0x→ q1. Luego, por definicion de δ, q1

0→ q1 y se sigue que q0x0→ q1.

2. a = 1: Si w = x1 tiene un numero impar de 1’s, entonces x tiene un numero par de 1’s y

por H.I., q0x→ q0. Luego, por definicion de δ, q0

1→ q1 y se sigue que q0x1→ q1.

Ejemplo 2.11. Probemos que el lenguaje del automata del Ejemplo 2.6 es el conjunto de cadenasque tienen un numero par de 0’s y un numero par de 1’s.

Demostracion. En este caso, para probar el lenguaje del automata usaremos un argumento geometrico.Si observamos el diagrama de transicion correspondiente notamos que ir de izquierda a derecha

o de derecha a izquierda significa aplicar el input 1. Ir de arriba a abajo o de abajo a arribasignifica aplicar el input 0. Ahora bien, como q0 es el estado inicial y final, una palabra aceptadava “recorriendo” el diagrama de tal forma que cuando termina subio tantas veces como bajo yfue a la izquierda tantas veces como fue a la derecha. Es decir que esta palabra tiene un numeropar de 0’s y un numero par de 1’s.

Por otro lado, si una palabra tiene un numero par de 0’s y un numero par de 1’s es claro, porlas mismas razones expuestas arriba, que termina su recorrido en q0.

Observemos que ε es una cadena aceptada, debido a que q0 es estado final y que q0ε→ q0.

Claramente, la cadena ε tiene un numero par de ceros y unos, pues tiene 0 ceros y 0 unos.

Como hemos mencionado, los automatas estan caracterizados por su lenguaje, por lo cualsi queremos comparar dos automatas podrıamos hacerlo comparando sus lenguajes. En otraspalabras, la igualdad entre los lenguajes de dos automatas nos sirve como nocion de equivalenciaentre los automatas.

Definicion 2.11 (Equivalencia de automatas). Sean M y M′ dos DFA. Diremos que M y M′ sonequivalentes si L(M) = L(M′).

Ejemplo 2.12. Probemos que los automatas M1 y M2 de la Figura 6 son equivalentes.Inspeccionando los automatas, es facil determinar que el lenguaje aceptado por ambos automatas

es el de todas las palabras terminadas en a, esto es, L(M1) = L(M2) = {w | w termina en a}, y porlo tanto que ambos automatas son equivalentes.

Probemos formalmente que ambos automatas son equivalentes.

10

Page 11: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

M1

q0 q1 q2a

b

b

a

b

a

M2

q0 q1

a

b

b

a

Figura 6: Automatas M1 y M2

Demostracion. Para ambos automatas debemos probar la siguiente proposicion:

w es aceptada si y solo si w termina en a.

Prueba para M1: Lo probamos por induccion en |w|.

Caso Base: |w|= 0 (w = ε)

(→): Trival, ya que q0ε→ q0 y por lo tanto ε no es aceptada.

(←): Trivial, ya que ε no termina en a.

Paso Inductivo: Sea w = xz con |x| ≥ 1 y z ∈ Σ y supongamos que vale la propiedad para x.

(→): Si xz es aceptada entonces q0xz→ q1 (o q0

xz→ q2). Por propiedad de →, debe existir qx

tal que q0x→ qx

z→ q1 (o q0x→ qx

z→ q2). Luego, tenemos que considerar dos casos:

1. x es aceptada: Por H.I. x termina en a por lo cual debe ser que q0x→ q1 (o q0

x→ q2). Luego,

por definicion de δ, w = xz solo es aceptada si z = a ya que q1a→ q2 (y q2

a→ q2).

2. x no es aceptada: Por H.I. x no termina en a por lo cual debe ser que q0x→ q0. Luego, por

definicion de δ, w = xz solo es aceptada si z = a ya que q0a→ q1.

(←): Si w = xa, queremos ver que q0xa→ q1 (o q0

xa→ q2). Por propiedad de →, debe existir qx

tal que q0x→ qx

a→ q1 (o q0x→ qx

a→ q2). Luego, tenemos que considerar 2 casos:

1. x termina en a: Por H.I. x es aceptada, por lo cual debe ser que q0x→ q1 (o q0

x→ q2). Luegopor definicion de δ tenemos que q1

a→ q2 (y q2a→ q2), por lo cual xa es aceptada.

2. x no termina en a: Por H.I. x no es aceptada, por lo cual debe ser que q0x→ q0. Luego, por

definicion de δ, q0a→ q1 y por lo tanto q0

xa→ q1, con lo cual w = xa es aceptada.

Prueba para M2:

(→): Si w = xz es aceptada entonces q0xz→ q1, si y solo si, por defincion de δ, w = xa ya que

la unica forma de llegar a q1 es a traves de a.(←): Si w = xa luego, por definicion de δ, tenemos que q0

x→ qxa→ q1, y por lo tanto w = xa

es aceptada.

11

Page 12: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Finalmente ahora probamos que L(M1) = L(M2). Para ello debemos ver L(M1) ⊆ L(M2) y queL(M1)⊇ L(M2).

(⊆): Si α ∈ L(M1) entonces α = xa (termina en a), luego α ∈ L(M2).

(⊇): Si α ∈ L(M2) entonces α = xa (termina en a), luego α ∈ L(M1).

2.4 Ejercicios

Ejercicio 2.1. Trace los diagramas de transicion de los DFA dados por las siguientes reglas detransicion. Aquı, el conjunto de estados es {q0,q1,q2}; el de sımbolos de input {a,b}, y el estadoinicial q0

a bq0 q1 q0q1 q2 q0q2 q0 q2

a bq0 q1 q1q1 q0 q2q2 q0 q1

Automata M1. Estados finales: q0 Automata M2. Estados finales: q0,q2

Ejercicio 2.2. Determine si las cadenasabbaa abb aba abaaaaa abbbbbbaab

son aceptadas por el DFA definido por el siguiente diagrama

����

σ0

?b

qa

��������

σ1i

b

-a ��������

σ2

?a

i

b

-

Si la cadena ω es aceptada,¿toda subcadena de ω es aceptada? ¿es aceptada la cadena ωω?

Ejercicio 2.3. Considere el automata del ejercicio anterior. Justifique las siguientes afirmaciones:(a) Si ω es aceptada, entonces termina en a.(b) Si ω termina en a, entonces es aceptada.

(Ayuda para (b): si ω = αa, donde termino despues de recorrer α?)

Ejercicio 2.4. Caracterice en palabras el lenguaje aceptado por el automata. Luego justifique suafirmacion.

����

σ0

?a

qb

����

σ1i

a

-b ��������

σ2

?b

i

a

-

12

Page 13: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Ejercicio 2.5. Construir un automata finito determinıstico con alfabeto Σ = {a, b} que aceptecadenas que empiecen con ab y terminen con ba.

Ejercicio 2.6. Hallar un automata finito determinıstico que acepte exactamente el lenguaje delas cadenas sobre el alfabeto Σ = {0,1} que tienen una cantidad par de 1’s y el numero de 0’s esmultiplo de 3.

3 Automatas Finitos No Determinısticos

En la seccion anterior definimos los automatas finitos determinısticos (DFA) y vimos que todoDFA define un lenguaje. En particular, vimos que lo determinıstico en un DFA se debe que,en todo momento, el estado del mismo esta completamente determinado. Esto se debe a quela funcion de transicion es una funcion total que define exactamente, para todo estado y todosımbolo de entrada, a que estado se hace la transicion. Ahora, ¿que pasarıa si permitimos 0,1 omas transiciones por sımbolo?

Ejemplo 3.1. Consideremos el automata de la Figura 7. ¿En que estado esta el automata siestando en q0 aplicamos el sımbolo de entrada 0? o, en otras palabras, ¿cuanto vale δ(q0,a)?.

q0 q1 q20

0,1

1

Figura 7: Automata no determinıstico

En este caso ya no podemos decir que el automata esta en un estado determinado, ya queδ(q0,a) = q0 y δ(q0,a) = q1 al mismo tiempo.

El ejemplo anterior nos muestra que si ahora permitimos cero o mas transiciones por sımbolo,perdemos la capacidad de establecer el estado exacto de un automata, ya que el mismo ahora seencuentra, al mismo tiempo, en un conjunto de estados, perdiendo de esta manera su determinismoy transformandose ası en un automata finito no determinıstico.

Definamos ahora formalmente a un automata finito no determinıstico.

Definicion 3.1 (Automata Finito No-Determinıstico). Un automata finito no determinıstico (NFA)M = (Q,Σ,δ,q0,F) es una 5-tupla donde:

1. Q = {q1,q2, . . . ,qm} es un conjunto finito de estados.

2. Σ = a1,a2, . . . ,an es un conjunto finito de sımbolos de entrada (o input).

3. δ : Q×Σ 7→ P (Q) es la funcion de transicion de estados.

4. q0 ∈ Q es el estado inicial.

5. F ⊆ Q son los estados finales.

13

Page 14: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Es importante notar que la unica diferencia entre la Definicion 3.1 de un NFA y la Definicion 2.1de un DFA, es que, en un NFA la funcion de transicion δ no es total y en vez de retornar un estadoretorna un conjunto de estados.

Al igual que en el caso de un DFA, podemos representar la funcion de transicion δ medianteuna tabla de transicion, donde para cada cruce entre un estado q y un sımbolo de entrada a,tendremos el conjunto de estados al cual pasa el automata.

Ejemplo 3.2. Consideremos el diagrama de transicion de la Figura 7. Definimos el NFA M =(Q,Σ,δ,q0,F) de la siguiente forma:

• Q = {q0,q1,q2}

• Σ = {0,1}

• F = {q2}

• q0 es el estado inicial

• δ esta definida por:

0 1q0 {q0,q1} {q0}q1 /0 {q2}q2 /0 /0

La pregunta que surge ahora es: ¿como procesa un NFA una cadena de entrada?, es decir,¿que hace cuando tiene mas de una transicion posible para un mismo sımbolo de entrada?

Ejemplo 3.3. Consideremos el NFA de la Figura 7 y veamos como procesa la cadena 00101.El automata inicia en q0, su estado inicial. Cuando recibe el primer sımbolo 0, hace una

transicion a los estados q1 y q0, es decir, el automata esta en los estados {q0,q1}. Esto se puedeilustrar en terminos mas concretos, si pensamos que lo que hace el automata es crear dos hilosde ejecucion, uno en el cual el automata tiene esta en el estado q0, y otro en el cual el automataesta en el estado q1. La Figura 8 representa esta situacion.

q0 q0 q0 q0 q0 q0

q1 q1 q1

q2 q2

0 0 1 0 1

Figura 8: Como procesa un NFA una cadena de entrada

Continuemos procesando la cadena de entrada y veamos que sucede cuando el automatarecibe otro sımbolo 0. En este caso, en el hilo de ejecucion de q0, nuevamente podemos hacer unatransicion hacia q1 y q0, creando de esta forma otros dos hilos de ejecucion. Sin embargo, el hilode ejecucion correspondiente a q1 no tiene especificado como procesar el sımbolo 0, y por lo tantoaborta. De esta forma, luego de procesar el segundo sımbolo 0 estamos en el estado {q0,q1}.

Procesemos ahora el sımbolo 1. En este caso en el hilo de ejecucion de q0 solo podemos haceruna transicion hacia q0, mientras que en el hilo de ejecucion de q1 se hace una transicion hacia elestado q2. Ahora el automata esta en el estado {q0,q2}.

Procesemos ahora el sımbolo 0. En este caso, en el hilo de ejecucion de q0 hacemos transicionesa q0 y q1, mientras que en el hilo de ejecucion de q2 no se puede procesar ese sımbolo, y por lotanto aborta.

14

Page 15: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Finalmente procesamos el ultimo sımbolo 1. En este caso, el automata termina en los estados{q0,q2}. Pregunta: ¿Ha sido aceptada la cadena 00101?

Definamos ahora el lenguaje aceptado por un NFA.

Definicion 3.2 (Transforma en). Sea M = (Q,Σ,δ,q0,F) un NFA y α = a0,a1, . . . ,an ∈ Σ∗. Sean

p,q ∈ Q estados de M. Diremos que α transforma p en q (denotado por p α→ q) si existenq1, . . . ,qn ∈ Q tal que

q1 ∈ δ(p,a0),q2 ∈ δ(q1,a1), . . . ,qi+1 ∈ δ(qi,ai), . . . ,

qn ∈ δ(qn−1,an−1),q ∈ δ(qn,an).

Observacion 3.1. Es importante tener presente las siguientes propiedades de la relacion transformaen:

• α puede transformar a un estado qi en varios estados.

• α genera distintos recorridos desde q0.

Como es de esperar, una cadena α sera aceptada si alguno de los recorridos que genera desdeq0 termina en un estado final.

Se debe tener presente que la nocion de aceptacion, ahora tiene en cuenta que en un NFAtrabajamos con conjuntos de estados, por lo cual una cadena α, pueden generar muchos recorridosdesde el estado inicial. Algunos de estos recorridos no necesariamente terminan en un estado finale incluso pueden abortar tempranamente. Sin embargo, lo que nos interesa para decidir si unacadena es aceptada o no, es que dentro de todos esos posibles caminos, al menos uno termine enun estado final.

Definicion 3.3 (Lenguaje aceptado por un automata). Sea M =(Q,Σ,δ,q0,F) un NFA, el lenguajeaceptado por M se define como:

L(M) = {α ∈ Σ∗| existe p ∈ F tal que q0

α→ p}.

Ejemplo 3.4. Consideremos el NFA de la Figura 7. Es facil ver que el automata acepta solo lascadenas que terminan en 01. Es decir,

L(M) = {w | w termina en 01}.

Demostracion. Por induccion en |w|.

3.1 Equivalencia entre DFAs y NFAs

Revisando la Definicion 3.1 de un NFA, es facil ver que la misma es una generalizacion de laDefinicion 2.1 de un DFA.

Esto nos lleva a preguntarnos si esta generalizacion permite a los NFAs reconocer mas lenguajesque los DFAs.

Sin embargo, veremos a continuacion que este no es el caso y que los NFAs reconocen losmismos lenguajes que los DFAs, esto es, veremos que para todo NFA existe un DFA que reconoceel mismo lenguaje, y viceversa, lo cual nos permitira probar que ambas nociones son equivalentes.

El proceso de construir un DFA a partir de un NFA se denomina determinizacion. Comence-mos por definir como construir un DFA a partir de un NFA utilizando una construccion llamadaconstruccion por subconjuntos.

15

Page 16: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Definicion 3.4 (Construccion por Subconjuntos). Sea N = (Q,Σ,δ,q0,F) un NFA. Construiremosel DFA, D = (Q′,Σ′,δ′,q′0,F

′), de la siguiente forma:

1. Q′ = P (Q).

2. Σ′ = Σ.

3. F ′ = {q′ ∈ Q′ | q′∩F 6= /0}.

4. q′0 = {q0}.

5. δ′(q′,a) = {p ∈ Q | existe q ∈ q′ t.q. q a→ p}=⋃

q∈q′ δ(q,a).

Observacion 3.2. Es importante tener presente lo siguiente:

• δ′(q′,a) el conjunto de estados accesibles, a traves de a, desde cada q ∈ q′.

Ejemplo 3.5. Consideremos el automata de la Figura 6. La Tabla 2 representa la tabla detransicion de estados del DFA D = (Q′,Σ,δ′,q′0,F

′) obtenido mediante la construccion por sub-conjuntos. La Figura 9 presenta el diagrama de transicion de estados del DFA D.

0 1(0) /0 /0 /0

(1)→{q0} {q0,q1} {q0}(2) {q1} /0 {q2}(3)∗ {q2} /0 /0

(4) {q0,q1} {q0,q1} {q0,q2}(5)∗ {q0,q2} {q0,q1} {q0}(6)∗ {q1,q2} /0 {q2}(7)∗ {q0,q1,q2} {q0,q1} {q0,q2}

Tabla 2: Tabla de transicion de estados del automata D.

A partir del Ejemplo 3.5 podemos ver que uno de los inconvenientes de la construccion porsubconjuntos es la explosion en el numero de estados que tiene el DFA resultante. De hecho,si |Q| = n entonces |Q′| = 2n!!!. Sin embargo, el ejemplo tambien nos muestra que no todos losestados del DFA son alcanzables desde el estado inicial, y por lo tanto no son necesarios.

A continuacion presentamos un algoritmo mas eficiente que nos permitira construir DFA quecontenga solo los estados necesarios.

Definicion 3.5 (Construccion Lazy). Sea N = (Q,Σ,δ,q0,F) un NFA. Construiremos el DFA,D = (Q′,Σ′,δ′,q′0,F

′), de la siguiente forma:

1. Σ′ = Σ.

2. F ′ = {q′ ∈ Q′ | q′∩F 6= /0}.

3. q′0 = {q0}.

4. δ′(q′,a) = {p ∈ Q | existe q ∈ q′ t.q. q a→ p}=⋃

q∈q′ δ(q,a).

16

Page 17: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

1 4 5

2 3 6

0

7

0,1

0

1

0

1

0,1

0

10

1

0

1

01

Figura 9: Diagrama de Transicion de estados del DFA D.

Donde el conjunte de estados Q′ se construye de la siguiente forma:

Data: estado inicial q0, funcion δ, alfabeto Σ

Result: conjunto de estados Q′

Q′←{{q0}};Q′′← /0;for q′ ∈ (Q′\Q′′) do

for a ∈ Σ doQ′← Q′∪{

⋃q∈q′ δ(q,a)};

endQ′′← Q′′∪{q′};

end

3.2 Automatas Finitos No Determinısticos con ε-transiciones

Ahora introduciremos la nocion de automata finito no determinıstico. No es difıcil ver que unconjunto aceptado por un automata no determinıstico tambien es aceptado por uno determinısticoy viceversa. Sin embargo, el automata finito no determinıstico resultara util para probar ciertosresultados y para ciertas aplicaciones. Daremos una definicion no formal de este tipo de automatas.El lector interesado en la definicion formal puede consultar la subseccion 3.2.1.

Modifiquemos la definicion de automata finito permitiendo cero, una, o mas transiciones de unestado con el mismo sımbolo de input. Es decir de un estado pueden partir un numero arbitrariode flechas cada una etiquetada con cualquier sımbolo de input. Tambien permitamos transicionessin inputs. Esta nueva definicion nos da los automatas finitos no determinısticos (NFA) conε-movimientos. A nivel de diagramas de transicion los grafos que representan estos automatasseran de la siguiente forma: de cada nodo puede partir ninguna, una o varias flechas con la mismaetiqueta de input. Ademas puede haber flechas que no se correspondan a ningun input, los ε-movimientos. A estas flechas les pondremos la etiqueta ε. Como en el caso de los automatasdeterminısticos los NFA tienen un estado inicial y estados finales, que se denotaran en el diagrama

17

Page 18: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

de transicion de la misma forma que en el caso determinıstico

Ejemplo 3.6. El siguiente es el diagrama de un automata finito no determinıstico con ε-movimientos:los estados son q0, q1 y q2. Los sımbolos de input son a y b. El estado inicial es q0 y el estadofinal es q2.

����

q0

?b qa

����

q1

qb

ia

ib

��������

q2

1

ε

-

Ejemplo 3.7. En este NFA los estados son q0, q1 y q2. Los sımbolos de input son 0, 1 y 2. Elestado inicial es q0 y el estado final es q2.

-����

q0

0

-ε ����

q1

1

-ε ����

q2����� 2

El nombre “no determinıstico” viene del hecho que si un estado recibe un input, entoncesno esta determinado cual es el proximo estado, si no que hay ciertos estados posibles. Los ε-movimientos reflejan la posibilidad de cambio de estado sin que necesariamente haya un input.Observar tambien, que existe la posibilidad que dado un estado no salga ninguna flecha de el.Esto denotara que en este estado el automata “aborta”. Es claro que no es facil imaginarse una“maquina” que se comporte de esta manera, sin embargo el concepto de NFA con ε-movimientosresulta muy util en la teorıa de lenguajes.

Las tablas que describiran las reglas de transicion de los NFA con ε-mov seran similares alas tablas que hemos hecho para los automatas finitos determinısticos. Las diferencias son quecuando aplicamos un input a un estado obtenemos un conjunto de estados (hacia donde van lasflechas) o /0 en el caso que no salga ninguna flecha. Ademas debemos agregar una entrada ε enla tabla para reflejar los posibles cambios de estado que producen los ε-movimientos.

Ejemplo 3.8. La tabla de transicion correspondiente al NFA con ε-mov del ejemplo 3.6 es dadapor la siguiente tabla:

a b ε

q0 q1 q0 q2q1 /0 q0,q2 /0

q2 q1 /0 /0

Ejemplo 3.9. La tabla de transicion correspondiente al NFA con ε-mov del ejemplo 3.7 es dadapor la siguiente tabla:

18

Page 19: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

0 1 2 ε

q0 q0 /0 /0 q1q1 /0 q1 /0 q2q2 /0 /0 q2 /0

Veamos ahora el lenguaje asociado a un NFA con ε-movimientos.

Definicion 3.6. Sea M un NFA con ε-movimientos con sımbolos de input Σ. Si α ∈ Σ∗, diremosque α transforma p en q y lo denotaremos p α→ q, si existen a0,a1, . . . ,an ∈ Σ tal que α = a1a2 . . .an

y tal que existe un recorrido por flechas con etiquetas a0,a1, . . . ,an que va del estado p al estadoq. En el recorrido se pueden intercalar arbitrariamente flechas con etiqueta ε.

Es conveniente tambien definir que ε transforma todo estado en sı mismo, es decir q ε→ q.

Ejemplo 3.10. En el automata del ejemplo 3.7 tenemos, por ejemplo, que q001→ q1, pues hay un

camino que lleva q0 a q0 por 0, q0 a q1 por ε y q1 a q1 por 1.

Observacion 3.3. Si p y q estados, a sımbolo de input y p a→ q, no podemos asegurar que de ppodemos pasar directamente a q por una flecha con etiqueta a. Por definicion p a→ q significa quepodemos llegar de p a q usando ε-movimientos ademas de una transicion por a. Observando el

automata del ejemplo 3.7 vemos que q00→ q1, pero no es cierto que hay una flecha con etiqueta

0 que manda q0 a q1.En gran parte de las situaciones que necesitemos usar transiciones podremos tomarnos la

licencia de usar la notacionp a0→ q1

a1→ ··· an−1→ qnan→ q,

para indicar que hay un camino de flechas con etiquetas a0, . . . ,an que pasa por los estadosq1, . . . ,qn y que va de p a q (aquı permitiremos que los ai puedan ser ε’s).

Ejemplo 3.11. Sea M un NFA con ε-movimientos,con diagrama de transicion :

����

q0

?b

qa

����

q1 �a

ib

��������

q2

1

ε

-

Entonces, la tabla de transicion es:

a b ε

q0 q1 q0 q2q1 /0 q0 /0

q2 q1 /0 /0

Veamos cuales son las transformaciones correspondientes a un input o un ε-movimiento:

q0ε→ q0,q2 q0

a→ q1 q0b→ q0,q2

q1ε→ q1 q1

b→ q0,q2 q2a→ q1

q2ε→ q2 q2

a→ q1

19

Page 20: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

donde denotamos p a→ q,q′ cuando p a→ q y p a→ q′. La mayorıa de las transformaciones sonobvias y las otras se deducen de la definicion. Sin embargo, creemos conveniente explicar algunasde ellas. Por ejemplo, recordemos que, por definicion, q ε→ q para todo q estado, de allı que se

justifica la primera columna de transformaciones. La transformacion q1b→ q2 se deduce de que

podemos llegar de q1 a q2 primero aplicando b y luego ε. En forma analoga se justifica q0b→ q2.

Como en el caso de automatas determinısticos los estados finales nos determinan el lenguajeasociado al automata.

Definicion 3.7. Una cadena α es aceptada por el automata si α transforma el estado inicialen uno final. Finalmente el lenguaje aceptado por M es el conjunto L(M) de todas las cadenasaceptadas. Simbolicamente:

L(M) = {α ∈ Σ∗ | q0

α→ p, para algun p ∈ F}.

A nivel de diagramas de transicion podemos entender que el lenguaje aceptado por M, un NFAcon ε-movimientos, esta formado por las cadenas α = b0b1 . . .bn tal que existe un recorrido porflechas con etiquetas b0,b1, . . . ,bn que va del estado inicial a uno final, en el recorrido se puedenintercalar arbitrariamente flechas con etiqueta ε.

Observemos que como el ε es la cadena vacıa el intercalar flechas con etiqueta ε no agreganada a la palabra, y la palabra o cadena definitiva es aquella que no tiene ningun ε. Tambienobservemos que dada una cadena puede haber muchos recorridos partiendo del estado inicial,algunos de ellos pueden terminar en un estado final y otros no, sin embargo lo que interesa, parasaber si una cadena es aceptada o no, es si por lo menos un recorrido alcanza un estado final.

Ejemplo 3.12. Averiguemos el lenguaje del automata definido en el Ejemplo 3.7: observemosprimero que si abandonamos el estado q0 entonces vamos al estado q1 y no podemos volver atras.Analogamente si abandonamos el estado q1, vamos al estado q2 y ya no podemos salir de esteestado. Luego si una cadena w alcanza el estado final, entonces comienza por q0, pasa por q1 y llegaa q2. Es decir que w es de la forma 0i1 j2k (i, j,k enteros mayores o iguales a 0). Recıprocamenteuna cadena de la forma 0i1 j2k puede alcanzar el estado final con el siguiente recorrido: 0,0, . . . ,0(i-veces), ε, 1,1, . . . ,1 ( j-veces), ε, 2,2, . . . ,2 (k-veces). Es decir que el lenguaje asociado a esteautomata es {0i1 j2k : 0≤ i, j,k}.

3.2.1 Formalizacion de los NFA

La definicion formal de NFA es:

Definicion 3.8. Un automata finito no determinıstico con ε-movimientos (NFA con ε-mov) esuna 5-upla (Q,Σ,δ,q0,F) que consiste de

1. un conjunto finito Q = {q1,q2, . . . ,qn} de estados,

2. un conjunto finito Σ = {a1,a2, . . . ,an} de sımbolos de entrada o input,

3. un conjunto de reglas de transicion que transforma un estado con un input dado, en unconjunto posible de estados. Tambien las reglas de transicion describen la transformacion deun estado en un conjunto de estados sin haber recibido input (ε-movimiento). Formalmente,las reglas de transicion son dadas por una funcion δ : Q× (Σ∪{ε})→ P (Q), donde P (Q) esel conjunto formado por los subconjuntos de Q.

20

Page 21: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

4. Ademas, como en el caso del DFA, hay un estado inicial q0 y un conjunto de estados finalesF .

Veamos ahora el lenguaje asociado a un NFA con ε-movimientos:

Definicion 3.9. Sea M = (Q,Σ,δ,q0,F) un NFA con ε-movimientos. Si α ∈ Σ∗, diremos que α

transforma p en q y lo denotaremos p α→ q, si existen a0,a1, . . . ,an ∈ Σ∪{ε} y q1, . . . ,qn en Q , talque α = a1a2 . . .an y

q1 ∈ δ(p,a0), q2 ∈ δ(q1,a1), . . .qi+1 ∈ δ(qi,ai), . . .qn ∈ δ(qn−1,an−1), q ∈ δ(qn,an).

Es conveniente tambien definir que ε transforma todo estado en sı mismo, es decir q ε→ q.

Observacion 3.4. Sea M = (Q,Σ,δ,q0,F) un NFA con ε-movimientos.

1. Como dijimos antes, si a∈ Σ, entonces si q∈ δ(p,a) tenemos que p a→ q. Pero no necesaria-mente si p a→ q, entonces se cumple que q ∈ δ(p,a). La definicion de p a→ q denota el hechode que podemos llegar de p a q mediante ε-movimientos, luego a, luego ε-movimientos. En

el automata del ejemplo 3.7 es cierto que q00→ q1, pues q0 ∈ δ(q0,0) y q1 ∈ δ(q0,ε), pero

no es cierto que q1 ∈ δ(q0,0).

2. Cuando un automata no tiene ε-mov, entonces coinciden la funcion de transicion y lastransformaciones por sımbolos de input, es decir si p,q son estados y a es un sımbolo deinput,

p ∈ δ(q,a) si y solo si q a→ p.

Por lo tanto, la notacion p α→ q para NFA con ε-mov, es consistente con la misma notacionpara DFA.

3. Es claro, en forma intuitiva, que si α,β ∈ Σ∗, entonces para p,q ∈ Q,

pαβ→ q si y solo si existe r ∈ Q tal que p α→ r

β→ q. (1)

4. Sea M′ = (Q,Σ,δ′,q0,F) con δ′ definida de la siguiente manera:

q ∈ δ′(p,a) sii p a→ q.

Entonces M′ resulta ser un NFA sin ε-mov que acepta el mismo lenguaje que M. Lademostracion se deja como ejercicio.

5. Debido a la observacion anterior, en gran parte de las situaciones que necesitemos usartransiciones podremos tomarnos la licencia de usar la notacion

p a0→ q1a1→ ··· an−1→ qn

an→ q,

para indicar que hay un camino de flechas con etiquetas a0, . . . ,an que pasa por los estadosq1, . . . ,qn y que va de p a q. Dicho mas formalmente:

q1 ∈ δ(p,a0), q2 ∈ δ(q1,a1), . . .qn ∈ δ(qn−1,an−1), q ∈ δ(qn,an).

Repetimos la

21

Page 22: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Definicion 3.10. Una cadena α es aceptada por el automata si α transforma el estado inicialen uno final. Finalmente el lenguaje aceptado por M es el conjunto L(M) de todas las cadenasaceptadas. Simbolicamente:

L(M) = {α ∈ Σ∗ | q0

α→ p, para algun p ∈ F}.

El siguiente Teorema fue anunciado al comienzo de la seccion:

Teorema 3.1. Los lenguajes aceptados por los automatas finitos determinısticos son los mismosque los aceptados por los automatas finitos no determinısticos con ε-movimientos. Mas precisa-mente, dado un DFA (NFA con ε-movimientos) M, existe un NFA con ε-movimientos (resp. DFA)M′, tal que L(M) = L(M′).

Demostracion. Si M = (Q,Σ,δ,q0,F) un DFA, entonces sea M′ = (Q,Σ,δ′,q0,F) el NFA definidopor δ′(q,a) = {δ(q,a)} para q ∈ Q y a ∈ Σ. Es trivial comprobar, entonces, que L(M) = L(M′).

Veremos ahora que, dado M = (Q,Σ,δ,q0,F) un NFA con ε-mov, podemos construir M′ = (Q′,Σ, δ′, q′0,F

′) un DFA, tal que L(M) = L(M′).Sea q ∈M, definamos [q] = {p ∈ Q | q ε→ p} ⊆ Q. Sean q1, . . . ,qi elementos de Q, entonces

denotemos[q1, . . . ,qi] = ∪i

j=1[q j].

Definamos M′ de la siguiente manera: Q′ = {[q1, . . . ,qi] | q1, . . . ,qi ∈ Q}. El nuevo conjunto deestados finales, F ′, es el conjunto de estados que contienen un estado que se transforma por ε enun estado final de M. El estado inicial sera q′0 = [q0]. Finalmente, definimos δ′([q1, . . . ,qi],a) igual

al conjunto {p ∈ Q | existe qs tal que qsa→ p}. Es decir, un a ∈ Σ transforma q′ ∈ Q′ en p′ ∈ Q′,

si el conjunto p′ esta formado por todos los elementos de Q que son los transformados por a delos elementos de q′. Resumiendo, si q′ ∈ Q′ y a ∈ Σ:

Q′ = {[q1, . . . ,qi] | q1, . . . ,qi ∈ Q} ⊆ P (Q)q′0 = [q0]

F ′ = {[q1, . . . ,qi] | existe k y p ∈ F tal que qkε→ p}

δ(q′,a) = {p ∈ Q | ∃q ∈ q′ tal que q a→ p} o equivalentemente

q′ a→{p ∈ Q | ∃q ∈ q′ tal que q a→ p}.

No es difıcil comprobar que M′ = (Q′,Σ,δ′,q′0,F′) es un automata finito determinıstico.

No es difıcil comprobar que si q′ ∈ Q′ entonces

q′ = {p ∈ Q | ∃q ∈ q′ tal que q ε→ p}. (2)

Esto se debe a que como q′ = [q1, . . . ,qi], por definicion

q′ = ∪ij=1[q j] = ∪i

j=1{p ∈ Q | q jε→ p}

= {p ∈ Q | ∃q j tal que q jε→ p} ⊂ {p ∈ Q | ∃q ∈ q′ tal que q ε→ p}.

Para demostrar la otra inclusion, consideremos p tal que q ε→ p con q ∈ q′. Como q ∈ q′ existe q j

tal que q jε→ q, luego q j

ε→ q ε→ p, de lo cual se deduce que q jε→ p y por lo tanto p ∈ {p ∈ Q |

∃q j tal que q jε→ p}.

Veamos ahora que si α ∈ Σ∗, q′ en Q′, entonces:

q′ α→{p ∈ Q | ∃q ∈ q′ tal que q α→ p}.

22

Page 23: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Supongamos que q′ α→ p′ y veamos que p′ = {p ∈Q | ∃q ∈ q′ tal que q α→ p}: hagamos induccion

sobre | α |. Cuando | α |= 0, es decir cuando α = ε, tenemos que q′ ε→ q′ y el parrafo anteriordemuestra el resultado. Cuando | α |= 1 el resultado se deduce trivialmente por definicion detransicion. Si | α |> 1, entonces α = βa, con | β |≥ 1 y a ∈ Σ. Por (??) de la observacion 2.2

sabemos que existe r′ ∈ Q′ tal que q′β→ r′ a→ p′. Por hipotesis inductiva y el caso de longitud 1

tenemos que

q′β→ r′ = {r ∈ Q | ∃q ∈ q′ tal que q

β→ r},r′ a→ p′ = {p ∈ Q | ∃r ∈ r′ tal que r a→ p}.

Si p ∈ p′, existe r ∈ r′ tal que r a→ p, como r ∈ r′, existe q ∈ q′, tal que qβ→ r. Es decir que q

βa→ po equivalentemente q α→ p. Por lo tanto esta probado p′ ⊆ {p ∈ Q | ∃q ∈ q′ tal que q α→ p}. Por

otro lado, si p ∈ {p ∈ Q | ∃q ∈ q′ tal que q α→ p}, existe q ∈ q′ tal que q α→ p, luego existe r ∈ Q

tal que qβ→ r a→ p, por lo tanto r ∈ r′ y p ∈ p′. Esto prueba la otra inclusion y por lo tanto la

igualdad deseada.La aplicacion directa del resultado anterior a q′0, nos dice que dada α ∈ Σ∗, entonces

q′0α→{p ∈ Q | q0

α→ p}. (3)

Ahora bien, sea α ∈ L(M′), es decir q′0α→ p′, con p′ ∈ F ′. Como p′ es final de M′, entonces existe

p en p′ que tambien pertenece a F , luego por (3) obtenemos que q0α→ p, es decir α ∈ L(M).

Recıprocamente, sea α ∈ L(M), es decir existe p ∈ F tal que q0α→ p, por lo tanto (usando

nuevamente (3)) p ∈ p′ con q′0α→ p′. De esto se deduce que p′ ∈ F ′ y α ∈ L(M′).

Finalmente, el parrafo anterior prueba que L(M) = L(M′).

Ejemplo 3.13. Sea M el NFA con ε-mov con estados q0,q1, un solo sımbolo de input a, estadoinicial q0, estado final q1 y las siguientes leyes de transicion:

δ(q0,a) = {q0}, δ(q0,ε) = {q1}.

Encontremos un automata determinıstico con el mismo lenguaje que M. Por la demostraciondel teorema el nuevo automata, M′, tendra estados /0, [q0]. Observar que [q0] = [q1] = [q0,q1] =

{q0,q1}, pues q0ε→ q1. El estado final e inicial es entonces [q0]. Por definicion, del estado /0

no sale ninguna flecha y δ([q0],ε) = [q0], δ([q0],a) = [q0]. Claramente, el lenguaje aceptado porambos automatas es el de todas las cadenas de a’s.

Veamos un ejemplo menos trivial.

Ejemplo 3.14. Sea M = (Q,Σ,δ,q0,F) un NFA con ε-movimientos definido por el siguiente dia-grama de transicion.

����

q0

?b qa

����

q1

qb

ia

ib

��������

q2

1i

ε

-

23

Page 24: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Encontremos un DFA que acepte el mismo lenguaje. Debemos primero establecer los estadosdel nuevo automata:

[q0] = {p ∈ Q | q0ε→ p}= {q0,q2}

[q1] = {p ∈ Q | q1ε→ p}= {q1}

[q0,q1] = [q0]∪ [q1] = {q0,q1,q2}

Otro estado, siempre presente es /0. Observemos que cualquier otro posible estado es uno de losya listados mas arriba, por ejemplo, [q2] = [q0] y [q1,q2] = [q1]∪ [q2] = [q0,q1]. Establezcamosahora las transiciones.

[q0]a→{p ∈ Q | ∃q ∈ [q0] tal que q a→ p}=

= {p ∈ Q | q0a→ p}∪{p ∈ Q | q2

a→ p}= {q1}∪{q1}= [q1]

[q0]b→{p ∈ Q | q0

b→ p}∪{p ∈ Q | q2b→ p}= {q0,q2}∪ /0 = [q0]

[q1]a→{p ∈ Q | q1

a→ p}= /0

[q1]b→{p ∈ Q | q1

b→ p}= {q0,q2}= [q0]

[q0,q1]a→{p ∈ Q | ∃q ∈ [q0,q1] tal que q a→ p}= [q1]∪ /0 = [q1]

[q0,q1]b→ [q0]∪ [q0] = [q0]

Por definicion, es claro que toda transicion que sale de /0 vuelve a /0. Finalmente, el estado inicialy final es [q0]. El diagrama de transicion del automata recien construido es:

��������[q0]

6b

qa

����[q1]i

ai

b��������

[q0,q1]

)

b

-

?

a

����

/0�

bj

a

3.3 Ejercicios

Ejercicio 3.1. Trace los diagramas de transicion de los automatas no determinısticos dados porlas siguientes reglas de transicion.

1. Estados {q0,q1,q2}; sımbolos de input {a,b}, estado inicial q0 y estado final q0 tambien yreglas de transicion dadas por la siguiente tabla.

a b ε

q0 /0 {q1,q2} {q2}q1 {q2} {q0,q1} /0

q2 {q0} /0 {q0}

2. Estados {q0,q1,q2}, sımbolos de input {a,b}, estado inicial q0 y estados finales q0,q1 yreglas de transicion dadas por la siguiente tabla.

24

Page 25: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

a b ε

q0 {q1} {q0,q1} /0

q1 /0 {q2} {q2}q2 {q1} /0 /0

3. Estados {q0,q1,q2,q3}, sımbolos de input {a,b,c}, estado inicial q0 y estado final q1 y reglasde transicion dadas por la siguiente tabla.

a b c ε

q0 /0 {q3} {q1} /0

q1 {q1,q2} {q3} /0 {q0,q2,q3}q2 /0 {q0,q1,q3} /0 /0

q3 /0 /0 /0 {q0}

Ejercicio 3.2. Para cada uno de los automatas del ejercicio anterior, caracterice el lenguaje queel automata acepta y cuando sea posible proponga un automata mas sencillo (determinıstico ono) que acepte el mismo lenguaje.

Ejercicio 3.3. Para cada uno de los siguientes automatas establezca el conjunto de estados Q, elconjunto de sımbolos de input Σ, el estado inicial q0, el conjunto de estados finales F y las reglasde transicion.

����σ0 -a?a

1b� ������σ1?b � ������σ2� a ?a

-

-����σ0q

ε

R

a

� ������σ1?a

b

ib

� ������σ2

-� ������σ0 -b

R

a

?a ����σ1?b

a

ε

� ������σ2

����σ0 -a

?

b

� ������σ1

��

���

��

a

)b

����σ2 -b1a � ������σ3

6

a

)

ε

-

Ejercicio 3.4. Disene automatas no determinısticos que acepten las cadenas no nulas sobre {a,b}que tengan las siguientes propiedades.

1. Comienzan con abb o con ba.

2. Terminan con abb o con ba.

3. Contienen abb o ba.

4. Contienen bab y bb.

5. Toda b se encuentra entre dos a.

6. Comienzan con abb y terminan con ab.

25

Page 26: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

7. Comienzan con ab pero no terminan con ab.

8. No contienen ba o bbb.

9. No contienen abba o bbb

Ejercicio 3.5.

Considere el NFA M = ({q0,q1,q2,q3},{0,1,2},δ,q0,{q0}) donde δ viene dada por la siguientetabla de transicion:

0 1 2 ε

q0 {q1} {q2} /0 {q2}q1 {q2} {q3} /0 {q3}q2 /0 /0 {q2} {q0}q3 /0 /0 {q3} {q1}

1. Haga el diagrama de transicion de M, y caracterice en palabras, de manera sencilla, ellenguaje aceptado.

2. Aplique el algoritmo dado en el teorico para obtener un DFA que acepte el mismo lenguaje.

Ejercicio 3.6. Determine el lenguaje aceptado por cada uno de los automatas del ejercicio 3.3.

Ejercicio 3.7. Aplique el metodo de determinizacion para obtener DFAs equivalentes a los NFAsdel ejercicio 3.1.

Ejercicio 3.8. Sea M = (Q,Σ,δ,q0,F) un NFA-ε. Definamos ∆(S) como el conjunto formado porlos q ∈ Q tales que existe p ∈ S el cual se puede transformar en q mediante transiciones ε.

Sea D = (Q′,Σ,δ′, [q0],F ′) el DFA equivalente a M dado por el Teorema. Probar que Q′ estaformado exactamente por los S⊆ Q tales que ∆(S) = S.

3.4 Expresiones regulares

Los lenguajes aceptados por los automatas finitos se pueden describir facilmente por expresionessimples llamadas expresiones regulares. En esta seccion introduciremos las operaciones de con-catenacion y clausura sobre conjuntos de cadenas, definiremos expresiones regulares y daremosla demostracion de que una expresion regular define un lenguaje que puede ser descrito por unautomata finito. La recıproca de este resultado tambien es cierta y veremos su demostracion enla subseccion final.

Definicion 3.11. Sea Σ un conjunto finito de sımbolos y sean L, L1 y L2 conjuntos de cadenasde Σ∗. La concatenacion de L1 y L2, denotada L1L2 es un conjunto formado por cadenas deL1 seguidas por cadenas de L2, es decir: L1L2 = {xy | x esta en L1 e y esta en L2}. DefinamosL0 = {ε} y Li = LLi−1 para i≥ 1. La clausura de Kleene (o solo clausura) de L, denotada L∗, esel conjunto

L∗ = ∪∞i=0Li

y la clausura positiva de L, denotada L+, es el conjunto

L+ = ∪∞i=1Li.

26

Page 27: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

L∗ denota las cadenas construidas por concatenacion de un numero arbitrario de cadenas deL. L+ es igual pero sin poner L0. Notese que L+ contiene ε si y solo si L lo contiene. Recordemosque en la Seccion ?? definimos Σ∗, y observemos que ese conjunto coincide con el Σ∗ que surgede la definicion anterior, considerando a Σ como un lenguaje donde las cadenas son los sımbolosdel alfabeto.

Ejemplo 3.15. Sea L1 = {11,0} y L2 = {001,10}, entonces

L1L2 = {11001,1110,0001,010}.

Por otro lado,

L∗1 = {11,0}∗ = {ε,11,0,1111,110,011,00,111111,11110,11011,1100, . . .}.

L+1 es L∗1 menos el ε.

Definicion 3.12. Sea Σ un alfabeto. Las expresiones regulares sobre Σ y los conjuntos que ellasdenotan se definen recursivamente de la siguiente manera:

1. /0 es una expresion regular y denota el conjunto vacıo.

2. ε es un expresion regular y denota el conjunto {ε}.

3. Para cada a en Σ, a es una expresion regular que denota el conjunto {a}.

4. Si r y s son expresiones regulares que denotan los conjuntos R y S, respectivamente, entonces(r + s), (rs) y (r∗) son expresiones regulares que denotan los conjuntos R∪ S, RS y R∗,respectivamente.

Si r es una expresion regular escribiremos L(r) al conjunto (o lenguaje) denotado por r.

Cuando escribimos expresiones regulares podemos omitir muchos parentesis si asumimos que ∗tiene mas alta precedencia que la concatenacion o +, y la concatenacion tiene mas alta precedenciaque +. Por ejemplo ((0(1∗))+ 0) puede ser escrita 01∗+ 0. Finalmente, si r es una expresionregular denotemos ri a la expresion rr · · ·r (i veces).

Debemos tener mucho cuidado en no confundir cadenas con expresiones regulares y para ellodebemos aclarar debidamente a que nos estamos refiriendo. Por ejemplo la expresion regular abdenota un conjunto cuyo unico elemento es la cadena ab.

Ejemplo 3.16. Los siguientes son ejemplo de expresiones regulares:

1. 00 es una expresion regular que representa {00}.

2. (0+1)∗ denota todas las cadenas de 0’s y 1’s.

3. (0+1)∗00(0+1)∗ denota todas las cadenas de 0’s y 1’s con al menos dos 0’s consecutivos.

4. (1+ 10)∗ denota todas las cadenas de 0’s y 1’s que comienzan con 1 y no tienen dos 0’sconsecutivos. Tambien pertenece a este conjunto la cadena vacıa.

27

Page 28: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Demostracion. Probemos por induccion que (1+10)i no tiene dos 0’s consecutivos. El casoi = 0 es trivial, y si suponemos que (1+10)i−1 no tiene dos 0’s consecutivos, entonces, esclaro que (1+10)i = (1+10)i−1(1+10) no tiene dos 0’s consecutivos, pues en el final laspalabras son de la forma · · ·11 o · · ·110 o · · ·101 o · · ·1010, donde las letras en negritadenotan palabras de (1+ 10)i−1. De esta forma probamos que (1+ 10)i no tiene dos 0’sconsecutivos para todo i y por lo tanto (1+ 10)∗ no tiene dos 0’s consecutivos. Por otrolado, dada cualquier cadena que comience con 1 y no tenga dos 0’s consecutivos, se puedehacer una particion de la cadena de tal forma que si un 1 no es seguido de un 0, se tomael 1 (que pertenece a (1+10)) y si un 1 es seguido de un 0, se toma el 10 (que pertenecea (1+10)). Por ejemplo, 11010111 es particionado 1−10−10−1−1−1 que pertenece a(1+10)6.

5. Basado en lo anterior, es claro que (0+ ε)(1+10)∗ denota las cadenas de 0’s y 1’s que notienen dos 0’s seguidos.

6. (0+1)∗011 denota las cadenas de 0’s y 1’s que terminan en 001.

7. 0∗1∗2∗ denota las cadenas que estan formadas por cierta cantidad de 0’s, luego ciertacantidad de 1’s y luego cierta cantidad de 2’s. Observar que este es lenguaje del automatadefinido en el ejemplo 3.7.

Veremos ahora como a partir de una expresion regular r podemos construir un automata nodeterminıstico M que defina el mismo lenguaje, es decir tal que L(r) = L(M). En realidad lo queconstruiremos son automatas no determinısticos con un solo estado final. Para las expresionesregulares ε, /0 o a con a ∈ Σ los automatas no determinısticos de la Fig. 10 definen el lenguajecorrespondiente:

-"!# ����

q0

r = ε

-����

q0 "!#

q1����

r = /0

-����

q0 -a"!#

q1����

r = a

Figura 10:

A un automata M con estado inicial q y estado final f lo dibujaremos de la siguiente manera(Fig. 11):

'&

$%M��

��q ��

��f

Figura 11:

Ahora haremos lo siguiente: dadas expresiones regulares r1 y r2 a las cuales ya les hayamosasociado los automatas M1, M2 correspondientes, como en la Fig. 12 encontraremos los automatascorrespondientes a r1 + r2, r1r2 y r∗1. Dicho de otra manera: si L1 es el lenguaje de M1 y L2 esel lenguaje de M2, entonces encontraremos automatas correspondientes a L1∪L2, L1L2 y L∗1. Elautomata correspondiente a r1 + r2 sera el de la Fig. 13.

El automata correspondiente a r1r2 sera el de la Fig. 14.

28

Page 29: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

'&

$%M1��

��q1 ����

f1

'&

$%M2��

��q2 ����

f2

Figura 12: Los automatas de r1 y r2.

-����

q0 ������

ε

@@@@@R

ε

'&

$%M1��

��q1 ����

f1

'&

$%M2��

��q2 ����

f2

@@@@@R

ε

������

ε "!#

f0����

Figura 13: El automata de r1 + r2.

El automata correspondiente a r∗1 sera el de la Fig. 15De lo anterior se deduce

Teorema 3.2. Sea L una lenguaje denotado por la expresion regular r. Entonces existe M unDFA con ε-mov tal que L = L(M).

Ejemplo 3.17. Construyamos un automata para la expresion regular 01∗+1. Por lo dicho ante-riormente (respecto a los parentesis), esta expresion es en realidad ((0(1∗))+1), es decir es de laforma r1 + r2, donde r1 = 01∗ y r2 = 1. El automata para r2 es facil

-����

q1 -1 ����

q2����

Podemos expresar r1 como r3r4, donde r3 = 0 y r4 = 1∗. El automata de r3, tambien es facil:

-����

q3 -0 ����

q4����

Ahora bien, r4 es r∗5, con r5 = 1. Un automata para r5 es

-����

q5 -1 ����

q6����

29

Page 30: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

-

'&

$%M1��

��q1 ����

f1 -ε

'&

$%M2��

��q2 ����

f2����

Figura 14: El automata de r1r2.

-����

q0 -ε

'&

$%M1��

��q1 ����

f1 -ε

"!#

f0����

ε

*

ε

Figura 15: El automata de r∗1.

Observemos que para poder construir el automata correspondiente a la expresion regular nece-sitamos distinguir los estados de r2 y r5, aunque representen la misma expresion. Basandonos enlas explicaciones anteriores un automata para r4 sera

-����

q7 -ε ����

q5 -1 ����

q6 -ε ����q8����

ε

*

ε

Luego el automata correspondiente a la expresion regular r1 = 01∗ sera

-����

q3 -0 ����

q4 -ε ����

q7 -ε ����

q5 -1 ����

q6 -ε ����q8����

ε

*

ε

Finalmente el automata correspondiente a 01∗+1 sera el de la Fig. 16.

3.4.1 Teorema de Kleene

Estudiemos el problema, un poco mas complicado, de construir una expresion regular que denoteel lenguaje de un automata dado. Esta construccion se basa en la idea de encontrar, en formaalgorıtmica, una expresion regular que involucra resolver el problema para un automata con menosestados. Repitiendo el proceso un numero conveniente de veces lograremos la expresion regular

30

Page 31: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

����

q3 -0 ����

q4 -ε ����

q7 -ε ����

q5 -1 ����

q6 -ε ����

q8

ε

*

ε

��������

q10����-����

q9AAAAU

ε

������

����:

ε ����

q1 -1 ����

q2 XXXXXXXXXXz

ε

Figura 16: Un automata correspondiente a la expresion regular 01∗+1.

buscada. Para describir el procedimiento, comenzaremos con el caso mas simple en el cual nuestroautomata M tiene un solo estado final, qn y su estado inicial es q0. Es claro que L(M) = L0n, ellenguaje de las cadenas que comienzan en q0 y llegan a qn. Llamemos I0 al lenguaje formado porlas cadenas que salen de q0 y vuelven a q0 sin pasar nuevamente por el. Si el estado inicial esel estado final, (es decir, n = 0) entonces claramente L0n = I∗0 , puesto que con repetir caminosque salgan de q0 y vuelvan a el obtengo todas las palabras aceptadas. Si n 6= 0, definamos F0n

como el lenguaje de las cadenas que salen de q0 y llegan a qn sin pasar por q0. Entonces, por unrazonamiento similar, L0n = I∗0 F0n.

Debemos ahora explicitar quienes son I0 y F0n. Los elementos de I0 son cadenas de dos formas:

1. aβ0b, donde a,b ∈ Σ∪{ε} y β0 es una cadena que parte de un estado p y tal que q0a→ qi

β0→q j

b→ q0 con p y q distintos de q0 y ademas el camino que recorre β0 no pasa por q0; o bien

2. c ∈ Σ∪{ε}, que haga un bucle de q0 en sı mismo.

Si consideramos en el primer caso el automata M′ que se obtiene de M sacando q0 y haciendoque qi sea estado inicial y q j estado final, entonces β0 es una cadena aceptada por M′. En estecaso, L(M′) = Li j, el lenguaje de las cadenas que salen de qi y llegan a q j sin pasar nunca por q0,y obtenemos:

I0 = aLi jb+ · · ·+ c+ . . .

donde se suman todas las posibilidades para a,b, i, j tales que q0a→ qi, q j

b→ 0, con q0 distinto de

qi y q j, los c tales que q0c→ q0, y en Li j no consideramos q0. Es decir, las cadenas que parten

y llegan a q0 se pueden ver como la concatenacion de cadenas formadas por ciertos sımbolos deentrada, con lenguajes aceptados por automatas mas chicos.

De igual modo, si q0 no es el estado final, los elementos de F0n son las cadenas que partende q0 y llegan al estado final qn sin pasar por q0. En este caso las cadenas son de la forma aβ

con q0a→ q j

β→ qn, donde a ∈ Σ∪{ε}. Luego esta cadena es la concatenacion de un sımbolo deentrada y una cadena aceptada por un automata mas chico:

F0n = aL jn + . . .

donde a, j se mueven entre todas las opciones tales que q0a→ q j

β→ qn, j 6= 0 y en Li j (igual quearriba) no consideramos a q0. Dado que el problema se va reduciendo a automatas mas chicos,este algoritmo termina.

31

Page 32: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

El caso de automatas M con multiples estados finales se trata similarmente, escribiendo

L(M) = aL jk + . . . ,

donde a, j,k se mueven entre las opciones tales que q0a→ q j

β→ qk con qk un estado final.

Ejemplo 3.18. Encontremos una expresion regular para el lenguaje aceptado por el automata Mdescrito mediante el diagrama de transicion de la Figura 17.

-����

q0 -b ����

q1

?

a

6

a

?

a

6

b

����

q2-ε

�b ����

q3����

Y

a

K

b

Figura 17: El automata M

Es claro que L(M) = L03, el lenguaje de las cadenas que comienzan en q0 y llegan a q3.Llamemos I0 al lenguaje formado por las cadenas que salen de q0 y vuelven a q0 sin pasar nue-vamente por el y F03 al lenguaje de las cadenas que salen de q0 y llegan a q3 sin pasar por q0.Entonces, L03 = I∗0 F03.

Analicemos ahora quienes son I0 y F0,3.Las formas de salir de q0 y volver a sı mismo sin pasar nuevamente por el se pueden escribir

ası:I0 = bL12a+bL13a+bL13b+aL23a+aL23b+aL22a,

I0 = b(L12a+L13(a+b))+a(L23(a+b)+L22a),

donde L12 es el lenguaje aceptado por el automata M12 que consta de los estados {q1,q2,q3}(hemos eliminado q0), y que tiene por estado inicial a q1 y final a q2. De manera similar se definenL13 = L(M13), L23 = L(M23) (ver Figura 19) y L22 (ver Figura 18).

Las maneras de salir de q0 y llegar al estado final q3 sin pasar por q0 son:

F03 = bL13 +aL23.

32

Page 33: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Tenemos, como antes L12 = I∗1 F12, salvo que ahora hemos eliminado q0 de nuestras con-sideraciones. Es decir,

I1 = aL33b, F12 = aL33,

son las formas de ir de q1 a q1 y de q1 a q3, respectivamente, sin pasar nuevamente porq1 (y sin utilizar q0). Ahora, en nuestro L33, no utilizaremos ni q0 ni q1.

Como nuestro estado inicial es igual al estado final (q3), tenemos

L33 = I∗3 .

En I3 no usaremos ni q0 ni q1. Entonces obtenemos:

I3 = bL22ε = b,

con lo queL33 = b∗.

Ya podemos calcular los anteriores I1 = aL33b = ab∗b y F12 = aL33 = ab∗. Luego obtenemos

L12 = (ab∗b)∗ab∗.

Ahora nos toca ver L13 = I∗1 F13, eliminando q0.

I1 = ab∗b, F13 = aL33 = ab∗,

dado que, como antes, en L33 eliminamos q0 y q1. Entonces L13 = (ab∗b)∗ab∗.

Observemos que L23 = I∗2 F23, eliminando q0.

I2 = εL33b = L33b, F23 = εL33 = L33,

donde en L33 se eliminan q0 y q2.

Veamos L33 con q0 y q2 eliminados. Como antes (estado inicial es el final) tenemos

L33 = I∗3 .

En I3 no usaremos ni q0 ni q2. Entonces obtenemos:

I3 = bL11a = ba

con lo queL33 = (ba)∗.

Obtenemos entoncesI2 = (ba)∗b, F23 = (ba)∗,

y luego L23 = ((ba)∗b)∗(ba)∗.

33

Page 34: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Solo nos falta L22 = I∗2 (Figura 18). Tenemos

I2 = εL33b = L33b = (ba)∗b,

pues es el mismo L33 considerado anteriomente. Entonces

L22 = ((ba)∗b)∗.

Por ultimo,I0 = b(L12a+L13(a+b))+a(L23(a+b)+L22a),

I0 = b((ab∗b)∗ab∗a+(ab∗b)∗ab∗(a+b))+a(((ba)∗b)∗(ba)∗(a+b)+((ba)∗b)∗a).

F03 = bL13 +aL23,

F03 = b(ab∗b)∗ab∗+a((ba)∗b)∗(ba)∗,

y nuestro resultado final esL = L03 = I∗0 F03.

����q1

?

a6

b

-����q2� �� -ε�

b ����

q3

Figura 18: El automata M22

����q1

?

a6

b

-����q2-ε

�b ����

q3� ��

-����q1

?

a6

b

����q2-ε

�b ����

q3� ��

-����q1

?

a6

b

����q2� �� -ε�

b ����

q3

Figura 19: Los automatas M23, M13 y M12, respectivamente

Teorema 3.3 (Teorema de Kleene). Sea M un NFA con ε-mov, entonces, existe una expresionregular r tal que L(M) es el lenguaje denotado por r.

34

Page 35: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Probaremos este teorema viendo que, dado un NFA M, el algoritmo descripto anteriormentedevuelve una expresion regular que caracteriza el lenguaje aceptado por M. Para ello sera necesarioformalizar las definiciones de Lnm, In, Fnm y el proceso de “eliminar estados”.

Supongamos que M =(Q,Σ,δ,q0,F). Supondremos que existe un unico estado final: F = {q f },con 0≤ f ≤ r. Sea Q = {q0, . . . ,qr} y Σ = {c1, . . . ,cu}.

Dados 0≤ n,m≤ r, R⊆ Q, definamos recursivamente las siguientes expresiones regulares:

Lnm(R) = /0 si n o m no estan en R.Lnn(R) = In(R)∗

Lnm(R) = In(R)∗Fnm(R) si n 6= m.In(R) = ∑

qna→qt , qs

b→qnaLts(R\{qn})b +∑qn

c→qnc

Fnm(R) = ∑qna→qt

aLtm(R\{qn}),

donde a,b,c ∈ Σ∪{ε}. En particular,

Lnn({qn}) = In({qn})∗ =(

∑qn

c→qn

c)∗

.

En esencia, en las expresiones Lnm(R) solo consideramos “habilitados” los estados del conjunto R.Por otro lado, sea Mnm(R) = (R,Σ,δ | R,qn,{qm}) el automata que resulta de M luego eliminar

todos los estados que no estan en R y sus transiciones, y estipulando que el estado inicial es qn

y el unico estado final es qm. En caso de que qn o qm no esten en R, Mnm(R) sera un automatavacıo con lenguaje /0.

Lema 3.4. Toda cadena α representada por las expresiones regulares de arriba son aceptadas porlos respectivos automatas. Es decir: para todo R⊆ Q, Lnm(R)⊆ L(Mnm(R)).

Demostracion. Tenemos dos casos a probar, correspondientes a la definicion de Lnm(R):

(1) Si qn ∈ R y α ∈ In(R)k entonces α ∈ L(Mnn(R)).(2) Si n 6= m, qn,qm ∈ R y α ∈ In(R)kFnm(R) entonces α ∈ L(Mnm(R)).

Procederemos simultaneamente por induccion en k y en | R |.El caso base para R es el conjunto vacıo, para el cual los antecedentes de (1) y (2) son falsos.

Mas aun, por las definiciones tenemos que si alguno de n o m falta en R, Lnm(R) = L(Mnm(R)) = /0.Luego, podemos considerar de ahora en adelante que n,m ∈ R.

k = 0 En el caso (1) debe ser α = ε y claramente ε ∈ L(Mnn(R)) al ser qn estado inicial yfinal.

En el caso (2), α ∈ Fnm(R) = ∑qna→qt

aLtm(R\{qn}). Luego existen a, t,α′ tales que

qna→ qt , α

′ ∈ Ltm(R\{qn}), α = aα′.

Por hipotesis inductiva (eliminamos un estado) α′ ∈ L(Mtm(R\{qn})) y luego existe una sucesion

qt = s1a1→ s2

a2→ ·· · al→ sl+1 = qm

con s j ∈ R\{qn} y α′ = a1a2 . . .al. Como qna→ qt entonces α ∈ L(Mnm(R)).

k+1 Caso (1): es muy similar al (2), lo dejamos como ejercicio.

Caso (2): Supongamos que α ∈ In(R)k+1Fnm(R). Luego, hay dos opciones (para cada uno delos tipos de sumandos en la definicion de In):

35

Page 36: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

• α = a0α′β′ con qna0→ qn, α′ ∈ In(R)k y β′ ∈ Fnm(R). Por hipotesis inductiva (disminuimos k),

α′β′ ∈ L(Mnm(R)). Como antes, hay una sucesion

qn = s1a1→ s2

a2→ ··· al→ sl+1 = qm

tal que α′β′ = a1a2 . . .al y luego

qna0→ qn

a1→ s2a2→ ··· al→ sl+1 = qm

muestra que α ∈ L(Mnm(R)).

• α = a0γb0α′β′ con qna0→ s0, t0

b0→ qn, γ ∈ Ls0t0(R \ {qn}), α′ ∈ In(R)k y β′ ∈ Fnm(R). Porhipotesis inductiva α′β′ ∈ L(Mnm(R)) (disminuimos k) y γ ∈ L(Ms0t0(R \ {qn})) (borramosqn). Es decir

s0γ→ t0, qn

α′β′→ qm,

y luego

qna0→ s0

γ→ t0b0→ qn

α′β′→ qm

muestra que α ∈ L(Mnm(R)).

Lema 3.5. Toda cadena α aceptada por Mnm(R) esta en el lenguaje representado por la expresionregular dada por el algoritmo. Es decir: para todo R⊆ Q, L(Mnm(R))⊆ Lnm(R).

Demostracion. En esta prueba es mas conveniente por motivos tecnicos considerar las sucesionesde transiciones que dan lugar a las cadenas aceptadas, que considerar las cadenas solamente.Probaremos, para toda sucesion de transiciones en M

qn = s0a0→ s1

a1→ ··· al−1→ sl = qm

(donde ai ∈ Σ∪{ε} y si ∈ Q), que:

si si ∈ R para todo i entonces a1 . . .al−1 ∈ Lnm(R),

por induccion en la longitud l de la sucesion. Llamemos α = a1 . . .al−1. Consideraremos un “caso(1)” cuando n = m y un “caso (2)” cuando no sean iguales.

l = 0 Caso (1): si la cantidad de transiciones es cero, no nos movemos de qn. La cadenarepresentada es la vacıa, y obviamente esta en In(R)∗ = Lnn(R).

Caso (2): al ser n 6= m, l tiene que ser mayor a cero, ası que este caso base es trivial.

l +1 Caso (1): si todos los si son iguales a qn, entonces claramente

α ∈(

∑qn

c→qn

c)∗⊆ In(R)∗ = Lnn(R)

Sino, tomemos 0 ≤ j ≤ h ≤ l tales que si es distinto de qn para todo i entre j y h, pero s j−1 =sh+1 = qn. Luego existen α′, β y γ (eventualmente vacıas) tales que:

qn = s0α′→ s j−1

a j−1→ s jβ→ sh

ah→ sh+1γ→ sl = qn

36

Page 37: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Por hipotesis inductiva, tenemos α′,γ ∈ Lnn(R) = In(R)∗ y β ∈ L jh(R\{qn}).2 Luego

α ∈ In(R)∗(a j−1L jh(R\{qn})ah

)In(R)∗ ⊆ In(R)∗In(R)In(R)∗ = In(R)∗

Caso (2): sea sh es el ultimo s j que es igual a qn (notar que h debe ser menor que l puestoque n 6= m). Luego

qn = s0α′→ sh

ah→ sh+1β′→ sl = qm

con α = α′ahβ′ con α′ y β′ eventualmente vacıos. Ahora, la sucesion de transiciones cor-respondiente a β′ no contiene a qn; por hipotesis inductiva tenemos que β′ ∈ Lkm(R \ {qn}),donde suponemos sin perdida de generalidad que sh+1 = qk. Y tambien por hipotesis inductivaα′ ∈ Lnn(R) = In(R)∗. Entonces

α ∈ In(R)∗ahLkm(R\{qn})⊆ In(R)∗Fnm(R) = Lnm(R).

Prueba del Teorema de Kleene. Supongamos M = (Q,Σ,δ,q0,F) donde Q = {q0, . . . ,qr} y F ={qk, . . . ,qm} con 0≤ k ≤ m≤ r. Esta claro que

L(M) =⋃

k≤i≤m

L(M0i(Q)),

dado que cada cadena aceptada termina obviamente en un solo estado final. Pero ahora, por loslemas anteriores tenemos

L(M) =⋃

k≤i≤m

L0i(Q)

y por ultimoL(M) = ∑

k≤i≤mL0i(Q)

es la expresion regular buscada.

3.5 Ejercicios

Ejercicio 3.9. Describir en palabras los conjuntos denotados por las siguientes expresiones regu-lares.

1. (11+0)∗(00+1)∗

2. (1+01+001)∗(ε+0+00)

Ejercicio 3.10. Encontrar expresiones regulares en el alfabeto {a,b} que describan los siguientesconjuntos:

1. Cadenas con exactamente una letra b.

2. Cadenas con al menos una letra b.

3. Cadenas con un numero par de letras a.

2Aquı suponemos, por comodidad notacional, que s j = q j y sh = qh.

37

Page 38: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

4. Cadenas que contengan m letras a, donde m es un multiplo de 3.

5. Cadenas que empiecen con baa.

6. Cadenas donde toda letra b este seguida de una letra a.

7. Cadenas que empiecen con ab y terminen con aba

Ejercicio 3.11. Construir automatas finitos cuyo lenguaje sea dado por las siguientes expresionesregulares.

1. (0+11)0∗1

2. [((10)∗+11)∗+0]∗1

Ejercicio 3.12. Aplicando el Teorema de Kleene, encuentre expresiones regulares que denoten ellenguaje aceptado por cada uno de los siguientes automatas:

����σ0 -a?a

1b� ������σ1?b � ������σ2� a ?a

-

-����σ0q

ε

R

a

� ������σ1?a

b

ib

� ������σ2

-� ������σ0 -b

R

a

?a ����σ1?b

a

ε

� ������σ2

����σ0 -a

?

b

� ������σ1

��

���

��

a

)b

����σ2 -b1a � ������σ3

6

a

)

ε

-

Ejercicio 3.13. Pruebe las siguientes identidades de expresiones regulares:

1. r+ = r∗r = rr∗

2. (r+ s)t = rt+ st

4 Gramaticas y lenguajes

Los lenguajes pueden ser clasificados en dos grandes grupos: los lenguajes naturales (tal comoel espanol, ingles, frances, etc.) y los lenguajes formales (como la matematica, la logica, etc.).Los lenguajes naturales en general son mas flexibles, lo cual los hace mas difıcil de caracterizar,mientras que los lenguajes formales poseen reglas de sintaxis y semantica mas rıgidas.

En la decada del ’50, el linguista Noam Chomsky hace un gran aporte a las ciencias de lacomputacion. En su trabajo ”Teorıa de las Gramaticas Transformacionales” no solo introdujoherramientas para el estudio de lenguajes naturales, sino que tambien las bases para la definicion

38

Page 39: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

de lenguajes formales, lo cual posteriormente tuvo consecuencias en la definicion de lenguajes deprogramacion.

Chomsky clasifico los lenguajes de acuerdo a una jerarquıa de cuatro niveles, conteniendocada uno a los siguientes. El lenguaje mas general (de tipo 0) no posee restriccion alguna. Estenivel engloba el conjunto de todos los lenguajes posibles. En el otro extremo de la clasificacionlos lenguajes de tipo 3, o lenguajes regulares, son los que presentan una estructura mas sencilla.Ademas, gracias a la contribucion realizada por Chomsky fue posible establecer una relacion directaentre la teorıa de lenguajes formales (el tema principal de esta seccion) y la teorıa de maquinasabstractas (estudiadas en secciones anteriores). El principal resultado establece que existe unadefinicion de equivalencia entre diferentes construcciones de ambas teorıas.

En este capıtulo introduciremos una construccion formal para la definicion de lenguajes: lasgramaticas. Introduciremos la jerarquıa de Chomsky, pero nos centraremos en las gramaticasregulares y libres de contexto y los lenguajes que ellas describen (los lenguajes regulares y libresde contexto). Ya comenzamos el estudio de lenguajes regulares en las secciones anteriores, perotambien nos centraremos en lenguajes libres de contexto ya que son de gran importancia en ladefinicion de los lenguajes de programacion, entre otra aplicaciones. Como un ejemplo, los lengua-jes libres de contextos son utiles para describir expresiones aritmeticas con parentesis balanceadosy para describir estructuras de bloque en los lenguajes de programacion.

4.1 Definiciones basicas y ejemplos

En esta seccion nos centraremos en la definicion de una herramienta formal para describir lenguajes:las gramaticas. Las mismas ademas, seran de ayuda para caracterizar las diferentes categorıas enla jerarquıa de Chomsky.

Las siguientes definiciones seran de utilidad a la hora de introducir formalmente las gramaticas.

Definicion 4.1. Sea Σ un alfabeto, α,β ∈ Σ∗, decimos que (α,β) es una produccion. Tambienpodemos denotarla como α→ β, o α ::= β.

Una gramatica es un objeto formal para especificar de manera finita, el conjunto de cadenasque constituyen un lenguaje. Usamos las gramaticas para generar las distintas cadenas del lenguajeque define aplicando de manera sucesiva las reglas de produccion que la conforman. Una gramaticadefine la estructura de las frases y de las palabras de un lenguaje.

Definicion 4.2. Una gramatica es una 4-upla 〈V,T,P,S〉 tal que:

1. V es un conjunto de sımbolos denominados no terminales.

2. T es un conjunto de sımbolos denominados terminales (V ∩T = /0).

3. P es el conjunto de producciones sobre V ∪T .

4. S ∈ V es el sımbolo inicial a partir del cual se aplican las derivaciones para obtener lascadenas del lenguaje.

Ejemplo 4.1. Definamos la siguiente gramatica la cual genera un conjunto (muy acotado) defrases bien formadas del espanol.

39

Page 40: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

V = {〈oracion〉,〈su jeto〉,〈ad jetivo〉,〈predicado〉,〈verbo〉}T = {a,b,c,d,e, ......,z}S = 〈oracion〉P = < oracion >→< sujeto >< predicado >

< sujeto >→< sujeto >< adjetivo >| el perro< adjetivo >→ pequeno | grande | bueno< predicado >→< verbo >< adjetivo >< verbo >→ es

Notese que se utiliza la abreviacion α→ β1 | . . . | βk cuando tenemos k producciones con elmismo sımbolo a la izquierda.

Definicion 4.3. Sea G = (V,T,P,S) una gramatica. Si A→ α es una produccion y xAy es unacadena formada por variables y terminales, se dice que xαy se deriva directamente de xAy y seescribe

xAy⇒ aαy.

Si α1, . . . ,αn cadenas y α1⇒ α2,α2⇒ α3, . . . ,αn−1⇒ αn derivaciones directas, entonces decimosque αn se deriva de α1 y se escribe

α1⇒ αn.

La secuenciaα1⇒ α2⇒ α3⇒ ··· ⇒ αn−1⇒ αn

se llama derivacion de α1 a αn. Por convencion, cualquier cadena se deriva de si misma.Finalmente, el lenguaje generado por G consiste de todas las cadenas de elementos de T que

se derivan de S. Se denota L(G).

Ejemplo 4.2. Ahora deseamos ver que frases se pueden armar con terminales partiendo de lavariable < oracion > y usando las reglas de produccion. Por ejemplo:

< oracion > ⇒< sujeto >< predicado >⇒< sujeto >< adjetivo >< predicado >⇒ el perro < adjetivo >< predicado >⇒ el perro < adjetivo >< verbo >< adjetivo >⇒ el perro bueno < verbo >< adjetivo >⇒ el perro bueno es < adjetivo >⇒ el perro bueno es grande

Intuitivamente el sımbolo⇒ denota la accion de derivar, es decir, reemplazar una variable porel lado derecho de una produccion para la variable.

4.2 Clasificacion de Chomsky

Clasificar los lenguajes consiste en identificar aquellos lenguajes que comparten alguna propiedad yreunirlos en una misma clase. Toda gramatica genera un unico lenguaje, pero distintas gramaticaspueden definir el mismo lenguaje. Por lo tanto, podrıamos clasificar las gramaticas segun ellenguaje que generan. Es decir dos gramaticas perteneceran a la misma clase si generan el mismolenguaje. Sin embargo existe un problema con esta clasificacion: no es decidible decidir si dosgramaticas generan el mismo lenguaje. Intuitivamente:

40

Page 41: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

No existe ningun algoritmo que dadas dos gramaticas retorne si las dos definen el mismo lenguaje.

Dado que dicha clasificacion no sera posible, podemos pensar en utilizar propiedades sobre losobjetos formales para definir lenguajes (en este caso, las gramaticas) para realizar una clasificacion.En particular, la clasificacion de Chomsky se construye a partir de la forma de las produccionesde una gramatica y establece una jerarquıa (las gramaticas de un nivel estan incluidos en lossiguientes).

La jerarquıa clasica de Chomsky consta de cuatro familias:

• Tipo 0: Gramaticas sin restricciones.

• Tipo 1: Gramaticas sensibles al contexto.

• Tipo 2: Gramaticas independientes del contexto.

• Tipo 3: Gramaticas regulares.

G0 G1 G2 G3

Figura 20: Jerarquıa de Chomsky

En la Figura 20 podemos ver graficamente la jerarquıa de Chomsky. Podemos ver que lasdiferentes clases, estan incluidas en las de nivel superior. Formalmente las clases son:

• Gramaticas de Tipo 0: tambien denominadas sin restricciones. Las producciones tienenla forma

α→ β, donde α ∈ (V ∪T )+, β ∈ (V ∪T )∗.

Notar que para estas producciones no se establece ningun tipo de restriccion respecto a suforma.

• Gramaticas de Tipo 1: tambien denominadas sensibles al contextp. Las reglas de pro-duccion de estas gramaticas tienen la forma

α1Aα2→ α1βα2, donde α1,α2 ∈ (V ∪T )∗, A ∈V, β ∈ (V ∪T )+.

En otras palabras, solo se permite la sustitucion del sımbolo no terminal A por la cadena β

cuando el sımbolo A aparezca en el contexto indicado por α1 y α2.

41

Page 42: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

• Gramaticas de Tipo 2: tambien denominadas gramaticas libres de contexto se caracterizanporque su conjunto de producciones se ajustan al siguiente esquema

A→ α, donde A ∈V, α ∈ (V ∪T )∗.

A diferencia de las gramaticas de tipo 1 resulta que el sımbolo A siempre se puede sustituirpor la cadena α independientemente del contexto en el que aparezca el sımbolo A.

• Gramaticas de Tipo 3: o gramaticas regulares, son aquellas cuyas producciones tienen laforma

A→ xB, donde A,B ∈V, x ∈ T ∗. Ademas, B puede o no aparecer.

Hay dos tipos de gramaticas regulares:

– Lineales a la derecha, con producciones de la forma

A → xBA → x

donde A,B ∈V,x ∈ T ∗.

– Lineales a la izquierda, con producciones de la forma

A → BxA → x

donde A,B ∈V,x ∈ T ∗.

Como dijimos anteriormente cada gramatica define un lenguaje, y a estos tambien podemosclasificarlos (Figura 21).

L0 L1 L2 L3

Figura 21: Jerarquıa de Lenguajes

Decimos que un lenguaje pertenece a Ln si existe una gramatica de tipo Gn capaz de generarlo,y dicha gramatica es la mas restrigida. Ademas de la definicion de la jerarquıa de Chomsky sederiva que:

L3 ⊂ L2 ⊂ L1 ⊂ L0.

Las clasificaciones introducidas anteriormente pueden ser refinadas, pero escapan a los ob-jetivos de este apunte. En la siguiente seccion nos centraremos en completar el estudio de los

42

Page 43: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

lenguajes regulares, introduciendo las gramaticas regulares. Luego extenderemos nuestra perspec-tiva con el estudio de lenguajes libres de contexto, una familia de lenguajes muy interesante paralas ciencias de la computacion.

4.3 Gramaticas regulares

Los lenguajes definidos por automatas finitos o, lo que es lo mismo, por expresiones regulares,tambien pueden ser vistos como los lenguajes que generan ciertas gramaticas, llamadas gramaticasregulares.

Definicion 4.4. Sea G una gramatica tal que toda produccion es de la forma

A→ aB o bien A→ ε,

donde A, B son variables y a es terminal. Entonces diremos que G es una gramatica regular.El lenguaje generado por un una gramatica regular sera llamado lenguaje regular.

Observemos primero que podemos considerar permitidas, en las gramaticas regulares, las pro-ducciones del tipo A→ a pues se pueden obtener por composicion de las permitidas en la definicion.Una observacion importante es que cualquier cadena con sımbolos terminales y no terminales quese obtiene por derivacion a partir del sımbolo inicial, tiene a lo sumo una variable y esta se ubicasiempre en el extremo derecho de la cadena (gramaticas recursivas a derecha), o siempre en elextremo izquierdo (gramaticas recursivas a izquierda ). Esto garantiza que cuando se dice que seusan ciertas producciones para realizar una derivacion, no haya ambiguedad en la forma en quehay que aplicarla.

Ejemplo 4.3. Encontremos una gramatica que genere el lenguaje asociado a la expresion regulara∗b∗. Es claro que el lenguaje asociado a a∗b∗ es L = {anbm : 0≤ n,m}. Sea G gramatica con unavariable S, sımbolos terminales a y b y las siguientes producciones:

S → aS | aT | bT | ε,T → bT | ε

entonces el lenguaje que genera G es L.

Demostracion. Primero veamos que L ⊂ L(G): sea anbm en L, si n,m > 0 usando la produccionS→ aS, (n−1)-veces tenemos S⇒ an−1S, luego usando la produccion S→ aT obtenemos S⇒ anT ,despues usamos S→ bT m-veces y obtenemos S⇒ anbmT , finalmente usando la produccion T → ε

tenemos la derivacion S⇒ anbm. En el caso que n = 0 y m > 0 se hace S⇒ bT ⇒ bmT ⇒ bm. Elcaso n > 0 y m = 0 es similar. Cuando n = m = 0, hacemos S⇒ ε usando la produccion S→ ε.

Veamos ahora que L(G) ⊂ L: observemos que si usamos una derivacion en esta gramaticaque agrega un b, entonces no se puede agregar mas un a, como (por la definicion de gramaticasregulares) los agregados de sımbolos terminales solo se pueden hacer a la derecha, es claro quelas a’s estaran todas a la izquierda de cualquier b.

Ejemplo 4.4. Encontremos una gramatica regular G, cuyo lenguaje sea el lenguaje asociado a laexpresion regular r = (0+1)∗00. Primero observemos que el lenguaje asociado a r es el de todaslas cadenas de 0’s y 1’s que terminan en 00. Una gramatica que genera el lenguaje L(r) es lasiguiente: los sımbolos terminales seran 0,1, las variables seran S,T y las producciones seran

S→ 0S | 1S | 0T, T → 0U, U → ε.

43

Page 44: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Demostracion. Veamos primero que L(r) ⊂ L(G): sea x = a1a2 · · ·ak00 una cadena en L(r), esdecir que los ai son 0 o 1 (en forma arbitraria). Si a1 es 0, hacemos la derivacion S⇒ 0S, si es 1hacemos S⇒ 1S, es decir que tenemos S⇒ a1S, en forma analoga obtenemos la derivacion

S⇒ a1S⇒ a1a2S⇒ ··· ⇒ a1a2 · · ·akS.

Si a a1a2 · · ·akS le aplicamos sucesivamente las producciones S→ 0T y T → 0, obtenemos S⇒a1a2 · · ·akS⇒ a1a2 · · ·ak0T ⇒ a1a2 · · ·ak00.

Veamos ahora que L(G) ⊂ L(r): es claro que si S⇒ x una derivacion con x compuesta desımbolos terminales, entonces la ultima produccion que se uso fue T → 0, y entonces la penultimafue S→ 0T . Como las variables siempre estan en el extremo derecho, la derivacion es S⇒ x′S⇒x′0T ⇒ x′00 = x. Es decir x ∈ L(r).

Los ejemplos anteriores se pueden generalizar con el siguiente teorema, cuyo enunciado es untanto complicado, pero que puede entenderse bien en casos concretos.

Teorema 4.1. Sea r una expresion regular sobre una alfabeto Σ, entonces existe H una gramaticaregular con sımbolos terminales en Σ tal que L(r) = L(H). Mas explıcitamente: sea Σ un alfabeto.

(1) L( /0) = /0 es L(G) donde G es una gramatica sin producciones.

(2) L(ε) = {ε}es L(G) donde G tiene una unica produccion S→ ε.

(3) Para cada a en Σ, L(a) = {a} es L(G) donde G tiene producciones S→Ua y T → ε.

Supongamos que r y r′ son expresiones regulares tales que L(r) = L(G), L(r′) = L(G′)con G =(V,Σ,P,S) y G′ = (V ′,Σ,P′,S′). Supongamos ademas, sin perdida de generalidad, que V ∩V ′ = /0,es decir que no tienen variables comunes. Debido a la definicion de gramatica regular, el conjuntoP es de la forma:

{Ck→ ckDk}∪{Ut → ε},

para k = 1, . . . ,m, t = 1, . . . ,s. Entonces:

(4) L(r+ r′) es L(H), donde H tiene como variables V = V ∪V ′, la variable inicial igual a S ycon producciones PH = P∪P′∪{S→ α : si S′→ α}.

(5) L(rr′) = L(H), donde H es la gramatica regular con variables VH = V ∪V ′, variable inicialigual a S y con producciones PH = P(1)∪P′, donde P(1) es igual a:

{Ck→ ckDk}∪{Ck→ ckS′ : si Dk→ ε ∈ P}

para k = 1, . . . ,m.

(6) L(r∗) = L(H) , donde H es la gramatica regular con variables VH = V ,variable inicial S yproducciones:

PH = P∪{S→ ε}∪{Ck→ ckS : si Ck→ ε ∈ P}

para k = 1, . . . ,m.

Demostracion. La demostracion es bastante directa, pero a su vez es tediosa. La dejamos comoejercicio para el lector.

44

Page 45: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Como ya mencionamos, la recıproca del Teorema 4.1 tambien es verdadera, es decir, dadoun lenguaje generado por una gramatica regular G , existe una expresion regular r que denotael mismo lenguaje. En realidad esto lo probaremos de manera indirecta: es sencillo construir apartir de G un automata no determinıstico M con el mismo lenguaje que M. Luego par obtener rusamos el teorema de Kleene.

Proposicion 4.2. Sea G = (V,Σ,P,S) una gramatica regular, entonces existe M = (Q,Σ,δ,q0,F)un NFA (sin ε-mov) tal que L(M) = L(G). Explıcitamente, Q =V , q0 = S, B ∈ δ(A,a) sii A→ aBy F = {A ∈V : A→ ε}.

La demostracion es muy sencilla y se deja a cargo del lector.

4.4 Ejercicios

Ejercicio 4.1. Defina gramaticas regulares que generen los siguientes lenguajes:

1. Numeros enteros. (ej. 20, -344, -03).

2. Numeros enteros pares sin ceros no significativos (ej. no puede generar -02).

3. Expresiones decimales de numeros racionales ( ej. -3.1415926, 0.0001)

4. {α ∈ Σ∗ | α = anbcm, n,m > 0}, Σ = {a,b,c}.

Ejercicio 4.2. Sea G la gramatica con sımbolo inicial S y derivaciones

S→ bS | aA | a, A→ aS | bB, B→ bA | aS | b | ε

(donde a y b son los sımbolos terminales).

1. Demuestre, proporcionando la derivacion correspondiente, que las siguientes cadenas pertenecena L(G)

aaabb, bbbaaaaa, abaaabbabbaa.

2. Probar que L(G) es el conjunto de todas las cadenas con un numero impar de sımbolos a.

Ejercicio 4.3. Repetir los Ejemplos 4.3 y 4.4 usando el metodo del Teorema 4.1.

Ejercicio 4.4. Sea G la gramatica regular definida por las producciones

S→ bS | aA | b, A→ aS | bA | a

(donde a y b son los sımbolos terminales). Demuestre que α ∈ L(G) sii α 6= ε y contiene unnumero par de sımbolos a.

Ejercicio 4.5. Sea L1 (respectivamente L2) el lenguaje generado por la gramatica del Ejercicio 4.2(respectivamente, Ejercicio 4.4). Encuentre una gramatica regular que genere el lenguaje L1L2.

Ejercicio 4.6. Dada la expresion regular

b(a∗+b)∗bb∗a

construir una gramatica que genera exactamente el lenguaje que denota la expresion regular.

45

Page 46: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Ejercicio 4.7. Obtener un automata finito no determinıstico que acepte unicamente las cadenasgeneradas por la siguiente gramatica regular G: las variables son S y C, con S como variable inicial;las constantes son a,b y las producciones son

S→ bS, S→ aC, C→ bC, C→ b.

Ejercicio 4.8. Sea G la gramatica regular definida por las producciones

S→ bS | aA | b, A→ aS | bA | a

(donde a y b son los sımbolos terminales). Obtener:

1. Un automata finito no determinıstico M tal que L(M) = L(G).

2. Una expresion regular R tal que L(R) = L(G).

5 Mas alla de los lenguajes regulares

En esta seccion veremos que existen lenguajes que no son regulares. Demostraremos esto usandoun resultado conocido como el Pumping Lemma o “Lema del Inflado”. Luego veremos formalismosque nos permitiran definir una clase particular de lenguajes: los lenguajes libres de contexto.

5.1 Pumping Lemma

El Pumping Lemma es una propiedad que satisfacen todos los lenguajes regulares. El mismoestablece que toda cadena lo suficientemente grande de cualquier lenguaje regular, contiene unasubcadena que puede ser repetida una cantidad arbitraria de veces, obteniendo una cadena quetambien pertenece al lenguaje en cuestion. Es decir, que bajo ciertas circunstancias podemos“inflar” una parte de una cadena perteneciente a un lenguaje regular, y obtenemos otra cadenadentro del mismo lenguaje.

Si bien esta es una propiedad de los lenguajes regulares, usualmente se utiliza para demostrarque un lenguaje no es regular, aplicando su contrarrecıproca: si un lenguaje no satisface el lema,entonces no es regular. Veremos como aplicar este metodo mas adelante, ahora introducimos ellema formalmente.

Proposicion 5.1 (Pumping Lemma). Sea L un lenguaje regular. Entonces existe un numero k > 0tal que para toda cadena α ∈ L con | α |≥ k, existen cadenas β1,β2,γ con | β1γ |≤ k, | γ |> 0 quesatisfacen

1. α = β1γβ2,

2. β1γnβ2 ∈ L para todo n≥ 1.

Demostracion. Debido a que L es un lenguaje regular, existe M un DFA tal que L = L(M). Sea kel numero de estados de M y α una cadena en L con | α |≥ k. Entonces α = ai1 · · ·ait donde ai j

sımbolo de input (1≤ j≤ t) y t ≥ k. Sean qi0 ,qi1 , . . . ,qit estados tal que, qi0 = q0 el estado inicial,qit un estado final y

qi0ai1→ qi1

ai2→ ·· ·ait−1→ qit−1

ait→ qit .

Es claro que, como qi0 , . . . ,qik es una lista de k+1 estados y como el automata tiene k estados,hay al menos dos estados que se repiten en la lista, digamos qir y qis , con r < s≤ k. Sean entonces

46

Page 47: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

β1 = ai1 · · ·air−1 , γ = air · · ·ais−1 y β2 = ais · · ·ait . Luego, α = β1γβ2, | γ |> 0 y | β1γ |≤ k. Observemosque

qi0β1→ qir

γ→ qirβ2→ qit ,

en particular tenemos que qirγ→ qir . Por lo tanto, se cumple que para n > 0,

qirγn

→ qir o equivalentemente qirγ→ qir

γ→ ·· · γ→ qir (n-veces).

Por consiguiente, tambien vale

qi0β1→ qir

γn

→ qirβ2→ qit ,

lo cual implica que β1γnβ2 es una cadena aceptada por M y por lo tanto que pertenece a L. Estoprueba el Pumping Lemma.

La principal idea es que los lenguajes regulares poseen cierta repetitividad, producto de laslimitaciones del DFA que lo reconoce. El Pumping Lemma explita esta caracterıstica. Comomencionamos arriba el Pumping Lemma es util para demostrar que un lenguaje no es regular.

Ejemplo 5.1. Probemos que el lenguaje L = {anbn : n > 1} no es regular.

Demostracion. Hagamos la prueba por el absurdo suponiendo que L es regular. Sea k como en elPumping Lemma. Debemos elegir α ∈ L de tal forma de obtener una contradiccion que nos lleveal absurdo. Elegimos α = akbk, por el Pumping Lemma existen cadenas β1,β2,γ con | β1γ |≤ k,| γ |> 0 que satisfacen α = β1γβ2 y β1γnβ2 ∈ L para todo n≥ 1. Como | β1γ |≤ k, γ es de la formaas con 1≤ s, luego α = arasatbk con r+ s+ t = k y s > 0. Ademas aransatbk ∈ L para n≥ 1. Estoes una contradiccion pues como r+ns+ t > k para n > 1, entonces aransatbk 6∈ L para n > 1.

El Pumping Lemma es utilizado para detectar si un lenguaje no es regular, con la siguienteestrategia:

1. Seleccionar el lenguaje L que usted desea ver que no es regular.

2. Suponer que es regular y que por lo tanto existe un k como en el Pumping Lemma.

3. Seleccionar una cadena α en L de longitud mayor que k. La eleccion de la cadena no esarbitraria y depende del lenguaje dado.

4. Descomponer la cadena de acuerdo al Pumping Lemma y generar nuevas cadenas en Lhaciendo “inflacion” en el centro (es decir las cadenas β1γnβ2).

5. Verificar que las cadenas “infladas” no pertenecen a L. Esto genera una contradiccion quevino de suponer que L era regular.

Una buena manera de pensar en la estrategia anterior es como un juego entre dos jugagoresA y B; A el numero k, B elige la cadena α ∈ L. Luego A particiona la cadena α en β1γβ2 yseguidamente B elige el numero n. Si B es capaz de ganar cualquiera sean las elecciones, entoncesqueda demostrado que L no es un lenguaje regular.

Observar que la estrategia anterior podrıa no servir, pero el hecho de que no podamos aplicarel Pumping Lemma a un lenguaje L no implica que este sea regular.

Ejemplo 5.2. Demostrar que el lenguaje L = {0n001n | n ∈ N} no es un lenguaje regular.

47

Page 48: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Demostracion. Supongamos que L es un lenguaje regular y sea k como en el Pumping Lemma. Lacadena α = 0k001k es de L y por lo tanto es aceptada por el automata. Por el Pumping Lemmaα = β1γβ2, con | γ |> 0 y | β1γ |≤ k y tal que β1γnβ2 es aceptado por el automata para todo n > 0.Como | β1γ |≤ k, es claro que β1 = 0r, γ = 0s y s ≥ 1. Es decir β1γnβ2 = 0k+1+(n−1)s001k+1. Porlo tanto, 0k+10(n−1)s001k+1 es una cadena de L para todo n > 0. Lo cual es un absurdo, pues esacadena no pertenece a L para n > 1.

Observar que en el ejemplo anterior hay cadenas de L que son de longitud mayor que k (porejemplo 0k/2001k/2, si k es par) que no sirven para demostrar, usando el Pumping Lemma, que ellenguaje no es regular. Es decir, se debe tener mucho cuidado en la eleccion de la cadena, pues laeleccion de una cadena incorrecta hara que la utilizacion del Pumping Lemma no nos sirva parademostrar que el lenguaje no es regular.

5.2 Gramaticas Libres de Contexto

Una gramatica libre de contexto es un conjunto finito de variables (tambien llamadas no termi-nales o categorıas sintacticas), un conjunto de sımbolos llamados terminales y un conjunto dereglas llamadas producciones que transforman una variable en una cadena formada por variablesy terminales.

La motivacion original de las gramaticas libres de contexto fue la descripcion de los lenguajesnaturales. Recordemos el ejemplo de la seccion anterior:

< oracion > →< sujeto >< predicado >< sujeto > →< sujeto >< adjetivo >< sujeto > → el perro

< adjetivo > → pequeno< adjetivo > → grande< adjetivo > → bueno

< predicado > →< verbo >< adjetivo >< verbo > → es

donde las categorıas sintacticas son denotadas por los <,> y los terminales son “el perro”,“pequeno”, “grande”, “bueno” y “es”.

Pese a su origen, las gramaticas libres de contexto no son adecuadas para la descripcion delenguajes naturales, una razon importante de este hecho es que es necesaria informacion semantica,ademas de la sintactica, para poder construir frases correctas en castellano. Por ejemplo, aunquelas reglas de produccion anteriores son aparentemente “naturales” tambien podemos armar lasiguiente frase “el perro grande es pequeno”.

Ahora, formalizaremos los conceptos expresados previamente.

Definicion 5.1. Una gramatica libre de contexto (CFG) es una 4-upla G = (V,T,P,S) tal que cadaproduccion en P es de la forma A→ α, donde A es una variable y α es una cadena formada porvariables y terminales (que puede ser vacıa), es decir α ∈ (V ∪T )∗.

El lenguaje generado por una CFG sera llamando lenguaje libre de contexto.

Ejemplo 5.3. Consideremos la gramatica con una variable E, sımbolos terminales +, ∗, (, ) y id,y producciones

E→ E +E | E ∗E | (E) | id .

48

Page 49: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Entonces (id + id)∗ id se deriva de E, pues

E ⇒ E ∗E⇒ (E)∗E⇒ (E)∗ id⇒ (E +E)∗ id⇒ (E + id)∗ id⇒ (id + id)∗ id

La primera lınea se obtiene usando la produccion E → E ∗E, la segunda se obtiene reem-plazando la primera E por el lado derecho de la produccion E → (E). Las restantes lıneas seobtienen de aplicar sucesivamente las producciones E→ id, E→ E +E, E→ id, y E→ id.

Ejemplo 5.4. Consideremos la gramatica con una variable S , sımbolos terminales a y b, yproducciones S→ aSb | ab. Veamos que el lenguaje generado por esta gramatica es el de todaslas cadenas en el alfabeto {a,b} que son de la forma anbn con n > 0.

Demostracion. Hay esencialmente una unica forma de obtener una cadena con sımbolos termi-nales: primero aplicar repetidas veces la produccion S→ aSb y luego terminar con la produccionS→ ab. Es decir que las derivaciones son del tipo

S⇒ aSb⇒ a2Sb2⇒ ·· · ⇒ an−1Sbn−1⇒ anbn.

Entonces es claro que las palabras generadas por el lenguaje son de la forma anbn y obviamentetoda cadena de la forma anbn se obtiene haciendo la derivacion escrita mas arriba.

Ejemplo 5.5. Consideremos la gramatica con una variable S, sımbolos terminales a y b, y pro-ducciones S→ aSa | bSb | a | b | ε. Veamos que el lenguaje generado por esta gramatica es el detodas las cadenas en el alfabeto {a,b} que son capicua.

Demostracion. Por definicion, una palabra capicua es o bien de la forma x1x2 . . .xnxn . . .x2x1 o dela forma x1x2 . . .xn−1xnxn−1 . . .x2x1, con xi igual a a o b. Usando sucesivamente las produccionesS→ x1Sx1, S→ x2Sx2, . . ., S→ xn−1Sxn−1, obtenemos la derivacion

S⇒ x1Sx1⇒ x1x2Sx2x1⇒ ··· ⇒ x1x2 . . .xn−1Sxn−1 . . .x2x1,

si ahora usamos las produccion S→ xnSxn y luego S→ ε obtenemos S⇒ x1x2 . . .xnxn . . .x2x1. Porotro lado si aplicamos la produccion S→ xn a x1x2 . . .xn−1Sxn−1 . . .x2x1 obtenemos la derivacionS⇒ x1x2 . . .xn−1Sxn−1 . . .x2x1⇒ x1x2 . . .xn−1xnxn−1 . . .x2x1.

Veamos por induccion la recıproca, es decir que una cadena del lenguaje generado por lagramatica es capicua: la hipotesis inductiva es S⇒ αSβ, entonces α = x1x2 . . .xk y β = xk . . .x2x1,con xi igual a a o b. La induccion se hace sobre la longitud de α. Si la longitud de α es 1el resultado es trivial. Supongamos que tenemos probado el resultado para cadenas de longitudk−1. Sea S⇒ αSβ, con | α |= k. Sea α = x1x2 . . .xk, es claro que la ultima produccion que se usoes S→ xkSxk, luego tenemos S⇒ α′Sβ′ ⇒ α′xkSxkβ′ = αSβ. Claramente α′ = x1x2 . . .xk−1 tienelongitud k−1, y entonces por hipotesis inductiva tenemos que β′ = xk−1 . . .x2x1 y por consiguienteβ = xk . . .x2x1. Sea ahora una cadena α de sımbolos terminales, tal que S ⇒ α, entonces laderivacion es S⇒ α1Sα2⇒ α1xα2 = α, con x igual a a, b o ε. Por lo visto mas arriba α1xα2 = α

es capicua.

49

Page 50: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Una manera alternativa de enunciar las producciones de una gramatica es por el empleo de laforma normal de Backus-Naur o BNF. En una BNF los sımbolos no terminales empiezan con “<”y terminan con “>”. Las produccion A→ α se expresa A ::= α.

Ejemplo 5.6. Un entero es una cadena que consiste de un sımbolo opcional (+ o bien −) seguidopor un entero o cadena de dıgitos (del 0 al 9). La siguiente gramatica (escrita en notacion BNF)genera todos los enteros.

< dıgito > ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9< entero > ::=< entero con signo >|< entero sin signo >

< entero con signo > ::=+< entero sin signo >| −< entero sin signo >< entero sin signo > ::=< dıgito >|< dıgito >< entero sin signo >

El sımbolo inicial es < entero >, las otras variables son < entero con signo >,< entero sin signo >,< dıgito >, los sımbolos terminales son 0,1,2,3,4,5,6,7,8,9,+,−.

Por ejemplo la derivacion del entero -452 es

< entero > ⇒< entero con signo >⇒−< entero sin signo >⇒−< dıgito >< entero sin signo >⇒−< dıgito >< dıgito >< entero sin signo >⇒−< dıgito >< dıgito >< dıgito >⇒−4 < dıgito >< dıgito >⇒−45 < dıgito >⇒−452

Claramente el lenguaje asociado a esta gramatica es el de todas las cadenas que empiezan con+ o − y sigue una sucesion de dıgitos o las cadenas que son una sucesion de dıgitos.

La sintaxis de algunos lenguajes de computacion de alto nivel, como Pascal, C o FORTRAN,pueden expresarse en BNF.

5.3 Formas normales de Chomsky y Greibach

Dada una gramatica libre de contexto G es posible hallar gramaticas con producciones de ciertotipo tal que el lenguaje generado por estas gramaticas sea del mismo que el generado por G.

Definicion 5.2. Sea G= (V,T,P,S) una CFG. Diremos que G esta en la forma normal de Chomskysi todas las producciones son de la forma

A→ a o A→ BC,

donde A,B,C ∈ V y a ∈ T . Es decir, si el lado derecho de todas las producciones es o bien unsımbolo terminal o dos variables. Diremos que G esta en la forma normal de Greibach si todas lasproducciones son de la forma

A→ aα,

donde A ∈V , a ∈ T y α ∈V ∗. Es decir, si el lado derecho de todas las producciones es un sımboloterminal seguido de ninguna o varias variables.

50

Page 51: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Dada una gramatica G es posible hallar gramaticas G′ y G′′ en forma normal de Chomsky yGreibach, respetivamente, tal que el lenguaje generado por G sea el mismo que el generado porG′ o G′′.

En lo que resta de la seccion veremos como dada una gramatica G libre de contexto po-dremos encontrar en forma algorıtmica una gramatica equivalente en la forma de Chomsky. Elprocedimiento consta de los siguientes pasos:

1. Eliminar ε-producciones (A→ ε).

2. Eliminar variables que no llevan a cadenas de sımbolos terminales.

3. Eliminar sımbolos (variables y terminales) que no pueden ser alcanzados.

4. Eliminar producciones unitarias (A→ B).

5. Forma normal de Chomsky.

Comencemos a hacer el procedimiento:

(1) Eliminar ε-producciones. Con este procedimiento obtendremos una gramatica con lenguajeL(G)−{ε}. Si el lenguaje original contenıa a ε, entonces al final agregaremos la produccion S→ ε.El procedimiento es como sigue. Primero sea N = /0 y ahora:

(a) si A→ ε es produccion, entonces agregar A a N.

(b) Iteramos el siguiente paso hasta que N se estabilice: si A→ α es produccion con α ∈ N+,entonces agregar A a N.

Es claro que el proceso (b) termina debido a que N ⊂V .El nuevo conjunto P′ de producciones es el siguiente: si A→ X1X2 . . .Xk es una produccion en

P donde Xi ∈V ∪T , entonces A→ α1α2 . . .αk esta en P′ si

1. αi = Xi si Xi 6∈ N,

2. αi = Xi o αi = ε si Xi ∈ N,

3. α1α2 . . .αk 6= ε.

Es decir, si partimos de P′ = /0, para toda A→ α en P, se agregan a P′ las producciones A→ α′

donde α′ 6= ε y α′ es cualquier combinacion que resulte de eliminar algunas variables en N de α .Observar que si S esta en N, entonces ε es aceptado por el lenguaje original.

(2) Eliminar variables que no llevan a cadenas de sımbolos terminales. Debemos reem-plazar el conjunto de variables originales por el conjunto V ′ que se construye con cierto numero deiteraciones: el primer V ′ se obtiene de agregar todas las variables que figuren del lado izquierdode producciones del tipo A→ β donde β ∈ T+. Luego se itera el siguiente procedimiento hastaque se estabilice V ′

(a) el nuevo V ′ se obtiene agregando todas las variables que figuren del lado izquierdo deproducciones del tipo A→ β donde β∈, es decir cuando β es una cadena donde las variablesque aparecen son de V ′. En pseudocodigo serıa

V ′ :=V ′∪{A : A→ β,β ∈ (T ∪V ′)+}

Terminada la iteracion nuestro nuevo conjunto de variables V sera igual al ultimo V ′. Si S noesta en V ′, entonces es facil ver que el lenguaje generado por G es vacıo.

51

Page 52: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

(3) Eliminar sımbolos que no pueden ser alcanzados. Sea V ′ = {S} y T ′ = /0. Iterar de lasiguiente forma hasta que V ′ y T ′ se estabilicen:

(a) si A→ α es una produccion con A ∈ V ′, entonces agregar a V ′ todas las variables que seencuentren en α y agregar a T ′ todos los sımbolos no terminales que se encuentren en α.En pseudocodigo serıa

V ′ :=V ′∪{B ∈V : A→ αBβ, A ∈V ′, α,β ∈ (T ∪V )∗}T ′ := T ′∪{a ∈ T : A→ αaβ, A ∈V ′, α,β ∈ (T ∪V )∗}

La iteracion finaliza puesto que V ′ ⊂V y T ′ ⊂ T . Nuestros nuevos V y T seran V ′ y T ′, respecti-vamente, obtenidos por las iteraciones de mas arriba.

(4) Eliminar producciones unitarias. Las producciones unitarias son aquellas de la forma A→Bcon A,B ∈V . El proceso de eliminar producciones unitarias es sencillo: recorremos el conjunto deproducciones y cada vez que encontramos una produccion del tipo A→ B la eliminamos y todaslas producciones B→ γ las cambiamos por A→ γ.

(5) Forma normal de Chomsky. En este caso suponemos que hemos completado los proced-imientos (1). . .(4). Si A→ α es una produccion la longitud de A→ α se define como la longitudde la cadena α. Para hacer la forma normal de Chomsky procederemos de la siguiente manera:

(a) por cada sımbolo terminal a se agrega una nueva variable A y una produccion A→ a. Ahora,en cada produccion de longitud mayor que 1 se reemplaza cada sımbolo terminal a por lanueva variable A. Despues de hacer esto todas las producciones son del tipo A→ a, con aterminal o del tipo A→ A1 . . .An con A1, . . . ,An variables.

(b) En cada produccion de longitud mayor que dos A→ A1A2 . . .An se reemplaza A1A2 por unanueva variable B y se agrega la produccion B→ A1A2. Este procedimiento se itera hasta queno haya producciones de longitud mayor que 2. Es claro que la iteracion termina debido asque en cada paso se disminuye la longitud maxima que pueden tener las producciones.

Ejemplo 5.7. Sea G = (V,T,P,S) con V = {S,A}, T = {a,b} y producciones

S → aAS | a A → SbA | SS | ba

Ejemplo 5.8. Sea G = (V,T,P,S) con V = {S,A}, T = {a,b} y producciones

S → aAS | a A → SbA | SS | ba

Encontrar una gramatica en la forma normal de Chomsky que genere el lenguaje L(G).No es difıcil verificar que esta gramatica no necesita que realicemos los procedimientos (1),

(2), (3) y (4). Debemos entonces aplicar el procedimiento (5):

(a) Primero agregamos una variable por cada sımbolo terminal, X por a e Y por b. Tambienagregamos las producciones X → a e Y → b. En las producciones de longitud mayor que1 reemplazamos a por X y b por Y . Obtenemos entonces la gramatica G = (V,T,P,S) conV = {S,A,X ,Y}, T = {a,b} y producciones

S → XAS | a A → SY X | SS | Y XX → a T → b

52

Page 53: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

(b) Reemplazamos en S→ XAS a XA por U (una nueva variable) y agregamos la produccionU → XA. Reemplazamos en A→ SY X a SY por W (una nueva variable) y agregamos laproduccion W → SY . Obtenemos la gramatica G = (V,T,P,S) con V = {S,A,X ,Y,U,W},T = {a,b} y producciones

S →US | a A →WX | SS | Y XX → a T → bU → XA W → SY

La formal normal de Greibach se puede obtener a partir de la forma normal de Chomsky, peroes mucho mas complicado hacerlo y queda fuera de los alcances de este escrito.

5.4 Ejercicios

Ejercicio 5.1. Determine si es regular el siguiente lenguaje sobre el alfabeto Σ = {a,b}. Justifiquesu respuesta. L = {anbm | n < m}.

Ejercicio 5.2. Demostrar que los siguientes lenguajes no son regulares:

1. L1 = {wwR | w ∈ {0,1}∗, y wR es la reversa de w}.

2. L2 = {ww | w ∈ {0,1}∗}.

3. L3 = {ww′ | w ∈ {0,1}∗, y w′ es w donde cambiamos todas los 0 por 1 y vicerversa}.

Ejercicio 5.3. Definir gramaticas libres de contexto que generen los siguientes lenguajes sobre elalfabeto {a,b}.

1. Todas las cadenas no nulas, es decir distintas de ε.

2. Cadenas que empiecen con a.

3. Cadenas que terminen en ba.

4. Cadenas que contengan ba.

5. Cadenas no terminen en ab.

Ejercicio 5.4. Definir gramaticas libres de contexto que generen los siguientes lenguajes:

1. Enteros que no empiecen con 0 (hacerlo con BNF).

2. Numeros con punto flotante (como 0.294, 89.0, 45.895).

3. Numeros exponenciales (que incluyan a los numeros con punto flotante y a otros como6.9E4, 5E23, 7.5E-3, 4E-5).

Ejercicio 5.5. Demuestre que los siguientes lenguajes son libres de contexto, pero no regulares:

1. L1 = {anbnck | n,k ∈ N}.

2. L2 = {x1 · · ·xn | x1 · · ·xn = xn · · ·x1}.

3. L3 = {0n1n1m0m | n ∈ N}.

53

Page 54: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

4. L4 = {1n0n1m0m | n, m ∈ N}.

Ejercicio 5.6. Para cada uno de los siguientes lenguajes, determine si son regulares. Justifiquesu respuesta en cualquier caso. En el caso de no serlo, utilice Pumping Lemma.

1. Palabras de la forma αβγ, donde α ∈ {a,b}∗, β ∈ {c,d}∗ y γ ∈ {a,b}∗

2. Palabras en el alfabeto {a,b} que tienen igual cantidad de a’s que de b’s.

3. Palabras en el alfabeto {a,b} que tienen una cantidad multiplo de 3 de letras.

5.5 Automatas con pila

Hemos visto que los lenguajes que generan las expresiones regulares o, equivalentemente, loslenguajes regulares se pueden obtener a partir de automatas finitos, y viceversa. En forma analoga,a los lenguajes libres de contexto le corresponden los automatas con pila. En esta seccion veremosla definicion de los automatas con pila, los lenguajes generados por ellos y algunos ejemplos. Noprobaremos, por estar fuera de los alcances de este texto, la equivalencia entre los lenguajes libresde contexto y los lenguajes aceptados por los automatas con pila.

Un automata con pila (PDA) es esencialmente un automata finito que posee control sobre unapila, es decir una lista de la cual solo se puede “leer”, “poner” o “sacar” el primer elemento. Dadoel estado actual del automata y el primer elemento de la pila, un sımbolo de input nos llevara(posiblemente en forma no determinıstica) el estado siguiente y a la modificacion que se debehacer en el primer elemento de la pila. Diremos que una cadena es aceptada por pila vacıa porel PDA si cuando la aplicamos obtenemos una pila vacıa. Diremos que una cadena es aceptadapor estado final por el PDA si lleva el estado inicial a uno final. Los lenguajes aceptados por losautomatas con pila, tantos los aceptados por pila vacıa o por estado final, son los mismos que losaceptados por las gramaticas libres de contexto e incluyen estrictamente a los lenguajes regulares.

Ejemplo 5.9. El lenguaje L = {wcwR : w ∈ (0+ 1)∗ y c sımbolo } es un lenguaje no regular.Esto es facil de ver usando el Pumping Lemma. Sin embargo, es un lenguaje libre de contextogenerado por la gramatica S→ 0S0 | 1S1 | c. Mostraremos a continuacion un automata con pilacuyo lenguaje por pila vacıa es L. Los sımbolos de input seran, obviamente, 0, 1 y c. Consideremosdos estados q1 y q2 y que en la pila se pueden “apilar” tres tipos de objetos rojos (R), verdes(V ) y azules (A). La idea para definir el automata es la siguiente: la pila comenzara con un soloelemento R para indicar, justamente, el comienzo de la pila. Ahora, pensemos a la pila como una“memoria” donde guardaremos la forma de la primera porcion de la palabra hasta c: haremosque cada vez que el input sea 0, se agregue a la pila una A y cada vez que sea 1 se agregue unaV . Estos inputs no cambian el estado inicial. Cuando ingresa el input c, cambiamos de estadopara indicar que tenemos que empezar a leer el final de la palabra. Ahora deberemos desapilarconvenientemente, de tal forma que si despues de c viene wR, la pila quede vacıa. Por ejemplo,supongamos que w termina en 1, entonces, despues de aplicar c, estamos en el segundo estadoy la pila tiene en la parte superior una V . Esto indica que la ultima letra de w es un 1 y por lotanto, para tener esperanza de que la palabra sea aceptada, la primera letra despues de c deberıaser un 1. Por lo tanto decimos que si el input es 1 y la pila muestra V , se retira V . Analogamentesi en la parte superior hay un A y el input es 0, se retira A. Siguiendo ası, si el sufijo de c eswR, llegaremos a una pila con un solo elemento, el R. El ultimo movimiento, un ε-movimiento, sedefine de la siguiente manera: si estamos en el segundo estado y la pila muestra el R, se saca elR. Resumiendo: el automata tendra las siguientes reglas:

54

Page 55: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

1. Comenzamos en el estado q1 y con R en la pila.

2. En el caso en que el estado es q1 el automata actua de la siguiente manera. Si se ingresael sımbolo de input 0, agregamos a la pila una A. Si el sımbolo de input es 1 agregamosuna V . En ambos caso el estado permanece q1. Si la entrada es c pasamos al estado q2 yla pila no cambia.

3. En el caso en que el estado es q2 el automata actua de la siguiente manera. Si se ingresael sımbolo de input 0 y el primero de la pila es A, se retira el primer elemento de la pila(es decir la A). Si el sımbolo de input es 1 y el primero de la pila es V , se retira el primerelemento de la pila. Si el primer elemento de la pila es R, se lo retira sin esperar input. Entodos los casos el estado continua siendo q2.

4. En las situaciones no contempladas en los items anteriores, el automata no hace nada.

Haciendo algunos ejemplos con cadenas particulares es facil convencerse que las unicas cadenasaceptadas por pila vacıa son las de la forma wcwR.

Definicion 5.3. Un automata con pila es una 7-upla M = (Q,Σ,Γ,δ,q0,Z0,F), en donde

1. Q es un conjunto finito de estados;

2. Σ es un alfabeto, el alfabeto de entrada;

3. Γ es un alfabeto, el alfabeto de la pila;

4. q0 ∈ Q, el estado inicial;

5. Z0 ∈ Γ, el sımbolo inicial de la pila;

6. F ⊂ Q, los estados finales;

7. δ : Q× (Σ∪{ε})×Γ→ P f (Q×Γ∗), la funcion de transicion, donde P f (Q×Γ∗) indica lossubconjuntos finitos de Q×Γ∗.

Usaremos PDA (por sus siglas en ingles) como sinonimo de “automata con pila”.

En general haremos uso de letras minusculas del comienzo del alfabeto (a,b,c, . . .) para denotarlos sımbolos del alfabeto de entrada (es decir de Σ) y usaremos letras minusculas, pero del finaldel alfabeto (. . . ,x,y,z), para denotar cadenas en Σ. Las letras mayusculas (A,B,C, . . . ,X ,Y,Z),denotaran sımbolos de la pila (es decir elementos de Γ) y las letras griegas minusculas (α,β,γ, . . .)denotaran elementos de Γ∗.

Observacion 5.1. Debemos hacer algunos comentarios acerca de como se debe interpretar δ. Sitenemos, por ejemplo, que δ(q,a,Z) = {(p,γ)} esto lo debemos interpretar de la siguiente manera:si q estado y Z cima de la pila, al aplicarle a del alfabeto de entrada, el estado del automatacambia a p y en la pila se produce el reemplazo de Z por γ, quedando el primer sımbolo de γ comocima de la pila. Por ejemplo si estamos en un estado q y la pila es Z1Z2Z2, entonces aplicar ausando la regla δ(q,a,Z1) = {(p,Z2Z1Z2)}, hace que pasemos al estado p y que la pila pase a serZ2Z1Z2Z2Z2.

Los automatas con pila permiten acciones no determinısticas, pues

δ(q,a,Z) = {(p1,γ1), . . . ,(pm,γm)}

55

Page 56: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

indica la posibilidad de hacer diferentes acciones aun con el mismo input. Por otro lado, tambienestan permitidos los ε-movimientos, es decir

δ(q,ε,Z) = {(p1,γ1), . . . ,(pm,γm)}

esta permitido y permite, sin ningun input, cambiar el estado y la pila.

Notemos que los DFA y NFA definidos en capıtulos anteriores son casos especiales de automatascon pila: basta “olvidarse” de la pila en la definicion.

Ejemplo 5.10. Describamos en lenguaje formal el automata con pila del Ejemplo 5.9: M =({q1,q2}, {0,1,c}, {A,V,R},δ,q1,R, /0). Observemos que hemos determinado que el conjunto deestados finales es vacıo. Esto se debe a que en este caso estamos interesados en el lenguajeaceptado por pila vacıa y por lo tanto los estados finales son irrelevantes. La descripcion de δ es

δ(q1,0,X) = {(q1,AX)}, δ(q1,1,X) = {(q1,V X)}, δ(q1,c,X) = {(q2,X)},δ(q2,0,A) = {(q2,ε)}, δ(q2,1,V ) = {(q2,ε)}, δ(q2,ε,R) = {(q2,ε)},

donde X es un sımbolo arbitrario de la pila. Las transiciones no descritas son δ(q,a,Z) = /0.

Dada una cadena del alfabeto de entrada queremos describir formalmente la situacion delautomata con pila despues de haberse aplicado parte de la cadena. Para ello debe registrarse, sinduda, el estado actual del automata y el contenido de la pila. Ademas, registraremos la parte dela cadena que todavıa no ha sido aplicada. Formalmente:

Definicion 5.4. Sea M = (Q,Σ,Γ,δ,q0,Z0,F) un PDA. Una descripcion instantanea (ID) es untriple (q,w,γ), donde q ∈ Q, w ∈ Σ∗ y γ ∈ Γ∗.

Si (q,aw,Zγ) y (p,w,βγ) son dos ID, denotaremos

(q,aw,Zγ) ` (p,w,βγ)

si (p,β) ∈ δ(q,a,Z). Dadas (q,w,γ) y (q′,w′,γ′) descripciones instantaneas, denotaremos

(q,w,γ) `∗ (q′,w′,γ′)

si existen (q1,w1,γ1), . . . ,(qm,wm,γm) descripciones instantaneas tales que

(q,w,γ) ` (q1,w1,γ1) ` · · · ` (qm,wm,γm) ` (q′,w′,γ′).

Por convencion, sera aceptado (q,w,γ) `∗ (q,w,γ).

Las descripciones instantaneas seran utiles para definir el lenguaje aceptado por un PDA.

Definicion 5.5. Sea M = (Q,Σ,Γ,δ,q0,Z0,F) un PDA. Entonces, definimos L(M) el lenguaje deM por estado final, como

L(M) = {w ∈ Σ∗ : (q0,w,Z0) `∗ (p,ε,γ) para algun p ∈ F,γ ∈ Γ

∗}.

El lenguaje de M por pila vacıa es:

N(M) = {w ∈ Σ∗ : (q0,w,Z0) `∗ (p,ε,ε) para algun p ∈ Q}.

56

Page 57: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

Como ya hemos mencionado el conjunto de los lenguajes aceptados por estado final es equiv-alente al conjunto de los lenguajes aceptados por pila vacıa. La demostracion de este hecho sigueel espıritu de las demostraciones que hemos visto en teorıa de lenguajes, dado un lenguaje definidode cierta manera, construimos en forma algorıtmica un automata que acepta ese lenguaje.

Recordemos que si M es un NFA, puede asociarse trivialmente M′ un PDA, que esencialmentees el mismo M con una pila que no se usa. Es claro entonces, por las respectivas definiciones, queel lenguaje de M coincide con el lenguaje de M′ por estado final.

Ejemplo 5.11. L = {aaR : a ∈ {0,1}∗}

En la seccion 5.3 hemos visto que toda gramatica se puede reducir a una gramatica equivalenteen la forma normal de Greibach. La siguiente proposicion probara el “implica” de la equivalenciaentre lenguajes generados por gramaticas libres de contexto y lenguajes aceptados por automatascon pila.

Proposicion 5.2. Sea G una CFG en la forma normal de Greibach. Entonces existe M un PDAtal que L(G) = N(M).

Demostracion. Denotemos L = L(G) y hagamos la demostracion en el caso en que ε no este en L.La demostracion en el otro caso es similar y se deja a cargo del lector. G esta en la forma normalde Greibach, es decir toda produccion es de la forma A→ aγ con γ ∈V ∗. Definamos el PDA

M = ({q},T,V,δ,q,S,{ /0}),

donde (q,γ) ∈ δ(q,a,A) si y solo si A→ aγ esta en P. Observemos que en este caso los estados delautomata no tiene importancia (siempre estamos en el mismo estado) y lo unico que importa esla pila. Las operaciones elementales que hace δ sobre la pila claramente simulan las produccionesy una composicion de estas operaciones simula una derivacion a izquierda. De manera formaldebemos demostrar que

S⇒ w si y solo si (q,w,S) `∗ (q,ε,ε),

para w ∈ T ∗. En realidad es mas sencillo demostrar

S⇒ wγ si y solo si (q,w,S) `∗ (q,ε,γ), (4)

para w ∈ T ∗ y γ ∈V ∗ y se deja como ejercicio para el lector. Claramente, esto implica lo anteriorhaciendo γ = ε.

Finalizaremos la seccion dando la definicion de automatas con pila determinısticos.

Definicion 5.6. Un automata con pila determinıstico es una 7-upla M = (Q,Σ,Γ,δ,q0,Z0,F), endonde

1. Q es un conjunto finito de estados;

2. Σ es un alfabeto, el alfabeto de entrada;

3. Γ es un alfabeto, el alfabeto de la pila;

4. q0 ∈ Q, el estado inicial;

57

Page 58: Introducci on a la L ogica y la Computaci on - UNC...1Basado en el apunte de Alejandro Tiraboschi (1ra versi on) y Pedro S anchez Terraf (2da versi on). 1 1 Modelos de Computaci on

5. Z0 ∈ Γ, el sımbolo inicial de la pila;

6. F ⊂ Q, los estados finales;

7. δ : Q×(Σ∪{ε})×Γ→{ /0}∪(Q×Γ∗), la funcion de transicion, tal que si δ(q,ε,Z)∈Q×Γ∗,entonces δ(q,a,Z) = /0 para todo a ∈ Σ.

Usaremos DPDA (por sus siglas en ingles) como sinonimo de “automata con pila determinıstico”.

Observemos que las transiciones de un DPDA tienen las siguientes restricciones:

1. | δ(q,a,Z) |= 0 o 1.

2. Si | δ(q,ε,Z) |> 0, entonces | δ(q,a,Z) |> 0 para todo a ∈ Σ.

Haremos algunos comentarios respecto a los DPDA

1. los lenguajes aceptados por pila vacıa correspondientes a DPDA son lenguajes que tienen lasiguiente propiedad: si x y y son cadenas aceptadas y x 6= y, entonces x no puede ser prefijode y. En particular, hay lenguajes regulares que no son aceptados por DPDA por pila vacıa(por ejemplo 0∗).

2. Consideremos los lenguajes aceptados por DPDA por estado final, en este caso este conjuntode lenguajes contiene estrictamente a los lenguajes regulares y esta contenido estrictamenteen los lenguajes aceptados por PDA. Por ejemplo, el lenguaje L = {aaR : a ∈ {0,1}∗} es unlenguaje aceptado por un PDA, pero no es posible obtenerlo como lenguaje de un DPDA.

5.6 Ejercicios

Ejercicio 5.7. Dar automatas con pila que acepten por estado final los siguientes lenguajes sobreel alfabeto Σ = {a,b,c}:

1. L1 = {anbn | n≥ 0}.

2. L2 = {anbn+2 | n≥ 0}.

3. L3 = {ααR | α ∈ Σ∗}.

Ejercicio 5.8. Dar automatas con pila que acepten por pila vacıa los lenguajes del ejercicio 5.7.

Ejercicio 5.9. Determine si los lenguajes libres de contexto son cerrados para la union, concate-nacion, complemento, interseccion y clausura de Klenne.

58