talf2014.pdf

166
TEORÍA DE LA COMPUTACIÓN M.Sc. Percy Huertas Niquén [email protected] Universidad Nacional de San Agustín Escuela Profesional de Ingeniería de Sistemas

Upload: roycercordova

Post on 26-Dec-2015

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Talf2014.pdf

TEORÍA DE LA COMPUTACIÓN

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 2: Talf2014.pdf

Contenido

Lenguajes formales

Gramáticas

Autómatas finitos

Autómatas finitos determinísticos

Autómatas finitos no determinísticos

Autómatas apiladores

Expresiones regulares

Máquinas de Turing

Computabilidad

Teoría de la Computación2

Page 3: Talf2014.pdf

LENGUAJES FORMALES

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 4: Talf2014.pdf

Caracterizaciones (1)

4

Símbolos : Entidades abstractos que forman un lenguaje.

Ejemplo : a, c, 2, ,b, 7,z, *, +, etc.

Alfabeto : Conjunto finito de símbolos. Se representan con

letras mayúsculas.

Ejemplo : 0, 1

= { }*,

A = { }

, , , Palabra : Es una secuencia de símbolos tomados de un

alfabeto.

Ejemplo : Si A = { 0, 1 },podemos formar las palabras:01001111, 01, 11

Teoría de la Computación

Page 5: Talf2014.pdf

5

La palabra vacía se representa por :

El largo de una palabra es el número de símbolos que

posee dicha palabra.

Ejemplo : | 01001 | = 5,

| 0101 | = 4,

| | = 0.

A* : Es el conjunto de todas las palabras que se pueden

formar con símbolos de A. A* incluye la palabra vacía.

Ejemplo :

A* = { }, 0, 1, 01, 00, ...

Caracterizaciones (2)

Teoría de la Computación

Page 6: Talf2014.pdf

6

An : Es el conjunto de todas las palabras de largo n que se

pueden formar con símbolos de A.

Ejemplo : Palabras de Largo 2 :

A2 = { }00, 11, 10, 01

Proposición : A* = An, n 0

Donde A0 = { }

Definición : A+ = A* - { } o

A+ = { A* / | | 1 }Definición : Todo subconjunto L de A* se denomina

lenguaje con alfabeto A.Ejemplo : Si A = { 0, 1 }, luego

L = { 0n1n / n 0 }

Caracterizaciones (3)

Teoría de la Computación

Page 7: Talf2014.pdf

7

Concadenación : Es el resultado de yuxtaponer dos

palabras.

Ejemplo : Si = 101110 y = 111, luego

= 101110 111

Prefijo de una palabra : Son todos los símbolos que

preceden a alguna palabra en otra palabra .

Ejemplo :

En el ejemplo anterior, el prefijo de en es 10.

Sufijo de una palabra : Símbolos que suceden a alguna

palabra en otra palabra .

Ejemplo :En el ejemplo anterior, el sufijo de en es

1, 11, 111, .....

Caracterizaciones (4)

Teoría de la Computación

Page 8: Talf2014.pdf

Caracterizaciones(5)

8

Lenguajes : Es un conjunto de cadenas formadas por

símbolos que cumplen ciertas propiedades.

Teoría Lenguajes Formales : Estudia las formas de

especificación, reconocimiento y manejo de conjuntos de

cadenas formadas a partir de un alfabeto.

Especificación de un Lenguaje : Se necesita definir:

a) Un conjunto de símbolos a partir del cual se generarán las

cadenas (alfabeto).

b) El conjunto de restricciones que las cadenas deben

satisfacer para pertenecer al lenguaje (sintaxis).

Teoría de la Computación

Page 9: Talf2014.pdf

Clasificación de los lenguajes

9

Lenguajes Tipo 0

Lenguajes Tipo 1

Lenguajes Tipo 2

Lenguajes Tipo 3

Máquinas de Turing

Autómatas acotados

linealmente

Autómatas a pila

Autómatas finitos Expresiones regulares

Problemas recursivamente

enumerables

Problemas no

enumerables

Teoría de la Computación

Page 10: Talf2014.pdf

Un ejemplo concreto

10

Sea el siguiente alfabeto:

C = { a, b, c, d, e, f, g, h, i, j, ………, z }

Palabras legibles que se formarían:

peru, arequipa, casa, papa, mama, hermano, hija,…. .

Palabras ilegibles que se formarían:

baca, deca, fega, jiha, fgji, cbca, hgzq, rmnprty, sxzryl…..

Concadenación de palabras legibles

arequipa esta en el peru

Conclusión: Se necesita de una semántica y obtener así una

gramática para lograr una sintaxis adecuada y saber escribir los

párrafos.

Teoría de la Computación

Page 11: Talf2014.pdf

GRAMATICAS

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 12: Talf2014.pdf

12

Las gramáticas sirven para formalizar la construcción de un

lenguaje.

Definición formal : Una gramática es una tupla

N :

: Alfabeto.

Conjunto de “no terminales”.

N es finito y N =

P : Conjunto de producciones. P es finito.

S : S N y se llama símbolo inicial.

Una producción es una regla de la forma :

()* - *, ()*

( ), N, P, S

Gramáticas (1)

Teoría de la Computación

Page 13: Talf2014.pdf

13

Convenciones

Símbolos no terminales, se denotan con letras

mayúsculas o palabra .

Símbolos terminales, se representan normalmente con

letras minúsculas y números.

Ejemplo : G : ( ), N, P, S

= a, b

N = S, A

P = {

}

S a A

A b A

A b

Gramáticas (2)

Teoría de la Computación

Page 14: Talf2014.pdf

14

El lenguaje generado por esta gramática es :

L : { }a bn

/ n 1

Definición : Sea una gramática

G : (, N, P, S )

Si P y , N )*

Entonces :

G v

Decimos que de se puede derivar directamente

en la gramática G.

v v

Gramáticas (3)

Teoría de la Computación

Page 15: Talf2014.pdf

15

Definición Decimos que

*G

( produce según G o de se deriva según G )

= o 1, 2,............,n

tales que :

G 1 G 2 G ................G n G

Definición

El lenguaje generado por la gramática G es :

L( G ) = { } * / S *G

Gramáticas (4)

Teoría de la Computación

Page 16: Talf2014.pdf

16

Ejemplo : Sea el siguiente conjunto de producciones

S oración

oración sujetopredicado

sujeto artículosustantivo

sustantivo sust_masc

sustantivo sust_fem

sust_masc sol

sust_masc viento

sust_fem nieve

Gramáticas (5)

Teoría de la Computación

Page 17: Talf2014.pdf

Gramáticas (6)

17

sust_fem nube

artículosust_masc el sust_masc

artículosust_fem la sust_fem

predicado verbocompl_directo

compl_directo sujeto

verbo derritió

verbo tapó

Oraciones generadas por la gramática son las siguientes :

el sol derritió la nieve

La nube tapó el sol

Luego :

: {el, la, viento, sol, tapó, derritió, nieve, nube }

N: {oración, sujeto, verbo, predicado, artículo, etc.}

Teoría de la Computación

Page 18: Talf2014.pdf

Ejemplo (1)

18

<oración> ::= <sujeto><predicado>

<sujeto> ::= <frase_nominal>

<frase_nominal> ::= <grupo_nominal>

<frase_nominal> ::= <grupo_nominal><calificativos>

<grupo_nominal> ::= <nombre>

<grupo_nominal> ::= <artículo><nombre>

<calificativo> ::= <conjunción><oración>

<calificativo> ::= <adjetivo>

<predicado> ::= <verbo><complementos>

<complementos> ::= <directo><indirecto><circunstancial>

<complementos> ::= <directo>< circunstancial>

<complementos> ::= <indirecto><circunstancial>

<complementos> ::= <circunstancial>

<circunstancial> ::=

<circunstancial> ::= <circunstancial><circunstancial>

<directo> ::= <frase_nominal>

<indirecto> ::= “a”<frase_nominal”

<circunstancial> ::= <preposición><frase_nominal>

Teoría de la Computación

Page 19: Talf2014.pdf

Ejemplo (2)

19

Donde:

<nombre> ::= “estudiante”

<nombre> ::= “Juan”

<nombre> ::= “apuntes”

<nombre> ::= “bar”

<artículo> ::= “el”

<verbo> ::= “daba”

<preposición> ::= “en”

Teniendo en cuenta todas estas reglas, y aplicando el concepto de derivación

definido anteriormente, se puede obtener la frase considerada partiendo de una

palabra de una sola letra <oración>. Este símbolo es uno de los que componen el

alfabeto considerado.

Teoría de la Computación

Page 20: Talf2014.pdf

Ejemplo (3)

20

<oración> <sujeto><predicado> <frase_nominal><predicado>

