Você está na página 1de 67

MAQUINA TURING

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 un conjunto finito de estados.

es un conjunto finito de smbolos distinto del espacio en blanco,denominado alfabeto


de mquina o de entrada.

es un conjunto finito de smbolos de cinta, denominado alfabeto de cinta.

es el estado inicial.

es un smbolo denominado blanco, y es el nico smbolo que se puede repetir


un nmero infinito de veces.

es el conjunto de estados finales de aceptacin.

Es una funcin parcial denominada funcin de transicin,donde


la izquierda y
es el movimiento a la derecha.

es un movimiento a

La mquina de Turing puede considerarse como un autmata capaz de reconocer


lenguajes formales. En ese sentido es capaz de reconocer los lenguajes
recursivamente enumerables, de acuerdo a la jerarqua de Chomsky.
Su potencia es, por tanto, superior a otros tipos de autmatas, como el autmata finito,
o el autmata con pila, o igual a otros modelos con la misma potencia computacional.
Las maquinas de Turing se pueden representar mediante grafos particulares, tambin
llamados diagramas de estados finitos, de la siguiente manera:

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.

Esta Mquina reconoce la expresin regular de la forma {a^n b^n c^n,n>=0} .

*Los estados se representan como vrtices, etiquetados con su nombre en el interior.


*Una transicin desde un estado a otro, se representa mediante una arista dirigida que
une a estos vrtices, y esta rotulada por smbolo que lee el cabezal/smbolo que
escribir el cabezal, movimiento del cabezal .
*El estado inicial se caracteriza por tener una arista que llega a l, proveniente de
ningn otro vrtice.
*El o los estados finales se representan mediante vrtices que estn encerrados a su
vez por otra circunferencia.

COMO FUNCIONA UNA MAQUINA DE TURING?


Una mquina de Turing es un dispositivo que transforma un INPUT en un OUTPUT
despus de algunos pasos. Tanto el INPUT como el OUPUT constan de nmeros en
cdigo binario (ceros y unos). En su versin original la mquina de Turing consiste en
una cinta infinitamente larga con unos y ceros que pasa a travs de una caja.

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.

11011iUna instruccin tpica podra ser: 01

VARIANTES DE LA MAQUINA DE TURING


La traduccin es como sigue: si la mquina se encuentra en el estado interno 0 y lee 1
en la cinta, entonces pasar al estado interno 1101 (13), escribir 1 y se mover hacia
la izquierda un paso (la cinta se mover hacia la derecha). A continuacin es
conveniente inventar una notacin para la secuencia del INPUT. Esta notacin se
llama notacin binaria expandida. Consiste en cambiar la secuencia original binaria por
otra construida de la siguiente forma: el 0 se cambia por 0 y el 1 por 10 y se ponen un
cero a la izquierda y/o a la derecha del resultado si empieza o acaba en 1
respectivamente. As por ejemplo, el nmero 13 que en binario es 1101 es en binario
expandido 1010010 con un cero delante por esta ltima regla 01010010. Para volver al
original hay que contraer el binario expandido con la siguiente regla: Empezamos a
leer por la izquierda el binario expandido. Cuando encontremos un 0 tomamos nota de
cuntos 1 hay hasta llegar al siguiente 0 y lo escribimos. Si encontramos que hay dos
0 seguidos , apuntaramos un 0 porque no habra ningn 1.Veamos con el 13 cmo se
hara.

El primer 0 se encuentra en la primera posicin y el siguiente 0 est en la posicin 3.


Entre los dos solo hay un 1. Lo anotamos. Seguidamente hay un 1, y despus un 0,
entonces apuntamos 1 porque hay un 1 entre medias de ellos. Esto es lo que se hace
sucesivamente y encontramos: 1101 que es el nmero original.

QUE SON Y COMO FUNCIONAN?


Una mquina de Turing consiste, bsicamente, en una cinta infinita, dividida en
casillas. Sobre esta cinta hay un dispositivo capaz de desplazarse a lo largo de ella a
razn de una casilla cada vez. Este dispositivo cuenta con un cabezal capaz de leer un
smbolo escrito en la cinta, o de borrar el existente e imprimir uno nuevo en su lugar.
Por ltimo, contiene adems un registro capaz de almacenar un estado cualquiera, el
cual viene definido por un smbolo.

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.

La mquina de Turing copiar el nmero de smbolos 1 que encuentre hasta el


primer blanco detrs de dicho smbolo blanco. Es decir , situada sobre el 1 situado en
el extremo izquierdo, doblar el nmero de smbolos 1, con un 0 en medio. As, si
tenemos la entrada 111 devolver 1110111, con 1111 devolver 111101111, y
sucesivamente.
El conjunto de estados es {s1,s2,s3,s4,s5} y el estado inicial es s1.
La tabla que describe la funcin de transicin es la siguiente:

