Porque estudiar la teoría de autómatas

28
Cap 1: Introducci´ on a los aut´ omatas Tutores: Luis Antonio Chamba Eras Edison Leonardo Coronel Romero Carrera de Ingenier´ ıa en Sistemas Universidad Nacional de Loja Septiembre 2012 1 / 28

description

Transparencias de apoyo para la Unidad de Lenguajes Formales y Teoría de

Transcript of Porque estudiar la teoría de autómatas

Page 1: Porque estudiar la teoría de autómatas

Cap 1: Introduccion a los automatas

Tutores: Luis Antonio Chamba ErasEdison Leonardo Coronel Romero

Carrera de Ingenierıa en SistemasUniversidad Nacional de Loja

Septiembre 2012

1 / 28

Page 2: Porque estudiar la teoría de autómatas

Introduccion

• Estudio de las maquinas abstractas.

• Decada de los 30’, Alan Turing estudio una maquina abstracta,con las capacidades de los ordenadores actuales.

• Turing, lımites de lo que una maquina de calculo podıa o nopodıa hacer.

• 40’ y 50’, estudiaron los automatas finitos (AF), propusieronpara modelar funcionamiento del cerebro.

• Finales 50’, N. Chomsky inicio el estudio de las GramaticasFormales.

2 / 28

Page 3: Porque estudiar la teoría de autómatas

Introduccion

• Estudio de las maquinas abstractas.

• Decada de los 30’, Alan Turing estudio una maquina abstracta,con las capacidades de los ordenadores actuales.

• Turing, lımites de lo que una maquina de calculo podıa o nopodıa hacer.

• 40’ y 50’, estudiaron los automatas finitos (AF), propusieronpara modelar funcionamiento del cerebro.

• Finales 50’, N. Chomsky inicio el estudio de las GramaticasFormales.

3 / 28

Page 4: Porque estudiar la teoría de autómatas

Introduccion

• Estudio de las maquinas abstractas.

• Decada de los 30’, Alan Turing estudio una maquina abstracta,con las capacidades de los ordenadores actuales.

• Turing, lımites de lo que una maquina de calculo podıa o nopodıa hacer.

• 40’ y 50’, estudiaron los automatas finitos (AF), propusieronpara modelar funcionamiento del cerebro.

• Finales 50’, N. Chomsky inicio el estudio de las GramaticasFormales.

4 / 28

Page 5: Porque estudiar la teoría de autómatas

Introduccion

• Estudio de las maquinas abstractas.

• Decada de los 30’, Alan Turing estudio una maquina abstracta,con las capacidades de los ordenadores actuales.

• Turing, lımites de lo que una maquina de calculo podıa o nopodıa hacer.

• 40’ y 50’, estudiaron los automatas finitos (AF), propusieronpara modelar funcionamiento del cerebro.

• Finales 50’, N. Chomsky inicio el estudio de las GramaticasFormales.

5 / 28

Page 6: Porque estudiar la teoría de autómatas

Introduccion

• 1969, S.Cook amplio estudio de Turing, separo los problemasque se podıan resolver de forma eficiente mediante la ayuda deun ordenador de los que al principio pueden resolverse pero enla practica consumen tanto tiempo que los ordenadores se vuel-ven inutiles para todo excepto para casos simples del problema(insolubles)(NP-difıciles).

• Conceptos de AF y GF, se emplean para el diseno y construccionde software.

• Los conceptos de la Maquina de Turing, nos ayuda a compren-der lo que esperamos de nuestro software.

• La teorıa de problemas intratables nos permite deducir si po-dremos enfrentarnos a un problema y escribir un programa pararesolverlo o encontrar alguna manera de abordar el problema:hallar una aproximacion, metodo heurıstico o algun metodo pa-ra limitar el tiempo que utilizara el programa para resolverlo.

6 / 28

Page 7: Porque estudiar la teoría de autómatas

Introduccion