<grupo_nominal><predicado> <artículo><nombre><predicado> el

<nombre><predicado> el estudiante <predicado>

el estudiante <verbo><complementos>

el estudiante daba <complementos>

el estudiante daba <directo><indirecto><circunstancial>

el estudiante daba apuntes <indirecto><circusntancial>

el estudiante daba apuntes a <frase_nominal>............

............................

el estudiante daba apuntes a Juan en <frase_nominal>

el estudiante daba apuntes a Juan en <grupo_nominal>

el estudiante daba apuntes a Juan en <articulo><nombre>

el estudiante daba apuntes a Juan en el <nombre>

el estudiante daba apuntes a Juan en el bar

Teoría de la Computación

Page 21: Talf2014.pdf

21

Ejemplo: Sea L el lenguaje de las secuencias: { x, y }+ tales que:

comienza y termina por “ y ” y las “ y ” que hay en están siempre de a pares.

= y y y { x, y }+

L1 = { y xn y / n 1 }

L = 12,.........k i L, i 1

Luego :

G = { , N, P, S } = { x, y } N = { S, A, B, C }

Ejemplo (4)

Teoría de la Computación

Page 22: Talf2014.pdf

22

P = {

1.- S SS

2 .- S AB

3 .- BA x C

4 .- C x x

5 .- CB y

6 .- A y }

Demostrar que L = L(G)

Demostración :

i ) L L (G)

ii ) L (G) L

Ejemplo: Sea

Ejemplo (5)

Teoría de la Computación

Page 23: Talf2014.pdf

23

i ) L L (G)

L = 12.....k , i L , i 1

L (G) S *G

S *G SSSSS.......S (k veces S)

Basta demostrar que S *G i i k por lo que: i = y xn y

S *G Sn+1 producción 1, n veces.

*G (AB)n+1 producción 2, n+1 veces.

= A (BA)n B

= A x (C x)n-1 CB

*G A x xn-1 CB producción 4, n-1 veces

G y xn CB producción 6, 1 vez

G y xn y producción 5, 1 vez

Ejemplo (6)

Teoría de la Computación

Page 24: Talf2014.pdf

24

ii ) L(G) L

L (G) L

S *G es fácil ver que necesariamente :

S *G Sn *G ( AB )n *G

( AB )n1 ( AB )n

2 ... ( AB )k

( AB )ni = A ( BA )n

i-1 B *G y ( BA )n

i-1 B

*G i , ni 2

y(BA)ni-1 B *G y ( x C )n

i-1 B = y x ( C x )n

i-2 CB

= y x x ni-2 CB

= y x ni-1 y L

Según las producciones de G, es el único lenguaje que se puede

generar (con lo que queda demostrado).

Ejemplo (7)

Teoría de la Computación

Page 25: Talf2014.pdf

25

Se basa en la forma de las producciones :

Tipo 0 : Ninguna restricción en sus producciones.

Tipo 1 : Sus producciones cumplen con la condición:

, Se les conoce como gramáticas sensibles al

contexto

Tipo 2 : Sus producciones cumplen con la condición:

= 1 , 1Se les conoce como gramáticas libres del

contexto

Clasificación de las gramáticas (1)

Teoría de la Computación

Page 26: Talf2014.pdf

26

Tipo 3 : Sus producciones son del estilo:

A a, A B a

o

A a B

Se les conoce como gramáticas regulares

Los lenguajes llevan el mismo apellido que las gramáticas que

las genera.

Clasificación de las gramáticas (2)

Teoría de la Computación

Page 27: Talf2014.pdf

Arboles de derivación (1)

27

Dada la siguiente gramática:

E N

E E + E

N 1

N 2

N 3

N 4

y la siguiente expresión:

4 + 2 + 1

Derivación por la izquierda

E

E E+

E E+

N N

N

4 2

1

Teoría de la Computación

Page 28: Talf2014.pdf

Arboles de derivación (2)

28

Derivación por la derecha

E

E E+

E E+

N N

N

4

2 1

Si una expresión tiene dos

derivaciones distintas se

dice que:

“ ES AMBIGUA”

Teoría de la Computación

Page 29: Talf2014.pdf

Simplificación de gramáticas (1)

29

Se debe tener en cuenta las siguientes consideraciones:

a) No deben existir símbolos inútiles

Un símbolo es útil si existe una derivación que lo soporte

Ejemplo:

S AB

S a

A a

B es un símbolo inútil

Se elimina B y la producción S AB

Quedando la siguiente gramática:

S a

A a

Teoría de la Computación

Page 30: Talf2014.pdf

Simplificación de gramáticas (2)

30

b) No deben existir producciones vacías

Si se encuentra en L(G) no se pueden eliminar todas las producciones ,

pero si no se encuentra en L(G) pueden eliminarse todas las producciones

vacías.

Ejemplo:

S ABCD

A a

B

C

D d

Las producciones B y C son anulables

La gramática resultante es:

S AD

A a

D d

Teoría de la Computación

Page 31: Talf2014.pdf

Simplificación de gramáticas (3)

31

c) No deben existir producciones unitarias

Las producciones unitarias son producciones de la forma:

A B

Esto es, un símbolo no terminal en el lado derecho

“Si se cumplen estos tres requisitos nos encontraremos con gramáticas que se pueden

simplificar. Chomsky y Greibach prepararon algoritmos que nos permiten una

transformación de gramáticas complejas a gramáticas simples”

Teoría de la Computación

Page 32: Talf2014.pdf

Forma normal de Chomsky – FNC (1)

32

Una gramática se encuentra en la forma FNC si todas sus

producciones son de la forma:

A BC o A a

Requisito: La gramática no debe tener símbolos inútiles, producciones vacías

ni producciones unitarias.

Ejemplo: Consideremos la gramática que tiene las producciones

S bA | aB

A bAA | aS | a

B aBB | bS | b

Teoría de la Computación

Page 33: Talf2014.pdf

Forma normal de Chomsky – FNC (2)

33

Su forma FNC es la siguiente:

1. No existen símbolos inútiles.

2. No existen producciones vacías.

3. No existen producciones unitarias.

4. Las producciones que se encuentran en la forma FNC son:

A a

B b

5. Sustitución de variables

S bAS CbA

Cb b

Teoría de la Computación

Page 34: Talf2014.pdf

Forma normal de Chomsky – FNC (3)

34

S aBS CaB

Ca a

A bAAA CbAA

Cb b

A aSA CaS

Ca a

B aBBB CaBB

Ca a

B bSB CbS

Cb b

Teoría de la Computación

Page 35: Talf2014.pdf

Forma normal de Chomsky – FNC (4)

35

6. Agrupando producciones

S CbA

Cb b

S CaB

Ca a

A CbAA

Cb b

A CaS

Ca a

B CaBB

Ca a

B CbS

Cb b

7. Simplificando

S CbA

Cb b

S CaB

Ca a

A CbAA

A CaS

B CaBB

B CbS

Teoría de la Computación

Page 36: Talf2014.pdf

Forma normal de Chomsky – FNC (5)

36

8. Iterando

B CaBBB CaD2

D2 BB

A CbAAA CbD1

D1 AA

9. Agrupando, queda finalmente

S CbA

Cb b

S CaB

Ca a

A CbD1

D1 AA

A CaS

B CaD2

D2 BB

B CbS

Teoría de la Computación

Page 37: Talf2014.pdf

Ejercicio

37

E E + T

E T

T T * F

T F

F CF

F C

C 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Teoría de la Computación

Page 38: Talf2014.pdf

Forma normal de Greibach – FNG (1)

38

Lema: Defínase una producción A como una producción con

variable A en la izquierda. Sea G = (, N, P, S) una gramática.

Sea A 1B 2 una producción de P y sea B 1 | 2 |..| r

el conjunto de todas las producciones B. Hagamos:

G1 = (, N, P1, S)

la gramática obtenida de G mediante la eliminación de la

producción:

A 1B 2 de P

y la adición de las producciones:

A 1 1 2 | 1 2 2 | 1 r 2

Entonces L(G) = L(G1)

Teoría de la Computación

Page 39: Talf2014.pdf

Forma normal de Greibach – FNG (2)

39

Lema: Sea G = (, N, P, S) una gramática. Sea:

A A1 | A2 | ... | Ar

el conjunto de las producciones A para las cuales A es el símbolo

que está más a la izquierda del lado derecho. Sean

A 1 | 2 | ... | s

las restantes producciones A. Hagamos: G1 = ( B, N, P1, S)

la gramática formada por la adición de la variable B a y la sustitución de

todas las producciones A por las producciones:

A i

A iB

B i

B iB1 i s 1 i r

Entonces L(G1) = L(G)