El funcionamiento de una computacin de esta mquina se puede mostrar con el


siguiente ejemplo (en negrita se resalta la posicin de la cabeza lectora/escritora):

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.

En las dcadas de los aos cuarenta y cincuenta, una serie de investigadores


estudiaron las mquinas ms simples, las cuales todava hoy denominamos
autmatas finitos. Originalmente, estos autmatas se propusieron para modelar el
funcionamiento del cerebro y, posteriormente, resultaron extremadamente tiles para
muchos otros propsitos, como veremos en la Seccin 1.1. Tambin a finales de la
dcada de los cincuenta, el lingista N. Chomsky inici el estudio de las gramticas
formales. Aunque no son mquinas estrictamente, estas gramticas estn
estrechamente relacionadas con los autmatas abstractos y sirven actualmente como
base de algunos importantes componentes de software, entre los que se incluyen
componentes de los compiladores.
En 1969, S. Cook ampli el estudio realizado por Turing sobre lo que se poda y no se
poda calcular. Cook fue capaz de separar aquellos problemas que se podan resolver
de forma eficiente mediante computadora de aquellos problemas que, en principio,
pueden resolverse, pero que en la prctica consumen tanto tiempo que las
computadoras resultan intiles para todo excepto para casos muy simples del
problema. Este ltimo tipo de problemas se denominan insolubles o NP-difciles. Es
extremadamente improbable que incluso la mejora de carcter exponencial en la
velocidad de clculo que el hardware de computadora ha experimentado (Ley de
Moore) tenga un impacto significativo sobre nuestra capacidad para resolver casos
complejos de problemas insolubles.

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.

Una cadena o cuerda consiste de la concatenacin de terminales.

La concatenacin es la operacin de poner un terminal enseguida de otro, esta


obviamente no es una operacin conmutativa aunque s es asociativa.

Un Lenguaje es un conjunto de cuerdas formadas concatenando terminales de


manera que es un subconjunto de la cerradura de alfabeto bajo la operacin de
concatenacin.

Una gramtica es el conjunto de reglas que definen si una cadena pertenece al


Lenguaje o no.

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:

Q.- Denota al conjunto de estados del AF

.-Denota al alfabeto

: (Qx) Q
.-Mapeo de transicin entre estados

q0
.- Estado inicial
F.- Conjunto de estados finales

La parte medular del autmata radica en el mapeo de transicin entre estados. Se


trata de una serie de reglas que indican cuando el autmata cambia de un estado a
otro dependiendo del terminal ledo de la entrada. Estas son de la forma

( q, a ) p

Esta regla nos indica que si el autmata se encuentra en el estado q y en la entrada


est leyndose el terminal 'a', se debe cambiar al estado 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,...}

Cuando se describe un lenguaje de esta forma, se procura poner primero la cadena

de longitud cero (Tambin conocida como cadena vaca o


) si es que esta forma
parte del lenguaje, luego se listan las cadenas de longitud uno, enseguida todas las de
longitud dos y as sucesivamente.

Para identificar cuando una cadena de cierta longitud pertenece a este lenguaje se
puede utilizar el siguiente AF.

Figura 1 Autmata finito del Ejemplo 1

Como se puede apreciar en la Figura 1. El autmata consta de cuatro estados de


los cuales 2 son estado Finales, estos se indican en la figura con un crculo dentro del
crculo que representa al estado. Solo un estado puede ser inicial, de manera que se
indica con una flecha cual de todos es el estado inicial. Este por cierto pudiera ser
estado final tambin si por ejemplo el lenguaje incluye la cadena vaca.

El autmata de la figura 1 se puede describir tambin de la siguiente manera:

M ({q0 , q1 , q2 , q3 },{0,1}, , q0 , {q1 , q2 })

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

AUTOMATAS FINITOS INDETERMINISTAS


Un autmata como el del ejemplo 1 es del tipo determinista, esto quiere decir que

cumple con las caractersticas de una funcin inyectiva y sobreyectiva. Y decimos


que :

( q, a ) Q

Sin embargo, existen autmatas finitos en los que


no cumple con los requisitos para
poderla llamar funcin, es entonces simplemente una relacin entre el conjunto de

Qx
parejas ordenadas del conjunto

y el conjunto

2Q

. Por eso le llamamos mapeo.

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}

Indica que si el autmata se encuentra en el estado q y lee el terminal "a" de la


entrada se puede cambiar al estado p pero tambin pudiera cambiarse al estado m o
al n.

Entonces, los Autmatas indeterministas tienen que intentar alguna alternativa y si no


terminan en un estado final cuando hayan barrido toda la entrada deben realizar
"Back-Track" para usar otra de las alternativas posibles ah donde quiera que hayan
tenido mas de una. De esta manera solo rechazan una cuerda cuando se han agotado
todas las posibilidades. A diferencia de los Autmatas Deterministas decimos que:

