Upload
donguyet
View
225
Download
0
Embed Size (px)
Citation preview
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Introducción a la Teoría de Autómatas, Lenguajesy Computación
Gustavo Rodríguez Gómez y Aurelio López López
INAOE
Propedéutico 2010
1 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Capítulo 1
IntroducciónAutómatas
2 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Libro de texto
John E. Hopcroft et al., “Introduction to Automata Theory,Languajes, and Computation”, segunda edición, AddisonWesley
3 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
1 IntroducciónMotivación
2 ¿Por qué estudiar Autómatas?Introducción a los Autómatas Finitos
3 Introducción a las Demostraciones FormalesCondiciones Necesarias y Suficientes
4 Conceptos Centrales de la TAAlfabetosCadenasLenguajesProblemas
4 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
La teoría de autómatas es el estudio de dispositivos(máquinas) de computación abstractos.
Objetivo (Turing):
Describir en forma precisa la frontera entre lo que unacomputadora puede hacer y lo que no puede hacer.
Entre 1940 y 1950 surgen las máquinas hoy llamadas“autómatas finitos”.
A finales de los 1950´s el lingüista Chomsky inicia el estudioformal de las “gramáticas”.
5 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
La teoría de autómatas es el estudio de dispositivos(máquinas) de computación abstractos.
Objetivo (Turing):
Describir en forma precisa la frontera entre lo que unacomputadora puede hacer y lo que no puede hacer.
Entre 1940 y 1950 surgen las máquinas hoy llamadas“autómatas finitos”.
A finales de los 1950´s el lingüista Chomsky inicia el estudioformal de las “gramáticas”.
6 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
La teoría de autómatas es el estudio de dispositivos(máquinas) de computación abstractos.
Objetivo (Turing):
Describir en forma precisa la frontera entre lo que unacomputadora puede hacer y lo que no puede hacer.
Entre 1940 y 1950 surgen las máquinas hoy llamadas“autómatas finitos”.
A finales de los 1950´s el lingüista Chomsky inicia el estudioformal de las “gramáticas”.
7 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
La teoría de autómatas es el estudio de dispositivos(máquinas) de computación abstractos.
Objetivo (Turing):
Describir en forma precisa la frontera entre lo que unacomputadora puede hacer y lo que no puede hacer.
Entre 1940 y 1950 surgen las máquinas hoy llamadas“autómatas finitos”.
A finales de los 1950´s el lingüista Chomsky inicia el estudioformal de las “gramáticas”.
8 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
La teoría de autómatas es el estudio de dispositivos(máquinas) de computación abstractos.
Objetivo (Turing):
Describir en forma precisa la frontera entre lo que unacomputadora puede hacer y lo que no puede hacer.
Entre 1940 y 1950 surgen las máquinas hoy llamadas“autómatas finitos”.
A finales de los 1950´s el lingüista Chomsky inicia el estudioformal de las “gramáticas”.
9 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
En 1969 S. Cook pudo clasificar los problemas que pueden serresueltos en una computadora en dos categorías:
problemas que se pueden resolver en forma eficiente,problemas que en principio se pueden resolver pero que en lapráctica consumen mucho tiempo (NP—duros).
Todos los desarrollos teóricos se apoyan en lo que loscientíficos de la computación desarrollan actualmente.
10 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
En 1969 S. Cook pudo clasificar los problemas que pueden serresueltos en una computadora en dos categorías:
problemas que se pueden resolver en forma eficiente,
problemas que en principio se pueden resolver pero que en lapráctica consumen mucho tiempo (NP—duros).
Todos los desarrollos teóricos se apoyan en lo que loscientíficos de la computación desarrollan actualmente.
11 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
En 1969 S. Cook pudo clasificar los problemas que pueden serresueltos en una computadora en dos categorías:
problemas que se pueden resolver en forma eficiente,problemas que en principio se pueden resolver pero que en lapráctica consumen mucho tiempo (NP—duros).
Todos los desarrollos teóricos se apoyan en lo que loscientíficos de la computación desarrollan actualmente.
12 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
En 1969 S. Cook pudo clasificar los problemas que pueden serresueltos en una computadora en dos categorías:
problemas que se pueden resolver en forma eficiente,problemas que en principio se pueden resolver pero que en lapráctica consumen mucho tiempo (NP—duros).
Todos los desarrollos teóricos se apoyan en lo que loscientíficos de la computación desarrollan actualmente.
13 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
Los autómatas finitos y las gramáticas formales se usan en eldiseño y construcción de software.
La máquinas de Turing nos ayuda a entender lo que podemosesperar de nuestro software.
La teoría de problemas intratables nos ayuda a deducir si nosenfrentamos con problemas tratable o no.
14 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
Los autómatas finitos y las gramáticas formales se usan en eldiseño y construcción de software.
La máquinas de Turing nos ayuda a entender lo que podemosesperar de nuestro software.
La teoría de problemas intratables nos ayuda a deducir si nosenfrentamos con problemas tratable o no.
15 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Motivación
Motivación
Los autómatas finitos y las gramáticas formales se usan en eldiseño y construcción de software.
La máquinas de Turing nos ayuda a entender lo que podemosesperar de nuestro software.
La teoría de problemas intratables nos ayuda a deducir si nosenfrentamos con problemas tratable o no.
16 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Introducción a los Autómatas Finitos
Introducción a los Autómatas Finitos
Algunas aplicaciones de autómatas finitos
Diseño de software y verificación del comportamiento decircuitos digitales.Analizadores léxicos de compiladores.Software para explorar grandes volúmenes de texto y encontrarpatrones.Software para verificar sistemas que tengan un número finitode estados, por ejemplo, protocolos de comunicación.
17 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Introducción a los Autómatas Finitos
Introducción a los Autómatas Finitos
Algunas aplicaciones de autómatas finitos
Diseño de software y verificación del comportamiento decircuitos digitales.
Analizadores léxicos de compiladores.Software para explorar grandes volúmenes de texto y encontrarpatrones.Software para verificar sistemas que tengan un número finitode estados, por ejemplo, protocolos de comunicación.
18 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Introducción a los Autómatas Finitos
Introducción a los Autómatas Finitos
Algunas aplicaciones de autómatas finitos
Diseño de software y verificación del comportamiento decircuitos digitales.Analizadores léxicos de compiladores.
Software para explorar grandes volúmenes de texto y encontrarpatrones.Software para verificar sistemas que tengan un número finitode estados, por ejemplo, protocolos de comunicación.
19 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Introducción a los Autómatas Finitos
Introducción a los Autómatas Finitos
Algunas aplicaciones de autómatas finitos
Diseño de software y verificación del comportamiento decircuitos digitales.Analizadores léxicos de compiladores.Software para explorar grandes volúmenes de texto y encontrarpatrones.
Software para verificar sistemas que tengan un número finitode estados, por ejemplo, protocolos de comunicación.
20 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Introducción a los Autómatas Finitos
Introducción a los Autómatas Finitos
Algunas aplicaciones de autómatas finitos
Diseño de software y verificación del comportamiento decircuitos digitales.Analizadores léxicos de compiladores.Software para explorar grandes volúmenes de texto y encontrarpatrones.Software para verificar sistemas que tengan un número finitode estados, por ejemplo, protocolos de comunicación.
21 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Condiciones Necesarias y Suficientes
Condiciones Necesarias
DefiniciónUna proposición P es una condición necesaria de una proposiciónQ si
Q ⇒ P
Ejemplo
Una condición necesaria paraque un humano este vivo esque respire.
Ejemplo
Una condición necesaria paraser presidente de México estener 35 años o más.
22 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Condiciones Necesarias y Suficientes
Condiciones Suficientes
DefiniciónUna proposición P es una condición suficiente de una proposiciónQ si
Q ⇐ P
Ejemplo
Ser mamífero es una condiciónnecesaria pero no suficientepara ser humano.
Ejemplo
Ser un número racional es unacondición suficiente para serun número real.
23 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Alfabetos
Alfabetos
Un alfabeto
Σ = conjunto de símbolos finito no vacío
Ejemplos
Σ = {0, 1}, el alfabeto binario,Σ = {a, b, c , . . . , z}, conjunto de todas las letras minúsculas
24 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Alfabetos
Alfabetos
Un alfabeto
Σ = conjunto de símbolos finito no vacío
Ejemplos
Σ = {0, 1}, el alfabeto binario,Σ = {a, b, c , . . . , z}, conjunto de todas las letras minúsculas
25 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Cadenas
Una cadena w es una sucesión finita de símbolos de algúnalfabeto Σ
w = a1a2 · · · ai , ak ∈ Σ k = 1, 2, . . . , i
La cadena vacía ε es la cadena con cero ocurrencias desímbolos de Σ.La longitud de una cadena w = a1a2 · · · ai es el número deposiciones de los símbolos de la cadena
|w | = i
Sea Σ un alfabeto, definimos las potencias de Σ por
Σk = {w |w es una cadena de Σ y |w | = k} ,
donde k ≥ 0 entero.
26 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Cadenas
Una cadena w es una sucesión finita de símbolos de algúnalfabeto Σ
w = a1a2 · · · ai , ak ∈ Σ k = 1, 2, . . . , i
La cadena vacía ε es la cadena con cero ocurrencias desímbolos de Σ.
La longitud de una cadena w = a1a2 · · · ai es el número deposiciones de los símbolos de la cadena
|w | = i
Sea Σ un alfabeto, definimos las potencias de Σ por
Σk = {w |w es una cadena de Σ y |w | = k} ,
donde k ≥ 0 entero.
27 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Cadenas
Una cadena w es una sucesión finita de símbolos de algúnalfabeto Σ
w = a1a2 · · · ai , ak ∈ Σ k = 1, 2, . . . , i
La cadena vacía ε es la cadena con cero ocurrencias desímbolos de Σ.La longitud de una cadena w = a1a2 · · · ai es el número deposiciones de los símbolos de la cadena
|w | = i
Sea Σ un alfabeto, definimos las potencias de Σ por
Σk = {w |w es una cadena de Σ y |w | = k} ,
donde k ≥ 0 entero.
28 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Cadenas
Una cadena w es una sucesión finita de símbolos de algúnalfabeto Σ
w = a1a2 · · · ai , ak ∈ Σ k = 1, 2, . . . , i
La cadena vacía ε es la cadena con cero ocurrencias desímbolos de Σ.La longitud de una cadena w = a1a2 · · · ai es el número deposiciones de los símbolos de la cadena
|w | = i
Sea Σ un alfabeto, definimos las potencias de Σ por
Σk = {w |w es una cadena de Σ y |w | = k} ,
donde k ≥ 0 entero.29 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Ejemplos potencias de un alfabeto
Ejemplos
Σ0 = {ε} para cualquier alfabetoSi Σ = {0, 1}
Σ1 = {0, 1},Σ2 = {00, 01, 10, 11},Σ3 = {000, 001, 010, 011, 100, 101, 110, 111}
Problema
¿Cuál es la diferencia entre Σ y Σ1?
30 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Conjunto de todas las cadenas de un alfabeto
El conjunto de todas las cadenas de un alfabeto Σ esdenotado por Σ∗
Σ∗ = {w |w es cadena de Σ} ,= Σ0 ∪ Σ1 ∪ Σ2 ∪ Σ3 ∪ · · ·
Ejemplo
{0, 1}∗ = {ε, 0, 1, 00, 01, 10, 11, 000, · · · }
31 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Conjunto de todas las cadenas de un alfabeto
El conjunto de todas las cadenas de un alfabeto Σ esdenotado por Σ∗
Σ∗ = {w |w es cadena de Σ} ,= Σ0 ∪ Σ1 ∪ Σ2 ∪ Σ3 ∪ · · ·
Ejemplo
{0, 1}∗ = {ε, 0, 1, 00, 01, 10, 11, 000, · · · }
32 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Concatenación de cadenas
El conjunto de cadenas no vacías de un alfabeto se define por
Σ+ = Σ1 ∪ Σ2 ∪ Σ3 ∪ · · ·
Sean x = a1a2 · · · ai , y = b1b2 · · · bj cadenas de Σ, definimosla concatenación de x con y por
xy = a1a2 · · · aib1b2 · · · bj ,
La longitud de la nueva cadena es
|xy | = i + j
33 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Concatenación de cadenas
El conjunto de cadenas no vacías de un alfabeto se define por
Σ+ = Σ1 ∪ Σ2 ∪ Σ3 ∪ · · ·
Sean x = a1a2 · · · ai , y = b1b2 · · · bj cadenas de Σ, definimosla concatenación de x con y por
xy = a1a2 · · · aib1b2 · · · bj ,
La longitud de la nueva cadena es
|xy | = i + j
34 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Cadenas
Concatenación de cadenas
El conjunto de cadenas no vacías de un alfabeto se define por
Σ+ = Σ1 ∪ Σ2 ∪ Σ3 ∪ · · ·
Sean x = a1a2 · · · ai , y = b1b2 · · · bj cadenas de Σ, definimosla concatenación de x con y por
xy = a1a2 · · · aib1b2 · · · bj ,
La longitud de la nueva cadena es
|xy | = i + j
35 / 37
Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA
Lenguajes
Lenguajes
Definición
Sea Σ un alfabeto y L ⊆ Σ∗ diremos entonces que L es un lenguajede Σ.
36 / 37