Teoría de la Computación

Page 40: Talf2014.pdf

Forma normal de Greibach – FNG (3)

40

Teorema: Cada lenguaje libre del contexto L que no contenga , puede ser generado

por una gramática para la cual cada producción es de la forma A a, en donde A es

una variable, a un terminal y una cadena (posiblemente vacía) de variables.

Se dice que una Gramática Libre del Contexto G está en forma normal de

Greibach todas sus producciones se encuentran en la forma:

A a a

A a B1B2.....Bn n 1 B1,B2,....,Bn N*

En otras palabras

Teoría de la Computación

Page 41: Talf2014.pdf

Forma normal de Greibach – FNG (4)

41

for (k = 1, k m, k++)

{

for (j = 1, j k - 1, j++)

{

for cada producción de la forma Ak Aj

{

for todas las producciones Aj

agregar la producción Ak

elimine la producción Ak Aj

}

}

for cada producción de la forma Ak Ak

{

agregar las producciones Bk y Bk Bk

eliminar la producción Ak Ak

}

for cada producción Ak en donde no comienza con Ak

agregar la producción Ak Bk

}

Teoría de la Computación

Page 42: Talf2014.pdf

Forma normal de Greibach – FNG (5)

42

Ejemplo: Dada la gramática

G = (, N, P, S)

Con: = {a, b}

N = {A1, A2, A3}

S = A1

P = {

A1 A2 A3

A2 A3 A1

A2 b

A3 A1 A2

A3 a

}

Encuentre la Forma Normal de Greibach (FNG)

Teoría de la Computación

Page 43: Talf2014.pdf

Forma normal de Greibach (6)

43

Solución:

Paso 1: Como el lado derecho de las producciones para A1 y A2 comienzan con

terminales o variables con mayor número, empezamos con la producción A3 A1 A2

y sustituimos la cadena por A2 A3 A2. Notar que A1 A2 A3 es la única producción

con A1 en la izquierda. Luego:

A1 A2 A3

A2 A3 A1

A2 b

A3 A2 A3 A2

A3 a

Como el lado derecho de la producción A3 A2 A3 A2 comienza con una variable de

número menor, sustituimos la primera ocurrencia en A2 con A3 A1 y b. Luego

A3 A2 A3 A2 se sustituye por A3 A3 A1 A3 A2 y bA3 A2. Finalmente:

Teoría de la Computación

Page 44: Talf2014.pdf

Forma normal de Greibach (7)

44

A1 A2 A3

A2 A3 A1

A2 b

A3 A3 A1 A3 A2

A3 b A3 A2

A3 a

Aplicando el primer lema a las producciones

A3 A3 A1 A3 A2 | b A3 A2 | a

El símbolo B3 se introduce y la producción A3 A3 A1 A3 A2

se sustituye por A3 bA3 A2 B3, A3 a B3, B3 A1 A3 A2

y B3 A1 A3 A2 B3. El resultado es:

A1 A2 A3

A2 A3 A1 | b

A3 bA3 A2 B3 | aB3 | bA3A2 | a

B3 A1 A3 A2 | A1 A3 A2 B3

Teoría de la Computación

Page 45: Talf2014.pdf

Forma normal de Greibach (8)

45

Paso 2: Ahora todas las producciones con A3 en la izquierda tienen lado derecho que

comienzan con terminales. Estas se usan para sustituir a A3 en la producción A2 A3 A1

y las que usan A2 en el lado izquierdo se utilizan para sustituir a A2 en la producción

A1 A2 A3 . El resultado es:

A3 b A3 A2 B3

A3 a B3

A2 b A3 A2 B3 A1

A2 a B3 A1

A2 b

A1 b A3 A2 B3 A1 A3

A1 a B3 A1 A3

A1 bA3

B3 A1 A3 A2

A3 b A3 A2

A3 a

A2 b A3 A2 A1

A2 a A1

A1 b A3 A2 A1 A3

A1 a A1 A3

B3 A1 A3 A2 B3

Teoría de la Computación

Page 46: Talf2014.pdf

Forma normal de Greibach (9)

46

Paso 3: Las dos producciones B3 se convierten a una forma apropiada, lo que trae como

resultado otras 10 producciones. Es decir, las producciones:

B3 A1 A3 B2 y B3 A1 A3 A2 B3

quedan alteradas mediante la colocación del lado derecho de las 5 producciones con A1

en la izquierda en lugar de la primera A1. Luego B3 A1 A3 A2 se convierte en:

B3 b A3 A2 B3 A1 A3 A3 A2

B3 a B3 A1 A3 A3 A2

B3 b A3 A3 A2

B3 b A3 A2 A1 A3 A3 A2

B3 a A1 A3 A3 A2

Teoría de la Computación

Page 47: Talf2014.pdf

Forma normal de Greibach (10)

47

El conjunto final resulta ser:

A3 b A3 A2 B3

A3 a B3

A2 b A3 A2 B3 A1

A2 a B3 A1

A2 b

A1 b A3 A2 B3 A1 A3

A1 a B3 A1 A3

A1 b A3

B3 b A3 A2 B3 A1 A3 A3 A2 B3

B3 a B3 A1 A3 A3 A2 B3

B3 b A3 A3 A2 B3

B3 b A3 A2 A1 A3 A3 A2 B3

B3 a A1 A3 A3 A3 B3

A3 b A3 A2

A3 a

A2 b A3 A2 A1

A2 a A1

A1 b A3 A2 A1 A3

A1 a A1 A3

B3 b A3 A2 B3 A1 A3 A3 A2

B3 a B3 A1 A3 A3 A2

B3 b A3 A3 A2

B3 b A3 A2 A1 A3 A3 A2

B3 a A1 A3 A3 A2

Teoría de la Computación

Page 48: Talf2014.pdf

Ejercicio

48

E E + T

E T

T T * F

T F

F CF

F C

C 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

S = E

Teoría de la Computación

Page 49: Talf2014.pdf

Control

49

Leer los incisos 1.4 y 1.5 del Capítulo 1

Libro: Autómatas y Lenguajes

Autor: Ramón Brena

Resolver los problemas 13 a 18

Page 50: Talf2014.pdf

AUTOMATAS FINITOS

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 51: Talf2014.pdf

Generalidades

51

Es un modelo de un computador actual bastante restringido.

Tiene un procesador central de capacidad fija finita dependiendo de su diseño original.

Tiene un procesador central de capacidad fija finita dependiendo de su diseño original.

La secuencia de caracteres de entrada viene en una cinta.

No entrega información de salida excepto si la secuencia de entrada es considerada aceptable.

Tiene una capacidad finita de memoria.

“Así, un autómata finito es un dispositivo reconocedor de un lenguaje”

Teoría de la Computación

Page 52: Talf2014.pdf

AUTOMATAS FINITOS

DETERMINISTICOS

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 53: Talf2014.pdf

AFD (1)

53

Su acción está completamente determinada por la secuencia de entrada.

aa aa aabb bb b a

q5

q4

q3

q2

q1

qo

Control

Finito

Cabeza

Lectora

Conector

Teoría de la Computación

Page 54: Talf2014.pdf

AFD (2)

54

Inicialmente la cabeza lectora está en el cuadrado de más a la

izquierda y el control finito es inicializado en su estado inicial.

A intervalos regulares lee un símbolo de la cinta y el control

finito pasa a un nuevo estado dependiendo sólo del estado actual

y del símbolo leído.

Después de leído un símbolo, la cabeza lectora se mueve un

cuadrado a la derecha.

Una vez leída la secuencia completa, el estado actual del

autómata indica si la secuencia de caracteres es aceptada o no. La

secuencia se considera aceptada si este estado pertenece a un

conjunto de estados finales.

Teoría de la Computación

Page 55: Talf2014.pdf

AFD (3)

55

Luego, el lenguaje aceptado por el autómata es el conjunto de secuencias de caracteres aceptados.

Definición formal :

Un autómata finito determinístico es una tupla

M = ( ), Q, , q0, F

Donde :

: es un alfabeto finito.

Q : es un conjunto finito de estados.

: Q x Q es la función de transición.

qo : qo Q es el estado inicial.

F : F Q es el conjunto de estados finales.

Teoría de la Computación

Page 56: Talf2014.pdf

AFD (4)

56

Definición:

(sin leer no cambiamos de estado)

q Q, a , *

(resume como encontrar el estado después de leer la secuencia vacía a)

es tal que:: Q x * Q^

i) (q, ) = q, q Q^

ii) (q, a) = (ô (q, ), a)^

Si = (q, a) = (q, a)^

Teoría de la Computación

Page 57: Talf2014.pdf

AFD (5)

57

Definición:Sea M : (, Q, , qo, F) un autómata finito determinístico. El lenguaje aceptado por