( q, a ) Q

Tal subconjunto de Q puede ser incluso el conjunto vacio

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,...}

Figura2. Autmata Finito Indeterminista

El Autmata de la figura 2, tiene la siguiente descrpcin formal:

M ({q, p, m), {0,1}, , p, {m})

Donde:

( p,0) { p}; ( p,1) { p, q}; (q,1) {m}; ( m,0) {m}; (m,1) {m};

EQUIVALENCIA ENTRE AUTOMATAS FINITOS DETERMINISTAS E


INDETERMINSTAS.
Es evidente que todo autmata determinsta es tambin indeterminsta. Por otra parte,
por cada AF indeterminista se puede construir uno determinsta como se ver en
seguida. Entonces podemos decir que unos y otros son equivalentes puesto que
reconocen el mismo lenguaje, el indeterminismo no introduce mayor capacidad de
reconocimiento.

Los autmatas indeterministas son ms fciles de disear, sin embargo son ms


lentos operando, por lo cual conviene tener un mtodo para convertir a la AF's
indeterministas en determnistas, el mtodo consiste en generar el conjunto de estados
a los que puede cambiar el autmata a partir de un estado en particular para cierto
terminal. Tal conjunto de estados del AF indeterminista conforma un solo estado en el

[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

M ' (Q' , , ' ' , [ q0 ], F ' )

Donde:

Q' 2Q

F' es el Conjunto de estados de Q' que contengan al menos un estado de F

' ([ q1 , q2 ,..., qi ], a) [ p1 , p2 ,.., p j ] ({q1 , q2 ,..., qi }, a) { p1 , p2 ,.., p j }


Y

({q1 , q2 ,..., qi }, a ) ( q1 , a ) (q2 , a ) (qi , a)


Aqu

Ejemplo 3: Convertir el Autmata del ejemplo 2 en determinista

El Autmata determinista sera

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},0) ( p,0) ( q,0) { p} {m} { p, m}


Puesto que

' ([ p, q],1) [ p, q, m]

({ p, q},1) ( p,1) (q,1) { p, q} {m} { p, q, m}


Ya que

' ([ p, m],0) [ p, m]

({ p, m},0) ( p,0) (m,0) { p} {m} { p, m}


Debido a que

({ p, m},1) ( p,1) (m,1) { p, q} {m} { p, q, m}

' ([ p, m],1) [ p, q, m]
Puesto que

' ([ p, q, m],0) [ p, m]

({ p, q, m},0) ( p,0) (q,0) ( m,0) { p} {} {m} { p, m}


Ya que

' ([ p, q, m],1) [ p, q, m]

({ p, q, m},1) ( p,1) ( q,1) (m,1) { p, q} {m} {m} { p, q, m}


Debido a que

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

).

AF's CON TRANSICIONES

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.

Ejemplo 4.- El siguiente autmata reconoce numeros de punto flotante de C

Fig 3. AF que reconoce numeros de punto flotante del lenguaje C

Para llevar el rastro de las transiciones que dar qualquier AF se puede generalizar

para que pueda recibir cadenas. A este mapeo modificado le llamamos

: Qx 2
*

define como

Para reconocer por ejemplo la cadena 3E4 el autmata del ejemplo 4

(q 0 ,3E 4) { (q1 , E 4)} { (q 2 , E 4)} { (q3 ,4)} { (q 4 ,4)} {q5 }

y se

q1
Observe como la transicin entre

q3
tampoco la transicin entre

conviene generalizar ahora


un solo estado, es decir:

q2
y

no consumi ningn terminal de la entrada,

q4
y

para que acepte un conjunto de estados en lugar de

: 2 Q * 2 Q

De manera que:

({q1 , q 2 ,.., q n }, w) (q1 , w) ( q 2 , w) .. (q n , w)

De nuevo, la inclusin de transiciones que no consumen entrada no aumenta el


poder de los AF's, solamente los vuelve mas fciles de disear, esto implca que por
cada AF con transiciones de cadena nula, existe un autmata sin transiciones de
cadena nula equivalente.

Un AF indeterminista sin transicionesindeterminista con transiciones-

M (Q, , , q0 , F )
Sea

Entonces:

M' se puede obtener a partir de un AF

M de la siguiente manera:

M ' (Q, , ' , q0 , F ' )

Donde:

' (q, a ) (q, a ) q Q

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

es el conjunto de estados a donde se puede

ir el autmata M desde el estado q utilizando solamente transiciones

Ejemplo 5:

Convertir el autmata del ejemplo 4 a un autmata sin transiciones


El autmata si transiciones

se construye analizando a cuales estados se puede ir

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

podemos ir a los estados

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

