Escolar Documentos
Profissional Documentos
Cultura Documentos
Introduccin
_________________________________________________________________________
donde n es el conjunto de todas las palabras de longitud n que se pueden formar con los
elementos del alfabeto.
En el conjunto * de las palabras del alfabeto se define una operacin llamada
concatenacin de palabras de la manera siguiente:
Dadas las palabras x = a1a2...an e y = b1b2...bm, la concatenacin es la palabra
xy = a1a2...anb1b2...bm
El conjunto * no tiene elemento neutro con respecto a la operacin de concatenacin, a
menos que se introduzca por definicin. Podemos suponer que * contiene una palabra e
(palabra vaca) que no contiene smbolos.
Llamaremos lenguaje sobre un alfabeto a cualquier subconjunto L de *.
Cualquier orden entre los smbolos de induce un orden entre las palabras de n de la
siguiente manera:
1. Para cada n, las palabras de longitud n preceden a las palabras de longitud n+1.
2. Para las palabras de igual longitud se establece el orden alfabtico.
A este orden se le llama orden lexicogrfico. Como consecuencia de este orden podemos
enumerar todas las palabras del lenguaje. Es decir, cualquier lenguaje sobre es un
conjunto numerable.
Tambin podemos establecer funciones f : 1* 2*, donde
alfabetos.
1 y 2 son dos
lenguaje de la teora de conjuntos. Estos objetos matemticos vienen definidos por n-uplas
de conjuntos finitos. As, veremos que la mquina de Turing viene definida por una
sxtupla formado por tres conjuntos finitos, una funcin de transicin y dos elementos de
estos conjuntos.
En estas definiciones de mquinas es comn la presencia de un objeto finito, llamado
programa o control finito (algunas veces referido a la nocin de procesador para la
ejecucin de un programa) que opera sobre una estructura llamada memoria, que puede ser
ilimitada. En cada instante de tiempo el control finito est en un estado particular, siendo
finito el nmero de estados posibles. La memoria se puede contemplar como un almacn de
piezas de informacin compuestas por smbolos de uno o ms conjuntos finitos llamados
alfabetos (recordemos que un alfabeto es un conjunto finito no vaco, , y un smbolo es
un elemento de un alfabeto.
La memoria siempre viene representada por una estructura regular de celdas, casillas o
cuadrados donde se almacena la informacin. Las estructuras de memoria suelen ser
lineales y discretas (como una cinta dividida en trozos iguales donde se escriben los
smbolos del alfabeto) o estructuradas en retculos (cuadrculas) o en rboles. La memoria
se supone infinita, aunque slo una parte finita de la memoria se utilizar en cada
computacin.
En general, se pueden distinguir dos secciones en la memoria: la seccin de entrada
donde la informacin se recoge leyendo un smbolo cada vez; y la seccin de salida
mediante la cual se comunica un smbolo, cada vez, al mundo exterior. El programa
comunica las secciones de entrada y salida mediante canales explcitos que pueden
examinar las secciones de la manera programada. Algunas mquinas, como la mquina de
Turing, no tiene separadas las secciones de entrada y salida, pues la entrada se almacena en
la cinta (memoria) al comienzo de la computacin y el resultado se recupera de la cinta
cuando termina la computacin.
Para formalizar el concepto de computacin vamos a dar el concepto de configuracin
de la mquina. Una configuracin de la mquina es una descripcin completa de los
estados de la mquina, incluyendo el estado completo de su memoria. Es decir, consta de
un indicador de la instruccin en curso del programa, de la estructura y contenido de la
parte finita de la memoria que ha participado en la computacin y el estado de las secciones
de entrada y salida de la memoria.
Ahora tenemos que definir la relacin de transicin entre dos configuraciones de la
mquina. As, diremos que la configuracin C2 se obtiene por una transicin desde la
configuracin C1, que representaremos por C1 C2 , si la instruccin correspondiente del
programa de C1 lleva la mquina a la configuracin C2.
Por lo tanto, una computacin (determinstica) es una sucesin de configuraciones,
conectadas por la relacin de transicin.
Una configuracin inicial es aquella formada por un estado inicial del control finito,
una memoria que est en blanco salvo la parte que contiene a la seccin de entrada, una
seccin de salida vaca, y todos los canales del programa de conexin y la memoria se
inicializan en alguna posicin estndar. As, una entrada x determina la configuracin
inicial de la mquina, Ci(x). Cada una de las configuraciones que se obtienen por
computacin a partir de una configuracin inicial se dice que son alcanzables. Una
configuracin C se llama final cuando no existe otra configuracin que le sucede. Si el
estado del control finito en la configuracin final es uno de los estados especficos de
aceptacin, es decir, aquellos estados as definidos en la n-upla que describe la mquina,
entonces la configuracin final se llama configuracin de aceptacin; si no, se le llama
configuracin de rechazo.
Una computacin completa (determinstica) de la mquina M sobre una entrada x, que
representaremos por T(x), es una secuencia de configuraciones que comienza en una
configuracin inicial y que, si termina, termina en una configuracin final. As, una
computacin puede ser infinita (computacin divergente) o puede terminar en un estado
final.
Una mquina aceptadora es aquella que tiene dos estados finales, llamados estado de
aceptacin y estado de rechazo. Toda computacin finita de M debe parar en uno de estos
dos estados finales.
Una computacin se llama de aceptacin o de rechazo segn que la configuracin final
sea de aceptacin o de rechazo, respectivamente. Una entrada x es aceptada por una
mquina M si la computacin M(x) termina en un estado de aceptacin (configuracin final
de aceptacin). El conjunto de entradas aceptadas por la mquina M, se dice que es el
lenguaje aceptado o reconocido por M.
Una mquina traductora M es aquella que recibe una palabra de entrada, x, y produce
como salida otra palabra, y. Se usa para computar funciones. Dada una funcin f, una
mquina traductora M computa f si la computacin T(x) alcanza una configuracin final
que tiene como salida f(x). Obsrvese que una mquina M computa la relacin R(M)
determinada por todos los pares <x,y>, tales que existe una computacin de aceptacin que
empieza en la configuracin inicial, Ci(x), y termina en una configuracin C donde y es el
contenido de la memoria de salida.
Un modelo de mquina secuencial viene constituido por una unidad de control
conectada a la memorias por varios canales y que ejecuta slo una instruccin cada vez
(incluso en el caso no determinstico). Slo un smbolo, en cada instante de tiempo, se
comunica entre la seccin de entrada o salida de la memoria y el control finito.
8
es un alfabeto
sK es el estado inicial
FK es el conjunto de estados finales
es una funcin de K en K, llamada funcin de transicin.
Un autmata finito determinstico funciona de la siguiente manera: la informacin que
recibe la mquina viene codificada en smbolos de un alfabeto que se escriben en una cinta
de entrada divida en cuadrados (en nmero ilimitado) y se escribe un smbolo en cada
cuadrado (casilla). La parte principal de la mquina es una caja negra, llamada unidad
de control finito, que presenta, en cada momento especfico, un estado concreto del
conjunto de estados posibles K. La unidad de control finito puede conocer el smbolo
escrito en la casilla correspondiente de la cinta de entrada mediante una cabeza de lectura
movible. Inicialmente, la cabeza grabadora se coloca al comienzo de la cinta y la unidad de
control finito se encuentra en el estado inicial. A continuacin el autmata lee el smbolo de
la primera casilla y la unidad de control finito pasa a un nuevo estado que viene
especificado por su funcin de transicin; el nuevo estado depende del estado previo y del
smbolo ledo. Entonces la cabeza de lectura se mueve una casilla a la derecha y lee el
smbolo escrito en dicha casilla. Este proceso se va repitiendo a intervalos regulares, se lee
un smbolo, la unidad de control finito actualiza su estado y la cabeza de lectura pasa a la
casilla siguiente, as sucesivamente hasta que la cabeza de lectura llega al final de la cadena
de smbolo escritos en la cinta de entrada. El autmata acepta (aprueba), o no (desaprueba),
la cadena de smbolos de entrada (palabra) segn que el estado que presenta la unidad de
control finito sea, o no, un estado del conjunto final de estados F. El conjunto de palabras
(cadenas de smbolos) que acepta un autmata finito determinstico constituye el lenguaje
aceptado por la mquina.
Ahora surge la siguiente cuestin: qu propiedades tienen los lenguajes aceptados por un
autmata finito determinista? Se puede demostrar que son cerrados bajos las siguientes
operaciones unin, interseccin, complementacin, concatenacin y la operacin estrella de
Kleene. Por otra parte, la clase de los lenguajes regulares (o conjuntos regulares) sobre un
alfabeto es el conjunto minimal de lenguajes que contienen a , a todos los conjuntos
formados por un solo smbolo, {a}, para a, y son cerrados bajo las operaciones de
10
11
12
acepta (es decir, consigue parar) la mquina de Turing M la entrada w? No hay mquinas
de Turing que decidan dicho lenguaje D. A este problema se le conoce con el nombre de
problema de la parada para mquinas de Turing y consiste en determinar, para una
mquina de Turing arbitraria M y una entrada dada w, si M parar alguna vez partiendo de
dicha entrada.
Tambin se han propuesto otras mquinas diferentes a la de Turing, como las mquinas
RAM (memorias de registros direccionables), los algoritmos de Markov, los sistemas de
Post, las gramticas formales de Chomsky, etc. Todas ellas son equivalentes
computacionalmente a la mquina de Turing. Ello nos lleva a la tesis de Church-Turing:
Cualquier algoritmo se puede implementar en una mquina de Turing.
Sin embargo, a continuacin vamos a ver que el problema de la parada es resoluble
neuronalmente.
di
i : Qii Qi
que aplica ( xi , xi1 ,..., xid ) en i ( xi , xi1 ,..., xid ) , donde i1 ,..., i di son los nodos (vrtices) conectados
i
con el nodo i. El espacio celular C est formado por un dgrafo G numerable, pero
localmente finito, es decir, slo un nmero finito de arcos entran o salen de cada vrtice,
cuyos vrtices se llaman clulas o nodos, y por una familia de subconjuntos finitos Qi de un
conjunto Q que nos dan los estados o niveles de activacin posibles de cada clula i (todos
contiene el estado inactivo 0).
Una red de autmatas opera localmente de la siguiente manera: Una copia de una mquina
de estados finitos Mi, llamada elemento de proceso, ocupa cada vrtice i del grafo G, que es
por ello llamado clula o nodo. Cada copia Mi recibe como entrada los estados que
presentan las clulas vecinas y su propio estado y entonces actualiza su estado segn la
dinmica local establecida por su funcin de transicin i. La red repite esta actualizacin
de los estados de sus clulas repetidas veces.
Una red neuronal (discreta) es una red de autmatas donde cada una de sus clulas
actualiza sus estados aplicando una funcin de activacin a una suma ponderada de las
entradas (estados) que recibe de las clulas vecinas. En una red neuronal,
13
cada arco (i,j) del dgrafo que conecta el vrtice i con el vrtice j tiene asociado un
peso wij, llamado peso sinptico;
la entrada neta de cada unidad celular viene dada por una suma ponderada de los
estados que presentan las unidades celulares vecinas y as el nuevo estado de la
unidad celular i;
La actualizacin de los estados se realiza segn una funcin de activacin fi ,
fi : A A
que verifica que fi(0)=0 (para evitar generacin espontnea de la activacin), siendo A el
conjunto de estados (niveles de activacin) que pueden tomar las unidades celulares. As, el
nuevo estado de la unidad celular i, en el tiempo t+1, viene dado por la expresin:
x i (t + 1) = f i wij x j (t )
(1)
: QQd Q
( xi , xi1 ,..., xid ) ( xi , xi1 ,..., xid ) Q
donde N = {i1,...,id} es el conjunto de vrtices vecinos. La dinmica global de un autmata
celular viene definida por la siguiente expresin:
T ( xi ) = ( xi , xi1 ,..., xid ) .
Garzon y Franklin (1989) demostraron que cada autmata celular es una red neuronal.
Adems, demostraron que el problema de la parada de una mquina de Turing es resoluble
mediante una red neuronal. Este resultado puede parecer un poco sorprendente y puede
14
La Computacin Celular utiliza unidades de proceso simples que por s solas pueden hacer
muy pocas cosas, frente a un procesador de propsito general que realiza tareas muy
complicadas. As, la unidad de proceso de una red neuronal es sencilla y no lo es un
procesador Pentium IV.
Por otra parte, frente al paralelismo masivo que usa cientos de procesadores, la
computacin celular utiliza millones de unidades de proceso, que generalmente se expresan
en forma exponencial, 10n.
15
Computacin Celular
Computacin Distribuida
Parcialmente Conectada
paralela
local
serie
global
Arquitectura Convencional
Complejidad
16
17
1.4.1.2 Comportamiento
El comportamiento dinmico de la clula viene determinado por una funcin de los
valores de sus clulas vecinas. Dicha funcin puede venir dada por alguna de las siguientes
formas:
Una enumeracin exhaustiva, utilizada para clulas discretas, donde el estado que
debe presentar cada clula, segn la configuracin de estados de la clulas vecinas,
viene recogido en una lista.
Una funcin parametrizada (lineal o no lineal) que describe el estado siguiente de
cada clula como una correspondencia con los estados de las clulas vecinas.
Un programa que computa el estado siguiente de cada clula segn los estados de
las clulas vecinas.
Una regla de conducta que especifica el comportamiento en diferentes situaciones.
Dicha regla puede estar inspirada en la biologa molecular o en la fsica cuntica.
1.4.1.2 Movilidad
Adems de cambiar sus valores, las clulas se puede cambiar tambin su situacin dentro
de un ambiente dado y, por lo tanto, pueden ser, o no, mviles.
1.4.1.3 Conectividad
La comunicacin entre clulas se realiza segn un esquema de conectividad especfico. As,
las clulas pueden estar colocadas sobre los vrtices de una rejilla regular con una
geometra dada, como puede ser rectangular, triangular, hexagonal, etc. En la rejilla
rectangular cada clula slo tiene 4 vecinas (figura 1.3.2). La regularidad quiere decir que
todas las clulas tienen que tener el mismo esquema de conexin. As, el esquema de
conectividad puede ser regular o irregular.
Cuando la rejilla es finita tenemos que especificar las condiciones de las clulas que estn
en la frontera, por ejemplo, como neuronas que no cambian de estado con el tiempo.
Tambin podemos evitar tener clulas en la frontera utilizando superficies como el toro.
Asimismo, las clulas pueden constituir los vrtices de un grafo dirigido. Aunque se puede
considerar esquemas de conexin donde todas las clulas estn conectadas entre s, pero
este esquema cae fuera del mbito de la computacin celular.
18
1.4.1.8 Uniformidad
Se dice que el sistema es uniforme si todas las clulas son del mismo tipo, es decir, son
idnticas y as ejecutan la misma funcin. Hay sistemas celulares no uniformes, donde
clulas diferentes ejecutan funciones de transicin diferentes. La no uniformidad puede ser
una ventaja computacional.
19
1.4.2 Comportamiento
Para ver el comportamiento de un sistema de computacin celular como un todo vamos a
analizarlo en diferentes facetas.
1.4.2.1 Programacin
La computacin celular requiere nueve tcnicas de programacin. Distinguiremos dos
tipos:
a) Programacin directa, donde el programador especifica completamente el sistema
en su conjunto de salidas. As, cuando el sistema recibe una entrada que es un
ejemplo o instancia del problema en consideracin, el sistema computa una salida
correcta.
b) Mtodos adaptativos, donde el programador no puede especificar completamente
todo el conjunto de salidas, sino slo parcialmente, y entonces recurre a procesos de
aprendizaje, evolucin o autoorganizacin para conseguir la funcionalidad deseada.
As, mtodos de aprendizaje y algoritmos evolutivos se ha aplicado a las redes
neuronales celulares para encontrar los parmetros de la funcin de transicin con el
fin de resolver algn problema dado. Los algoritmos evolutivos se han aplicado a la
computacin ADN para encontrar buenos cdigos de secuencias de nucletidos.
1.4.2.3 Implementacin
Aunque la mayora de los experimentos en computacin celular se llevan a cabo en
ordenadores convencionales, el objetivo fundamental es la construccin de mquinas
basadas en unidades celulares para conseguir realmente la potencia de la computacin
celular. En estas el coste se deber fundamentalmente a las conexiones y no a las unidades
de proceso. Hasta la fecha se ha desarrollado varias implementaciones, por ejemplo:
20
1.4.2.4 Escalabilidad
La computacin celular permite una mayor escalabilidad que la computacin clsica debido
a su conectividad local, a la ausencia de un procesador central que tenga que comunicarse
con cada clula y a la propia simplicidad de las unidades celulares. La adicin de nuevas
unidades celulares no es ningn problema.
1.4.2.5 Robustez
La robustez de un sistema es su capacidad para funcionar adecuadamente frente a fallos en
alguna de sus partes. Cuando una clula funciona incorrectamente entonces los enlaces de
comunicacin fallan y nosotros deseamos que el sistema contine funcionando
correctamente o que la degradacin sea aceptable. La conectividad local favorece la
contencin de los fallos ms fcilmente al reducir los fallos a una regin y previene as la
expansin al sistema, de manera que una enorme cantidad de clulas permanecern
operativas y funcionando correctamente.
1.4.2.6 Jerarquizacin
La descomposicin jerrquica est presente en las ciencias de la computacin, a nivel de
lenguajes de programacin, de cdigos, de lenguajes mquina y a nivel de transistores. Las
jerarquas aparecen en la naturaleza, de la molcula se pasa a la clula y de la clula a un
organismo, as como las jerarquas de procesamiento en el sistema visual, que comienza
con el registro de la imagen en la retina (bajo nivel) y termina con el reconocimiento de
objetos (alto nivel). Estas formas jerrquicas tambin aparecen en la computacin celular,
bien fijadas en el conjunto de salidas o emergen mediante la programacin adaptativa.
21
pxel de la imagen mediante una unidad celular, y diseando la mquina para que
haga tareas propias del procesado de imgenes.
Tambin se ha utilizado modelos celulares para generar nmeros aleatorios de alta
calidad.
La capacidad de la computacin celular para realizar operaciones aritmticas
permite que se puedan construir calculadoras rpidas a una escala increblemente
pequea (nanomtrica).
22