M es :

Un lenguaje L se dirá regular si existe M tal que

L = L(M)

L(M) = { * / (qo, ) F }^

Definición:

Teoría de la Computación

Page 58: Talf2014.pdf

Ejemplo (1)

58

Ejemplo : Considere el Afd M : (, Q, , qo, F)

q0

q1

b

aab

Teoría de la Computación

Page 59: Talf2014.pdf

Ejemplo (2)

Convenciones :

qi

qj

a

: estado final

: estado inicial

: (qi, a) = qj

Teoría de la Computación

Page 60: Talf2014.pdf

Ejemplo (3)

60

Calculemos los parámetros de M:

Luego : L(M ) contiene un número par de b.

: { }a, b F : { }qo

a b

q0q0

q1

q1

q1 q0

Teoría de la Computación

Page 61: Talf2014.pdf

Ejemplo (4)

61

Veamos si la secuencia aabba L(M).

1) (q0, a) = q0

2) (q0, b) = q1

3) (q1, a) = q1

4) (q1, b) = q0

1) (q0, aa) = q0

2) (q0, aab) = q1

1) (q0, aabba) = q0 F

4) (q0, aabb) = q0

1) (q0, a) = q0

Teoría de la Computación

Page 62: Talf2014.pdf

Ejemplo (5)

62

: {0, 1}

F : {q0}

Ejemplo :

Construya un autómata que reconozca secuencias con un número par de 0’s y 1’s.

Solución:

q0

q3

1

00

0 0

1

1

1

q2

q1

Q : {q0, q1, q2, q3}

Teoría de la Computación

Page 63: Talf2014.pdf

Ejemplo (6)

63

Diseñar un AFD que acepte todas las palabras sobre {0, 1} que tengan un número impar de

1’s.

No se requiere saber cuantos 1’s se han leído sino sólo si llevamos un número par o impar

de 1’s. Esta respuesta permanece igual si enseguida leemos un 0 y cambia si leemos un 1.

Representar esto como una lista de posibilidades y asignar un estado a cada posibilidad: a)

par hasta ahorita. B) impar hasta ahorita.

Asignar las transiciones.

Definir el estado inicial, el que corresponde a la palabra nula .

Definir el estado final, el que corresponde a palabras de longitud impar.

qpar qimpar

1

1

0

0

Teoría de la Computación

Page 64: Talf2014.pdf

Ejemplo (7)

64

Diseñar un AFD que reconozca palabras que contienen la cadena 001 como 0010,

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

Posibilidades:

No hemos leído ningún símbolo. Estado q.

Hemos leído un 0. Estado q0.

Hemos leído 00. Estado q00.

Hemos leído 001. Estado q001.

q q0 q00 q001

1

1

0 0

0 0,1

1

Teoría de la Computación

Page 65: Talf2014.pdf

Ejemplo (8)

65

Diseñar un AFD que acepte exactamente el lenguaje sobre

{0, 1} en que las palabras no comienzan con 00.

q2

q3

0 0

1 1

0,1

0,1

q0 q1

Teoría de la Computación

Page 66: Talf2014.pdf

Ejemplo (9)

66

Palabras sobre {a, b, c} en las cuales toda b es inmediatamente seguida de al menos una c.

a,c

a,b,c

a,b

b

c

q0 q1

q2

a,c

a,b,c

a,b

b

b

q0 q1

q2

c

q3

a,c

Teoría de la Computación

Page 67: Talf2014.pdf

Ejemplo (10)

67

Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras que terminan con ’10’, es decir, reconoce el lenguaje (0 + 1)*10.

0

1

00

01

11

10

i

0

1

0

1

0

1

0

1

0 1

0

1

1

0

0 1

1 0

1

0

A B C

Grafo simplificado

Grafo real

Teoría de la Computación

Page 68: Talf2014.pdf

Ejemplo (11)

68

Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras que terminan con 1, es decir, (0 + 1)*1.

A B

0

0

1

1

Teoría de la Computación

Page 69: Talf2014.pdf

Ejemplo (12)

69

Construir un autómata finito determinsta que reconozca el lenguaje

sobre {0, 1} que consiste de las palabras cuyo penúltimo símbolo es 1,

es decir, su expresión regular es (0 + 1)*1(0 + 1).

A

C0

D

B

0

0

011

1

1Teoría de la Computación

Page 70: Talf2014.pdf

Ejemplo (13)

70

Construir un autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo antepenúltimo símbolo es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)(0 + 1).

A

E

0

B1

1

1

F

G

H

C

D

0

0

0

0

0

0

0

1

1

1

1 1

Teoría de la Computación

Page 71: Talf2014.pdf

Ejemplos para la casa

71

¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo ante-antepenúltimo símbolo es 1, es decir, su expresión regular es (0 + 1)*1(0 + 1)3? Resp: 24 = 16.

¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo décimo símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es(0 + 1)*1(0 + 1)9? Resp: 210 = 1024.

¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo vigésimo símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es(0 + 1)*1(0 + 1)19? Resp: 220 = 1M.

¿Cuántos estados tendría el autómata finito determinista que reconozca el lenguaje sobre {0, 1} que consiste de las palabras cuyo vigésimo quinto símbolo, contado de derecha a izquierda es 1, es decir, su expresión regular es(0 + 1)*1(0 + 1)24? Resp: 225 = 32M.

Teoría de la Computación

Page 72: Talf2014.pdf

Equivalencias de autómatas finitos

72

Decimos que dos autómatas, M1 y M2, son equivalentes cuando aceptan el mismo lenguaje, es decir, L(M1) = L(M2).En este caso escribimos M1 M2.

¿Cómo saber que dos autómatas son equivalentes?

¿Cómo saber que dos autómatas no son equivalentes?

Teoría de la Computación

Page 73: Talf2014.pdf

¿Cuándo dos autómatas no son

equivalentes?

73

Cuando uno de los dos autómatasacepta una palabra que no es

aceptada por el otro autómata,podemos concluir que los dosautómatas no son equivalentes

Teoría de la Computación

Page 74: Talf2014.pdf

Ejemplo (1)

74

b b

a a,b

a

q0 q1 q2

M1

b b

a a,b

a

q0 q1 q2

M2

¿Son M1 y M2 equivalentes?

¿Por qué?

¡No!

Porque M2 acepta y M1 no.

Teoría de la Computación

Page 75: Talf2014.pdf

Ejemplo (2)

75

1

0 1

0

q0 q1

M1

¿Son M1 y M2 equivalentes?

¿Por qué?

¡No!

Porque M1 acepta 0 y M2 no.

0

0

q0 q1

q2M2

1 01

1

Porque M2 acepta 01 y M1 no.Teoría de la Computación

Page 76: Talf2014.pdf

Ejemplo (3)

76

1

0 1

0

q0 q1

M1

¿Son M1 y M2 equivalentes?

¿Por qué?

¡Sí!

Porque todas las palabras que son

aceptadas por M1 también lo son

por M2 y viceversa.

0

0

q0 q1

q2M2

1 01

1

Teoría de la Computación

Page 77: Talf2014.pdf

Operaciones entre autómatas

77

Sean

M1 = (K1, , 1, s1, F1) yM2 = (K2, , 2, s2, F2) dos AFDs que aceptan los lenguajes L1 y L2, respectivamente.

Cómo obtener autómatas que reconozcan

L1L2

L1L2

L1L2

L1L2

L1*

L1C

Teoría de la Computación

Page 78: Talf2014.pdf

Respuesta

78

Definamos el autómata M = (K, , , s0, F) donde

K = K1 × K2

s0 = (s1, s2)

((p, q), a) = (1(p, a), 2(q, a)) para pK1, qK2 y a

Si F = {(p, q) | pF1 o qF2}, entonces M acepta al lenguaje L1L2.

Si F = {(p, q) | pF1 y qF2}, entonces M acepta al lenguaje L1L2.

Si F = {(p, q) | pF1 y qF2}, entonces M acepta al lenguaje L1L2.

¿Y L1L2, L1*, L1

C?

Teoría de la Computación

Page 79: Talf2014.pdf

Ejemplo (1)

79

Consideremos los lenguajes sobre el alfabeto ={0, 1}: L1 = {x | 00 no es una subcadena de x}

L2 = {x | x termina con 01}

A B C00

1

1 0,1

L1

P Q R01

0

1 0

1

L2

Teoría de la Computación

Page 80: Talf2014.pdf

L1 x L2

80

AP

AQ

AR

BP

BQ

BR

CP

CQ

CR

1 1

0

0

1 10

0

0

1

0 1

Teoría de la Computación

Page 81: Talf2014.pdf

L1 L2

81

AP

AR

BQ