Analizando de esta manera todos los casos obtenemos:

(q0 ,0 9) {q1 , q 2 }

q2

sin consumir.

(q 4 ,0 9) {q5 }

( q5 ,0 9) {q5 }

El autmata queda entonces:

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

Tambin se puede concatenar un Conjunto consigo mismo, en cuyo caso decimos

LL L2

Definimos la cerradura de Kleene de un conjunto de la siguiente manera:

L* Li
i 0

L0 { }
Donde

Es decir, el conjunto formado por cualesquier numero de concatenaciones de


cadenas del conjunto L.

La cerradura positiva se define como :

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

como expresion regular denota al conjunto

, es decir el conjunto

a
formado exclusvamente por la cadena

Si r y s son expresiones regulares, que denotan a los conjuntos R y S


respectvamente, entonces (r+s), (rs) y r* son expresiones regulares que denotan a los
conjuntos

RS

RS
,

R*

respectvamente.

Para ahorrar parentesis, se define la jerarqua de operadores como sigue:

a) La cerradura tiene mayor jerarqua que la concatenacin.


b) La concatenacin tiene mayor jerarqua que la union.

Ejemplo 7. La exrpresin regular que denota el lenguaje del ejemplo 2, es decir


aquel que tiene al menos dos unos consecutivos es:

(0+1)*11(0+1)*

A partir de expresiones regulares es posible cosntruir un NFA con transicionessiguiente manera:

Si

de la

se utiliza como expresin regular que denota al Lenguaje que consta de

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

El autmata que reconoce el lenguaje denotado por la expresin regular (0+1)*1 es

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

podemos hacer uso de la siguiente recurrencia

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

Autmatas Finitos deterministas de dos direcciones: (2DFA)


Un 2DFA es un quinteto

M (Q , , , q 0 , F )

: Q Q {L, R}
Donde:

De manera que un 2DFA es un DFA que despues de cambiar de un estado a otro,


se puede mover a la izquierda en la cinta de entrada en lugar de hacerlo siempre hacia
la derecha como los FA's convencionales.

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

para indicar la transicin

I k 1 I k

Usamos
pasos

para indicar que de una instantnea se puede llegar a otra en varios

El lenguaje que reconoce un 2DFA es:

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

y cambia de sentido buscando ahora hacia la

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 ,0) (q1 , R)

(q1 ,1) (q 2 , L)

c)

d)

( q 2 ,0 ) ( q 0 , R )

(q 2 ,1) (q 2 , L)

e)

f)

Para la entrada 0100101

La secuencia de ID's sera:

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

El comportamiento del 2DFA puede observarse en el siguiente diagrama para la


misma entrada, solo considerese que cuando el autmata cambia de sentido, en lugar
de desplazarse permanece en el mismo lugar de la cinta de entrada pero lee el
carcter de la izquierda si cambi su sentido hacia la izquierda y el de la derecha si
cambi su sentido a la derecha en lugar desplazarse y de siempre leer el carcter de
la derecha.

q0

q0

q1

q1

q1
q2
q0

q1

q1
q2

q0

q1

Las columnas de estados ubicadas entre smbolos de la cadena de entrada se


conocen como secuencias cruzadas. Las secuencias vlidas deben cumplir con las
siguientes caractersticas:

a)
b)
c)
d)

Deben ser de longitud impar


Los estados "Derechos" deben ocupar posiciones impares
Los estados "Izquierdos" deben ocupar posiciones pares
No debe haber estados repetidos en una secuencia

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

verifica por la derecha a 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.

Para averiguar cuales secuencias verifican a cuales bajo el smbolo b podemos


seguir el siguiente procedimiento recursivo:

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

Determinando cuales secuencias verifican a cuales por la derecha, podemos obtener


un NFA a partir de un 2DFA.

Ejemplo, Obtengamos un NFA equivalente al 2DFA del ejemplo anterior.

para este autmta, las secuencias vlidas son solamente:

q0

q1
q 0 , q 2 , q1
q1 , q 2 , q 0

Bajo el smbolo 0 concuerdan:

1) nul por la derecha a nul


2) nul por la izquierda a nul

q0
3)

q0
por la derecha a

q1
4)

Base
Base
(1), Regla 2 y (a)

q1
por la derecha a

(1), Regla 2 y (c)

q 2 q0
5) nul por la izquierda a

q1 q 2 q0

q1
6)

(2), Regla 3 y (e)

por la derecha a

(5), Regla 2 y (c)

De la misma forma obtenemos las concordancias bajo el smbolo 1

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 ]

PROPIEDADES DE LOS LENGUAJES REGULARES

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

El lema del bombeo

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

La utilidad de este lema radica precsamente en decidir si un lenguaje es regular o


n, puesto que no queremos perder el tiempo buscando un autmata finito que
reconozca un lenguaje que ni siquiera es regular.

