Tomado de Sudkamp: Languages and Machines Cap. 6.

Slides:



Advertisements
Presentaciones similares
DR. RAMON ZATARAIN CABADA
Advertisements

Introducción ¿Qué es un Algoritmo?
INSTITUTO TECNOLÓGICO DE MINATITLÁN
Gramáticas Libres de Contexto
Conceptos básicos Def. Un símbolo es cualquier carácter imprimible.
Autómatas de pila (Pushdown automata)
Gramáticas.
Diseño de Autómatas Finitos
Autómatas Finitos.
Diseño de AFN’s.
Lenguajes y Expresiones Regulares
Máquinas de Turing (MT)
Autómata Finito Un autómata finito (AF) es un modelo de computación muy restringido, sin embargo tiene una gran aplicación en reconocimiento de patrones.
TIPOS DE GRAMATICAS JERARQUIAS DE CHOMSKY
CADENAS Y LENGUAJES.
Tema 3 Propiedades de los lenguajes independientes de contexto
Tomado de Sudkamp: Languages and Machines Cap. 7.
APLICACIONES DE AUTOMATAS Y EXPRESIONES REGULARES
Expresiones regulares
Tema 2 Autómatas finitos 1. Autómata finito determinista
Tema 1.- Lenguajes. Gramáticas
¿cúantos subconjuntos (sucesos compuestos?) pueden formarse?
Autómatas finitos y expresiones regulares
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
Expresiones Regulares
Lenguajes Regulares Curso de Compiladores Manuel E. Bermúdez, Ph.D.
Ciencias de la Computación I
5. Propiedades de Cierre de los lenguajes regulares
Tema 1.- Lenguajes. Gramáticas
Tema 2 Lenguajes Formales.
Analisis y Diseño de Algoritmos Tema: Grafos 3ra Parte
Introducción a la Teoría de Lenguajes Preparado por Manuel E. Bermúdez, Ph.D. Profesor Asociado University of Florida Curso de Compiladores.
Programación de sistemas
Análisis sintáctico LR: SLR (LR simple)
2º curso Ingeniería Técnica en Informática de Sistemas UNED
Lenguajes Independientes del Contexto
Autómatas de Pila Teoría del Autómata.
Tema 2 Análisis Léxico.
Teoría de lenguajes y compiladores
Introducción al Análisis Sintáctico
Una introducción a los algoritmos del Parsing. Pregunta inicial… ¿Cómo se puede determinar si un código escrito en un lenguaje de programación tiene sintaxis.
Tema 2 Autómatas finitos 1. Autómata finito determinista
Autómatas Finitos Es un diagrama de transiciones que permite identificar cadenas que pertenecen a un lenguaje. Puede ser determinista o no determinista.
Lenguajes regulares Teoría del Autómata.
Ejemplo de AFN Ej. Diseña un AFN que acepte todas las cadenas que contengan dos ceros consecutivos o dos unos consecutivos. Solución AFN q4 1 q2 q1 q0.
Teoría de lenguajes y compiladores Analizadores lexicográficos
Teoría de Autómatas I 2º curso Ingeniería Técnica en Informática de Sistemas UNED.
MÁQUINAS DE TURING Teoría del Autómata.
M A T R I C E S MATRICES matrices.
COMPUTABILIDAD Y COMPLEJIDAD 1. Conceptos básicos (revisión). 2. Gramáticas independientes de contexto. 3. Propiedades de los lenguajes independientes.
Teoría de lenguajes y compiladores
Teorema de Nerode. Minimización de AFDs
Lenguajes Formales y Autómatas
UNIVERSIDAD VALLE DEL MOMBOY FACULTAD DE INGENIERIA ESCUELA DE COMPUTACIÓN CATEDRA: EDUMATICA Br: JENNY CORONADO C.I
Compiladores Análisis Léxico Oscar Bonilla Universidad Galileo.
1 AFDAFN AF Gramáticas lineales derecha Expresiones regulares Tema 2 Método de los AF Método de las derivadas Sistemas de Ecuaciones Tema 1.
Teoría de lenguajes y compiladores
I.- ESTUDIO DE LOS LENGUAJES DE PROGRAMACIÓN.
Simulación de un AFD Conversión de un AFND a un AFD.
Unidad 2 Lenguajes, Expresiones Regulares, Autómatas
Centro Universitario Valle de México Gramáticas Libres de Contexto Dra. Maricela Quintana López Elaborado por: Autómatas y Lenguajes Formales.
AUTÓMATAS FINITOS. TERMINOLOGÍA BÁSICA  Tabla de transición. La información de un autómata, así como los valores que puede tomar la función 5,
Computación Valeria Herskovic –
AUTOMATAS Y LENGUAJES FORMALES FASE 1
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS
AUTOMATAS FINITOS DETERMINISTICOS
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ = α 6.α · Ø = Ø 7.α · (β ·
Tema 2 Autómatas finitos 1. Autómata finito determinista
Tomado de Sudkamp: Languages and Machines Cap. 5.
EJERCICIOS DE EXPRESIONES REGULARES Y AUTOMATAS 1.α + (β + γ) = (α + β) + γ 2.α + β = β + α 3.α + Ø = α 4.α + α = α 5.α · λ = α 6.α · Ø = Ø 7.α · (β ·
Transcripción de la presentación:

Tomado de Sudkamp: Languages and Machines Cap. 6. Autómatas finitos Tomado de Sudkamp: Languages and Machines Cap. 6.

Autómatas Finitos (determinísticos) M=(,Q,,q0,F) Alfabeto Estados finales Estado inicial Conjunto de estados Función de transición  a b q0 q2 q1 a b Q q0 q1 q2 q1 q2 q0

Funcionamiento del autómata M=(,Q,,q0,F) Palabras que contienen a ab q0 q2 q1 a b *(aab,q1)=  (*(aa,q1),b)= (  (*(a,q1),a),b)=  ((  (*(,q1),a),a),b)=  ((  (q1,a),a),b)=  (( q1,a),b)=  ( q1,b)= q2 [q1,aab][q1,ab][q1,b][q2,]

Ejemplos q1 q2 q3 q0 q1 q0 q2 Palabras que contienen exactamente 2 a’s Palabras que contienen exactamente 3k b’s q0 a b q1 q3 q2 Lenguaje representado por la expresión aa*b

Autómatas finitos no determinísticos q1 q0 q2 q1 q0 q2 q1 q2 q0 q1 q2 q3 q0

Autómatas finitos no determinísticos Palabras que empiezan por ab y terminan con ba q1 q2 q0 q4 q3 q5 q6 a(ba wb(awb)*ba)

Autómatas finitos no determinísticos M=(,Q,,q0,F) q1 q2 q0 q4 q3 q0 q1 q2 q3 q4 a q1  q2 q4  b  q2 q2,q3  

Autómatas finitos no determinísticos M=(,Q,,q0,F) qi qk qj w u

Autómatas FND M=(,Q,,q0,F)

Ejemplos AFND

Ejemplos AFND (6.4.6) {, ab, aabb, aaabbb} ¿ ?

Autómatas con transiciones  -AFN M=(,Q,,q0,F) q12 a,b q10 b q11 q21 a b q20 q12 a,b q10 b q11 q0  q21 a,b a b q20

Clausura con -AFN Si M1 y M2 son -AFN existen -AFN tales que: M1 M2

Clausura con -AFN Si M1 y M2 son -AFN existen -AFN tales que: q11

Concluimos…. Toda expresión regular tiene al menos un correspondiente -AFND que acepta exactamente las palabras correspondientes a la expresión.

Eliminando el indeterminismo La clausura Lambda, para cada estado qi, se construye recursivamente así: BASE: Paso recursivo La función de transición de entradas t para un -AFND se define así:

Ejemplo 6.6.1  q0 q1 q2 a q0,q1,q2   b   q2 c  q1    q2  q2 t q0 q1 q2 a q0,q1,q2   b  q2 q2 c  q1,q2 

Algoritmo 6.6.3 Construction of DM, a DFA Equivalent to NFA- M Input: an NFA- M=(Q,,,q0,F). input transition fuction t of M 1. initialize Q’ to -Cl(q0) 2. repeat until done 2.1 if there is a node XQ’ and a symbol a with no arc leaving X labeled a then 2.1.1 let 2.1.2 if then set 2.1.3 add an arc from X to Y labeled a else done:=true 3. The set of accepting states of DM is F’={XQ’| X contiene algún elemento de F}

Ejemplo q2 q0 q1 t q0 q1 q2 a q0,q1,q2   b  q2 q2 c  q1,q2  b a  a,b,c q0  b,c a q0,q1,q2 a a,c a b q2 b b q1,q2 c c

Grafos de expresiones q1 q0 q2 q2 q0 q0 (a*ba*ba*ba*)* a*ba*ba*ba*

Eliminar el estado intermedio i k j wji wik wik j k wji i j wji k wik wii (wii)*wik j k wji i debe ser diferente de j y de k pero puede ser j=k

Situaciones finales w W* w1 w3 w4 w2 w1* w2(w3  w4w1*w2)*

Grafos de expresiones q1 q0 q2 ba*b q2 q0 (a*ba*b)(a*  ba*ba*b)*

Expresión de un AFND (ab)*bb (ab)* (ab)*aa (ab)*

Gramática regular para un AFND q1 q0 q2 S → aS| bB|  B → aB| bC C → aC| bS

Gramática para un AFND (cont) q1 q2 q0 q4 q3 q5 q6 S → aB B → bC| bD C → aC| bC | bE S → aB D → aF B → bC| bD S → aB E → aG C → aC| bC | bE B → bC| ba F →  D → a C → aC| bC | ba G →  E → a

AFND para un gramática regular Palabras sobre {a,b,c} que contiene al menos una c pero no contienen cc. S → aS| bS |cA q1 q0 a,b c A → aS| bS| 

Lenguajes regulares Expresiones Regulares No son LR: AFD AFND Gramáticas Regulares

Pre-Lema de bombeo Sea w1,w2,w3,w4,…. y v1,v2,v3,v4,… sucesiones infinitas de palabras. Si L es un lenguajes tal que wivj pertenece a L si y sólo sí i=j. Entonces L no es regular. Si existiera un autómata finito de k estados existen i<j tal que *(q0,wi)=*(q0,wj) y por tanto wivi y wjvj son acptadas, contradicientdo las hipótesis.

Aplicación No son regulares:

Lema de Bombeo q1 q0 qi qk Si |z|>k existen u,v y w tales que |uv|<k+1 |v|>0 y uvnw para todo n está en L Un autómata de k estados si acepta una palabra de longitud mayor que k acepta infinitas palabras Un autómata de k estados acepta infinitas palabras si y solo si acepta alguna  tal que k< || < 2k

Aplicación Las palabras cuya longitud es un cuadrado perfecto no forman un lenguaje regular. Supóngase que un autómata de k estados acepta tal lenguaje, tómese entonces una palabra z con longitud k2 , entonces z=uvw con |uv|k o sea |v|k y además uv2w es aceptada por el autómata, Pero |uv2w| no puede ser cuadrado perfecto pues: |uv2w|= |uvw|+|v|=k2+|v| k2+k<(k+1)2 Entre k2 y (k+1)2 no hay ningún cuadrado perfecto !

Propiedades de clausura Conjuntos finitos de palabras forman lenguajes regulares Unión de dos Concatenación de dos ...lenguajes regulares, es un lenguaje regular Intersección de dos Complemento de * de