definición formal de autómatas finitos métodos de diseño de afds diseño por conjuntos de...

59
Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales y Autómatas Lic. M.I.K.

Upload: trinidad-morado

Post on 22-Jan-2016

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición Formal de Autómatas Finitos

Métodos de Diseño de AFDs

Diseño por conjuntos de Estados

Diseño de AFD por Complemento

Bibliografía

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 2: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

INTRODUCCIÓN

En 1930,  A. Turing desarrolló una máquina abstracta denominada Máquina de Turing para el estudio de la computabilidad.

Entre los años 1940 y 1950, se desarrollan unas máquinas simples, en cuanto su funcionamiento, que fueron conocidas como autómatas finitos, para modelar el funcionamiento del cerebro.

También en los 1950, N. Chomsky comienza el estudio formal de las gramáticas (generadoras de lenguajes).

En 1969,. Cook extiende el estudio de Turing, separando aquellos problemas que pueden ser solucionados de aquellos que en principio lo pueden ser pero que en la práctica toman demasiados recursos.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 3: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

INTRODUCCIÓN

¿Por qué estudiar Teoría de Autómatas?

Los Autómatas finitos y ciertas clases de gramáticas formales son usadas en el diseño y construcción de software.

Ej.:

Software para diseñar y chequear la conducta de circuitos digitales.

El analizador léxico de un compilador.

Software para escanear grandes volúmenes de texto para encontrar patrones.

Software para verificar sistemas que tengan un número finito de estados, tales como protocolos de comunicación o de intercambio seguro de información. 

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 4: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

INTRODUCCIÓN

La Máquina de Turing ayuda a comprender que es lo que podemos esperar de nuestro software. Es decir lo límites de la Computación

Decidibilidad, ¿qué puede hacer un computador?.

Intratabilidad, ¿qué puede hacer un computador eficientemente?.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 5: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

INTRODUCCIÓN

¿Pero… que es un Autómata?

Son abstracciones matemáticas que capturan solamente el aspecto referente a las secuencias de eventos que ocurren: su funcionamiento

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 6: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

INTRODUCCIÓN

¿Qué Máquinas Abstractas se conocen?

Autómatas Finitos. Autómatas a Pila. Autómatas linealmente acotados.

Máquina de Turing.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 7: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

INTRODUCCIÓN

Modelado de Sistemas Discretos

El modelado de fenómenos y procesos es una actividad que permite:

Verificar hipótesis sobre dichos procesosEfectuar predicciones sobre el comportamiento

futuroHacer simulaciones (eventualmente

computarizadas)

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 8: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Introducción

Definición Formal de Autómatas FinitosDefinición Formal de Autómatas Finitos

Métodos de Diseño de AFDs

Diseño por conjuntos de Estados

Diseño de AFD por Complemento

Bibliografía

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 9: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Modelo de autómata finito para un interruptor de encendido / apagado

Lenguajes Formales y Autómatas Lic. M.I.K.

pulsar

pulsar

Page 10: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Lenguajes Formales y Autómatas Lic. M.I.K.

El interruptor puede encontrarse en dos situaciones distintas: apagado o encendido.

El interruptor sólo puede recibir un estímulo exterior: que se pulse su botón.

Es frecuente que inicialmente el interruptor esté apagado.

En este caso, puede considerarse que la salida del sistema es el funcionamiento del dispositivo que controle (una bombilla, por ejemplo).

Page 11: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

El análisis del comportamiento del autómata del interruptor sugiere dividir la descripción formal del mismo en dos partes:

Entradas (externas), Que representan los estímulos del exterior a los que puede reaccionar el autómata.

Estados (internos) y transiciones, Los estados representan las diferentes situaciones en las que se puede encontrar el autómata. Recuerdan la historia del sistema. En el caso del interruptor: encendido y apagadoLas Transiciones representan el cambio del autómata de un estado a otro debido a las entradas.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 12: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Definición Formal:

Un autómata finito determinista se puede definir como una quíntupla

A=(Q, , , q0, F) Donde:

Q es un conjunto finito no vacío de estados.

es el alfabeto de entrada.

