• No se han encontrado resultados

9-automatas

N/A
N/A
Protected

Academic year: 2020

Share "9-automatas"

Copied!
38
0
0

Texto completo

(1)

Estructuras Discretas II

Lenguajes

y

Autómatas

Dra. Norka Bedregal Alpaca

(2)

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

S

(3)

Lenguaje Natural:

o Aquel que ha evolucionado con el tiempo para fines de la

comunicación humana

o Continúan su evolución sin tomar en cuenta reglas

gramaticales formales

o Cualquier regla es posterior y trata de explicar la

estructura del lenguaje

Lenguaje Formal:

o Está definido por reglas preestablecidas y se ajusta

rigurosamente a ellas

o Por ejemplo: lenguajes de programación de computadoras,

lenguajes matemáticos (álgebra, lógica proposicional..)

3

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(4)

Se sabe que una cadena de un conjunto X es una secuencia finita de elementos de X.

Las cadenas son objetos fundamentales usados en la definición

de lenguajes.

El conjunto de elementos de donde las cadenas son producidas

se llama alfabeto del lenguaje.

Un alfabeto consiste de un conjunto finito de objetos no

divisibles.

Ejemplo:

Sea ={a,b,c}, las siguientes son cadenas de ese alfabeto:

abc cb cab aaaabbbccc

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(5)

Definiciones.

Alfabeto

Palabra, cadena o frase

Palabra vacía

Longitud de una palabra

0 si x =

| x | =

| y | + 1 si x = ya (con a  , y palabra sobre ∑ )

Ej. ∑ = {a, b}

Ej. x = abbab

n: conjunto de todas las palabras de longitud n sobre ∑

0 *

 

i

i

5

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(6)

Concatenación de cadenas:

Sean x = a1a2...am e y = b1b2...bn se define

xy = a1a2...amb1b2...bn

Ejemplo:

Sean u=ab v=ca w=bb

Entonces

uv=abca vw=cabb

(uv)w=abcabb u(vw)=abcabb

Propiedades. 1. Asociativa

2. Elemento neutro ()

Lenguaje: cualquier subconjunto de ∑* .

Concatenación de Cadenas

Concatenación de Cadenas

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(7)

Longitud de una cadena

También llamada tamaño de una cadena w es el número de

elementos que contiene la cadena.

Ejemplo:

La cadena abcdef tiene una longitud de 6.

Subcadena

Dada la cadena v, si existen las cadenas x y y de tal forma que

v = xuy.

entonces se dice que u es una subcadena de v

Esto quiere decir Que u “ocurre dentro de” v.

Un prefijo de v es una subcadena u en donde x es la cadena vacía

en la descomposición de v. Eso quiere decir que v=uy.

Similarmente, u es un sufijo de v si v=xu.

7

Cadenas o Palabras

Cadenas o Palabras

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(8)

Ejemplo:

ab es un prefijo de la cadena abcdef y ef es un sufijo de la misma

cadena.

Representación finita del lenguaje

Un lenguaje consiste de un grupo de cadenas de un alfabeto. Usualmente ciertas restricciones se aplican a las cadenas del lenguaje.

Ejemplo:

El lenguaje Español consiste de todas las cadenas de palabras con sentido, también llamadas oraciones.

No todas las combinaciones de palabras forman oraciones.

De allí que un lenguaje consiste de un subconjunto de el conjunto de todas las posibles cadenas que se pueden formar de el alfabeto.

Lenguajes

Lenguajes

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(9)

Ejemplo:

Sea A = {Juan, Luis, come, fruta, camina, y, queso, rápidamente} Luego A* contiene

Oraciones o cadenas con sentido

o Juan Luis come fruta y queso

o Luis camina y come

o Juan come rápidamente

Oraciones o cadenas sin sentido

o fruta camina y queso

o y come camina

o Juan queso

Ejemplo:

Sea el lenguaje L de cadenas de el alfabeto {a,b} en donde cada

cadena comienza con una a y tiene longitud par.

Las cadenas aa, ab, aaaa, abbb, abab, abbbaaba forman parte

de ese lenguaje. 9

Lenguajes

Lenguajes

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(10)

El lenguaje anterior se puede definir recursivamente como:

i) Base: aa, ab son miembros de L.