Formalmente, el lema del bombeo puede ser expresado de la siguiente manera:

L nz ( z L, | z | n ) uvti ( z uvt, | v | 1, uv i t L)

Recuerde que |z| se lee la longitud de la cadena z, y tambin recuerde que el


operador existe nos permite cambiar nuestra eleccin de n, as como de u,v y t, en
cambio para una cierta eleccin de estas variables el operador para todo nos permite
demostrar que el lenguaje no es regular mediante un contraejemplo.

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

Es decir, si partiendo de un estado q un autmata lee una cadena alfa y termina en


un estado que es equivalente al estado en el que termina cuando parte de un estado p
y lee la misma cadena, entonces los estado q y p son equivalente, es decir,
pertenecen a la misma clase de equivalencia, pues no olvidemos que la clases de
equivalencia producen particiones, Recordemos que una particin es un grupo de
conjuntos disjuntos cuya unin resulta en el conjunto original. Este teorema es la base
para un algoritmo que detecta estados redundantes en un autmata finito y nos
permite obtener el autmata equivalente con el menor nmero de estados posible.

Algoritmo de minimizacin

Si p es un estado final y q no lo es, entonces el par (p,q) es distinguible.


Para cada pareja (p,q) que no verifican la condicin anterior:
o Para cada smbolo del alfabeto de entrada calcular los estados a los
que evoluciona el autmata leyendo ese smbolo, sean estos estados r

( 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

en las estructuras de datos. Para la implementacin de la interfaz tambin provee las


herramientas necesarias para tener una flexibilidad aceptable tanto en la entrada como
en la salida de datos.

Para representar el autmata original se utiliza una matriz de m x n, donde m


es el nmero de estados y por tanto los renglones de la matriz; n es el nmero de
smbolos en el alfabeto (las columnas), as pues se puede tener:
qi,qj
1

p, q
marca
s1
q0
.
.
qn

qi
qi
qi
qi

qi
qqi,qj
i
qi
qi

sn
qi
qi
qi
qi

Asociado a la posicin de cada rengln se encuentra la etiqueta para dicho


estado, las cuales se encuentran almacenadas en otro arreglo, en la posicin que
corresponde a cada rengln, de manera similar se tiene un arreglo con los ndices de
las etiquetas
de los estados que forman parte
qi,qj
qi,qj del conjunto F (estados finales).
2

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

Para la interfaz de usuario se consideran dos aspectos, la entrada y la


presentacin de resultados. La siguiente figura muestra como y donde deben
introducirse los datos que definen el Autmata Finito Determinista. El Applet cuenta
con campos de edicin para introducir: el conjunto de estados (Q), el conjunto de

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.

La interfaz cuenta con dos botones, el primero de ellos (Minimizar el autmata),


es el encargado de iniciar el procesamiento de los datos y aplicar el algoritmo para
posteriormente mostrar el resultado. El segundo botn, permite cargar un ejemplo.

La salida se muestra en la siguiente figura, en ella se puede apreciar la tabla de


transiciones del autmata, as como los estados equivalentes y la matriz de
equivalencia final. Parar tener una mejor apreciacin se muestran los respectivos
autmatas, el que se produce mediante la tabla de transiciones y el que queda
despus de aplicar el algoritmo de la minimizacin. Para tener una mejor referencia de
las transiciones, cada estado tiene un color diferente, generado aleatoriamente, y
tambin sus transiciones son del color correspondiente al estado.

GRAMATICAS LIBRES DEL CONTEXTO


Una gramtica libre del contexto es un cuarteto

G= (V,T,P,S)

Donde :

V.- Conjunto de Variables


T.- Conjunto de Terminales
P.- Conjunto de Reglas de Produccin
S.- Smbolo inicial de la gramtica

Las reglas de produccin son de la forma

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 *}

Observe que en las reglas de produccin usamos la flecha sencilla o delgada,


mientras que en las derivaciones utilizamos la flecha doble o gruesa.

Ejemplo, la siguiente gramtica describe el Lenguaje que consiste de todas las


cadenas hechas con ceros y unos que son palndromos:

G=({A},{0,1},P,A)

Donde P consiste de las siguientes CINCO reglas de produccin

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.

A veces obviamos la especificacin como G=({A},{0,1},P,A), y escribimos


directamente las reglas de produccin, en cuyo caso la variable que est a la izquierda
de la primer regla de produccin se toma como el smbolo inicial de la gramtica,
acostumbramos tambin utilizar maysculas para denotar variables, pero esto no se
puede hacer cuando las cadenas que constituyen el lenguaje pueden incluirlas.

Derivemos la cadena 001100

A 0 A0 00 A00 001A100 001100

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.

Hagamos una derivacin de la cadena x+y*x

E E E E E * E x E* x y * E x y * x

