Escolar Documentos
Profissional Documentos
Cultura Documentos
La Mquina de Turing (MT) fue introducida por Alan M. Turing en 1936, y puede
considerarse como un modelo abstracto que formaliza la idea Intuitiva de algoritmo.
(MT) Es un modelo computacional que realiza una lectura/escritura de manera
automtica sobre una entrada llamada cinta, generando una salida en esta misma.
Este modelo est conformado por un alfabeto de entrada y uno de salida, un smbolo
especial llamado blanco (normalmente b, o 0), un conjunto de estados finitos y un
conjunto de transiciones entre dichos estados.
Su funcionamiento se basa en una funcin de transicin, que recibe un estado inicial y
una cadena de caracteres (la cinta, la cual es finita por la izquierda) pertenecientes al
alfabeto de entrada. Luego va leyendo una celda de la cinta , borrando el smbolo ,
escribir el nuevo smbolo perteneciente al alfabeto de salida y finalmente avanza a la
izquierda o a la derecha (solo una celda a la vez), repitiendo esto segn se indique en
la funcin de transicin, para finalmente detenerse en un estado final o de aceptacin,
representando as la salida.
Una mquina de Turing con una sola cinta puede ser definida como una 7-tupla ;
donde:
es el estado inicial.
es un movimiento a
Esta Mquina de Turing est definido sobre el alfabeto ={a,b,c}, posee el conjunto de
estados
Q={qo,q1,q2,q3,q4,q5,q6}, con las transiciones que se pueden ver. Su estado inicial es
q1 y el estado final es q0, el lenguaje de salida ={X,Y,Z,B} siendo B el smbolo
denominado Blanco.
La caja es tan fina que solo el trozo de cinta que ocupa un bit (0 1) est en su
interior. La mquina tiene una serie de estados internos finitos que tambin se pueden
numerar en binario. Para llevar a cabo algn algoritmo , la mquina se inicializa en
algn estado interno arbitrario. A continuacin , se pone en marcha y la mquina lee el
bit que se encuentra en ese momento en su interior y ejecuta alguna operacin con
ese bit (lo cambia o no, dependiendo de su estado interno). Despus se mueve hacia
la derecha o hacia la izquierda, y vuelve a procesar el siguiente bit de la misma
manera. Al final se para, dejando el resultado al lado izquierdo por ejemplo.
Los smbolos que definen el estado del dispositivo no tienen por que coincidir con los
smbolos que se pueden leer o escribir en la cinta. En los programas presentados en el
artculo, los posibles smbolos a leer o escribir en la cinta son el 0 y el 1, y los posibles
estados se representan con letras maysculas. En el emulador , existe un cambio en
la representacin del estado , usando para ello los nmeros del 0 al 99, para permitir
un mayor nmero de ellos. La mquina tiene un funcionamiento totalmente mecnico y
secuencial. Lo que hace es leer el smbolo que hay en la casilla que tiene debajo.
Despus toma el smbolo del estado en que se encuentra. Con estos dos datos
accede a una tabla, en la cual lee el smbolo que debe escribir en la cinta, el nuevo
estado al que debe pasar y si debe desplazarse a la casilla izquierda o derecha.
Ejemplo Definimos una mquina de Turing sobre el alfabeto {0,1}, donde 0 representa
el smbolo blanco. La mquina comenzar su proceso situada sobre un smbolo 1 de
una serie.
Vemos que esta mquina no hace gran cosa. Sin embargo, una mquina de Turing
puede hacer cosas tiles, tales como suma r dos nmeros, multiplicarlos, copiarlos,
etc. Disponiendo de una mquina con el suficiente nmero de estados, podramos
hacer con ella cualquier operacin que un ordenador normal pudiese realizar.
Las mquinas de Turing plantean una deduccin bastante curiosa: dado que en ellas
se puede realizar cualquier trabajo computable , es posible programarlas para que
simulen el comportamiento de un potente ordenador. Y como una mquina de Turing
puede ser codificada en cualquier ordenador, por pequeo que sea, sera posible (si
disponemos de memoria suficiente, claro) emular en nuestro ordenador de casa una
mquina de Turing que simule un superordenador. Esto significa que todos los
ordenadores pueden realizar exactamente el mismo tipo de tareas , y que los clculos
que pueda realizar el ms grande los puede llevar a cabo tambin el ms pequeo. La
nica diferencia sera, obviamente, la velocidad.
LA TEORA DE AUTMATAS
La teora de autmatas es el estudio de dispositivos de clculo abstractos, es decir, de
las mquinas. Antes de que existieran las computadoras, en la dcada de los aos
treinta, A. Turing estudi una mquina abstracta que tena todas las capacidades de
las computadoras de hoy da, al menos en lo que respecta a lo que podan calcular. El
objetivo de Turing era describir de forma precisa los lmites entre lo que una mquina
de clculo poda y no poda hacer; estas conclusiones no slo se aplican a
las mquinas abstractas de Turing, sino a todas las mquinas reales actuales.
Definiciones bsicas:
Un alfabeto es el conjunto de caracteres o smbolos que se utilizan en un lenguaje.
A estos smbolos les llamaremos Variables terminales o simplemente terminales.
AUTOMATAS FINITOS
Un Autmata finito (AF) es una mquina de estados que determina si una cadena
pertenece a o no al Lenguaje. Para decidir si la cadena pertenece al lenguaje lee los
caracteres que la forman de izquierda a derecha (A esto se le llama "La entrada") y
con esta informacin decide si debe permanecer en el estado en el que se encuentre o
cambiarse a otro estado. El AF tiene un solo estado inicial que es el estado en el que
se encuentra cundo empieza a leer la entrada y puede tener varios estado finales. Si
cuando termine de leer la entrada se encuentra en uno de estos estados finales,
entonces la entrada es una cadena que pertenece al Lenguaje. Si cuando termine de
leer la entrada no queda el autmata en uno de los estados finales, entonces la
entrada no es una cadena que forme parte del lenguaje. Formalmente, Un Autmata
finito es un quinteto ordenado
(Q, , , q0 , F )
Donde:
.-Denota al alfabeto
: (Qx) Q
.-Mapeo de transicin entre estados
q0
.- Estado inicial
F.- Conjunto de estados finales
( q, a ) p
Ejemplo: El lenguaje formado por todas las cadenas formadas de 0's y 1's donde no
existan dos 0's juntos se puede expresar de manera exhaustiva.
L={0,1,01,10,11,010,011,101,110,111,0101,1010,0111,1011,1101,1110,1111,...}
Para identificar cuando una cadena de cierta longitud pertenece a este lenguaje se
puede utilizar el siguiente AF.
Donde:
(q0 ,0) q1 ; (q0 ,1) q2 ; (q1 ,0) q3 ; (q1 ,1) q2 ; (q2 ,0) q1 ; (q2 ,1) q2 ; (q3 ,0) q3 ; (q3 ,1) q3
( q, a ) Q
Qx
parejas ordenadas del conjunto
y el conjunto
2Q
Los autmatas finitos indeterministas no saben en todos los estados a que estado se
deben cambiar al leer algn terminal de la entrada de forma inequvoca. Por ejemplo,
( q, a) { p, m, n}
( q, a ) Q
Ejemplo 2 Un Autmata finito Indeterminista que reconoce cadenas de 0's y 1's que
tengan al menos dos 1's consecutivos en alguna parte, es decir, el lenguaje:
L={11,011,110,111,0011,0110,0111,1100,1101,1110,1111,...}
Donde:
( p,0) { p}; ( p,1) { p, q}; (q,1) {m}; ( m,0) {m}; (m,1) {m};
[q1 , q2 ,..., qm ]
AF determinista que puede ser etiquetado como
que serian los estados
en los que el AF indeterminista podr aestar. Este autmata pretende entonces emular
al original. Formalmente, el AF indeterminista:
M (Q, , , q0 , F )
Se convierte en el AF determinista
Donde:
Q' 2Q
M ' ({[ p], [m], [ p, q ], [ p, m], [ p, q, m]},{0,1}, ' , [ p], {[ p, m], [ p, q, m]})
Donde :
' ([ p ],0) [ p ]
' ([ p],1) [ p, q]
' ([ p, q ],0) [ p, m]
' ([ p, q],1) [ p, q, m]
' ([ p, m],0) [ p, m]
' ([ p, m],1) [ p, q, m]
Puesto que
' ([ p, q, m],0) [ p, m]
' ([ p, q, m],1) [ p, q, m]
Ntese que los estados finales de M' son todos aquellos en que incluyan algn
estado final de M
Para evitar la determinacin de estados que queden desconectados del resto del
autmata y adems trabajar de balde se recomienda solo determinar las salidas de
aquellos estados que ya han demostrado que se puede hacer una transicin hacia
ellos, de manera que el orden en el que se vayan apareciendo se trabajaran despus y
si no aparecen nunca ya no se trabajar con ellos. Los AF deterministicos obtenidos a
partir de AF indeterministas tienen ms estados y transiciones que estos ltimos, sin
embargo, normalmente no crecen tan desmesuradamente como podra pensarse, en
el ejemplo Anterior, de un autmata indeterminista de 3 estados se obtuvo uno
determinista de 4 estados y no de 8 ( La cardinalidad del conjunto potencia de un
conjunto de n elementos es de
2n
).
Con el objeto de facilitar el diseo de AF's, los AF's con transiciones permiten
transiciones entre estados sin necesidad de leer ningn terminal de la entrada, o lo
que es lo mismo, leyendo la cadena vacia.
Para llevar el rastro de las transiciones que dar qualquier AF se puede generalizar
: Qx 2
*
define como
y se
q1
Observe como la transicin entre
q3
tampoco la transicin entre
q2
y
q4
y
: 2 Q * 2 Q
De manera que:
M (Q, , , q0 , F )
Sea
Entonces:
M de la siguiente manera:
Donde:
y a
Lo cual quiere decir que el estado q del autmata M' tendr las mismas transiciones
a otros estados como el del autmata M mas las transiciones hacia las que se puede ir
del estado q en M utilizando solamente transiciones-
Adems
F {q 0 } si CERRADURA _ (q 0 ) F {}
F
de lo contrario
F'
CERRADURA _ (q ) (q, )
En donde
Ejemplo 5:
leyendo una cadena formada por un smbolo del alfabeto concatenado con
antes o
despus tantas veces como sea necesario para llegar a otro estado. Por ejemplo,
q3
q1
estando en el estado
q4
y
consumiendo de la entrada
q1
solamente el simbolo E puesto que puede cambiar de
q3
consumir entrada, luego a
(q1 ,.) {q 2 }
(q1 , E ) {q3 , q 4 }
(q1 ,0 9) {q1 , q 2 }
(q 2 , E ) {q3 , q 4 }
(q 2 ,0 9) {q 2 }
( q3 , ) {q 4 }
( q3 ,) {q 4 }
( q3 ,0 9) {q 5 }
si necesidad de
q4
consumiendo la E y finalmente a
(q0 ,0 9) {q1 , q 2 }
q2
sin consumir.
(q 4 ,0 9) {q5 }
( q5 ,0 9) {q5 }
EXPRESIONES REGULARES
L1
Sean
L2
y
conjuntos de cadenas de
L1 L2
es el conjunto:
L1 L2 {xy | x L1 y y L2 }
Ejemplo 6:
L1
, la concatenacin de
L2
y
denotada
L1 {11,00}
Si
L2 {010,11}
y
L1 L2 {00010,11010,0011,1111}
Entonces
LL L2
L* Li
i 0
L0 { }
Donde
L Li
i 1
L L* { }
Entonces:
Las expresiones regulares y los conjuntos que estas denotan se pueden definir
recursvamente como sigue:
{a}
a
la cadena
, es decir el conjunto
a
formado exclusvamente por la cadena
RS
RS
,
R*
respectvamente.
(0+1)*11(0+1)*
Si
de la
a
solamente la cadena
de un solo smbolo (precsamente
que reconoce ese lenguage es el que se muestra aqu:
a
) entonces el autmata
Si r es una expresion regular que denota al mismo lenguaje que el que reconoce el
autmata M y s es otra expresin regular que denota al mismo lenguaje que el que
reconoce el autmata N, entonces el Autmata que reconoce el lenguaje que genera la
expresion regular (r+s) es:
Si r es una expresion regular que denota al mismo lenguaje que el que reconoce el
autmata M y s es otra expresin regular que denota al mismo lenguaje que el que
reconoce el autmata N, entonces el Autmata que reconoce el lenguaje que genera la
expresion regular (rs) es:
Si r es una expresion regular que denota al mismo lenguaje que el que reconoce el
autmata M, entonces el autmata que reconoce el lenguaje denotado por
r*
es:
Ejemplo
Para obtener una expresion regular equivalente a un FA, se procede como sigue:
rk
ij
Definiendo
como la expresin regular que produce el lenguaje consistente de la
cadenas que llevaran al autmata del estado i al j sin atravesar ningn estado
superior al k. Entonces, la expresin regular que buscamos es:
rijn
jF
Donde:
i.- Estado inicial del autmata
n .- Nmero de estados del autmata
Es decir, la union de reglas que generan cadenas que llevaran al autmata del
estado inicial a algn estado final, permitiendose cruzar cualquier estado.
rn
ij
Para calcular cualquier
r k r k 1 ( r k 1 )* r k 1 r k 1
ij
ik
kk
kj
ij
r 0 a si (i, a ) j
ij
r 0 si (i, ) j
ij
r0
ij
en cualquier otro caso
M (Q , , , q 0 , F )
: Q Q {L, R}
Donde:
Una descripcin instantnea (ID) del 2DFA tiene la forma xqy donde x es la parte de la
cadena de entrada que se encuentra a la iquierda de la "cabeza" de lectura del
autmata, q es el estado en el que se encuentra el sutmata y y es la parte de la
cadena de la entrada que est a la derecha de la cabeza de lectura. El carcter que
leer el autmata es entonces el primero de y.
Entre dos instantneasconsecutivas se utiliza el smbolo
de una ID a otra en un solo paso
I k 1 I k
Usamos
pasos
L( M ) {w | q 0 w wp
p F)
Ej. El siguiente 2DFA reconoce cadenas formadas de 0's y 1's donde no haya dos 1's
consecutivos. Para hacerlo, recorre la cadena de entrada de iquierda a derecha y al
q1
encontrar el primer 1 cambia al estado
para "recordar" que ya encontr un 1 y esta
buscando el segundo 1 recorriendo la cadena de entrada a la derecha. Al encontrar el
q2
segundo 1 cambia al estado
q0
izquierda al menos un 0, si lo encuentra regresa al estado inicial
recorrido hacia la derecha. Todos los estados son finales,
( q 0 ,0 ) ( q 0 , R )
a)
(q 0 ,1) (q1 , R )
b)
es:
y continua su
(q1 ,1) (q 2 , L)
c)
d)
( q 2 ,0 ) ( q 0 , R )
(q 2 ,1) (q 2 , L)
e)
f)
q 0 0100101
0q 0 100101
01q1 00101
010q1 0101
0100q1101
010q 2 0101
0100q 0 101
01001q1 01
01001q 2 01
010010q 0 1
0100101q1
q0
q0
q1
q1
q1
q2
q0
q1
q1
q2
q0
q1
a)
b)
c)
d)
Los estados "Derechos" son aquellos a los que la transicin hacia ellos tiene
implcito un avance hacia la derecha y los "Izquierdos" son los que al hacer una
transicin hacia ellos simpre se hace un avance hacia la izquierda.
q1 , q 2 ,..., q k
Decimos que la secuencia
p1 , p 2 ,..., pl
bajo el smbolo b cuando se asegura la posibilidad de que esas dos
secuencias se ubicaran a la izquierda y derecha respectvamanete bajo el smbolo b
en el diagrama de transiciones de estados para alguna cadena que forme parte del
lenguaje que reconoce el autmata comenzando por la derecha. Decimos que la
verifica por la izquierda si se comienzara por la izquierda.
Base: La cadena nula concuerda por la iquierda y por la derecha a la cadena nula
q 3 ,..., q k
1 Regla .- Si la secuencia
concuerda con la secuencia
derecha bajo el smbolo b y adems
(q1 , b) (q 2 , L)
p1 , p 2 ,..., pl
por la
q1 , q 2 ,..., q k
Entonces, la secuencia
derecha bajo el smbolo b.
p1 , p 2 ,..., pl
concuerda con la secuencia
q 2 ,..., q k
por la
p 2 ,..., pl
2 Regla .- Si la secuencia
concuerda con la secuencia
izquierda bajo el smbolo b y adems
por la
(q1 , b) ( p1 , R )
q1 , q 2 ,..., q k
Entonces, la secuencia
derecha bajo el smbolo b.
p1 , p 2 ,..., pl
concuerda con la secuencia
por la
q1 , q 2 ,..., q k
p3 ,..., pl
3 Regla .- Si la secuencia
concuerda con la secuencia
izquierda bajo el smbolo b y adems
por la
( p1 , b) ( p 2 , R )
q1 , q 2 ,..., q k
Entonces, la secuencia
izquierda bajo el smbolo b.
p1 , p 2 ,..., pl
concuerda con la secuencia
q 2 ,..., q k
4 Regla .- Si la secuencia
concuerda con la secuencia
derecha bajo el smbolo b y adems
por la
p 2 ,..., pl
por la
( p1 , b) (q1 , L)
q1 , q 2 ,..., q k
Entonces, la secuencia
izquierda bajo el smbolo b.
p1 , p 2 ,..., pl
concuerda con la secuencia
por la
q0
q1
q 0 , q 2 , q1
q1 , q 2 , q 0
q0
3)
q0
por la derecha a
q1
4)
Base
Base
(1), Regla 2 y (a)
q1
por la derecha a
q 2 q0
5) nul por la izquierda a
q1 q 2 q0
q1
6)
por la derecha a
Con esa coleccin de concordancias revisamos si en base a una de las cuatro reglas,
y la tabla de transciciones del autmata de dos sentidos podemos aumentar la
coleccin. cuando ya no se pueda aumentar dicha coleccin descartamos las
concordancias por la izquierda y en base a las concordancias por la derecha
formamos la tabla de transiciones del autmata de un solo sentido. Para el ejemplo, la
tabla ser:
Concordan
cias por la
derecha
bajo 0
Concordan
cias por la
derecha
bajo 1
[q0 ]
[q0 ]
[q1 ]
[q1 ]
[q1 ]
[q1 , q 2 , q 0 ]
[q 0 , q 2 , q1 ]
[q1 , q 2 , q 0 ]
[q1 ]
El lema del bombeo.Dado que la longitud de las cadenas de los lenguajes regulares no est acotada,
los lenguajes regulares incluyen siempre cadenas cuya longitud es mayor que el
nmero de estados del autmata que las reconoce. Lo anterior implica que para
cadenas cuya longitud es mayor al nmero de estados, al menos un estado ser
visitado mas de una vez, llamemos a ese estado el estado k. Sea i el estado inicial y j
un estado final.
Figura
En la figura, u es una cadena que lleva al automata del estado i al k pasando por
una variedad de estados, por esa razn se dibuj con linea punteada; v es una cadena
que lleva al autmata del estado k de nuevo al k pasando por un numero indefinido de
estados, que por supuesto depende de la longitud de la misma cadena y finalmente t
es una cadena que lleva al autmata del estado k al j.
uvt
El lema del bombeo, nos dice que si
uvvt
as como
y en general
lenguaje regular.
ut
es una cadena tambin lo debe de ser
uv n t n
si es que el lenguaje en cuestin es un
L nz ( z L, | z | n ) uvti ( z uvt, | v | 1, uv i t L)
El terorema de Myhill-Nerode
Este terorema nos dice que existe una relacin de equivalencia que relaciona los
estados de un autmata de la siguiente manera:
( q, ) ( p, ) q p
Algoritmo de minimizacin
( q, a ) r ( p , a ) l
y l. Es decir
Si r y l son distinguibles entonces:
Marcar a la pareja de estados (p,q) como distinguible y
recursvamente a todas las parejas en la lista de espera de (p,q)
En caso contrario, agregar (p,q) a la lista de espera de la pareja
(r,l).
Implementacin
Para el diseo e implementacin se consideran dos cosas, las estructuras de
datos para apoyar la solucin del problema, es decir la implementacin del algoritmo, y
el diseo de la interfaz de usuario tanto para la entrada de datos como para la
presentacin de resultados. El lenguaje utilizado para la implementacin fue java, ya
que provee la facilidad necesaria para manejar el uso de memoria dinmica requerida
p, q
marca
s1
q0
.
.
qn
qi
qi
qi
qi
qi
qqi,qj
i
qi
qi
sn
qi
qi
qi
qi
p, q
p, q
marca
marca
Para llevar a cavo la aplicacin del algoritmo al pie de la letra se requieren
estructuras de datos ms complejas que simples matrices, ya que se deben asociar
qi,qj (qi,qj) cuando dicho parqi,qj
pares de estados
no es distinguible para un determinado par
(p,q), adems es posible tener ms de un par (qi,qj) asociado, es decir una lista que
contiene pares (qi,qj). Por otro lado, dada la forma del algoritmo solo se requiere de
una matriz triangular inferior sin la diagonal principal, por lo que una matriz cuadrada
resultara un desperdicio de memoria, por lo tanto se utiliza una lista que almacene
dicha lista de pares asociados adems de otra informacin como el hecho de saber si
el par (p,q) esta marcado o no y por supuesto que estados son p y q. De manera
grfica podemos visualizar estas estructuras de la siguiente forma:
p, q
marca
qi,qj
p, q
marca
p, q
marca
qi,qj
qi,qj
qi,qj
qi,qj
qi,qj
Interfaz de usuario
smbolos (S), el estado inicial (q0), el conjunto de estados finales (F),y finalmente la
funcin de transicin (Delta).
Como se puede apreciar el formato para definir los conjuntos es el mismo, las
etiquetas correspondientes a los estados o smbolos estn separados por comas y
finalmente por punto y coma, el nico campo que no requiere de punto y coma es el
del estado inicial, ya que solo existe uno para los AFD. Las transiciones deben estar
separadas tambin por punto y coma, en ellas se indica, entre parntesis, el estado
coma el smbolo seguido de un igual y despus el estado al que se llega.
G= (V,T,P,S)
Donde :
Donde
A V
(V T ) *
y
Como el nmero de reglas de produccin es finito, las gramticas libres del contexto
son la mejor manera de describir lenguajes libres del contexto, los cuales son
normalmente conjunto infinitos, para saber si una cadena forma parte de un lenguaje
podemos verificar si se puede derivar a partir del smbolo inicial de la gramtica, es
decir
L { | S
y T *}
G=({A},{0,1},P,A)
A 0A0
A 1A1
A 0 |1|
Observe que la ltima lnea tiene realmente 3 reglas de produccin ya que la barra
vertical debe leerse como o, es decir, la ltima linea dice que la Variable A produce 1
o bien 0 o finalmente la cadena vaca.
Este lenguaje por cierto no puede describirse mediante ninguna expresin regular,
si bien las gramticas regulares pueden denotar a los lenguajes regulares, las
expresiones regulares no pueden denotar a todos los lenguajes libres del contexto, ya
que estos son un superconjunto de los lenguajes regulares.
Veamos otro ejemplo de lenguaje que no puede ser descrito por ninguna expresin
regular, se trata de una gramtica que denota al conjunto de cadenas que son
expresiones algebraicas que utilizan solo a las variables algebraicas x y y.
EEE
EEE
E E/E
E E*E
E (E )
E x| y
Aqu G=({E},{+,-,*,/,(,)x,y},P,E), se trata pues de otro ejemplo donde solo se usa una
varible, este tipo de gramticas casi simpre presentan un problema que describiremos
mas adelante.
E E E E E * E x E* x y * E x y * x
A BC
A, B, C V
donde
bien, de la forma
Aa
donde
a T
A 0 A0 | 1A1 | 0 | 1
Solucin:
La primera regla de produccin
siguientes
A 0A0
A CB
B AC
C 0
A UD
D AU
A 1A1
U 1
A CB | UD | 0 | 1
B AC
C 0
D AU
U 1
A a
donde
a T
V *
Es decir, todas las reglas deben de tener exactamente un terminal y este debe
estar al principio de la cadena, despus puede sigue una cadena opcional de variables
de cualquier longitud.
Ai A j
cumpla que si
S AA | 0
A SS | 1
A1 A2 A2 | 0
A2 A1 A1 | 1
A1 A2 A2 | 0
A2 A2 A2 A1 | 0 A1 | 1
A A
A A 1 | A 2 | ... | A r | 1 | 2 | ... | s
A 1 | 2 | ... | s | 1 B | 2 B | ... | s B
B 1 | 2 | ... | r | 1 B | 2 B | ... | r B
A1 A2 A2 | 0
A2 0 A1 | 1 | 0 A1 B | 1B
B A2 A1 | A2 A1 B
A2
Observe que ahora las reglas de produccin de
estn en la forma normal
de Greibach y gracias al orden que tienen el resto de las reglas, solo resta hacer una
sustitucin hacia atrs para que todas las reglas de la gramtica estn en la FNG. La
gramtica normalizada de nuestro ejemplo queda finalmente:
A2 0 A1 | 1 | 0 A1 B | 1B
B 0 A1 A1 | 1A1 | 0 A1 BA1 | 1BA1
AUTOMATAS DE PILA
A diferencia de los autmatas finitos, estos autmatas s tienen memoria, de hecho, la
tienen organizada como su nombre lo indica de manera que el primer elemento en
almacenarse es el ltimo en recuperarse (FILO por sus siglas en ingls). Utilizan esta
memoria por ejemplo para recordar si queda algn parntesis sin cerrarse, lo cual
escapa de las capacidades de los autmatas finitos. Formalmente, un autmata de pila
es:
M (Q, , , , q 0 , Z 0 , F )
Donde:
: (Q ) Q *
.- Control finito
q0
.- Estado inicial
Z0
.- Smbolo inicial del stack
F.- Conjunto de estados finales
Ejemplo
Para ejemplificar el funcionamiento de los autmatas de pila, mostraremos
uno que reconoce palndromos hechos con ceros y unos pero que en medio tienen
una x que indica el centro de la cadena. Por ejemplo:
010x010
001x100
100x001
1011x1101
etc
La estrategia para disear este autmata consistir en meter al stack una U por cada 1
ledo de la cadena de entrada y una C por cada cero. En el momento en que se lea la
x cambiar a un estado que se dedique a comparar el contenido del stack con el resto
de la cadena, aprovechando el hecho de que en un stack, lo introducido se recupera
en orden inverso. El autmata quedar:
(q 0 ,1, Z 0 ) (q 0 , UZ 0 )
Agrega una U al stack
(q 0 ,0, Z 0 ) (q 0 , CZ 0 )
Agrega una C al stack
(q 2 ,1, U ) (q1 , )
Verifica el uno leido despues de la x con otro uno leido antes de
la x
(q 2 ,0, C ) (q1 , )
Verifica el cero leido despues de la x con otro cero leido antes
de la x
(q 2 , , Z 0 ) (q3 , )
Se cambia la estado final para reconocer la cadena
Los autmatas de pila pueden reconocer al igual que los autmatas finitos por el
hecho de que al terminar de barrer la cadena que se encuentra en la cinta de entrada,
el autmata quede en un estado final, sin embargo, podemos optar por disear un
autmata que no tenga estados finales, sino que acepte una cadena como
perteneciente al lenguaje por el hecho de que al terminar de barrer la cadena que se
encuentra en la cinta de entrada, el autmata termine con la pila vaca. Esto se indica
diciendo
F={}
En realidad los dos tipos de autmatas de pila son equivalentes puesto que si se
cuenta con un autmata de pila que reconoce por estado final, lo podemos convertir a
uno que reconoce por stack vaco simplemente agregando reglas que tengan por
efecto vaciar el stack para cada estado final, esto es:
(q, , A) (q e , ) q F , A
( q e , , A) (q e , ) A
M (Q, , , , q 0 , Z 0 , {})
en un autmata que reconozca por estado final M,
qf
qi
(qi , , Z 0 ) (q 0 , RZ 0 )
Esta regla forzzamente se ejecutaria al inicio e introduce el
smbolo R al stack
( q, , R) (q f , ) q Q
Esta regla detecta que el stack se vaci para cambiarse
al estado final
Por supuesto,
'
es igual a
: (Q ) 2 Q
A diferencia de lo que ocurre con los autmatas finitos, donde los autmatas
deterministas y los indeterministas son equivalentes, los autmatas de pila
indeterministas son mas poderosos que los deterministas, para ejemplificar este
hecho, mostraremos un autmata de pila indeterminista que reconoce palindromos
hechos con ceros y unos el cual sale del alcance de los deterministas, recuerde que el
ejemplo del autmata de pila determinista que expusimos y que reconoce palindromos
hechos de ceros y unos requera de una x que indicaba el centro de la cadena.
(q 0 ,1, Z 0 ) {( q0 , UZ 0 )}
( q 0 ,0, Z 0 ) {( q 0 , CZ 0 )}
( q1 ,1, A) {( q1 , UA), (q 2 , )} A
Explora ambas posibilidades (indeterminismo)
(q 2 ,1, U ) {( q1 , )}
(q 2 ,0, C ) {( q1 , )}
(q 2 , , Z 0 ) {( q 2 , )}
M ({q}, T , V , , q, S ,{})
(q, ) (q, a, A) ( A a ) P ; V *
donde
Este autmata simula derivaciones por la extrema izquierda de cualquier cadena que
pertenezca a L(G) y por tanto N(M)=L(G)
Una gramtica equivalente a un autmata de pila que reconoce por stack vaco
M (Q, , , , q 0 , Z 0 , {})
consistira de las siguientes reglsa de produccin:
S [q 0 , Z 0 , q ] q Q
[q, A, q m 1 ] a[q1 , B1 , q 2 ][ q 2 , B2 , q3 ] [q m , Bm , q m 1 ]
(q1 , B1 B2 Bm ) (q, a, A)
Siempre y cuando
[q, A, q1 ] a
Como caso particular Si m=0, la regla de produccin sera
MAQUINAS DE TURING
Las mquinas de Turing (MT) son como los autmatas finitos de 2 sentidos, solo
que a diferencia de estos, las MTs pueden no solo leer de la cinta sino tambin
escribir en ella, como los autmatas de stack pueden almacenar datos pero en una
memoria que no est organizada en forma de pila sino que es una memoria de acceso
secuencial. Formalmente, Una Mquina de Turing es
M = (Q, , , , q0, B, F)
Donde:
: (Q ) (Q {L, R})
.-Control finito
q0
.- Estado inicial
F.- Conjunto de estados finales
B.- Smbolo que representa al Blanco en la cinta
Por ejemplo, Diseemos una Mquina de Turing que reconozca el siguiente lenguaje:
{0n1n0n | n 1}
Estrategia de solucin.
Por cada cero (0) en la cinta de entrada vamos a escribir una C, y por cada
uno (1) una U, de tal forma que, si finalmente todos los ceros y todos los unos en la
cinta han sido sustituidos por una C o una U, respectivamente, la cadena en la cinta
es aceptada. La forma de sustituir estar dada de la siguiente manera:
(4) Retroceder pasando por los unos y Us hasta encontrar una C precedida por un
cero
Formalizando.
Sea M = (Q, , , , q0, B, F)
La Mquina de Turing que reconoce el lenguaje
{0n1n0n | n 1}
Entonces:
=
q0
q1
q2
q3
q4
q5
q6
q7
0
(q1,C,R)
(q1,0,R)
(q3,C,L)
(q7,0,L)
(q7,0,L)
1
(q2,U,R)
(q2,1,R)
(q4,1,L)
(q4,1,L)
(q1,U,R)
(q2,C,R)
(q3,C,L)
(q5,C,R)
(q5,C,R)
(q4,U,L)
(q4,U,L)
(q5,U,R)
(q6,B,R)
(q0,C,R)
(SETQ POSICION_INICIAL_CINTA 0)
(SETQ SIMBOLOS '(B 1 0 C U))
Las Mquinas de Turing pueden utilizarse para realizar cmputos de funciones enteras
y no solo para fines de reconocimiento de lenguajes, para ejemplificar este hecho,
Diseemos ahora una Mquina de Turing para calcular la siguiente funcin:
n2
Estrategia de solucin.
Se propone una Mquina de Turing que computa la funcin n 2 en unario, para
esto la cinta de entrada contiene originalmente n en unario. Ya que n 2 es igual a n x n,
la estrategia consiste precisamente en realizar dicho producto en unario, para esto
primero se debe duplicar la secuencia de 0 en unario en la cinta, separando por un 1 la
copia del original, aplicar el producto sobre ambas cantidades, dicho producto se
realiza mediante la copia de n veces n. De forma general podramos ver la operacin
de n2 como una sucesin de pasos de la siguiente manera:
Contenido de la cinta:
01 02 0n-1 0n
B B
(1) Duplicar el contenido de la cinta, separando la copia del original por un uno
(1.a) Marcar como P el primer cero y poner un uno despus del ltimo 0
P1 02 0n-1 0n
(1.b) Adems de la P, copiar uno a uno los ceros del lado izquierdo del 1 al lado
derecho del mismo, para esto marcar con un 2 el cero a copiar, y recorrer hasta
encontrar un blanco para ponerlo ah.
P1 02 0n-1 0n
01 B
P1 22 2n-1 2n
01 02 0n-1 0n B
01 02 0n-1 0n B
1er segmento de 0s
01 02 0n-1 0n
2 segmento de 0s
El primer segmento de ceros nos va a servir para saber las veces que faltan de
copiarse los ceros del segundo segmento a partir del ultimo blanco, cada vez
que se va a realizar una copia se sustituye un elemento del primer segmento
B1 B2 Bn-1 Bn
01 02 0n-1 0n
(3) Finalmente solo resta poner un blanco sobre el 2 segmento de ceros incluyendo
los unos que lo delimitan y tendremos en la cinta tan solo n x n = n2 en unario.
Definicin formal
Sea M = (Q, , , , q0, B, F)
La Mquina de Turing que computa
n2
Entonces:
Q = {q0, q1, q2, q3, q4, q5, q6, q7, q8, q9, q10, q11, q12, q13, q14, q15, q16, q17, q18, q19, q20, q21,}
= {0}
= {0, 1, 2, P, B}
q0 = q0
F = {q20}
=
q0
q1
q2
q3
q4
q5
q6
q7
q8
q9
q10
Q11
q12
q13
q14
q15
q16
q17
q18
q19
q20
q21
0
(q1,P,R)
(q1,0,R)
(q2,0,L)
(q3,0,R)
(q4,0,L)
(q3,2,R)
(q6,0,L)
(q7,0,R)
(q8,0,L)
(q9,0,R)
(q11,2,R)
(q11,0,R)
(q12,0,L)
(q2,1,L)
(q3,P,R)
(q3,1,R)
(q4,1,L)
(q6,1,L)
(q4,0,L)
(q5,2,R)
(1)
(q5,P,R)
(q7,P,R)
(q7,1,R)
(q8,1,L)
(q10,1,R)
(q13,1,L)
(q11,1,R)
(q12,1,L)
(q14,1,R)
(q8,1,L)
(q9,B,R)
(q12,0,L)
(q10,2,R)
(q13,0,L)
(q15,0,L)
(q16,1,L)
(q17,0,L)
(q17,0,L)
(q19,B,R)
(2)
(q18,B,R)
(q21,B,R)
(q19,B,R)
(q20,B,R)
(q9,B,R)
((Q0 0) (P Q_1))
((Q_1 P) (R Q1))
((Q1 0) (R Q1))
((Q1 B) (1 Q_2))
((Q_2 1) (L Q2))
((Q2 0) (L Q2))
((Q2 P) (R Q3))
((Q3 0) (R Q3))
((Q3 1) (R Q3))
((Q3 B) (0 Q_4))
((Q_4 0) (L Q4))
((Q4 0) (L Q4))
((Q4 1) (L Q4))
((Q4 P) (R Q5))
((Q4 2) (R Q5))
((Q5 0) (2 Q_3))
((Q_3 2) (R Q3))
((Q5 1) (L Q6))
((Q6 2) (0 Q_6))
((Q_6 0) (L Q6))
((Q6 P) (R Q7))
((Q7 0) (R Q7))
((Q7 1) (R Q7))
((Q7 B) (1 Q_8))
((Q_8 1) (L Q8))
((Q8 0) (L Q8))
((Q8 1) (L Q8))
((Q8 P) (B Q_9))
((Q_9 B) (R Q9))
((Q9 0) (R Q9))
((Q9 1) (R Q10))
((Q10 0) (2 Q_11))
((Q_11 2) (R Q11))
((Q10 1) (L Q13))
((Q11 0) (R Q11))
((Q11 1) (R Q11))
((Q11 B) (0 Q_12))
((Q_12 0) (L Q12))
((Q12 0) (L Q12))
((Q12 1) (L Q12))
((Q12 2) (R Q10))
((Q13 2) (0 Q_13))
((Q_13 0) (L Q13))
((Q13 1) (R Q14))
((Q14 0) (L Q15))
((Q15 1) (L Q16))
((Q16 0) (L Q17))
((Q16 B) (R Q18))
((Q17 0) (L Q17))
((Q17 B) (R Q21))
((Q18 1) (B Q_19))
((Q_19 B) (R Q19))
((Q19 0) (B Q_19))
((Q19 1) (B Q_20))
((Q_20 B) (R Q20))
((Q21 0) (B Q_9))
))
(SETQ ENTRADA '(0 0 0))
Inteligencia artificial
Desde mediados del siglo XX la idea de crear una mquina que ejecute las funciones,
tanto fsicas como psicolgicas, propias del Homo sapiens ha inquietado a la mayora
de los cientficos y filsofos del planeta.
Existen innumerables ejemplos de mquinas que realizan determinadas labores,
algunas de gran complejidad, pero nunca pudieron llegar a emular la capacidad del
razonamiento humano. Sin embargo, la ciencia imagina que en el futuro habr seres
robticos pensantes. Un panorama que, por el momento, pertenece exclusivamente al
gnero de la ciencia-ficcin.
Si el ser humano poda reproducir cualquier cosa, poda crear, imitar e incluso luchar
contra las leyes naturalmente establecidas, por qu no poda emular, aunque fuese
de forma muy simple, el tipo de razonamiento humano que tanto haba hecho
evolucionar la especie?
Los primeros planeamientos tericos desembocaron en una nueva disciplina
denominada ciberntica. Los investigadores tomaron como base el modelo neuronal
descripto en 1943 y postularon de forma muy sinttica que el cerebro es un
solucionador inteligente de problemas." As, pues, imitemos el cerebro.
Obviamente, la tecnologa de la poca no era la adecuado para poner en prctica
aquello que la teora era capaz de plantear con tanta sencillez.
El pensamiento humano ha sido definido como una coordinacin de proceso o tareas
simples relacionadas entre s mediante smbolos. Lo difcil es llegar a unir estas tareas
simples para que generen un mtodo de resolucin artificial de problemas y
cuestiones. El desarrollo de la informtica dio lugar a un incremento en los estudios de
IA (inteligencia artificial). Basta con un microprocesador de una agenda de bolsillo para
acceder a sofisticados y complejos procesos.
En la quinta generacin de computadoras anunciaron las caractersticas que engloban:
la utilizacin de muy alta escala de integracin, la interconexin e integracin a travs
de redes de todo tipo de computadoras y datos, la dotacin a una computadora de un
cierto poder de razonamiento humano en lo que se denomina inteligencia artificial, la
utilizacin de lenguajes similares al lenguaje natural, la aparicin de mltiples
procesadores en una misma computadora, etc.
Las investigaciones de muchos cientficos actuales van por este camino: lingistas,
psiclogos, estadsticos, ingenieros y fundamentalmente expertos en ingeniera del
software estn empeados en alumbrar una nueva era en la ciencia de la computacin
o informtica fundamentada en lo que se denomina inteligencia artificial (AI).
El objetivo de la IA no es, la sustitucin del hombre por la mquina, sino convertir una
computadora en una herramienta eficaz y til al servicio del hombre, pero con un
campo de posibilidades que sobrepasan lo convencional.
Desarrollar sistemas inteligentes de modo tal que el usuario que tome contacto con el
sistema no logre diferenciar si la persona que est del otro lado es un ser humano o
una computadora.
Los programas de IA se centran en el que de un problema y no en el cmo. Esto
significa que se programa a la computadora para que reconozca el problema mediante
un comportamiento inteligente.
Lmites
Desde desarrollo de programas inteligentes que controlen servidores de Internet hasta
programas multimedia avanzada, los campos de investigacin que introducen
elementos de IA son amplios. Pero lo que se lleva la palma en cuanto a complejidad
son los estudios sobre asimilacin y comprensin del lenguaje hablado y la creacin
de redes neuronales artificiales, a imagen y semejanza del ser humano.
La accin de aprender, por ejemplo, consiste en asociar a cada estmulo la respuesta
adecuada. Las redes de neuronas artificiales (RNA) trata de aplicar esta filosofa a un
programa informtico.
Si en el razonamiento intervienen factores subjetivos, entramos en el campo de las
emociones. Podran llegar a albergar emociones seres creados artificialmente y
dotados de IA? Y si la respuesta fuera afirmativa, Qu derecho moral tendra la raza
humana para crearlos primero y destruirlos despus como se desguaza un automvil
cuando ya no funciona? El dilema y la polmica estn servidos.
rea de aplicacin
El campo de desarrollo de la inteligencia artificial es muy discutido y debatido desde
diversas perspectivas, desde lo filosfico hasta lo psicolgico. Hasta el momento se
han logrado muy pocos avances. Derivados de la investigacin sobre inteligencia
artificial, existen en la actualidad algunos dispositivos:
* Chinook: software para jugar a las damas, triunfador en el Campeonato Mundial de
Hombres y Mquinas de 1994.
* Deep Blue: supercomputadora producida por IBM, para jugar al ajedrez, que venci a
Garry Kasparov en 1997.
* Fuzzy logic: tcnica para razonar bajo condiciones de falta de certeza. Es utilizada en
sistemas de control industrial.
* Software para traduccin de idiomas: su empleo es cada vez ms difundido, aunque
los resultados son muy pobres comparados con las traducciones realizadas por
personas.
* Reconocimiento ptico de datos: OCR Optical character recognition, aplicaciones
que pueden leer un archivo de imagen que contienen texto, obtenido por un escner, y
convertirlo en un archivo de texto para ser modificado en un archivo de texto para ser
modificado por un procesador de palabras.
* Reconocimiento de escritura: aplicacin similar a la anterior, que reconoce texto a
partir de la lectura de letra manuscrita. Muy utilizado en los asistentes digitales
personales.
* Reconocimiento de voz: es la capacidad de una mquina de responder a estmulos
sonoros. Existen versiones comerciales y son de gran utilidad para el manejo de la
computadora para personas con discapacidad.
* Visin artificial: La lectura y compresin de imgenes de manera automtica se utiliza
en procesos industriales y de seguridad.
La IA abarca varios campos de aplicacin que interactan entre s. Actualmente es
muy comn encontrar ejemplos de inteligencia artificial aplicados a la medicina, la
industria, la aviacin, la mecnica, etc.
Sistemas Expertos
Un sistema experto o sistema de conocimiento basado en reglas de inferencia es un
conjunto de programas que pueden acceder a una gran masa de informacin donde se
renen las experiencias y conocimientos de uno o ms expertos en un determinado
campo de la ciencia o la tcnica para la resolucin de problemas.
Es una aplicacin informtica capaz de solucionar un conjunto de problemas que
exigen un gran conocimiento sobre un determinado tema. Generalmente realizan una
bsqueda de la solucin por medio de un proceso de simulacin del razonamiento
humano aplicando reglas especficas del conocimiento y de inferencias (inducir). Estos
tipos de computadoras se denominan computadoras inteligentes.
As como las industrias manufactureras han enfocado la inteligencia artificial a travs
de la construccin de robots, que actan con eficacia en aquellas tareas automticas
que traen consigo una disminucin de productividad, a medida que avanza la jornada
laboral cuando son realizadas por el hombre (cansancio, aburrimiento, falta de
eficacia, etc.), en otros sectores industriales y los de administracin y servicios se
enfocan por medio de los sistemas expertos.
Todo sistema de esa naturaleza puede colaborar en la toma de decisiones ya que le
permite formular preguntas y analizar las razones de los procedimientos que realiza.
En general, estos sistemas llevan a cabo tareas muy limitadas (lectura ptica,
seguimientos, interpretacin, diagnsticos) en tiempos muchos ms breves que
podran emplear las personas ms profesionalizadas; pero aquellos problemas que no
pueden ser resueltos por stas tambin son difciles para un sistema experto.
Poseen las siguientes caractersticas:
* Amplios conocimientos sobre determinado tema que se encuentra estructurado en su
base de conocimiento.
* Algoritmos y tcnicas de bsqueda que permiten el uso y tratamiento de la
informacin de una forma eficiente.
* Posibilidad de ampliar sus conocimientos con la experiencia.
* Facilidad para realizar anlisis de datos e informaciones.
* Capacidad para presentar un razonamiento o conclusin.
El conocimiento de un sistema experto se basa en tres tipos de informaciones:
* Hechos (obtenidos de la realidad)
* Reglas de procedimiento (secuencias)
* Reglas heursticas (reglas con opciones)
CIBERNTICA
Este trmino proviene del griego kybernytiky y tiene su origen en el siglo VI a.C.,
cuando la mitologa griega cuenta que Teseo en viaje a Creta, por mar, fue ayudado
por dos pilotos de su barco a cuyo trmino instituyo una fiesta para stos a quienes los
llam los cibernesios.
Ms tarde Platn utiliz la palabra kybernytiky en el sentido de dirigir un navo o cargo.