Beruflich Dokumente
Kultur Dokumente
Un Smbolo es una entidad abstracta que no necesitamos definir formalmente, como por ejemplo una
letra del alfabeto o un dgito.
a,b,c Smbolos
Abbca String
If (a=b) or (b=c) then i:=i+1; es una palabra PASCAL
El tamao de un String wdenotado por |w| es el nmero de smbolos que componen el string.
Por ejemplo |abbca| = 5
a0
a1 a
2
a aa
a3 aaa
Etc...
Substrings: Sean x,y,z, w= xyz strings arbitrarios sobre un alfabeto . Se llama al string y (x,z)
substring del string xyz.
Un Prefijo de un string es cualquier substring del comienzo de ese string; y un sufijo de un string es
un substring del final de ese string.
1
Prefijos ,a,ab,abc
Sufijos ,c,bc,abc
Si el prefijo (sufijo) de un string es distinto del string mismo, el prefijo (sufijo) se denomina prefijo
(sufijo) propio del string.
Observacin: es substring, prefijo y sufijo de cualquier string.
x xR
arroz zorra
radar radar
rio oir
Definicin : Un lenguaje sobre un alfabeto es un conjunto de strings sobre
Definicin : * denota al conjunto que contiene todos los strings sobre , inclusive .
Por ejemplo:
= {0,1}
* = {,0,1,00,01,10,11,000,...}
Todo lenguaje L sobre es un subconjunto de *. Bajo concatenacin () * es un monoide (*,,)
Las mquinas de estado finito son modelos matemticos que actan sobre el problema de
transformacin de cadenas de smbolos: dada una sucesin de smbolos x, transformarla en la sucesin
y de una forma mecnica.
Este problema es una abstraccin de muchos problemas comunes. Por ejemplo, el problema de
sumar dos nmeros a y b puede considerarse como el problema de transformar la sucesin de
smbolos "a+b" en una sucesin "c" que represente la suma de a y b.
En situaciones para resolver problemas, la entrada a la mquina son las acciones que deben
realizarse y los estados son los resultados intermedios.
2
Mquinas de Estados Finitos
Para Resolver Problemas:
1.-Si no se conoce un mtodo para resolver un problema dado, debe haber una comprensin ms o
menos completa del problema para que podamos llegar a una solucin.
2.-Si se conoce un "buen" mtodo para resolver un problema entonces no es necesario comprender el
problema. Por ejemplo un empleado puede llevar las cuentas de una firma comercial sin necesidad de
entender las finanzas de la firma, si sabe exactamente lo que debe hacer. Luego en esta situacin es
necesario especificar exactamente el mtodo de solucin en un lenguaje comprensible para una
mquina.
Podramos decir que lo que nos interesa es una transformacin de las entradas en salidas.
x f(x)=y y
Aplicaciones
Situacin inicial : (0,0), Situacin final (2,x) o (y,2) donde 0 <= x <= 4 o 0 <= y <= 3 en cada caso.
Funciones Permitidas :Llenar J1, Llenar J2, Vaciar J1, Vaciar J2, Trasvasijar J1-J2, Transvasijar J2-
J1.
3
Si lleno J1 entonces no se puede Trasvasijar J2-J1
Si vaco J2 entonces no se puede Trasvasijar J2-J1
Si lleno J2 entonces no se puede Trasvasijar J1-J2
Si vaco J1 entonces no se puede Trasvasijar J1-J2
[FALTA IMAGEN]
Es decir, el lenguaje aceptado por el AF son todos los posibles recorridos desde el estado inicial
hasta un estado final. Cada una de estas palabras representa la composicin de funciones que nos llevan
a una solucin, incluyendo palabras infinitas. Si sustituimos ahora.
(0,0) por q0 (3,0) por q1 (0,4) por q2 (3,4) por q3 (0,3) por q4
(3,1) por q5 (3,3) por q6 (0,1) por q7 (2,4) por q8 (1,0) por q9
(1,4= por q10 (3,2) por q11
= {LL1,LL2,V1,V2,T12,T21}
F = {q8,q11}
4
q8 - - - - - -
q9 q1 q10 q0 - q7 -
q10 q3 - q2 q9 - q11
q11 - - - - - -
Autmatas Finitos
Ejemplos:
(1) Disee un AF para reconocer expresiones aritmticas de longitud arbitraria que comprenden
enteros positivos separados por los signos de suma, resta, multiplicacin o divisin.
Q = {0,1}
={0,1,2,3,4,5,6,7,8,9,+,-, ,:}
q0 = {0}
F = {1}
(0,1+27:3-2) |--- (1,+27:3-2) |--- (0,27:3-2) |--- (1,7:3-2) |--- (1,:3-2) |--- (0,3-2) |--- (1,-2) |--- (0,2) |---
(1,)
5
(2) A = <Q,,q0,F >
Q = {0,1,2,3}
={a,b}
F = {3}
qo = {0}
A b
0 {0,1} {0,2}
1 {1,3} {1}
2 {2} {2,3}
3 - -
Teorema : Si L = L(A) para un AFND, A = <Q,,q0,F> entonces L = L(A') para un AFD, A'. Se
define un AFD A' = <Q',',q0',F'> como sigue:
Q'=P(Q) (|Q'|=2|Q|)
q0 = [q0]
F' = {B Q'/ BF} (Todos los estados que contienen algn estado final)
'([q1,...,qi],a) = [p1,...,pj] ssi ({q1,...,qi},a) = {p1,...,pj}
Osea ' aplicado a un elemento q' Q se calcula aplicando a cada estado de Q' representado por q'
= [q1,...,qi].
Al aplicar ' a cada q1,...,qi y tomando la unin, se obtienen nuevos conjuntos de estados p1,...,pj.
Este nuevo conjunto tiene un representante [p1,...,pj]Q' y ese elemento es el valor de '([q1,...,qi],a).
6
Ejemplo: Tomando el AFND anterior
Q = {0,1,2,3}
={a,b}
F = {3}
qo = {0}
a b
0 {0,1} {0,2}
1 {1,3} {1}
2 {2} {2,3}
3 - -
Q' = {[0],[1],[2],[3],[01],[02],[03],[12],[13],[23],[012],[013],[023],[123],[0123]}
q0' = [0]
F' = {[3],[03],[13],[23],[013],[023],[123],[0123]}
a B
[0] [01] [02]
[1] [13] [1]
[2] [2] [23]
[3] - -
[01] [013] [012]
[02] [012] [023]
[03] [01] [02]
[12] [123] [123]
[13] [13] [1]
[23] [2] [23]
[012] [0123] [0123]
[013] [013] [012]
[023] [012] [023]
[123] [123] [123]
[0123] [0123] [0123]
7
Reemplazando:
[0] por q0
[01] por q1
[02] por q2
[013] por q3
[012] por q4
[023] por q5
y [0123] por q6
Ejemplo :
i)
(q0,aababaa) |--- (q1,ababaa) |--- (q3,babaa) |--- (q4,abaa)) |--- (q6,baa) |--- (q6,aa) |--- (q6,a) |--- (q6,)
ii)
(q0,bba) |--- (q2,ba) |--- (q5,a) |--- (q4,)
8
Autmatas con Pila
Formalmente un AP tiene:
- un control finito
- una cinta de entrada
- una pila
1.Lee un smbolo de la entrada, dependiendo de este smbolo, del tope de la pila y del estado del
control, tiene un nmero de elecciones posibles. Cada eleccin consiste de un nuevo estado para el
control (posiblemente el mismo) y un string de smbolos (posiblemente vaco) para reemplazar el
smbolo del tope de la pila. Despus de hacer la seleccin la cabeza lectora avanza un smbolo.
2.Es similar al 1º (llamado -move) excepto que el smbolo de entrada no es usado, por lo tanto
la cabeza lectora no avanza. este tipo de movimiento permite que el AP manipule la pila sin leer
smbolos de la entrada.
1.Es aquel formado por el conjunto de entradas para las cuales una secuencia de movimientos llega a
pila vaca (despus de haber ledo la entrada completa). Son referenciados como lenguajes aceptados
por pila vaca.
9
2.Similar al AF, esto es se designan estados finales y la palabra es aceptada cuando al ser leda
completamente, el AP llega a un estado final.
Interpretaciones
(q,a,z) ={(p1,1),(p2,2),...,(pm,m)}
q y pi son estados, a z i
(q,,z) ={(p1,1),(p2,2),...,(pm,m)}
Si el control est en estado q, independientemente del smbolo de entrada, el smbolo z del tope de la
pila es sustituido por el string i y el estado cambia a pi; pero es este caso no lee ningn smbolo de la
entrada.
Para los AP no hay un teorema como para los AF que diga que L = L(A) y A no determinstico,
entonces L = L(A') y A' determinstico.
10
Mquinas de Turing
La MT es un modelo matemtico simple de un computador. A pesar de su simplicidad, modela la
capacidad de computacin (clculo) de un computador de propsito general.
La MT es estudiada tanto para la clase de lenguajes que ella define (llamados conjuntos
recursivamente numerables) como la clase de funciones enteras que computa (llamadas funciones
recursivas parciales). Es un procedimiento efectivo.
La MT tiene un control finito, con una cabeza lectora-escritora y una cinta de entrada, que es infinita
tanto por la izquierda como por la derecha. Sobre sta el control lee y escribe, adems puede moverse
en ambos sentidos
11
Definicin: Una MT, T es denotada por <Q,,q0,b,F> donde:
Definicin: Una configuracin de la MT, T es denotada por una Tripla (1,q,2) donde:
q Q es el estado actual
1 es el string que est a la izquierda de la cabeza y
2 es el string que est a la derecha de la cabeza, el smbolo examinado es el que est a la
izquierda de2
Definicin: sea (X1 X2...Xi-1,q,xi...Xn) una configuracin y supngase (q,Xi) = (p,Y,I) entonces :
(X1 X2 ... Xi-1,q,Xi...Xn) |--- (X1 X2 ... Xi-1 Y,p, Xi+1 ...Xn)
Definicin: El lenguaje aceptado por T, denotado por L(T), es el conjunto de strings en * tal que
cuando la mquina para, el control est en un estado final.
Dada una MT que reconoce un lenguaje L, asumimos que la MT para, i.e. no tiene movimientos,
cuando la entrada es aceptada. Sin embargo, para palabras no aceptadas, es posible que la mquina
nunca pare.
12
Gramticas
Una forma de definir un lenguaje es mediante un reconocedor que acepte las palabras que pertenecen
a l.
Otro mtodo para definirlos es mediante sistemas generativos llamados gramticas, donde cada
string del lenguaje puede construirse por pasos bien definidos, especificados por las reglas de la
gramtica.
Definicin : Una gramtica es un sistema para definir un lenguaje, como tambin una herramienta para
imponer a los strings del lenguaje una estructura til.
Ejemplo:
P:
<frase> :: = <sujeto><predicado><punto> FSPL
<sujeto> :: = <sustantivo> S
<sustantivo> :: = mara | juan Nmara
Njuan
<predicado> :: = <verbo><objeto> PVO
<verbo> :: = quiere Vquiere
<objeto> :: = a <sustantivo> OaN
<punto> :: = . L.
N = {F, S, N, P, V, O, L}
= {alfabeto espaol}
S=F
Ejemplo:
P:
<real sin signo :: = <entero sin signo.<dgito{<dgito} | <entero sin signo.<dgito{<dgito}E<escala |
<entero sin signo E <escala
<escala ::= <estero sin signo | <signo<entero sin signo
<signo ::= + | -
<entero sin signo ::= <dgito {<dgito}
<dgito ::= 0 | 1 | ... | 8 | 9
13
N = {R,I,D,C,S}
= {0,1,...,8,9,+,-,E,}
S=R
P:
RI.I
RNI.IEC
ID
IDI
CI
CSI
S+
S-
Dd con d=0,1,...,8,9
Ejemplo : 25.345
Ejemplo : 25.3E-18
14
Definicin : Forma sentencial
Sea G = <N,S,P,S> una gramtica
a)S es una forma sentencial
b)Si es una forma sentencial y P, entonces es tambin una forma sentencial.
Una forma sentencial que no contiene no-terminales se llama sentencia generada por G.
Definicin : El lenguaje generado por una gramtica G, denotado por L(G), es el conjunto de sentencias
generadas por G.
Definicin : Sea G=<N,S,P,S una gramtica. Se define la relacin "deriva directamente" denotado por
, sobre (N como:
, si (N y P
+
cierre transitivo
*
cierre reflexivo transitivo
k existe una secuencia 0, 1, ..., k de k+1 strings, o formas sentenciales, (no necesariamente
iguales) tales que
Esta sucesin de formas sentenciales es llamada una derivacin de longitud k desde hasta .
L(G) = {w / w *, S *w}
Ejemplo:
25.345
R I.I DI.I 2I.I 2D.I 25.I 25.DI 25.3I 25.3DI 25.34I 25.34D 25.345
15
25.3E-18
R I.IEC DI.IEC 2I.IEC 2D.IEC 25.IEC 25.DEC 25.3EC 25.3ESI 25.3E-I
25.3E-DI 25.3E-1I 25.3E-1D 25.3E-18
AaB
a
con A,B N, a
de tipo 2 o gramtica libre del contexto, si cada produccin en P s de la forma
A, A N, (N
de tipo 1 o gramtica sensible al contexto, si cada produccin en P es de la forma
con || = ||, (N
de tipo 0 o irrestricta, si no tiene restricciones
Si un lenguaje L puede ser generado por una gramtica de tipo X, entonces se llama a L un "lenguaje
de tipo X".
El lenguaje recibe el nombre del tipo de gramtica ms restringida capaz de generarlo.
16
Ejemplo: Gramtica regular
G1 = ({S,A,B},{0,1},P1,S)
P1 : S 0A | 1B | 0
A 0S | 1B
B 1B | 1 | 0
G2 = ({R,I,B,C,D,F,G,H},{+,-,d, E, },P2,R)
P2 : R +I | -I | dB
I dB
B dB | C
C d | dD
D d | dD | EF
F +G | -G | d | dH
G d | dH
H d | dH
G4 = ({S},{0,1},P4,S)
P4 : S 0S1 | 01
G5 = ({S},{0,1},P5,S)
P5 : S 0S1 |
17
Ejemplo : Gramtica sensible al contexto
G6 = ({S,B,C},{a,b,c},P6,S)
P6 : S aSBC | abC
CB BC
bB bb
bC bc
cB Bc
cC cc
Derivaciones
G1:
S 0A 00S 001B 0011B 00110
G2:
R dB ddB dd.C dd.dD dd.dEF dd.dE-G dd.dE-dH dd.dE-dd
G3:
S bA bbAA bbaSA bbaaBA bbaabA bbaaba
G4:
S 0S1 00S11 000S111 00001111
G5:
S 0S1 00S11 0011
G6:
S aSBC aaSBCBC aaabCBCBC aaabcBCBC aaabBcCBC aaabbcCBC
aaabbccBC aaabbcBcC aaabbBccC aaabbbccC aaabbbccc
Gramticas Regulares
Teorema: Sea <N,,P,S> una gramtica regular, entonces existe un AFND, A = <Q,,q0,F> tal que
L(G) = L(A).
Prueba:
Q = N {T} T N, es decir, los estados de A son los no-terminales de G ms un estado T que no est
en N.
qo = S
F = Si S P entonces {S,T}
Si S P entonces {T}
18
S no debe aparecer al lado derecho de ninguna produccin si S P.
Si B a P entonces T B,a)
Si B aC P entonces C B,a), C N
,a) = a
Sea w = a1a2...an, n = 1
Por definicin de :
S a1A1 P implica A1 S,a1)
A1 a2A2 P implica A2 ,a2)
: : : : : : : : : : : :
An-1 an P implica T An-1,an)
(S,w) = (S,a1a2...an) |--- (A1,a2...an) |-*- (An-1,an) |--- (T,que es configuracin final.
A1 S,a1)
A2 ,a2)
: : : : :
T n-1,an)
S a1A1
A1 a2A2
: : : :
An-1 an
19
luego :
S a1A1 a1a2A2 ... a1a2..an-1An-1 a1a2...an-1an
es una derivacin en G y w L(G)
Ejemplo:
G1 = ({S,A,B},{0,1},P1,S)
P1 : S 0A | 1B | 0
A 0S | 1B
B 1B | 1 | 0
entonces
0 1
S {A,T} {B}
A {S} {B}
B {T} {BT}
T - -
0 1
20
[S] [AT] [B]
[B] [T] [BT]
[AT] [S] [B]
[BT] [T] [BT]
[T] - -
Teorema: Sea A = <Q,,q0,F AFD, entonces existe una gramtica regular, tal que L(G) = L(A).
Prueba:
Defnase una gramtica regular G como sigue:
i) Si (B,a) = C entonces B aC P
ii) Si (B,a) = C y C F entonces B a P
Ejemplo: [imagen]
G = <N,,P,S >
21
N = {[S],[AT],[AS],[AST],[B],[BT]}
= {0,1}
S = [S]
P:
[S] 0[AT] | 0 | 1[B]
[AT] 0[S] | 1[B]
[B] 0[T
[BT] 0[T
[T]
S 0A | 1B | 0
A 0S | 1B
B 1B | 1 | 0
22