:QQ es la función de transición que, a cada pareja de estados y símbolos de entrada (q,a), le asigna un nuevo estado q’= (q,a).

q0Q es el estado inicial del autómata.

FQ es el conjunto de estados de finalización del autómata.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 13: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

A continuación se muestra la formalización del ejemplo del interruptor:

A1 = ( Q1, 1, 1, 0, F ) Donde

El conjunto de estados representa encendido con 1 y apagado con 0.Q1={0, 1}

El alfabeto de entrada representa pulsar con p.1={p}

El estado inicial q0 es que esté apagado (0).

En este autómata no se indican estados finales (F es el conjunto vacío).

La función de transición se muestra mediante la notación habitual en teoría de conjuntos.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 14: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Función de transición del ejemplo

Q

Q

Lenguajes Formales y Autómatas Lic. M.I.K.

10

1

( 0, p)

(1, p)

Page 15: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Diagrama de transición

Lenguajes Formales y Autómatas Lic. M.I.K.

0

1

p

p

Page 16: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Otra forma de representar formalmente un AF, es a través de las tablas de transición

p

Lenguajes Formales y Autómatas Lic. M.I.K.

1

0

10

1

Page 17: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Una aplicación muy importante de los autómatas finitos y que será estudiada a lo largo de este curso es su capacidad de reconocer palabras.

El autómata reconocerá una palabra si, tras procesar la secuencia de sus símbolos en el mismo orden en el que aparece, termina en un estado final.

En este sentido el conjunto de estados finales, que indica que el funcionamiento del autómata ha terminado de forma exitosa, realmente indica que la palabra tratada por él ha sido reconocida

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 18: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Como funciona un AFDVeamos el siguiente diagrama, corresponde a un

AFD que acepta todas las hileras que contienen la subcadena “01”

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0

q1 q2q0

Page 19: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 00111 que pertenece al lenguaje

w = 00111

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

q0 q1 q2

Page 20: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 00111 que pertenece al lenguaje

w = 00111

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0

q1 q2q0

Page 21: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 00111 que pertenece al lenguaje

w = 00111

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0q

0q1 q2q0

Page 22: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 00111 que pertenece al lenguaje

w = 00111

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1 q2

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0q

0q1 q2q0 q1

Page 23: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 00111 que pertenece al lenguaje

w = 00111

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1 q2

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0q

0q1 q2q0 q1

Page 24: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 00111 que pertenece al lenguaje

w = 00111 Si la reconoce

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1 q2

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0q

0q1 q2q0 q1

Page 25: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 1100 que no pertenece al lenguaje

w = 1100

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

q0 q1 q2

Page 26: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 1100 que no pertenece al lenguaje

w = 1100

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0

qq1 q2q0

Page 27: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 1100 que no pertenece al lenguaje

w = 1100

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0

qq1 q2q0

Page 28: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 1100 que no pertenece al lenguaje

w = 1100

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0

q1 q2q0

Page 29: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Para la hilera w = 1100 que no pertenece al lenguaje

w = 1100 No la reconoce

AFD = ( { q0, q1, q2}, q0, { 0, 1}, {q1 }, δ }

0 q1 1

1 0 0/1

Lenguajes Formales y Autómatas Lic. M.I.K.

qq0q0

q1 q2q0

Page 30: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Definición formal de Autómatas Finito

Definición 1: El lenguaje aceptado por una máquina M

es el conjunto de palabras aceptadas por dicha máquina

Definición 2: Una palabra w є ∑* es aceptada por una

máquina M = ( Q, , , q0 , F) ssi existe un estado q є F tal que (q0, w) (q, λ )

Notar: que no es suficiente llegar a un estado final q, sino que además no deben quedar caracteres por leer.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 31: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Introducción

Definición Formal de Autómatas Finitos

Métodos de Diseño de AFDsMétodos de Diseño de AFDs

Diseño por conjuntos de Estados

Diseño de AFD por Complemento

Bibliografía

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 32: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Métodos de Diseño de AFDs

Considérese el problema de construir un AFD que acepte exactamente el lenguaje dado. Este problema es comúnmente llamado “problema de diseño”.