ii) Paso recursivo: Si u es miembro de L, entonces

uaa, uab, uba, ubb

son miembros de L.

iii) Cierre (Closure): Una cadena u es miembro de L solo si

puede obtenerse de los elementos base por un número finito de aplicaciones del paso recursivo.

Lenguajes

Lenguajes

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(11)

M

A

Q

U

IN

A

S

D

E

E

S

T

A

D

O

F

IN

IT

O

Ejemplo:

El lenguaje L consiste de cadenas del alfabeto {a,b} en donde cada ocurrencia de b es inmediatamente precedida por una a.

Por ejemplo, , a, abaab están en L y bb, bab, abb no están en L.

i) Base:  es miembro de L.

ii) Paso recursivo: Si u es miembro de L, Entonces

ua, uab son miembros de L.

iii) Cierre (Closure): Una cadena u es miembro de L solo si puede

obtenerse de los elementos base por un número finito de aplicaciones del paso recursivo.

Definiciones recursivas como la anterior son una herramienta para definir las cadenas de un lenguaje.

Lenguajes

Lenguajes

(12)

M

A

Q

U

IN

A

S

D

E

E

S

T

A

D

O

F

IN

IT

O

Otra técnica para construir lenguajes es usar operaciones de conjuntos (sets) para construir, desde conjuntos mas simples hasta conjuntos complejos de cadenas.

Por ejemplo, la concatenación de los lenguajes X y Y, denotada XY, es el lenguaje

XY = {uv | u es miembro de X y v es miembro de Y}

La concatenación de X consigo mismo n veces se denota como Xn.

X0 se define como {}.

Lenguajes

(13)

M

A

Q

U

IN

A

S

D

E

E

S

T

A

D

O

F

IN

IT

O

Ejemplo:

Sea X = {a,b,c} y Y = {abb, ba}. Entonces

XY = {aabb,babb,cabb,aba,bba,cba} X0 = {}

X1 = X = {a,b,c}

X2 = XX = {aa,ab,ac,ba,bb,bc,ca,cb,cc}

X3 = X2X = {aaa,aab,aac,aba,abb,abc,aca,acb,acc,

baa,bab,bac,bba,bbb,bbc,bca,bcb,bcc, caa,cab,cac,cba,cbb,cbc,cca,ccb,ccc}

Lenguajes

Lenguajes

(14)

M

A

Q

U

IN

A

S

D

E

E

S

T

A

D

O

F

IN

IT

O

Ejemplo:

El lenguaje L = {a,b}*{bb}{a,b}* consiste de las cadenas del alfabeto

{a,b} que contiene la subcadena bb.

La concatenación de el conjunto {bb} asegura la presencia de

bb en cualquier cadena en L.

Los conjuntos {a,b}* permiten cualquier número de a’s y b’s, en cualquier orden, y que preceden y siguen la ocurrencia de bb.

Las cadenas bb, abba, ababbbabab, bbaaaa, aaaabb son ejemplos de cadenas de el lenguaje L.

Lenguajes

(15)

Operaciones con lenguajes

Operaciones con lenguajes

M

A

Q

U

IN

A

S

D

E

E

S

T

A

D

O

F

IN

IT

O

-Booleanas.

Unión

L1L2 ={x  ∑ * : x L

1  x L2}

Intersección

L1L2 ={x  ∑ * : x L

1  x L2}

Complementación

Lc= {x * : x L}

Diferencia

L1 - L2 = L1 Lc

2

Diferencia simétrica

(16)

M

A

Q

U

IN

A

S

D

E

E

S

T

A

D

O

F

IN

IT

O

Concatenación de lenguajes.

L1L2 = {x y  ∑ * : x L

1  y L2}

-No conmutativa L1L2 L2L1

-Asociativa L1(L2 L3)= (L1 L2)L3

-Anulador L1 = 

-Distributiva respecto de la unión

L1(L2 L3)= L1L2 L1L3

-No distributiva respecto de la intersección

L (LL ) LLLL

Propiedades.

Operaciones con lenguajes

(17)

17

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

S

(18)

Los autómatas de estado finito son un tipo especial de Máquinas de Estados Finitos.

Los Autómatas se caracterizan por:

o tener un estado inicial

