talf, 2004 - Universidad de La Serena

Anuncio
Talf-2004
Dr. Eric Jeltsch F
Ingeniería en Computación
Universidad de La Serena
(basado en libros (1), (2), (3) y (4))
TALF 2004
Ingeniería en Computación, ULS
1
Bibliografía
(1) Dean, Kelley, "Teoria de Autó matas y Lenguajes
Formales", Prentice Hall, 1995.
(2) C. Papadimitriou, H. Lewis, "Elements of the Theory of
Computation", Prentice Hall, 1980.
(3) Hopcroft, Ullman, "Introduction to Automata Theory,
Languages and Computation", Addison Wesley, 1981.
(4) Cohen Daniel,"Introduction to Computer Theory", John
Wiley & Sons, 1997.
TALF 2004
Ingeniería en Computación, ULS
2
Lenguajes Formales
de
String
TALF 2004
Ingeniería en Computación, ULS
3
Un lenguaje es un conjunto de strings
String: Una sucesión de letras/simbolos
Ejemplo: “perro”, “gato”, “casa”, …
definidos sobre un Alfabeto Σ :
Σ = {a, b, c,K, z}
TALF 2004
Ingeniería en Computación, ULS
4
Alfabeto y Strings
Si usamos como alfabeto:
Strings
TALF 2004
a
ab
abba
baba
aaabbbaabab
Ingeniería en Computación, ULS
Σ = {a, b}
u = ab
v = bbbaaa
w = abba
5
Operaciones con String
w = a1a2 L an
abba
bbbaaa
v = b1b2 Lbm
Concatenación
wv = a1a2 L anb1b2 Lbm
TALF 2004
Ingeniería en Computación, ULS
abbabbbaaa
6
w = a1a2 L an
ababaaabbb
Reverso
R
w = an L a2 a1
TALF 2004
bbbaaababa
Ingeniería en Computación, ULS
7
Largo de un String
w = a1a2 L an
Largo:
Ejemplo:
w =n
abba = 4
aa = 2
a =1
TALF 2004
Ingeniería en Computación, ULS
8
Largo de la Concatenation
Comportamiento logarítmico:
uv = u + v
Ejemplo:
u = aab, u = 3
v = abaab, v = 5
uv = aababaab = 8
uv = u + v = 3 + 5 = 8
TALF 2004
Ingeniería en Computación, ULS
9
String Vacío
Un string sin ninguna letra:
Observaciones:
λ
λ =0
λw = wλ = w
λabba = abbaλ = abba
TALF 2004
Ingeniería en Computación, ULS
10
Substring
Substring de un string: Una subsucesión de
caracteres consecutivos.
TALF 2004
String
Substring
abbab
abbab
abbab
abbab
ab
abba
b
bbab
Ingeniería en Computación, ULS
11
Prefijo y Sufijo
abbab
Prefijos
λ
a
ab
abb
abba
abbab
TALF 2004
Sufijos
abbab
bbab
bab
ab
b
λ
Ingeniería en Computación, ULS
w = uv
prefijo
sufijo
12
Otras Operaciones
n
w =1
ww
w
L
42
4
3
n
Ejemplo:
Definición:
(abba ) = abbaabba
2
0
w =λ
(abba ) = λ
0
TALF 2004
Ingeniería en Computación, ULS
13
La Operación *
Σ * : el conjunto de todos los posibles strings
de un alfabeto Σ
Σ = {a, b}
Σ* = {λ , a, b, aa, ab, ba, bb, aaa, aab,K}
Σ = {0,1}
Σ* = {λ ,0,1,00,10,11,01, K}
TALF 2004
Ingeniería en Computación, ULS
14
La Operación +
+ : el conjunto de todos los strings posibles
Σ
desde el alfabeto Σ excepto λ
Σ = {a, b}
Σ* = {λ , a, b, aa, ab, ba, bb, aaa, aab,K}
+
Σ = Σ * −λ
+
Σ = {a, b, aa, ab, ba, bb, aaa, aab,K}
TALF 2004
Ingeniería en Computación, ULS
15
Lenguajes
Un lenguaje es cualquier subconjunto de
Σ*
Ejemplo:
Σ = {a, b}
Σ* = {λ, a,b, aa, ab, ba,bb, aaa,K}
Lenguajes:
{λ}
{a, aa, aab}
{λ , abba, baba, aa, ab, aaaaaa}
TALF 2004
Ingeniería en Computación, ULS
16
Observar:
Conjunto
∅ = { } ≠ {λ}
Tamaño del Conjunto
{} = ∅ = 0
Largo String
TALF 2004
{λ} = 1
λ =0
Ingeniería en Computación, ULS
17
Otros Ejemplos
Un lenguaje infinito
λ
ab
aabb
aaaaabbbbb
TALF 2004
n n
L = {a b : n ≥ 0}
∈L
Ingeniería en Computación, ULS
abb ∉ L
18
Operaciones sobre Lenguajes
Las operaciones usuales
{a, ab, aaaa} U {bb, ab} = {a, ab, bb, aaaa}
{a, ab, aaaa} I {bb, ab} = {ab}
{a, ab, aaaa} − {bb, ab} = {a, aaaa}
Complemento:
L = Σ * −L
{a, ba} = {λ , b, aa, ab, bb, aaa,K}
TALF 2004
Ingeniería en Computación, ULS
19
Reverso
Definición:
Ejemplo:
R
R
L = {w : w ∈ L}
{ab, aab, baba} = {ba, baa, abab}
R
n n
L = {a b : n ≥ 0}
R
n n
L = {b a : n ≥ 0}
TALF 2004
Ingeniería en Computación, ULS
20
Concatenación
Definición:
Ejemplo:
L1L2 = {xy : x ∈ L1, y ∈ L2 }
{a, ab, ba}{b, aa}
= {ab, aaa, abb, abaa, bab, baaa}
TALF 2004
Ingeniería en Computación, ULS
21
Otra Operación
Definición:
n
L3
L =1
LL2
L
n
{a, b} = {a, b}{a, b}{a, b} =
{aaa, aab, aba, abb, baa, bab, bba, bbb}
3
Caso especial:
0
L = {λ}
0
{a , bba , aaa } = {λ}
TALF 2004
Ingeniería en Computación, ULS
22
Más Ejemplos
n n
L = {a b : n ≥ 0}
2
n n m m
L = {a b a b : n, m ≥ 0}
2
aabbaaabbb ∈ L
TALF 2004
Ingeniería en Computación, ULS
23
Clausura de Kleene(*)
Definición:
Ejemplo:
0
1
2
L* = L U L U L L

λ ,

a, bb,


{a, bb}* = 

aa
abb
bba
bbbb
,
,
,
,


aaa, aabb, abba, abbbb,K
TALF 2004
Ingeniería en Computación, ULS
24
Clausura Positiva
Definición:
+
1
2
L = L U L UL
= L * −{λ}
a, bb,


+ 
{a, bb} = aa, abb, bba, bbbb,

aaa, aabb, abba, abbbb,K


TALF 2004
Ingeniería en Computación, ULS
25
Descargar