• 1969, S.Cook amplio estudio de Turing, separo los problemasque se podıan resolver de forma eficiente mediante la ayuda deun ordenador de los que al principio pueden resolverse pero enla practica consumen tanto tiempo que los ordenadores se vuel-ven inutiles para todo excepto para casos simples del problema(insolubles)(NP-difıciles).

• Conceptos de AF y GF, se emplean para el diseno y construccionde software.

• Los conceptos de la Maquina de Turing, nos ayuda a compren-der lo que esperamos de nuestro software.

• La teorıa de problemas intratables nos permite deducir si po-dremos enfrentarnos a un problema y escribir un programa pararesolverlo o encontrar alguna manera de abordar el problema:hallar una aproximacion, metodo heurıstico o algun metodo pa-ra limitar el tiempo que utilizara el programa para resolverlo.

7 / 28

Page 8: Porque estudiar la teoría de autómatas

Introduccion

• 1969, S.Cook amplio estudio de Turing, separo los problemasque se podıan resolver de forma eficiente mediante la ayuda deun ordenador de los que al principio pueden resolverse pero enla practica consumen tanto tiempo que los ordenadores se vuel-ven inutiles para todo excepto para casos simples del problema(insolubles)(NP-difıciles).

• Conceptos de AF y GF, se emplean para el diseno y construccionde software.

• Los conceptos de la Maquina de Turing, nos ayuda a compren-der lo que esperamos de nuestro software.

• La teorıa de problemas intratables nos permite deducir si po-dremos enfrentarnos a un problema y escribir un programa pararesolverlo o encontrar alguna manera de abordar el problema:hallar una aproximacion, metodo heurıstico o algun metodo pa-ra limitar el tiempo que utilizara el programa para resolverlo.

8 / 28

Page 9: Porque estudiar la teoría de autómatas

Porque estudiar la teorıa de automatas?

• Existen varias razones del estudio de la teorıa de automatasdentro de las Ciencias de la Computacion.

• Introduccion a los automatas finitos.• Representaciones estructurales.• Automatas y complejidad.

9 / 28

Page 10: Porque estudiar la teoría de autómatas

Porque estudiar la teorıa de automatas?

• Existen varias razones del estudio de la teorıa de automatasdentro de las Ciencias de la Computacion.

• Introduccion a los automatas finitos.

• Representaciones estructurales.• Automatas y complejidad.

10 / 28

Page 11: Porque estudiar la teoría de autómatas

Porque estudiar la teorıa de automatas?

• Existen varias razones del estudio de la teorıa de automatasdentro de las Ciencias de la Computacion.

• Introduccion a los automatas finitos.• Representaciones estructurales.

• Automatas y complejidad.

11 / 28

Page 12: Porque estudiar la teoría de autómatas

Porque estudiar la teorıa de automatas?

• Existen varias razones del estudio de la teorıa de automatasdentro de las Ciencias de la Computacion.

• Introduccion a los automatas finitos.• Representaciones estructurales.• Automatas y complejidad.

12 / 28

Page 13: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• AF son modelos utiles para diferentes tipos de hardware y soft-ware.

• SW para disenar y probar el comportamiento de curcuitos digi-tales.

• Analizador Lexico, separa el texto de entrada de en unidadeslogicas: identificadores, palabras reservadas, signos de puntua-cion, etc.

• SW para explorar cuerpos de texto largos, como coleccionesde paginas web o para determinar el numero de apariciones depalabras, frases u otros patrones.

• SW para verificar sistemas que tengan un numero de estados fi-nitos diferentes, como protocolos de comunicacion o protocolosseguros de intercambio de informacion.

13 / 28

Page 14: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• AF son modelos utiles para diferentes tipos de hardware y soft-ware.

• SW para disenar y probar el comportamiento de curcuitos digi-tales.

• Analizador Lexico, separa el texto de entrada de en unidadeslogicas: identificadores, palabras reservadas, signos de puntua-cion, etc.

• SW para explorar cuerpos de texto largos, como coleccionesde paginas web o para determinar el numero de apariciones depalabras, frases u otros patrones.