o recibir una cadena de símbolos

o cambiar de estado por cada elemento leído o poder

permanecer en el mismo estado

o tener un conjunto de Estados Finales o Aceptables que

indican si una cadena o palabra pertenece al lenguaje al final de una lectura.

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(19)

Definición:

Un autómata de estado finito, A = (I, O, S, f, g, σ)

es una máquina de estado finito en la que el conjunto de símbolos de salida es

O = {0, 1}

y donde el estado actual determina la última salida.

Aquellos estados para los cuales la última salida es 1, reciben el nombre de estados de aceptación.

Los Autómatas se clasifican en 2 tipos:

Autómata Finito Determinista.

Autómata Finito no Determinista.

19

Definición

Definición

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(20)

Ejemplo:

Dibuje el diagrama de transición de la máquina de estado finito definida por la tabla

S f g

a b a b

σ0 σ1 σ0 1 0 σ1 σ2 σ0 1 0 σ2 σ2 σ0 1 0

σ0 σ1 σ2

b/0

b/0

b/0 a/1

a/1

a/1

A

U

T

O

M

A

T

A

S

(21)

Determine si la máquina graficada es o no un autómata de estado finito

σ0 σ1 σ2

b/0

b/0

b/0 a/1

a/1

a/1

Se debe cumplir:

el conjunto de símbolos de salida debe ser {0, 1}

para cada estado σ todos los arcos que llegan a σ tienen la

misma etiqueta de salida

los estados σ que tienen como única etiqueta de salida el 1, son

los estados de aceptación

Luego, la máquina propuesta es un autómata de estado finito. 21

Ejemplo

Ejemplo

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(22)

Diagrama de Transición de un Autómata

En un diagrama de transición existe un vértice por cada estado

de S.

Los estados finales están encerrados en un círculo doble.

El estado inicial es apuntado por una flecha que no proviene de

ningún otro estado.

Para cada estado σi y un símbolo de entrada ak , hay

exactamente una y solo una flecha que inicia en σi y termina en

σv, la flecha se etiqueta como ak.

En el ejemplo anterior:

σ0 σ1 σ2

b

b a

a

a

Autómatas de Estado Finito

Autómatas de Estado Finito

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(23)

Existe una definición alternativa para un autómata de estado finito

Definición:

Una autómata de estado es una estructura descrita por la quíntupla

A = (I, S, f, A, σ) donde:

I, alfabeto de entrada, es un conjunto finito de símbolos.

S, conjunto de estados, es un conjunto finito

f: S x I S Función de estado siguiente

A: subconjunto de S, integrado por los estados de

aceptación

σ: estado inicial, pertenece a S 23

Otra Definición

Otra Definición

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(24)

Para describir por completo una función de transición o función de estado siguiente, se utiliza una Tabla de Transición.

Las columnas se etiquetan con los símbolos de entrada, la filas son etiquetadas con los estados y en las intersecciones se colocan los nuevos estados.

Ejemplo:

Dibujar el diagrama de transición del autómata definido por A = (I, S, f, A, σ)

Donde: I = {a,b} S = {σ0, σ1, σ2} A ={σ2} σ = {σ0} y f está definida

por

S f

a b

σ0 σ0 σ1 σ σ σ

Tabla de Transición

Tabla de Transición

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(25)

El diagrama pedido es:

σ0 σ1 σ2

a

a

a b

b

b

25

Tabla de Transición

Tabla de Transición

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(26)

Sea A = (I, S, f, A, σ) un autómata de estado finito Dada una cadena de entrada sobre I

k

k I

x x

x x

x  1, 2, 3,.., 

Si existe una secuencia de estados:

n

1

,

2

,

3

,..,

tales que:

σ0 = σ

f(σi-1, xi) = σi

el estado final σn es un estado de aceptación

Entonces, se dice que la cadena es aceptada por A

x

Cadenas Aceptadas por un Autómata

Cadenas Aceptadas por un Autómata

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(27)

Se denota por Ac(A) al conjunto de cadenas aceptadas por el autómata A y se dice que A acepta Ac(A)

Ejemplo:

Diseñar un autómata que acepte exactamente aquellas cadenas sobre {a, b} que no tengan letras “a”

σ0 σ1

b