CP

CQ

CR

1 1

0

0

1 10

0

0

1

0 1

Teoría de la Computación

Page 82: Talf2014.pdf

L1 L2

82

AP

AR

BQ

CP

CQ

CR

1 1

0

0

1 10

0

0

1

0 1

Teoría de la Computación

Page 83: Talf2014.pdf

L1 – L2

83

AP

AR

BQ

CP

CQ

CR

1 1

0

0

1 10

0

0

1

0 1

Teoría de la Computación

Page 84: Talf2014.pdf

Ejercicio (1)

84

Ya que L1C = *L1, el AFD que acepta L1

C se obtiene:

Cambiando los estados finales a no-finales y los no-finales a

finales.

A B C00

1

1 0,1

L1 A B C00

1

1 0,1

L1C

Teoría de la Computación

Page 85: Talf2014.pdf

Ejercicio (2)

85

Obtenga un AF que acepte (11+110)*0

q0

r

s

p

t

u

1

0

0

0,1

0,1

1

1

1

0

0

q0 q4

q1

q2q3

1

1 0

0

1 1

Teoría de la Computación

Page 86: Talf2014.pdf

AUTOMATAS FINITOS NO

DETERMINISTICOS

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 87: Talf2014.pdf

AFND(1)

87

Ejemplo :

Interesa permitir transiciones múltiples a partir de

un estado con un símbolo en la entrada.

q0

0

q2

q1

00, 1

0, 1

La capacidad de ser no determinístico no es una

característica de las computadoras reales.

Teoría de la Computación

Page 88: Talf2014.pdf

AFND (2)

88

Surgen como una extensión a los autómatas finitos determinísticos y en

muchos casos simplifica grandemente su descripción.

• No son más poderosos que los afd.

Dado un conjunto A, P(A) es el conjunto potencia. (Es el conjunto de todos los

subconjuntos).

Un afnd es una tupla M = (, Q, , qo, F) donde

Q, , qo , F son como para un afd y

: Q x P (Q)

Notación :

Teoría de la Computación

Page 89: Talf2014.pdf

AFND (3)

89

Definición :

De i ) y ii ) se deduce que :

Definición :

Por L(M) : {x / x es aceptado por M}

Si M es un afnd entonces x * es aceptado por M ssi

: P (Q) x * P (Q) es tal que :^

i) (A, ) = A

ii ) (A, xa) = (q, a)

q ô (A, x)

x *, a

A P(Q)

^

^

({q}, a) = (q, a)^

({q o}, x ) F ^

Teoría de la Computación

Page 90: Talf2014.pdf

AFND (4)

90

Veamos la ventaja de usar afnd con el siguiente ejemplo :

Construir un autómata finito que reconozca el lenguaje formado por las palabras ab, aba y

concadenaciones de ambas.

q0

aq2q

1q

3

q4

a

a

a

bb

b

b

a

q2

q3

q1b

b

a

afd :

afnd :

Teoría de la Computación

Page 91: Talf2014.pdf

AFND (5)

91

Equivalencia entre afd y afnd

Teorema :

Demostración :

Sea M = (, Q, , q o, F),

Si construimos

: Q x P(Q)

(q, a) (q, a) = { (q, a)}

Nota : Otra característica de un afnd es que con algunos estados y símbolos de

la entrada puede no tener posibles movidas.

Sea L un lenguaje aceptado por un afd entonces existe un afnd que acepta L.

: Q x Q un afd

Sea M = (, Q, , q o, F), : Q x P(Q) afnd

El autómata finito no determinístico M reconoce el mismo lenguaje

que M.

Teoría de la Computación

Page 92: Talf2014.pdf

AFND (6)

92

Teorema

Sea L un lenguaje aceptado por un afnd entonces existe un afd que acepta L.

Ejemplo :

Sea M = ({qo , q1}, {0, 1}, , qo , q1) un afnd donde :

q0

0

10, 1

q1

1

(qo, 0) = {q o, q1}, (q0, 1) = {q1},

(q1, 0) = , (q1, 1) = {q0, q1}

Construiremos el afd M = (Q, {0, 1}, , [q 0], F )

Q = {[q0], [q1], [q0, q1], }

Teoría de la Computación

Page 93: Talf2014.pdf

AFND (7)

93

Recordemos que por definición

([q 0], 0) = [q0, q1] (q0, 0) = {q0, q1}

Luego : ([q0 ], 1) = [q1]

([q1 ], 0) =

([q1] , 1) = [q0, q1]

([q0, q1 ], 0) = [q0, q1]

([q0, q1 ] , 1) = [q0, q1]

afd

1

0, 1

00

1

[ q0 ]

[ q1 ]

[ q0, q

1 ]

Teoría de la Computación

Page 94: Talf2014.pdf

AFND (8)

94

Teorema :

Demostración

Sea G: (, N, P, S)

L es generado por alguna gramática regular G L es aceptado por un autómata

finito M.

Primero este sentido ():

Dada una gramática regular G encontramos un afnd M / L(G) = L(M)

S a1A1

A1 a2A2

...

An-1 anAn

An an+1

...

Ai N no necesariamente distintos,

ai no necesariamente distintos.

Teoría de la Computación

Page 95: Talf2014.pdf

AFND (9)

Construiremos un afnd M donde :

Si tenemos una producción de la forma:

M : (, N {A} , , S, F}, A N

F : {A} o bien F = {S, A} si S P

: Q x P(Q), Q = N {A}

A i ai+1Ai+1 P entonces :

ai+1

Ai

Ai+1 Ai+1 (Ai, ai+1)

y Aj aj+1 en P, A (A j, aj+1)

95 Teoría de la Computación

Page 96: Talf2014.pdf

AFND (10)

96

Ahora demostraremos que L(G) = L(M)

i) L(G) L(M)

Sea x L(G) x L(M)

Tomemos x = a1, a2,...,a n

S *G a1a2 ...an

S a1A1 a1a2A2 ... a1a2...a n-1An-1 a1a 2...a n -1a n

de la definición de vemos que :

S a1A1 (S, a1) contiene A1

A1 a 2A2 (A1, a2) contiene A2

:

:

Teoría de la Computación

Page 97: Talf2014.pdf

AFND (11)

97

A n - 1 a n (An -1, An) contiene A.

como A F x = a1a2...a n L(M)

ii) L(M) L(G)

Sea x L(M) x L(G). Propuesto.

Luego en este sentido ():

Dado un afd encontramos una gramática regular extendida que genera el mismo

lenguaje.

Dada M : (, Q, , q0, F) construimos una gramática G : (, N, P, qo), S q o

P contiene las siguientes producciones :

Teoría de la Computación

Page 98: Talf2014.pdf

AFND 12)

98

qo a1q1

q1 a2q2 ssi (q1, a2) = q2

q2 a3q3 ssi (q2, a3) = q3

........

qn an+1 ssi (qn, an+1) F

qo ssi qo F

qi Q, ai no necesariamente distintos.

Ahora demostraremos que L(G) = L(M)

i) L(M) L(G)

Teoría de la Computación

Page 99: Talf2014.pdf

AFND (13)

99

Si x = a1a2...an L(M) existe una secuencia de estados qo, q1,...,qn ( no

necesariamente distintos) tales que :

Por construcción esto significa que la gramática contiene producciones de la

forma :

1) q0 a1q1

2) q1 a2q2 .......

n) qn-1 an

1) (qo, a1) = q1

2) (q1, a2) = q2

....

n) (q n-1, a n) = q n F

Teoría de la Computación

Page 100: Talf2014.pdf

AFND (14)

100

Esto implica que:

S = q0 G a1q1 G a1a2q2 G ... G a1a2...a n

ii) L(G) L(M). Propuesto.

Algunas veces es útil permitir un diagrama de estados, flechas rotuladas por

símbolos de y por la palabra vacía .

Ejemplo :

Luego x L(G).

a

b

q0 q

1

q2a a.f.n.d.c.m.

Autómatas finitos con movidas vacías

Teoría de la Computación

Page 101: Talf2014.pdf

AFND (15)

101

Ejemplo :

L = {0n 1m 2l / n, m, l 0 }

0 1

q1

2

a.f.n.d.c.m.

q2

q0

a.f.d.

q0

q1

q2

21

2

210

Teoría de la Computación

Page 102: Talf2014.pdf

AFND (16)

102

Definición :

Ejemplo :

C- (q0) = {q0, q1, q2}

C- (q1) = {q1, q2}

C- (q2) = {q2}

Definición :

La cerradura vacía de un estado q es el conjunto de estados a los que se puede

llegar partiendo de q y utilizando sólo transiciones vacías. Se denota por C-

(q).

