Clase 08: Autómatas finitos - eafranco.com

19
Clase 08: Autómatas finitos Solicitado: Ejercicios 06: Autómatas finitos 1 M. en C. Edgardo Adrián Franco Martínez http://computacion.cs.cinvestav.mx/~efranco @efranco_escom [email protected]

Transcript of Clase 08: Autómatas finitos - eafranco.com

Page 1: Clase 08: Autómatas finitos - eafranco.com

Clase 08: Autómatas finitos

Solicitado: Ejercicios 06: Autómatas finitos

1M. en C. Edgardo Adrián Franco Martínez

http://computacion.cs.cinvestav.mx/~efranco

@efranco_escom

[email protected]

Page 2: Clase 08: Autómatas finitos - eafranco.com

Contenido• Autómata finito

• Definición formal de autómata finito

• Configuración de un autómata finito

• Lenguaje reconocido por un autómata finito

• Ejemplos

• Ejemplo 1

• Ejemplo 2

• Ejemplo de programación en C

• Ejercicios 06: Autómatas finitos

2

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 3: Clase 08: Autómatas finitos - eafranco.com

Autómata finito• Un autómata finito es un modelo matemático de

una máquina que acepta cadenas de un lenguajedefinido sobre un alfabeto A.

• Consiste en un conjunto finito de estados y unconjunto de transiciones entre esos estados, quedependen de los símbolos de la cadena de entrada.

• El autómata finito acepta una cadena x si lasecuencia de transiciones correspondientes a lossímbolos de x conduce desde el estado inicial a unestado final. 3

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 4: Clase 08: Autómatas finitos - eafranco.com

• Los autómatas finitos reconocen los lenguajes

regulares, o de tipo 3 y se pueden representar

intuitivamente por una cinta y una cabeza de lectura.

•La cinta de entrada, sólo contiene

símbolos de un determinado

alfabeto, y se mueve en una sólo

dirección.

•El control de estados, determina el

funcionamiento del autómata.

•Una sentencia de un lenguaje

determinado, colocada en la cinta, y

leída por el autómata finito, es

reconocida por éste, si el control de

estados llega a un estado final.

4

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 5: Clase 08: Autómatas finitos - eafranco.com

Definición formal de autómata finito• Un autómata finito es una quíntupla A = ( E, Q, f, q0, F )

donde:

• E = {conjunto de entradas o vocabulario de entrada}

• E es un conjunto finito, y sus elementos se llaman entradas o símbolos

de entrada.

• Q = {conjunto de estados}

• Q es el conjunto finito de estados

• f: E*x Q→Q es la función de transición o función del estado siguiente

• Para un par del conjunto E × Q devuelve un estado perteneciente al conjunto Q,

y es el producto cartesiano de E por Q.

• q0 Є Q, es el estado inicial

• F ⊂ Q, es el conjunto de estados finales

5

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 6: Clase 08: Autómatas finitos - eafranco.com

Configuración de un autómata finito• Se entiende por configuración de un autómata

finito, a un par de la forma (q, W) donde q, es elestado actual, y W la cadena que queda por leer enese instante.

• La configuración inicial de un autómata finito es elpar (q0 , t) siendo t la sentencia o cadena de entradaa reconocer.

• La configuración final se representa por el par (qi , λ)donde qi Є F, y λ indica que no queda nada por entrar de lacinta.

6

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 7: Clase 08: Autómatas finitos - eafranco.com

• Un movimiento de un autómata finito, puede

definirse como el transito entre dos configuraciones,