No es conveniente proceder por ensayo y error, pues puede pasar que:

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 33: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Métodos de Diseño de AFDs

1. Que sobren palabras Solución Incorrecta

2. Que falten palabras Solución Incompleta

Por ello es necesario diseñar los AFD de una manera más sistemática, que consiste en determinar, de manera explícita, que condición “recuerda” cada uno de los estados del AFD

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 34: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Métodos de Diseño de AFDs

Ejemplo: Diseñar un AFD que acepte exactamente el

lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00

Solución: Para emprender el diseño en forma

metódica, comenzamos por determinar las condiciones que son importantes recordar, y asociamos un estado a cada una de estas condiciones.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 35: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Métodos de Diseño de AFDs

Ejemplo: Diseñar un AFD que acepte exactamente el

lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00

Pero primero debemos comprender que nos piden.

w1 = 011100 w2 = 101010 w3 = λ w4 = 001100

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 36: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Métodos de Diseño de AFDs

Ejemplo: Diseñar un AFD que acepte exactamente el

lenguaje sobre el alfabeto {0, 1} en que las palabras no comienzan con 00

Ahora podemos determinar las condiciones y asociarlas a un estado.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 37: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Métodos de Diseño de AFDs

Lenguajes Formales y Autómatas Lic. M.I.K.

Estado Condición

q0 No se han recibido caracteres

q1 Se ha recibido un cero al inicio

q2 Se han recibido dos ceros iniciales

q3 Se recibió algo que no son dos ceros iniciales

w1 = 011100 w2 = 101010 w3 = λ

w4 = 001100

Page 38: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Métodos de Diseño de AFDs

1 1

1 0 0

1

x1= 0001 x2= 0100 x3 = 1100

Lenguajes Formales y Autómatas Lic. M.I.K.

q0

q1

q2

q3

00

Estado

condición

q0 No se recibió caracteres

q1 Cero al inicio

q2 Dos ceros iniciales

q3 Algo que no son dos ceros

Page 39: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Introducción

Definición Formal de Autómatas Finitos

Métodos de Diseño de AFDs

Diseño por conjuntos de EstadosDiseño por conjuntos de Estados

Diseño de AFD por Complemento

Bibliografía

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 40: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

Es posible llevar más allá el método de asociar una condición a cada estado: Vamos a asociar condiciones a grupos de estados más que a estados individuales.

Consiste en identificar inicialmente condiciones asociadas al enunciado del problema, aunque estas no sean suficientemente específicas para hacerlo a estados individuales. Aumentamos el grado de abstracción para tratar problemas más complejos.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 41: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

Ejemplo:

Diseñar un AFD que acepte las palabras del lenguaje en { a , b } donde las palabras no contienen la subcadena bb pero si la aa.

Vemos algunas cadenas y1= babaaba y2= bababb y3= ababab

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 42: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

A partir del enunciado identificamos las siguientes situaciones:

Las letras consumidas hasta el momento no contienen aa ni bb (y3= ababab)

Contienen aa pero no bb (y1= babaaba ) Contienen bb (y2= bababb )

Estas condiciones cumplen dos requisitos:Excluyentes

ComprensivasLenguajes Formales y Autómatas Lic. M.I.K.

Page 43: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

b b

Lenguajes Formales y Autómatas Lic. M.I.K.

Ni bb ni aa

aa pero no bb

bb

aaa pero no bb

Page 44: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

Ahora se subdividen las “nubes” asociando a estados individuales,

Las letras consumidas hasta el momento no contienen ni aa ni bb

1. Inicial, no se han recibido caracteres (A)2. Se acaba de recibir una a (B )

3. Se acaba de recibir una b (C)

b

Lenguajes Formales y Autómatas Lic. M.I.K.

Ni bb ni aa

AB

C

Page 45: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

Debemos trazar las transacciones para los estados

1. Inicial, no se han recibido caracteres (A)2. Se acaba de recibir una a (B )

3. Se acaba de recibir una b (C) a

a

a b

b

bLenguajes Formales y Autómatas Lic. M.I.K.