• SW para verificar sistemas que tengan un numero de estados fi-nitos diferentes, como protocolos de comunicacion o protocolosseguros de intercambio de informacion.

14 / 28

Page 15: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• AF son modelos utiles para diferentes tipos de hardware y soft-ware.

• SW para disenar y probar el comportamiento de curcuitos digi-tales.

• Analizador Lexico, separa el texto de entrada de en unidadeslogicas: identificadores, palabras reservadas, signos de puntua-cion, etc.

• SW para explorar cuerpos de texto largos, como coleccionesde paginas web o para determinar el numero de apariciones depalabras, frases u otros patrones.

• SW para verificar sistemas que tengan un numero de estados fi-nitos diferentes, como protocolos de comunicacion o protocolosseguros de intercambio de informacion.

15 / 28

Page 16: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• AF son modelos utiles para diferentes tipos de hardware y soft-ware.

• SW para disenar y probar el comportamiento de curcuitos digi-tales.

• Analizador Lexico, separa el texto de entrada de en unidadeslogicas: identificadores, palabras reservadas, signos de puntua-cion, etc.

• SW para explorar cuerpos de texto largos, como coleccionesde paginas web o para determinar el numero de apariciones depalabras, frases u otros patrones.

• SW para verificar sistemas que tengan un numero de estados fi-nitos diferentes, como protocolos de comunicacion o protocolosseguros de intercambio de informacion.

16 / 28

Page 17: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• AF son modelos utiles para diferentes tipos de hardware y soft-ware.

• SW para disenar y probar el comportamiento de curcuitos digi-tales.

• Analizador Lexico, separa el texto de entrada de en unidadeslogicas: identificadores, palabras reservadas, signos de puntua-cion, etc.

• SW para explorar cuerpos de texto largos, como coleccionesde paginas web o para determinar el numero de apariciones depalabras, frases u otros patrones.

• SW para verificar sistemas que tengan un numero de estados fi-nitos diferentes, como protocolos de comunicacion o protocolosseguros de intercambio de informacion.

17 / 28

Page 18: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• Existen muchos sistemas o componentes que pueden encontrar-se siempre en uno de una serie de estados finitos.

• El proposito del estado es el de recordar la parte relevante delhistorial del sistema.

• Existe un numero finito de estados, generalmente es imposiblerecordar el historial completo por lo que el sistema debe di-senarse cuidadosamente, con el fin de recordar lo que es masimportante y olvidar lo que no es.

• Ventaja de disponer de un numero finito de estados es quese puede implementar el sistema mediante un conjunto fijo derecursos.

18 / 28

Page 19: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• Existen muchos sistemas o componentes que pueden encontrar-se siempre en uno de una serie de estados finitos.

• El proposito del estado es el de recordar la parte relevante delhistorial del sistema.

• Existe un numero finito de estados, generalmente es imposiblerecordar el historial completo por lo que el sistema debe di-senarse cuidadosamente, con el fin de recordar lo que es masimportante y olvidar lo que no es.

• Ventaja de disponer de un numero finito de estados es quese puede implementar el sistema mediante un conjunto fijo derecursos.

19 / 28

Page 20: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• Existen muchos sistemas o componentes que pueden encontrar-se siempre en uno de una serie de estados finitos.

• El proposito del estado es el de recordar la parte relevante delhistorial del sistema.

• Existe un numero finito de estados, generalmente es imposiblerecordar el historial completo por lo que el sistema debe di-senarse cuidadosamente, con el fin de recordar lo que es masimportante y olvidar lo que no es.

• Ventaja de disponer de un numero finito de estados es quese puede implementar el sistema mediante un conjunto fijo derecursos.

20 / 28

Page 21: Porque estudiar la teoría de autómatas

Introduccion a los automatas finitos

• Existen muchos sistemas o componentes que pueden encontrar-se siempre en uno de una serie de estados finitos.

• El proposito del estado es el de recordar la parte relevante delhistorial del sistema.

• Existe un numero finito de estados, generalmente es imposiblerecordar el historial completo por lo que el sistema debe di-senarse cuidadosamente, con el fin de recordar lo que es masimportante y olvidar lo que no es.

