Introducción a la Teoría de Autómatas, Lenguajes y...

37
Introduccin ¿Por quØ estudiar Autmatas? Introduccin a las Demostraciones Formales Conceptos Centrales de la TA Introduccin a la Teora de Autmatas, Lenguajes y Computacin Gustavo Rodrguez Gmez y Aurelio Lpez Lpez INAOE PropedØutico 2010 1 / 37

Transcript of Introducción a la Teoría de Autómatas, Lenguajes y...

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

Introducción ¿Por qué estudiar Autómatas? Introducción a las Demostraciones Formales Conceptos Centrales de la TA

Problemas

Problemas en teoría de autómatas

DefiniciónSea Σ un alfabeto y L un lenguaje de Σ.El problema L es:

Dado una cadena w ∈ Σ∗ decidir si w ∈ L ó w /∈ L.

37 / 37