Ni bb ni aa

AB

C

Page 46: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

Las letras consumidas hasta el momento contienen aa pero no bb

1. Se acaba de recibir una a ( D)2. Se acaba de recibir una b ( E )

Lenguajes Formales y Autómatas Lic. M.I.K.

D

EE

Daa pero no bb

Page 47: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

Trazamos las transacciones para cada estado de esta nube

1. Se acaba de recibir una a ( D)2. Se acaba de recibir una b ( E )

a

a

a b

b Lenguajes Formales y Autómatas Lic. M.I.K.

D

EE

Daa pero no bb

Page 48: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

Las letras consumidas hasta el momento contienen bb ( aquí no hay subcondiciones)

Quedaron 6 estados, cada uno de los cuales tiene una condición muy específica asociada.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 49: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño por conjuntos de estados

Diseño a b

aa a

a b b b

b a,b

y1= babaaba y2= bababb y3= ababab

Lenguajes Formales y Autómatas Lic. M.I.K.

AB

C

F

D

E

Page 50: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Introducción

Definición Formal de Autómatas Finitos

Métodos de Diseño de AFDs

Diseño por conjuntos de Estados

Diseño de AFD por ComplementoDiseño de AFD por Complemento

Bibliografía

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 51: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño de AFD por Complemento

En ocasiones, para un cierto lenguaje L, es más sencillo encontrar exactamente el contrario.

Si M = ( Q, , , q0 , F) es un autómata determinísta que acepta un lenguaje regular L, para construir un autómata Mc que acepte el lenguaje complemento de L ( * - L ), basta con intercambiar los estados finales de M en no finales y viceversa.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 52: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño de AFD por Complemento

Formalmente:

Mc = ( Q, , , q0 , Q - F)

Así cuando una palabra es rechazada en M, ella es aceptada en Mc

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 53: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño de AFD por Complemento

Ejemplo: Obtener un AF para el lenguaje en {a,b}* de

las palabras que no contienen la cadena “abaab”

Solución:

Primero obtenemos un AFD para el lenguaje cuyas palabras SI contienen la cadena “abaab”, utilizando grupos de estados.

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 54: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño de AFD por Complemento

= recuerda que la palabra no contiene aún abaab b

b a a a b a

a b b

Lenguajes Formales y Autómatas Lic. M.I.K.

A

q0

a

abaa

baba

Page 55: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño de AFD por Complemento

= recuerda que la palabra ya se reconoció la cadena

a, b b

Lenguajes Formales y Autómatas Lic. M.I.K.

B

abaababaab

Page 56: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño de AFD por Complemento

AFD que reconoce el lenguaje con la cadena abaab b

b a a a b a a,b

a b b

Lenguajes Formales y Autómatas Lic. M.I.K.

q0

a

abaa

baba

abaab

Page 57: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Diseño de AFD por Complemento

AFD que reconoce el lenguaje SIN cadena abaab b

b a a a b a a,b

a b b

Lenguajes Formales y Autómatas Lic. M.I.K.

q0

a

abaa

b abaq0

abaab

a

abaa

baba

Page 58: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

Introducción

Definición Formal de Autómatas Finitos

Métodos de Diseño de AFDs

Diseño por conjuntos de Estados

Diseño de AFD por Complemento

BibliografíaBibliografía

Lenguajes Formales y Autómatas Lic. M.I.K.

Page 59: Definición Formal de Autómatas Finitos Métodos de Diseño de AFDs Diseño por conjuntos de Estados Diseño de AFD por Complemento Bibliografía Lenguajes Formales

BIBLIOGRAFIA

“Teoría de Autómatas y Lenguajes Formales” Enrique Alfonseca Cubero, Manuel Alfonseca Moreno, Roberto Morillon Salomón – 2007

“Introducción a la Teoría de Autómatas, Lenguajes y Computación” John Hopcroft, Jeffrey Ullman -2002

“Lenguajes y Autómatas: un enfoque de diseño” Ramón Brena – 2003

Lenguajes Formales y Autómatas Lic. M.I.K.