y se representa por (q , aW) → (q', W) y se debe de

cumplir que f(q , a)=q'.

• Un autómata finito es una maquina de estados

capaz de reconocer un lenguaje regular. Si el

autómata es capaz de alcanzar en su configuración

final.

7

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 8: Clase 08: Autómatas finitos - eafranco.com

Lenguaje reconocido por un autómata finito

• Cuando un autómata transita a una configuración final

partiendo de la configuración inicial, en varios movimientos,

se dice que se ha producido aceptación o reconocimiento de

la cadena de entrada. Es decir que dicha cadena, pertenece al

lenguaje reconocido por el autómata.

• Por el contrario, cuando el autómata finito no es capaz de

llegar a un estado final, se dice que el autómata no reconoce

dicha cadena y que por tanto no pertenece al lenguaje.

8

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 9: Clase 08: Autómatas finitos - eafranco.com

• Para toda gramática regular "tipo 3", existe un autómata

finito "AF", tal que el lenguaje reconocido por el autómata

finito es igual al lenguaje generado por la gramática.

• La forma habitual de representar los autómatas finitos es

mediante un grafo o diagrama de estados, donde los nodos

son los estados y las ramas están marcadas con los símbolos

del alfabeto de entrada. Las ramas se construyen según la

función de transición, así debe de cumplir .

9

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 10: Clase 08: Autómatas finitos - eafranco.com

• Los nodos que representan los estados finales, suelen marcarse con

un doble círculo, y el estado inicial también se marca con una

flecha, encima de la cual se coloca la palabra INICIO.

10

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

abc*

Page 11: Clase 08: Autómatas finitos - eafranco.com

Ejemplo 01

11

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 12: Clase 08: Autómatas finitos - eafranco.com

Ejemplo 01: Solución• Solución: Se construye el diagrama de estados, colocando en

primer lugar todos los estados dentro de círculos, marcando

con doble círculo el estado final. El estado inicial se indica con

una flecha que lo señala con la palabra INICIO encima. Para

construir las ramas, nos situamos en el primer estado de la

tabla de transiciones y se observa que f(q1,a)=q2, entonces se

traza una flecha entre q1 y q2, apuntando a q2, y se coloca

encima de la flecha el símbolo del vocabulario de entrada a.

De igual forma se recorre la tabla de transiciones para cada

estado y entrada completándose el diagrama de Moore.

12

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 13: Clase 08: Autómatas finitos - eafranco.com

Ejemplo 01: Lenguaje reconocido por un autómata finito

1313

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 14: Clase 08: Autómatas finitos - eafranco.com

Ejemplo 02

14

• Los identificadores de C son cadenas de letras, dígitos y guiones

bajos.

letra_ → [A-Za- z_] dígito → [0-9]id → letra_ ( letra_ | dígito)*

14

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 15: Clase 08: Autómatas finitos - eafranco.com

Ejemplo 02: Solución• Solución : Este ejemplo es inverso al anterior, pues se da un

lenguaje y se pide el autómata que lo reconoce. En primer

lugar se construye un diagrama de Moore, de tal forma que a

partir del estado inicial, después de leer una letra, acepte

letras o dígitos de forma variable, y cuando encuentre un

carácter diferente de letra o dígito alcance el estado final. El

diagrama de Moore es el que se muestra en la figura.

15

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 16: Clase 08: Autómatas finitos - eafranco.com

Ejemplo 02: Solución• $ representa a el fin de la cadena

• El autómata finito se deduce del diagrama de estaos y es el

siguiente:

• donde f se define por :

16

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 17: Clase 08: Autómatas finitos - eafranco.com

Ejemplo de programación en CPrograma que modela el AF=(E,Q,f,q0,F) donde:

E={a,b}, Q={q0, q1, q2, q3}, F={q1, q2}

f:ExQ->Q

f(q0,a)=q1

f(q0,b)=q3

f(q1,a)=q1

f(q1,b)=q2

f(q2,a)=q3

f(q2,b)=q2

f(q3,a)=q3

f(q3,b)=q317

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

AF que describe el lenguaje dado por la

expresión regular a+b*. "L(AF)=L(a+b*)"

Page 18: Clase 08: Autómatas finitos - eafranco.com

//LIBRERIAS Y DEFINICIONES DE CONSTANTES#include <stdio.h >#define FIN_CADENA ' \ n'

//Modelado de los estadosenum{q0,q1,q2,q3};

//PROGRAMA PRINCIPALint main (void ){

int estado =q0; //Estado = Estado inicial q0char entrada ; // Caracter de entrada

entrada =getchar (); //Leer la primer entrada

//Ciclo que modela transicin del automata conforme avanza el cabezal de lecturawhile(entrada !=FIN_CADENA) //Mientras la entrada no sea el final de la cadena{

switch(estado ){

case q0: //Modelado de las transiciones del estado q0if(entrada =='a' ) estado =q1;else if(entrada =='b' )estado =q3;break;

case q1: //Modelado de las transiciones del estado q1if(entrada =='a' ) estado =q1;else if(entrada =='b' )estado =q2;break;

case q2: //Modelado de las transiciones del estado q2if(entrada =='a' ) estado =q3;else if(entrada =='b' )estado =q2;break;

case q3: //Modelado de las transiciones del estado q3if(entrada =='a' ) estado =q3;else if(entrada =='b' )estado =q3;break;

default:break;

}entrada =getchar (); //Leer de la segunda a más entradas

}

//Comprobar si al alcanzar la configuración final e l automata alcanzo un estado finalif(estado ==q1||estado ==q2) printf (" \ nCadena VALIDA en el lenguaje L( a+b*)" );else printf (" \ nCadena NO VALIDA en el lenguaje L( a+b*)" );

return 0; //Fin de programa}

18

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z

Page 19: Clase 08: Autómatas finitos - eafranco.com

Ejercicios 06: Autómatas finitos1. Diseñe autómatas finitos capaces de reconocer los siguientes

lenguajes definidos por la expresiones regulares:i. a+b*

ii. ab(cd)+e

iii. (a+b+)cd

iv. abz?b+

v. (cg)*gato+ |cd

2. Programe los autómatas finitos diseñados anteriormente yverifique su funcionamiento.

*Se entregarán antes del día Viernes 27 de Septiembre de 2013(23:59:59 hora limite)

*Sugerencia utilizar Jflap para el dibujo y simulación de los autómatas

*Incluir la redacción de cada ejercicio

*Portada y encabezados de pagina

*Incluir pantallazos del funcionamiento y pruebas19

Teo

ría

co

mp

uta

cio

na

l

Cla

se 0

8:

Au

tóm

ata

s fi

nit

os

Pro

f. E

dga

rdo

Ad

riá

n F

ran

co M

art

íne

z