La derivacin se pudo haber realizado utilizando las reglas de produccin en un


orden diferente, por ejemplo, la siguiente tambin es una derivacin vlida:

E E*E E E*E x E*E x E*x x y*x

Cuando es posible realizar dos derivaciones distintas de una misma cadena,


decimos que la grampatica es AMBIGUA, la ambigedad presenta muchos problemas
en la prctica, puesto que en una aplicacin real, por ejemplo una calculadora pudiera
decirnos que 3+2*3 es igual a quince en lugar de nueve ya que las gramticas como
estas no proporcionan informacin acerca de la jerarqua de operadores

FORMA NORMAL DE CHOMSKY (FNC)


Una gramtica sin reglas de produccin unitarias, sin smbolos intiles ni anulables
puede expresarse en la FNC, en la cual todas las reglas de produccin tienen del lado

derecho un terminal o bien 2 variables, es decir, las reglas de produccin son de la


forma

A BC

A, B, C V
donde

bien, de la forma

Aa

donde

a T

Ejemplo, convirtamos la gramtica siguiente a la FNC

A 0 A0 | 1A1 | 0 | 1

Solucin:
La primera regla de produccin
siguientes

A 0A0

la podemos cambiar por las tres

A CB

B AC
C 0

La segunda regla de produccin


siguientes

A UD

D AU

A 1A1

la podemos cambiar por las tres

U 1

Las ltimas dos reglas s cumplen con la FNC, entonces la gramtica


normalizada queda:

A CB | UD | 0 | 1

B AC

C 0
D AU

U 1

LA FORMA NORMAL DE GREIBACH (FNG)


Una gramtica se encuentra en la FNG si todas las reglas de produccin son
de la forma

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.

Para convertir una gramtica a la FNG, primero se convierte a la FNC y


despus se les asigna un orden a las variables comenzando por el smbolo inicial y
luego conforme aparecen las variables en las reglas se les va asignando un nmero
mayor. Entonces, se deben modificar las reglas de produccin para que en todas se

Ai A j
cumpla que si

entonces i sea menor o igual a j.

Considere por ejemplo la siguiente Gramtica, la cual ya se encuentra en la


FNC:

S AA | 0
A SS | 1

Renombremos las variables para asignarles el orden descrito antes:

A1 A2 A2 | 0
A2 A1 A1 | 1

Como la tercera regla no cumple la condicin de que la primera variable del


lado derecho de la regla de produccin sea mayor o igual a la variable que se
encuentra del lado izquierdo de la regla, debemos de cambiar la gramtica:

A1 A2 A2 | 0
A2 A2 A2 A1 | 0 A1 | 1

A A

Las reglas de produccin del tipo


son recursivas por la izquierda y
debemos cambiarlas por otras donde este tipo de recursividad no se presente, aunque
en algunas de las nuevas reglas se presente recursividad por la derecha, este tipo de

recursividad no nos afecta en nuestro objetivo de convertir la gramtica a la FNG. En


general, las reglas:

A A 1 | A 2 | ... | A r | 1 | 2 | ... | s

sern reemplazadas por las reglas:

A 1 | 2 | ... | s | 1 B | 2 B | ... | s B

B 1 | 2 | ... | r | 1 B | 2 B | ... | r B

Para nuestro ejemplo esto significa que la gramtica se convertira en:

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:

A1 0 A1 A2 | 1A2 | 0 A1 BA2 | 1BA2 | 0

A2 0 A1 | 1 | 0 A1 B | 1B
B 0 A1 A1 | 1A1 | 0 A1 BA1 | 1BA1

B 0 A1 A1 B | 1A1 B | 0 A1 BA1 B | 1BA1 B

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.- Denota al conjunto de estados

.-Denota al alfabeto de la cinta de entrada


.-Denota al alfabeto de la pila