a b a

donde :

σ0: no se encontró “a”

σ1 : se encontró “a”

27

Cadenas Aceptadas por un Autómata

Cadenas Aceptadas por un Autómata

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(28)

donde :

P: se encontró un número par de letras “a”

I: se encontró un número impar de letras “a”

Ejemplo:

Diseñar un autómata que acepte exactamente aquellas cadenas sobre {a, b} que contengan un número impar de letras “a”

P I

b

a a

b

Observación:

Un autómata de estado finito es la representación de un algoritmo que sirve para decidir si una cadena es aceptada o no

Cadenas Aceptadas por un Autómata

Cadenas Aceptadas por un Autómata

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(29)

Ejemplo:

Construir un autómata de estado finito que no acepte cadenas que contengan la subcadena “aa” y donde I={a,b}.

q0 q1 q2

a,b

a b

a

b

29

Cadenas Aceptadas por un Autómata

Cadenas Aceptadas por un Autómata

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(30)

Ejemplo:

Diseñar un AFD que reconozca cadenas que contienen la

subcadena 001

Por ejemplo debe reconocer cadenas como 0010, 1001,

11111110011111, pero no como 11, 0000, 1100, 10101.

q q0 q00 q001

1

1

0 0

0 0

1

1

Cadenas Aceptadas por un Autómata

Cadenas Aceptadas por un Autómata

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(31)

Autómatas y Lenguajes

Autómatas y Lenguajes

Lenguaje aceptado por autómata

Se define el lenguaje aceptado por un Autómata finito determinista como:

L(M) = {w  * | w es aceptada por M}

Por tanto, L(M) es el conjunto de las cadenas que hacen que M pase del estado inicial a un estado de aceptación.

31

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(32)

Ejemplo:

Sea el AFD, A = (I, S, f, A, σ) donde

S = {q0, q1, q2, q3}

I = {a, b} σ = q0

A = {q0, q1, q2}

f definida por la tabla

a b

q0 q0 q1 q1 q0 q2 q2 q0 q3 q3 q3 q3

Dibuje su diagrama de transición y determine que lenguaje acepta

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(33)

acepta el lenguaje

L(M) = {w  {a, b}* | w no contiene tres b consecutivas}

σ0 σ1 σ2 σ3

a

a

b b

a

b

b a

33

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(34)

Se puede aplicar recursivamente una serie de caracteres de una cadena dada al AFD.

Por ejemplo, la aplicación de la cadena bbab en el caso anterior dará f( f( f( f(σ 0,b),b),a),b) = σ1.

Esto puede abreviarse como f(q0,bbab).

Se dice que dos AFD M1 y M2 son equivalentes si L(M1) = L(M2).

σ0 σ1 σ2 σ3

a

a

b b

a

b

b a

Autómatas y Lenguajes

Autómatas y Lenguajes

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(35)

Ejemplos:

El siguiente autómata acepta cadenas de la forma akb.

Mientras que el siguiente autómata acepta el lenguaje A = {(ab)i | i  1}.

35

Autómatas y Lenguajes

Autómatas y Lenguajes

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(36)

Ejercicio:

Compruebe que el autómata de la figura acepta cadenas de la forma (ab)*.

Autómatas y Lenguajes

Autómatas y Lenguajes

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(37)

Ejercicio:

Construya un autómata que genere el lenguaje a*bab*

37

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

(38)

FIN

FIN

L

E

N

G

U

A

JE

S

Y

A

U

T

Ó

M

A

T

A

Referencias

Documento similar

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

Pliegue asimétrico mostrando una pizarrosidad de plano axial (martillo) en las pizarras del volcanismo ácido inicial del anticlinorio de Coto Vicario.. El martillo muestra la

b) El Tribunal Constitucional se encuadra dentro de una organiza- ción jurídico constitucional que asume la supremacía de los dere- chos fundamentales y que reconoce la separación

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

o Si dispone en su establecimiento de alguna silla de ruedas Jazz S50 o 708D cuyo nº de serie figura en el anexo 1 de esta nota informativa, consulte la nota de aviso de la

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

El quincenario de los frailes de Filipinas, condena para el Archipiélago los propósitos de nivelación jurídica que para todo territorio español, peninsular o ultramarino, se