INSTITUTO TECNOLÓGICO SUPERI OR DE SAN MARTÍN TEXMELUCAN Organismo Público Descentralizado del Gobierno del Estado “2011, Año del Turismo en México” PORTAFOLIO DE EVIENDENCIAS NOMBRE SAUL MORALES RODRIGUEZ CARRERA I-S-C MATERIA TEORIA DE LA COMPUTACION No._Control_09960026 UNIDAD 2 AUTOMATA FINITO O MAQUINA DE ESTADO FINITO Es un modelo matemático de un sistema que recibe una cadena construida de un alfabeto y determinar si esa cadena reconoce al lenguaje que reconoce. El autómata finito se define en términos de sus estados la acepta y su reacción ante la misma. Un autómata finito puede ser descrito tupla. por símbolos el autómata entrada que como una 5- ---------------------------------------------------------------------------------------------------------------------------------- AUTOMATAS FINITOS NO DETERMINISTA Si se permite desde un estado se realice 0, 1 o más transiciones mediante el mismo símbolo de entrada, se dice que el autómata finito es no determinista y lo representamos AFN. La única diferencia que existe en la definición formal de un FN es la función de transición. por tanto definiremos un autómata no determinista mediante una 5-tupla M= {Q,∑, S, A, } Q= es un conjunto de estados. ∑= es el alfabeto de entrada S=es el estado inicial A= es el conjunto de estados de aceptación = es la relación sobre (QX E) X Q Q= {qo, q1, q2} ∑= {a, b} S= {q0} A= {q0} A Q0 q1 L(r)= {E,ab,aba,ababa} ER= (ab aba)* a {q1} o B 0 {{q0,q2} LENGUAJES REGULARES. Es un tipo de lenguaje que satisface las siguientes propiedades. Puede ser conocido por: Un autómata finito determinista. Un autómata finito no determinista Un autómata finito alterna. Una maquina de Turín de solo lectura. Es generado por una gramática regular una gramática de prefijo. Palabra o cadena: Es una secuencia finita de símbolos de un determinado alfabeto. Con frecuencia utilizaremos el término cadena en lugar de palabra. Lenguaje: Es un conjunto de palabras o cadenas. Por tanto el conjunto Lenguaje {1, 12, 123, 1234,12345} ∑= {1…..9}, Es un lenguaje sobre el alfabeto compuesto por dígitos del 1 al 9. Concatenación de cadenas: Si W y Z son cadenas la concatenación de W con Z es la cadena que se obtiene al añadir a la cadena de W la cadena de Z por ejemplo: Si W=casa Z= grande WZ=casa grande. La concatenación se denota como WZ o W,Z la concatenación de la palabra vacía representada por ξ con cualquier otra palabra W, no modifica la palabra. W=perro Z= ξ(palabra vacía) “Esta no afecta en nada.” WZ=perro Es necesario tener en cuenta el lenguaje compuesto por todas las cadenas sobre el alfabeto, se conoce como cerradura o lenguaje universal y se denota por Σ* por ejemplo: Se tiene el alfabeto ∑*={1 } entonces ∑*={ξ,1,11,111,……} Ejercicio: obtener {a,bb}* (dar los primeros 10 elementos). ∑*= {ξ, a, aa, bb, abb, bba, aaa, bbbb, abba,bbabb} ∑*= {0,1} ∑*= {ξ0, 1, 00, 0001,11100…} LENGUAJES REGULARES Los lenguajes regulares se llaman así porque sus palabras contienen regularidades o representaciones de los mismos componentes por ejemplo. El lenguaje de L₁= {ab, abab, ababab…} en este ejemplo se aprecia de L₁ son simplemente repeticiones de ab cualquier número de veces esta es la idea básica para formar lenguajes regulares. Por definición vamos a considerar que los lenguajes finitos también son regulares por ejemplo. El lenguaje L₃= {Anita, lava, la, tina} es un lenguaje regular. Definición: Sean ∑ un alfabeto. El lenguaje de los lenguajes regulares ∑ se define recursivamente como sigue: a) b) c) d) Ø es un lenguaje regular. {t} es un lenguaje regular Para todo t ∑{0} es un lenguaje regular Si A y B son lenguajes regulares, entonces A U B, AB lenguajes regulares. e) Ningún otro lenguaje sobre ∑ es regular. Ejercicio: dado ∑= {a,b}¿cómo son las afirmaciones? Ø y {ξ} son lenguajes regulares. {a} y {b} son lenguajes regulares. {a,b} es regular. {ab} es regular. {a,ab,b} es regular. {a ∣ i≥Ø} es regular. y A* son {a΄ b΄ ∣ i ≥ Ø y j≥Ø} es regular. AUTÓMATAS FINITOS El funcionamiento de los autómatas finitos consistente en ir pasando de un estado a otro, a medida que va recibiendo los caracteres de la palabra de entrada. Simplemente hay que pasar de estado a estado siguiendo las flechas de las transiciones, para cada carácter de cada palabra de entrada, empezando por el estado inicial. Por ejemplo: Realiza una autómata que reconozca operadores aritméticos y relacionales. AUTÓMATAS FINITOS Un autómata finito o maquina de estado finito es un modelo matemático de un sistema que recibe una cadena construida por símbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autómata reconoce. COMPILADOR Es el encargado de traducir, un programa escrito en un lenguaje de programación a otro lenguaje maquina (está formado por 0 y 1). ANALIZADOR LÉXICO Su principal función consiste en leer los caracteres de entrada y elaborar como salida una secuencia de componentes léxico que luego utilizara el analizador sistemático para hacer un análisis. ANALIZADOR SINTÁCTICO. Consiste en secuencias de caracteres o componentes léxicos que se agrupan en un orden jerárquico y al formar una agrupación se obtiene un significado. Un autómata finito {AF} puede ser descrito como una 5-tupla y está formada por {Q, ∑, S, A, δ} Donde: Q= es el conjunto finito (cuyo elemento se consideran como estados). ∑= es un alfabeto finito de símbolos de entrada. S=es el estado inicial. A≤Q= es el conjunto de estados de aceptación. δ=es una función en Q x ∑ en Q (la función de transición). Representación de un autómata finito. Los autómatas finitos tienen transiciones entre estados, las cuales están etiquetadas con símbolos, podemos tener aristas que vayan de un estado al mismo, además también podemos tener 1 o varios estados de aceptación. Los autómatas reciben como entradas palabras que se construyen sobre el alfabeto que reconoce el autómata. Q= {q0, q1} ∑= {a, b} S= {q0} A = {q1} δ= ∑xQ→Q δ (q0, a)=q1 δ (q0, b)=q0 δ (q1, a)=q1 δ (q1, b)=q0 Existen dos tipos de autómatas finitos. AUTÓMATAS FINITOS DETERMINISTAS (AFD) Cada estado tiene una transición por cada símbolo del alfabeto, y tiene por lo menos un estado de aceptación, Expresión regular. Describe un conjunto de cadenas sin enumerar sus elementos. Elementos utilizados en las expresiones regulares. + indica que el carácter debe aparecer por lo menos una o más veces. ? Indica que el carácter puede o no aparecer (aparece 0 o 1). *Indica que el carácter puede aparecer 0,1 o más veces. ∣ o. Ejemplo #1 ER: a∣b L(r)= {a, b, ab} ∑= {a, b} Q= {a, b} ∑= {q0, q1} S= {q0} A= {q1} δ= ∑xQ→Q δ (q0, a)=q1 δ (q0, b)=q0 Ejemplo #2 ER: ab L(r)= {ab} Q= {a, b} ∑= {q0, q1, q2} S= {q0} A= {q2} δ= ∑xQ→Q δ (q0, a)=q1 δ (q1, b)=q2 Ejercicio #3 ER: a* L(r)= {a, aa, aaa, aaa…} Q= {q0, q1} ∑= {a} S= {q0} A= {q1} δ= ∑xQ→Q δ (q0, a)=q1 δ (q1, a)=q1 AUTÓMATA FINITO NO DETERMINISTA Una extensión a laos autómatas finitos deterministas es la de permitir que cada nodo del diagrama de estados salga un numero de fechas mayor o menor que los elementos del alfabeto. Así mismo, se puede permitir que falte la fecha que falte correspondiente a alguno de los símbolos del alfabeto o bien que haya varias flechas que salgan de un solo nodo con la misma etiqueta, inclusive se permite que las transiciones tengan como etiqueta palabras de varias letras hasta la palabra vacía. A estos autómatas finitos de les llama no deterministas o no deterministicos. (AFN). Sea ∑= {a,b} Determinar el AFN o AFD del lenguaje que solo tiene palabras con números par de a΄s y palabras que terminan con bb. L(r) :{baa, bbaa, bbbaa, aab, aba, aaabb, aabbb…} Q= {q0, q1} ∑= {a,b} S= {q0} A= {q0} δ= ∑xQ→Q δ (q0, a)=q1 δ (q0, b)=q0 δ (q1, a)=q0 δ (q1, b)=q1 EXAMEN practica-22.pdf Bibliografía Martin, John C. Introduction to Languages and the Theory of Computation. Ed. Prentice Hall. 2. Sipser, Michael. Introduction to the Theory of Computation. Ed. PWS Publishing Company. 3. Cohen, Daniel I.A. Introduction to Computer Theory. Ed. Wie Wiley. 4. Davis, Martín D., Weyuker, Elaine. Computability, Complexity and Languages Fundamentales of Teorical Computer Science. Ed. Academic Press. 5. Denning, Peter J. Machines, Langueges and Computation. Ed. Prentice Hall. 6. Hopcroft, John, Ullman, Jeffrey. Introduction to Automatas Theory, Languages and Computation. Ed. Addison-Wesley. 7. Kelley, Dean. Teoría de Automatas y Lenguajes Formales. Ed. Prentice Hall. 8. Lewis, Larry., Papadimitrion, Chistos H. Elements of the Theory of Computation. Ed. Prentice Hall. 9. Rayward-Smith, V.S. A First Course in a Formal Language Theory. Ed. Mc Graw Hill. 10. Jeffey E.F. Friedl. Mastering Regular Expressions. Ed. O’reilly & Associates, Inc. 11. Brookshear. Teoría de la Computación, Lenguajes Formales, Autómatas y Complejidad.