: (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

(q1 ,0, A) (q1 , CA) A


Observe que esta es una manera abreviada de escribir
varias reglas

(q1 ,1, A) (q1 ,UA) A


(q1 , x, A) (q 2 , A) A
Deja el stack sin modificar pero se cambia de estado

(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

M ({q 0 , q1 , q 2 , q3 },{0,1, x},{Z 0 , C ,U }, , q 0 , Z 0 , {q3 })


El autmata es

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={}

Es decir, el conjunto de estados finales es un conjunto vaco

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

Tambin es sencillo convertir un autmata que reconozca por pila vaca

M (Q, , , , q 0 , Z 0 , {})
en un autmata que reconozca por estado final M,

qf

qi

agregamos un estado nuevo


y un nuevo estado inicial
, as como un nuevo
smbolo R para el alfabeto del stack , finalmente agregamos las reglas:

(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

El autmata resultante sera evidentemente

M (Q {qi , q f }, , {R}, ' , qi , Z 0 , {q f })

Por supuesto,

'

es igual a

mas las reglas nuevas que acabamos de precisar.

Los autmatas de pila pueden ser indeterministas en cuyo caso

: (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.

El problema de no saber donde est el centro del palindromo implica que no


sabemos si el autmata debe empezar a sacar elementos del stack o los debe de
seguir introduciendo, en un autmata indeterminista esto no es problema pues se le
dice al autmata que explore ambas posibilidades. El autmata queda entonces:

(q 0 ,1, Z 0 ) {( q0 , UZ 0 )}
( q 0 ,0, Z 0 ) {( q 0 , CZ 0 )}

(q1 ,0, A) {( q1 , CA), ( q 2 , )} A


Explora ambas posibilidades (indeterminismo)

( 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 , )}

El autmata queda finalmente

M ({q 0 , q1 , q 2 },{0,1},{Z 0 , C , U }, , q 0 , Z 0 ,{})

Una gramtica libre del contexto expresada en la Forma Normal de Greibach


G=(V,T,P,S) puede convertirse muy fcilmente a un autmata de pila de un solo estado
que reconoce por pila vaca

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.- Denota al conjunto de estados de la MT

.-Denota al alfabeto de la cinta al inicio

.-Denota al alfabeto de la cinta en cualquier momento, obviamente

: (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:

(1) El primer cero de izquierda a derecha sustituirlo por C

C0 01 ....... 0n-1 0n 10 11 1n-1 1n 00 01 ....... 0n-1 0n

(2) Avanzar a la derecha hasta encontrar un uno y sustituirlo por U

C0 01 ....... 0n-1 0n U0 11 1n-1 1n 00 01 ....... 0n-1 0n

(3) Avanzar a la derecha hasta encontrar un cero y sustituirlo por C

C0 01 ....... 0n-1 0n U0 11 1n-1 1n C0 01 ....... 0n-1 0n

(4) Retroceder pasando por los unos y Us hasta encontrar una C precedida por un
cero

C0 01 ....... 0n-1 0n U0 11 1n-1 1n C0 01 ....... 0n-1 0n

Y Repetir (1) , hasta tener

C0 C1 ....... Cn-1 Cn U0 U1 Un-1 Un C0 C1 ....... Cn-1 Cn B

En caso de que no se puede cumplir: El primer cero de izquierda a


derecha , Avanzar a la derecha hasta encontrar un , Retroceder pasando por
los unos y Us hasta encontrar , la cadena no ser aceptada.

Formalizando.
Sea M = (Q, , , , q0, B, F)
La Mquina de Turing que reconoce el lenguaje

{0n1n0n | n 1}

Entonces:

Q = {q0, q1, q2, q3, q4, q5, q6, q7}


= {0, 1}
= {0, 1, B, C, U}
q0 = q0
F = {q6}

=
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)

Cdigo para el simulador de la Mquina de Turing.


Disponemos en la Facultad de un simulador de Mquinas de Turing hecho en
LISP [3]
donde podemos probar nuestros diseos. Dadas las caractersticas del simulador se
asumen los siguientes convencionalismos para la funcin de transicin:
1. Cuando en una transicin se cambia el smbolo ledo de la cinta, se incluye un
nuevo estado para poder indicar la escritura y el movimiento, por ejemplo:
(q0,0) ser ((Q0 0) (C Q_1) (C Q_1) (R Q1)), donde Q_1 es el nuevo estado
correspondiente a Q1. y as para todo Q_X existe un QX.
2. Si en la transicin el smbolo ledo no cambia, entonces solo se indica hacia
donde se mueve el control finito y a que estado cambia. Por ejemplo: (q1,0)
ser igual a ((Q1 0) (R Q1)).
Finalmente el cdigo queda como sigue:

;********************** CUC.MT ***************************


;Se reconocen cadenas de la forma 0^n1^n0^n pj.: 001100, 010
;El estado final es Q6
(SETQ FUNCION_DE_TRANSICION '(
((Q0 0) (C Q_1))
((Q_1 C) (R Q1))
((Q1 0) (R Q1))
((Q1 U) (R Q1))
((Q1 1) (U Q_2))
((Q_2 U) (R Q2))
((Q2 1) (R Q2))
((Q2 C) (R Q2))
((Q2 0) (C Q_3))
((Q_3 C) (L Q3))
((Q3 C) (L Q3))
((Q3 1) (L Q4))
((Q3 U) (L Q4))
((Q4 1) (L Q4))
((Q4 U) (L Q4))
((Q4 0) (L Q7))
((Q4 C) (R Q5))
((Q5 U) (R Q5))
((Q5 C) (R Q5))
((Q5 B) (R Q6))
((Q7 0) (L Q7))
((Q7 C) (R Q0))
))
(SETQ ENTRADA '(0 0 1 1 0 0))
(SETQ ESTADO_INICIAL Q0)

(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

Despus se realizan los siguientes pasos:

(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

Regresar hasta encontrar un 0 antecedido de un 2 y repetir el paso anterior,


hasta llegar a tener:

P1 22 2n-1 2n

01 02 0n-1 0n B

Finalmente restaurar, es decir, sustituir los 2 por 0 quedando:


P1 02 0n-1 0n

01 02 0n-1 0n B

(2) Realizar el producto de n x n

(2.a) Poner un uno en el primer blanco


P1 02 0n-1 0n

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

por un B, y se realiza la copia del segundo segmento, de manera similar a


como se hizo en (1.b) con la diferencia de que en este segmento no hay una P.
En otras palabras el resultado se va almacenando despus del segundo uno.
Realizadas la n copias tendramos en la cinta lo siguiente:

B1 B2 Bn-1 Bn

01 02 0n-1 0n

011 01n 0n1 0nn B

(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)

Cdigo para el simulador de la Mquina de Turing


Dadas las caractersticas del simulador, se asumen los convencionalismos
dados para el ejercicio anterior. El cdigo para el simulador es el siguiente:

;********************** NXN.MT ***************************


;Se calcula n cuadrada, es decir n x n,en unario
;Pj. la entrada es: 000, la salida sera: 000000000
(SETQ FUNCION_DE_TRANSICION '(

((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))

(SETQ ESTADO_INICIAL Q0)


(SETQ POSICION_INICIAL_CINTA 0)
(SETQ SIMBOLOS '(B 0 1 2 P))

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).

Actualmente, las computadoras son mquinas que poseen un conjunto de


caractersticas excelentes en cuanto a potencia de clculo, velocidad de proceso y
capacidad para el almacenamiento de datos, se trata de dotarlas de ciertas
capacidades nuevas que permitan de forma funcional imitar el razonamiento de la
mente humana.
La inteligencia artificial o AI es una rama de la ciencia que trata de encontrar
soluciones a problemas complejos mediante mquinas, en una forma parecida a la
que hacen (o haran) los humanos. El hombre convive desde antao con sistemas
inteligentes artificiales, aun sin darse cuenta. Desde primitivos sistemas de control de
temperatura en aparatos de aire acondicionado o termotanques a los robots actuales,
que mantienen actualizados los motores de bsqueda en Internet, estrategas
artificiales capaces de vencer a humanos en juegos de estrategia.
Definicin
Inteligencia artificial (AI) es una rama de la informtica, proporcionando computadoras
con sus elementos de hardware y software que simulan la inteligencia humana y el
comportamiento de un individuo.
La inteligencia artificial es un campo de investigacin y aplicacin que trata de
conseguir que las computadoras simulen en cierta manera la inteligencia humana. El
problema es que la inteligencia humana es difcil de circunscribir y definir. En efecto, la
inteligencia es una conducta compleja que incluye la conciencia, el inconsciente, los
procesos cognoscitivos.
Existen dos lneas de investigacin sobre inteligencia artificial: AI dura e AI blanda.
Inteligencia artificial dura
La inteligencia artificial dura se propone la creacin de formas de inteligencia basada
en las computadoras, que pueda razonar y resolver problemas. En teora, esta forma
de inteligencia artificial debera ser consciente de s misma. Un ejemplo de este tipo de
inteligencia artificial, es el computador HAL 9000 de la pelcula 2001 Odisea del
Espacio. Existen a su vez dos variantes de inteligencia artificial dura: una en la que se
imita la forma de pensar y razonar de los humanos, y otra en la que se propone una
manera no humana de pensar y razonar.
Inteligencia artificial blanda
En este caso, el objetivo es la creacin de una inteligencia basada en mquinas, que
slo pueda ser operacional dentro de un dominio limitado. No se pretenden mquinas
inteligentes e independientes, sino adecuadas solamente para una tarea especfica.
Uno de los ejemplos ms ilustrativos se da cuando se hace referencia a los edificios
inteligentes, que son aquellos que poseen dispositivos para regular la temperatura de
los ambientes, cerrar puertas y ventanas, registrar la entrada o salida de personas,
encender electrodomsticos, etc.
Objetivo

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.

Y, ltimamente, se retom dicho trmino con el sentido de control o direccin o de


regulador o gobernador.
En esa forma, la ciberntica surge como una ciencia destinada a la comunicacin y
control, tanto de hombre como de la mquina, permitiendo que los conocimientos y los
descubrimientos de una ciencia puedan tener condiciones para ser aplicados a otras.
Dicho en otros trminos, es una teora de los sistemas de control basada en la
comunicacin o transferencia de la informacin entre el propio sistema y el ambiente y
del control de la funcin de los sistemas con respecto al ambiente.

Você também pode gostar