Download - Talf2014.pdf
![Page 1: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/1.jpg)
TEORÍA DE LA COMPUTACIÓN
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 2: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/2.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/3.jpg)
LENGUAJES FORMALES
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 4: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/4.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/5.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/6.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/11.jpg)
GRAMATICAS
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 12: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/12.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/20.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/21.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/28.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/29.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/33.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/38.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/39.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/40.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/41.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/42.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/43.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/44.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/45.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/46.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/47.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/48.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/49.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/50.jpg)
AUTOMATAS FINITOS
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 51: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/51.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/52.jpg)
AUTOMATAS FINITOS
DETERMINISTICOS
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 53: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/53.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/54.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/55.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/56.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/57.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/58.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/59.jpg)
Ejemplo (2)
Convenciones :
qi
qj
a
: estado final
: estado inicial
: (qi, a) = qj
Teoría de la Computación
![Page 60: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/60.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/61.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/62.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/63.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/64.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/65.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/66.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/67.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/68.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/69.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/70.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/71.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/72.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/73.jpg)
¿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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/74.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/75.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/76.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/77.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/78.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/79.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/80.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/81.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/82.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/83.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/84.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/85.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/86.jpg)
AUTOMATAS FINITOS NO
DETERMINISTICOS
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 87: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/87.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/88.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/89.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/90.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/91.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/92.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/93.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/94.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/95.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/96.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/97.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/98.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/99.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/100.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/101.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/102.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/103.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/104.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/105.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/106.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/107.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/108.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/109.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/110.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/111.jpg)
AUTOMATAS APILADORES
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 112: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/112.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/113.jpg)
Ejemplo (1)
113
{anbn | n 1}
a
a
b
b
Teoría de la Computación
![Page 114: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/114.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/115.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/116.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/117.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/118.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/119.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/120.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/121.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/122.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/123.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/124.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/125.jpg)
EXPRESIONES REGULARES
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 126: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/126.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/127.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/128.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/129.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/130.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/131.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/132.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/133.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/134.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/135.jpg)
MAQUINAS DE TURING
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 136: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/136.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/137.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/138.jpg)
Caricatura de una MT
138 Teoría de la Computación
![Page 139: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/139.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/140.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/141.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/142.jpg)
Configuración inicial
# a b b a # # # … ...
142 Teoría de la Computación
![Page 143: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/143.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/144.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/145.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/146.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/147.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/148.jpg)
(a + b)*aba(a + b)*
148 Teoría de la Computación
![Page 149: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/149.jpg)
(a + b)*aba
149 Teoría de la Computación
![Page 150: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/150.jpg)
Palíndromos sobre {a, b}
150 Teoría de la Computación
![Page 151: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/151.jpg)
L = {ss | s (a + b)*}Este lenguaje no es libre de contexto
151 Teoría de la Computación
![Page 152: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/152.jpg)
152 Teoría de la Computación
![Page 153: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/153.jpg)
153 Teoría de la Computación
![Page 154: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/154.jpg)
154 Teoría de la Computación
![Page 155: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/155.jpg)
155 Teoría de la Computación
![Page 156: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/156.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/157.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/158.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/159.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/160.jpg)
#/#,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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/161.jpg)
COMPUTABILIDAD
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 162: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/162.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/163.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/164.jpg)
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](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/165.jpg)
BIBLIOGRAFIA
M.Sc. Percy Huertas Niquén
Universidad Nacional de San AgustínEscuela Profesional de Ingeniería de Sistemas
![Page 166: Talf2014.pdf](https://reader033.vdocuments.co/reader033/viewer/2022051516/55cf945f550346f57ba18d6e/html5/thumbnails/166.jpg)
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