Encontrar la cerradura vacía de cada uno de los estados de L = {0n 1m 2l / n, m,

l 0 }

C-(A) = C-(q), A Q

q A

Solución :

Teoría de la Computación

Page 103: Talf2014.pdf

AFND (17)

103

Definición formal :

Un afnd con movidas vacías lo describiremos con M : (, Q, , q0 , F) donde

cambia y^

: Q x ( {} P(Q) y : P (Q) x * P(Q)^

i ) (q, ) = C-(q)^

ii ) (q1, a) = C-( {p / r (q, ) y p (r, a)})^

^

iii ) (A, ) = (q, )

q A

^

^

Ahora veamos si (q, a) ? (q, a) se comportan como en un afd y en un afnd.^

(q, a) = C-({p / r C-(q) y p (r, a)})^

incluye todos los estados alcanzables desde q con arcos rotulados ‘a’ pasando

por arcos rotulados .

Teoría de la Computación

Page 104: Talf2014.pdf

AFND (18)

104

(q, a) : incluye los estados alcanzables desde que por arcos rotulados ‘a’.

Definición : Si M = (, Q, ,q0, F) es un afnd con movidas vacías, entonces :

Teorema : Si L * es aceptado por un afnd con movidas vacías, entonces L es

aceptado por un afnd sin movidas vacías.

L(M) = { x / (q0, x) F }^

Teoría de la Computación

Page 105: Talf2014.pdf

AFND (19)

105

Algunas propiedades de los lenguajes regulares

Demostración :

L1 regular M1 = (1, Q1, 1, q01 , F1)

L2 regular M2 = (2, Q2, 2, q02, F2)

Construiremos el autómata finito M que reconozca L1 L2

Teorema : Si L1 y L2 son regulares L1 L2 es regular

Teoría de la Computación

Page 106: Talf2014.pdf

AFND (20)

106

Sea M = (12, Q1 Q2 {q0, qf}, , q0, {qf})

q02

q0

qi

qj

qf

q10

M1

M2

qj F 2

qi F1

: Q x P(Q)

Teoría de la Computación

Page 107: Talf2014.pdf

AFND (21)

107

(q, a) puede tomar los siguientes valores:

i) 1 (q, a) si q Q1 y a 1

ii) 2 (q, a) si q Q2 y a 2

(q0, ) = {q01, q0

2 }

(q, ) = {qf } q (F1 F2 )

AB = { ab /a A , b B }

Ejemplo : Si A = { aa, ab}, B = {cd, cc}

AB = {aacd, aacc, abcd, abcc}

Teoría de la Computación

Page 108: Talf2014.pdf

AFND (22)

108

Teorema : Sea L1 y L2 lenguajes regulares L1L2 es regular.

L1 es regular M1:(1, Q1, 1, q01, F1) / L1= L(M1)

L2 es regular M2:(2, Q2, 2, q02, F2) / L2= L(M2)

Construiremos M afndcm que reconoce L1L 2

M : (1 2, Q1 Q2 {q0, qf}, , q0, { qf})

q0

qf

q

02

M2q1

0

M1

qk

qj

qi

ql

qk F2 , ql F 2

qi F1, qj F1

Teoría de la Computación

Page 109: Talf2014.pdf

AFND (23)

109

( Q x ) P(Q)

(q0, ) = {q01}

( q, ) = {q02}, q F1

(q, ) = {qf}, a F2

L regular M1 : (1, Q1, 1, q01, F1) / L = L (M1)

Construiremos M:(1, Q1{q0, qf }, , q0, qf)/L* = L(M)

q0

qf

q1

0

M1

qj

Teoría de la Computación

Page 110: Talf2014.pdf

AFND (24)

110

: Q x P(Q)

(q0, ) = {qo1, qf}

(q1, ) = {q01, qf} q F1

= 1 , q Q1, a 1

Teoría de la Computación

Page 111: Talf2014.pdf

AUTOMATAS APILADORES

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 112: Talf2014.pdf

Autómata de conteo

112

Autómata finito determinista con un contador de enteros o “bolsa” en la que se colocan o extraen cuentas o “piedras” en respuesta a un símbolo de entrada.

En otras palabras, en cada transición el autómata no sólo selecciona un nuevo estado sino que también decide, independientemente del estado de la bolsa, si añade otra cuenta a la bolsa o saca una cuenta de la bolsa o la deja igual.

La bolsa inicia con una cuenta y el autómata continúa operando mientras haya símbolos de entrada y la bolsa no esté vacía. Si se consumen todos los símbolos de la palabra de entrada al mismo tiempo que se vacía la bolsa, entonces se acepta la palabra.

Teoría de la Computación

Page 113: Talf2014.pdf

Ejemplo (1)

113

{anbn | n 1}

a

a

b

b

Teoría de la Computación

Page 114: Talf2014.pdf

Autómata de pila

114

Desafortunadamente los autómatas de conteo no son suficientemente poderosos para reconocer todos los LLC.En ocasiones se requiere más de un tipo de cuenta o “roca” o en lugar de una “bolsa”.Se utiliza un stack o pila LIFO (Last In First Out) en el cual el orden es importante. La acción que lleva a cabo el autómata sólo es influenciada no sólo por el estado en que se encuentra y por el símbolo que lee, sino también por el tipo de piedra u objeto que se encuentra arriba en la pila.

a b a b b aq0

q1

q2

q4q3

qi

qn

Cinta de

entrada

Cabeza

lectora Control

Pila

Teoría de la Computación

Page 115: Talf2014.pdf

Definición formal (1)

115

Un autómata de pila (pushdown automata) es una sexteta(K, , , , s0, F) donde: K es un conjunto no vacío de estados.

es el alfabeto de entrada, no vacío.

es el alfabeto de la pila, no vacío.

s0 K es el estado inicial.

F K es el conjunto de estados finales.

(K ( {}) ( {})) -> (K *) es la relación de transición.(p, u, ) (q, ) significa que el autómata está en el estado p, lee el símbolo u, saca de la pila, pasa al estado q e introduce a la pila.La operación “push” (sólo meter a la pila) se logra tomando como la palabra vacía. La operación “pop” (sólo sacar de la pila) se logra tomando como la palabra vacía.Ya que es una relación y no necesariamente una función, un autómata de pila es no determinista.

Teoría de la Computación

Page 116: Talf2014.pdf

Definición formal (2)

116

Una palabra es aceptada por un AP si al “procesarla” completamente, se llega a un estado final y la pila queda vacía. Debido al no-determinismo del autómata es posible que al terminar de procesar la palabra, varios estados estén activos.

Es suficiente que uno de estos estados sea final para que la palabra se acepte. L(M) denota al lenguaje formado por las palabras aceptadas por M.

Teoría de la Computación

Page 117: Talf2014.pdf

Representación gráfica de un AP

117

La transición ((p, u, ), (q, )), (p, u, ) = (q, ), se

representa gráficamente por

y significa que cuando estamos en el estado p, leemos de la

palabra de entrada el símbolo u y sacamos del stack el

símbolo , entonces pasamos al estado q y ponemos en la

pila la cadena .

p q

u, /

Teoría de la Computación

Page 118: Talf2014.pdf

Ejemplo (1)

118

Autómata de pila que acepte {aibi | i >= 0}

K = {q0, q1}

= {a, b}

= {A}

s0 = q0

F = {q0, q1}

(q0, a, ) = (q0, A)

(q0, b, A) = (q1, )

(q1, b, A) = (q1, )

a, / A b, A /

b, A / q0 q1

Teoría de la Computación

Page 119: Talf2014.pdf

Ejemplo (2)

119

Palíndromos de longitud impar

Autómata de pila que acepte {wcwR | w {a, b}*}. wR es la palabra w al revés, por ejemplo, “anita”R = “atina”.

K = {q0, q1}

= {a, b, c}

= {A, B}

s0 = q0

F = {q1}

(q0, a, ) = (q0, A) (q1, a, A) = (q1, )

(q0, b, ) = (q0, B) (q1, b, B) = (q1, )

(q0, c, ) = (q1, )

a, / A

b, / Bb, B /

a, A /

c, / q0 q1

Teoría de la Computación

Page 120: Talf2014.pdf

Ejemplo (3)

120

Palíndromos de longitud par Autómata de pila que acepte {wwR | w {a, b}*}. wR es la palabra

w al revés, por ejemplo, “anita”R = “atina”.

K = {q0, q1}

= {a, b}

= {A, B}

s0 = q0

F = {q1}

(q0, a, ) = (q0, A) (q1, a, A) = (q1, )

(q0, b, ) = (q0, B) (q1, b, B) = (q1, )

(q0, , ) = (q1, )

a, / A

b, / Bb, B /

a, A /

, / q0 q1

Teoría de la Computación