• Ventaja de disponer de un numero finito de estados es quese puede implementar el sistema mediante un conjunto fijo derecursos.

21 / 28

Page 22: Porque estudiar la teoría de autómatas

Representaciones estructurales

• Gramaticas y Expresiones Regulares.

• Gramaticas: son modelos utiles en el diseno de software que sir-ve para procesar datos con una estructura recursiva, un ejemploes el Analizar Sintactico (parser) que se ocupa de las funcio-nes anidadas recursivamente de los lenguajes de programacioncomo expresiones aritmeticas, condicionales, etc. (E— E + E)

• Expresiones regulares: especifican la estructura de los datos es-pecialmente de la cadenas de texto, los patrones de cadenasque pueden definir las expresiones regulares son los mismos quepueden ser descritos por los automatas finitos, el estilo es dife-rente al de las gramaticas ([A-Z][a-z]*[ ][A-Z][A-Z]).

22 / 28

Page 23: Porque estudiar la teoría de autómatas

Representaciones estructurales

• Gramaticas y Expresiones Regulares.

• Gramaticas: son modelos utiles en el diseno de software que sir-ve para procesar datos con una estructura recursiva, un ejemploes el Analizar Sintactico (parser) que se ocupa de las funcio-nes anidadas recursivamente de los lenguajes de programacioncomo expresiones aritmeticas, condicionales, etc. (E— E + E)

• Expresiones regulares: especifican la estructura de los datos es-pecialmente de la cadenas de texto, los patrones de cadenasque pueden definir las expresiones regulares son los mismos quepueden ser descritos por los automatas finitos, el estilo es dife-rente al de las gramaticas ([A-Z][a-z]*[ ][A-Z][A-Z]).

23 / 28

Page 24: Porque estudiar la teoría de autómatas

Representaciones estructurales

• Gramaticas y Expresiones Regulares.

• Gramaticas: son modelos utiles en el diseno de software que sir-ve para procesar datos con una estructura recursiva, un ejemploes el Analizar Sintactico (parser) que se ocupa de las funcio-nes anidadas recursivamente de los lenguajes de programacioncomo expresiones aritmeticas, condicionales, etc. (E— E + E)

• Expresiones regulares: especifican la estructura de los datos es-pecialmente de la cadenas de texto, los patrones de cadenasque pueden definir las expresiones regulares son los mismos quepueden ser descritos por los automatas finitos, el estilo es dife-rente al de las gramaticas ([A-Z][a-z]*[ ][A-Z][A-Z]).

24 / 28

Page 25: Porque estudiar la teoría de autómatas

Automatas y complejidad

• Importante para el estudio de los lımites de la computacion.

• Que puede hacer una computadora? Decidibilidad, Decidibles

• Que puede hacer una computadora de manera eficiente? Intra-tabilidad, Tratables (funcion crezca lentamente en funcion a losparametros de entrada-funciones polinomicas).

25 / 28

Page 26: Porque estudiar la teoría de autómatas

Automatas y complejidad

• Importante para el estudio de los lımites de la computacion.

• Que puede hacer una computadora? Decidibilidad, Decidibles

• Que puede hacer una computadora de manera eficiente? Intra-tabilidad, Tratables (funcion crezca lentamente en funcion a losparametros de entrada-funciones polinomicas).

26 / 28

Page 27: Porque estudiar la teoría de autómatas

Automatas y complejidad

• Importante para el estudio de los lımites de la computacion.

• Que puede hacer una computadora? Decidibilidad, Decidibles

• Que puede hacer una computadora de manera eficiente? Intra-tabilidad, Tratables (funcion crezca lentamente en funcion a losparametros de entrada-funciones polinomicas).

27 / 28

Page 28: Porque estudiar la teoría de autómatas

Bibliografıa

[1] John E. Hopcroft, Rajeev Motwani y Jeffrey D. UllmanTeorıa de Automatas, lenguajes y computacionPearson, 2008.

28 / 28