Page 121: Talf2014.pdf

Lenguajes aceptados

121

Todo lenguaje aceptado por un autómata finito es también aceptado por un autómata de pila.Si M = (K, , , s0, F) es un autómata finito, entonces (K, , , ’, s0, F) con =

’ = {((p, u, ), (q, )) | (p, u, q) }

acepta el mismo lenguaje que M.

Los lenguajes libres de contexto son aceptados por los autómatas de pila y los lenguajes generados por los autómatas de pila son los lenguajes libres de contexto.

AF AP

Teoría de la Computación

Page 122: Talf2014.pdf

LLC y AP

122

Sea G = (V, , R, S) una gramática libre de contexto. Entonces el autómata de pila M = ({p, q}, , V, , p, {q}) donde la relación de transición se define de la siguiente manera acepta exactamente el mismo lenguaje que G.

1) (p, , ) = (q, S)

2) (q, , A) = (q, x) para cada regla A x R

3) (q, , ) = (q, ) para cada

El autómata de pila contiene sólo dos estados. El primero se utiliza sólo en la primera transición por lo que los estados no sirven para “recordar” las características de la palabra de entrada, este “recordatorio” se hace en la pila. Las transiciones tipo 2) lo que hacen es derivar en la pila la palabra de entrada sin consumir ningún carácter de entrada. Las transiciones tipo 3) comparan la palabra en la pila con la palabra de entrada.

Teoría de la Computación

Page 123: Talf2014.pdf

Ejemplo (1)

123

Obtener un AP que acepte el lenguaje generado por la gramática libre de contexto cuyas reglas son:

S aSa S bSb S c

Transiciones del AP Tipo 1): (p, , ) = (q, S)

Tipo 2): (q, , S) = (q, aSa) (q, , S) = (q, bSb)(q, , S) = (q, c)

Tipo 3): (q, a, a) = (q, ) (q, b, b) = (q, )(q, c, c) = (q, )

Teoría de la Computación

Page 124: Talf2014.pdf

Ejemplo (2)

124

Analizar la palabra: abcba

Estado Falta leer Pila

p abcba

q abcba S

q abcba aSa

q bcba Sa

q bcba bSba

q cba Sba

q cba cba

q ba ba

q a a

q

Teoría de la Computación

Page 125: Talf2014.pdf

EXPRESIONES REGULARES

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 126: Talf2014.pdf

Expresiones regulares (1)

126

Sea un alfabeto. Las expresiones regulares sobre y los

conjuntos que estos denotan se definen recursivamente como

siguen :

es una er y denota el conjunto vacío

es una er y denota el conjunto {}

a es una er y denota el conjunto {a}

Teoría de la Computación

Page 127: Talf2014.pdf

Expresiones regulares (2)

127

Si E1 y E2 son er que denotan a los lenguajes L1 y L2

entonces

(E1 + E2) es una er y denota el conjunto L1 L2

(E1 E2) es una er y denota el conjutno L1L2

(E1)* es una er y denota el conjunto L1*

Por simplicidad de rotación usaremos las siguientes prioridades :

* mayor prioridad

concadenación

+ menor prioridad

Ejemplo : ab* + c = (a (b)*) + c

Teoría de la Computación

Page 128: Talf2014.pdf

Expresiones regulares (3)

128

Teorema : Toda expresión regular denota un

lenguaje regular

Demostración : Construiremos los autómatas asociados a cada una de las

expresiones regulares.

e.r. básicos

son regulares porque un afd que los reconoce.

q0

er =

q0

qf

er = a

q0

qf

er =

Teoría de la Computación

Page 129: Talf2014.pdf

Expresiones regulares (4)

129

E1 + E2 denota L1 L2

E1E2 denota L1 L2

E1* denota L1*

son regulares (demostrado anteriormente).

Ejemplo : Construir un af para la siguiente expresión regular :

01* + 1

Teoría de la Computación

Page 130: Talf2014.pdf

Expresiones regulares (5)

130

Teorema : Todo lenguaje regular es denotado por una e.r.

Se define Rki j recursivamente :

Rki j = Rk-1

ij Rk-1i k ( Rk-1

kk )* R k-1kj

no alcanzan alcanzan alcanzan el van del

el estado qk qk por estado qk 1 estado qk a qj

primera vez o más veces

R0i j toma los siguientes valores :

i) { a / (qi, a) = qj } si i j

ii){ a / ( qi, a ) = qj } { }, i = j

Teoría de la Computación

Page 131: Talf2014.pdf

Expresiones regulares (6)

131

Ejemplo :

Construir la expresión regular asociado a este a.f.n.d.

q2

a

ba

q1

Teoría de la Computación

Page 132: Talf2014.pdf

Expresiones regulares (7)

132

R0i j 1 2

1 a+ a

2 b+

R1i j 1 2

1 a* a+

2 b+

R2i j 1 2

1 a* a+b*

2 b*

Teoría de la Computación

Page 133: Talf2014.pdf

Expresiones regulares (8)

133

R 111 = ( R0

11 )* = ( a + )+ = a*

R 112 = ( R011 )* R 012 = ( a + )*a = a+

R 121 = R 021 ( R011 )* = ( a + )* =

R 122 = R0

22 + R021( R

011 )* R

012 = b + + ( a+)*a

R 211 = R111+R1

12 ( R122 )*R 121 = a* + a+ (b+) = a*

R 212 = R 1

12 ( R 121 )* = a+ ( b + )* = a + b*

R 221 = ; R 222 = ( b + ) + = b*

Teoría de la Computación

Page 134: Talf2014.pdf

Expresiones regulares (9)

134

Lema del bombeo

Teorema : Sea L un lenguaje regular, entonces

n 0, z L, con z n y z = uvw,

uv n, v 1, tal que uviw L, i 0

Ejemplo : Demostrar que L no es regular

L = 0n 1n n 0

Supongamos que L es regular, entonces debe cumplir el lema del bombeo

Sea n el número de estados del a.f.d. entonces Z = 0n 1n, z = 2n n

Debería existir uvw = z L, uv n, v 1 tal que u vi w L

1.

2.

U = 0i

v = 0k

w = 1nj + k = n uvw L, pero 0j (0k)i 1n L, i 0

u = 0 n-1

v = 01

w = 1 n-1no cumple con uv n

L no es regular

Teoría de la Computación

Page 135: Talf2014.pdf

MAQUINAS DE TURING

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 136: Talf2014.pdf

Máquinas de Turing (1)

136

Máquina abstracta definida por el matemático inglés Alan Turing en Proceedings of the London Mathematical Society 2:230-265, 1936.

Turing empezó tratando de modelar a una computadora humana, es decir, a un humano tratando de resolver algoritmicamente un problema utilizando papel y lápiz. Reglas básicas

Sólo se pueden escribir símbolos que pertenecen a un conjunto finito.

Cada acción que la computadora toma sólo depende del símbolo que está siendo examinado y del “estado mental” en ese momento.

Aunque el estado mental puede cambiar como resultado de los símbolos o cálculos que se han efectuado, el número de estados mentales distintos es finito.

Máquina abstracta Examinar un símbolo individual en el papel.

Borrar un símbolo o reemplazarlo por otro.

Trasladar la atención de una parte del papel a otra.

136 Teoría de la Computación

Page 137: Talf2014.pdf

Máquinas de Turing (2)

Se tiene un alfabeto de entrada y un alfabeto, posiblemente mayor, de los símbolos utilizados durante la operación o cálculos de la máquina.

Un conjunto finito de estados que representan los distintos “estados mentales”.

En lugar de una hoja de papel, se tiene una cinta linear semi-infinita con inicio en el extremo izquierdo e infinita hacia la derecha. Esta cinta esta dividida en cuadros, en cada uno de los cuales puede estar un símbolo o un espacio en blanco (#).

137 Teoría de la Computación

Page 138: Talf2014.pdf

Caricatura de una MT

138 Teoría de la Computación

Page 139: Talf2014.pdf

Operación de la MT

La acción está determinada por el estado actual y el símbolo en la cinta y consiste de tres partes Reemplazar el símbolo en el cuadrado actual por otro que puede ser distinto o el

mismo. Mover la cabeza lectora a la derecha o a la izquierda (a menos que se encuentre en el

extremo izquierdo de la cinta) o quedarse donde está. Hacer una transición de estado, que puede ser distinto o el mismo.

La cinta sirve como dispositivo de entrada y salida así como la memoria disponible para utilizar durante la operación o cálculos de la máquina.

Diferencias de una MT con un autómata La cabeza lectora se puede mover a la izquierda o derecha o quedarse donde está. Puede modificar los datos de entrada. Puede examinar parte de los datos de entrada, modificarlos, irse a otro lugar de la

cinta y ejecutar ciertos cálculos, regresar a re-examinar los datos de entrada, repetir cualquiera de estas acciones y quizás detener el proceso antes de procesar todos los datos de entrada.

En lugar de que un subconjunto de los estados sean estados finales o de aceptación, tendremos dos estados de paro que son un estado de aceptación ha y un estado de rechazo hr.

139 Teoría de la Computación

Page 140: Talf2014.pdf

Definición formal de Máquina de Turing

Una Máquina de Turing es un quintetoT = (Q, , , q0, ) Q es un conjunto finito de estados en el que no está incluído los

estados de paro ha y hr.

es el alfabeto de entrada con el que se forman las cadenas a procesar.

es el alfabeto de la cinta que contiene a pero no al espacio en blanco (#).

q0 es el estado inicial y pertenece a Q.

La función de transición : Q ( {#}) Q {ha, hr} ( {#}) {#}) {R, L, S}(q, X) = (r, Y, D) significa que si la máquina se encuentra en el estado q y leyendo el símbolo X en la cinta, entonces la máquina reemplaza X por Y, se mueve al estado r y mueve la cabeza lectora en la dirección D.

140 Teoría de la Computación

Page 141: Talf2014.pdf

Notación gráfica

(q, X) = (r, Y, D) se puede representar gráficamente

de la siguiente manera

q r

X/Y, D

141 Teoría de la Computación

Page 142: Talf2014.pdf

Configuración inicial

# a b b a # # # … ...

142 Teoría de la Computación

Page 143: Talf2014.pdf

Aceptación de palabras por MT

Una palabra x * es aceptada por una MT T si empezando con la configuración inicial correspondiente a la palabra x, eventualmente se llega al estado de aceptación ha.Note que no es necesario procesar toda la palabra para aceptarla.El lenguaje aceptado por T es el conjunto de palabras aceptadas por T.

143 Teoría de la Computación

Page 144: Talf2014.pdf

Rechazo de palabras por MT

Una palabra x * es rechazada por una MT T si empezando con la configuración inicial correspondiente a la palabra x, eventualmente se llega al estado de rechazo hr.Note que no es necesario procesar toda la palabra para rechazarla.Es costumbre omitir el estado de rechazo y rechazar una palabra cuando no existe una transición, es decir, cuando la máquina se queda “colgada”.

144 Teoría de la Computación

Page 145: Talf2014.pdf

Ejemplo

MT que acepta palabras sobre {a, b} que

inician con ‘a’

1 ha

#/#,R2

a/a,S

b/b,S

#/#,S

hr

145 Teoría de la Computación

Page 146: Talf2014.pdf

Ejemplo: MT palabras en {a, b} que

terminan con ‘a’

1 ha#/#,R 2

a/a,S

b/b,S

#/#,S

#/#,L3

a/a,Rb/b,R

hr

146 Teoría de la Computación

Page 147: Talf2014.pdf

Ejemplos de MT que acepta

(a + b)*aba(a + b)*

MT que acepta (a + b)*aba(a + b)*

MT que acepta (a + b)*aba

MT que acepta palindromos sobre {a, b}.

147 Teoría de la Computación

Page 148: Talf2014.pdf

(a + b)*aba(a + b)*

148 Teoría de la Computación

Page 149: Talf2014.pdf

(a + b)*aba

149 Teoría de la Computación

Page 150: Talf2014.pdf

Palíndromos sobre {a, b}

150 Teoría de la Computación

Page 151: Talf2014.pdf

L = {ss | s (a + b)*}Este lenguaje no es libre de contexto

151 Teoría de la Computación

Page 152: Talf2014.pdf

152 Teoría de la Computación

Page 153: Talf2014.pdf

153 Teoría de la Computación

Page 154: Talf2014.pdf

154 Teoría de la Computación

Page 155: Talf2014.pdf

155 Teoría de la Computación

Page 156: Talf2014.pdf

Estatus de una MT. Versión 1

La configuración de una Máquina de Turing está definida por a) el estado

en el que se encuentra, b) el contenido de la cinta y c) la posición de la

cabeza lectora. La configuración se representa como uqv cuando la MT se

encuentra en el estado q, el contenido de la cinta es la cadena uv (en ese

orden, de izquierda a derecha) y la cabeza lectora se encuentra en el

primer símbolo de v. La cinta sólo contiene espacios blancos (#) a la

derecha del último símbolo de v; para abreviar, estos blancos a la derecha

de la palabra no se indican en la configuración . Por ejemplo, #1011q701111

representa la configuración cuando el contenido de la cinta es

#101101111###..., el estado es q7 y la cabeza lectora se encuentra sobre el

segundo ‘0’.

1 0 1 1 0 1 1 1 1# # # # ...

q7

156 Teoría de la Computación

Page 157: Talf2014.pdf

Estatus de una MT. Versión 2(Texto de John Martin)

La configuración de una Máquina de Turing se representa por una

pareja ordenada (q, xay) que indica que la MT se encuentra en el

estado q, el contenido de la cinta es xay y la cabeza lectora se

encuentra en el símbolo subrayado. En xay se incluye sólo hasta el

último símbolo a la derecha diferente del espacio en blanco

representado por # ó por .

La siguiente configuración se representa por

(q7,, #101101111).

1 0 1 1 0 1 1 1 1# # # # ...

q7

157 Teoría de la Computación

Page 158: Talf2014.pdf

Aceptabilidad

Decimos que un lenguaje L es Turing-aceptable si existe

una máquina de Turing que dá halt para toda entrada w

L, es decir, la palabra w es aceptada por la máquina de

Turing.

158 Teoría de la Computación

Page 159: Talf2014.pdf

Ejemplo

Máquina de Turing que acepte el lenguaje L = {1x | x = 2n para n 0}, es decir, cadenas de 1’s cuya longitud es una potencia de 2.Idea de construcción: 1) Barrer la palabra de izquierda a derecha “tachando” un 1 sí y otro no.

2) Si en el paso 1) la cinta contiene sólo un 1, entonces parar y aceptar.

3) Si en el paso 1) la cinta contiene más de un 1 y el número de 1’s es impar, entonces rechazar.

4) Regresar la cabeza lectora al extremo izquierdo de la cinta.

5) Ir al paso 1).

159 Teoría de la Computación

Page 160: Talf2014.pdf

#/#,R 1/x,R 1/1,R

#/#,L

#/#,S

#/#,R

x/1,L

1/1,L

ha1/1,R

1/#,L

#/#,L

x/x,R

1/x,R

160 Teoría de la Computación

Page 161: Talf2014.pdf

COMPUTABILIDAD

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 162: Talf2014.pdf

162

¿Qué es computabilidad?

Consiste en ser capaz de encontrar la representación adecuada para la descripción de un problema o fenómeno.

Para tal representación es necesario: Un conjunto finito de símbolos.

Hacer asociaciones entre conceptos y elementos del lenguaje (de símbolos)

Encontrar las combinaciones adecuadas de símbolos para evitar ambigüedad.

Definir una manera de confirmar tal descripción para que terceros puedan reproducirla y llegar a los mismos resultados.

Teoría de la Computación

Page 163: Talf2014.pdf

163

El concepto de modelo

Modelo: es una especificación, generalmente en términos de un lenguaje matemático, de los pasos necesarios para reproducir un subconjunto determinado de la realidad. La representación del modelo surge siempre a partir de su descripción.

¿Es posible siempre pasar de la descripción de un modelo a su representación? ¿Todo lo que es descriptible puede ser representable?

Aparentemente la exactitud de la descripción hace depender a la exactitud de la representación.

Existen procesos que pueden ser descritos con gran exactitud, pero su representación o modelado no es posible.

Teoría de la Computación

Page 164: Talf2014.pdf

164

Teoría de la computabilidad

La Teoría de la Computabilidad consiste en encontrar

maneras de representar descripciones de procesos, de tal

manera que se pueda asegurar si existe o no una

representación.

Se dice que un algoritmo es una manera formal y

sistemática de representar la descripción de un proceso.

Teoría de la Computación

Page 165: Talf2014.pdf

BIBLIOGRAFIA

M.Sc. Percy Huertas Niquén

[email protected]

Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas

Page 166: Talf2014.pdf

Bibliografía (1)

[1] “On computable numbers with an application to theEitschundsgenproblem” - Alan M. Turing

[2] “Introducción a la teoría de Autómatas, Lenguajes y Computación” - John Hopcroft & Jeffrey Ullman

[3] “Lenguajes, Gramáticas y Autómatas: un enfoque práctico” -Pedro Isasi, Paloma Martinez & Daniel Borrajo

[4] “Turing y el Ordenador” - Paul Strathern

166 Teoría de la Computación