You are on page 1of 39

1.

1 Breve historia de la Computacin

El desarrollo formal de la teora de la computacin se origin casi cincuenta


aos antes de que apareciera el primer ordenador digital, el ENIAC (1945)
diseado por John Eckert y John Mauchly (con objeto de calcular trayectorias
balsticas). Sus races se encuentran en los trabajos de Hilbert, Gdel, Rosser,
Kleene, Church, Turing y Post, sobre la potencia del razonamiento matemtico
con respecto a un problema computacional, propuesto por el alemn David Hilbert,
hace ms de 90 aos. Este problema, llamado el Problema de Decisin
(Entscheidungsproblem), se puede establecer de una manera informal:

Dada una representacin formal de una afirmacin


(enunciado) matemtica, disear un algoritmo
(programa) que determine si la afirmacin es
verdadera (teorema) o falsa (no vlida lgicamente).

David Hilbert (1862-1943)

1.1 Breve historia de la Computacin


Si tal programa existe, cualquier conjetura se puede probar o refutar
expresndola formalmente y construyendo mecnicamente una demostracin, de
manera que todo el razonamiento matemtico se basa en un fundamento lgico,
donde todos los enunciados (afirmaciones) ciertos son demostrables (al igual que
los falsos) y cada afirmacin es verdadera o falsa. As cualquier teora matemtica
estara formada por un conjunto de axiomas y un conjunto de reglas de inferencia
que permiten generar enunciados vlidos adicionales a partir de enunciados
vlidos dados. La verdad de cada axioma se admite a priori.
Dicho programa se puede escribir si se puede encontrar un conjunto de
axiomas que:

sean lo suficientemente potentes para permitir que se pueda probar


cualquier enunciado verdadero, y que

no admitan contradicciones, es decir, que una afirmacin y su negacin no


puedan ser ciertas al mismo tiempo.

1.1 Breve historia de la Computacin


En 1931, el matemtico austriaco Kurt Gdel publica su famoso teorema de
incompletitud que establece que no puede existir un conjunto de axiomas con las
dos propiedades anteriores y, por lo tanto, el programa anterior no se podr
escribir. Ms concretamente:

"Ningn sistema de razonamiento


matemtico es lo suficientemente potente
para ser capaz de probar toda afirmacin
cierta acerca de las propiedades de los
nmeros naturales".
Kart Gdel (1906-1978)

La Teora de la Computabilidad se ocupa de construir un formalismo matemtico


para razonar sobre la existencia o no existencia de algoritmos efectivos para
problemas particulares. Los resultados que se prueben dentro de esta teora
deben ser aplicables a todas las arquitecturas de ordenadores,
independientemente de sus parmetros, como pueden ser la velocidad del
procesador o el tamao de la memoria. Para ello tiene como base el concepto de
modelo de computacin.

1.1 Breve historia de la Computacin


Necesitamos saber qu entendemos por algoritmo efectivo y por problema.
Aunque el desarrollo formal de la teora de la computabilidad se realiza en el siglo
XX, sin embargo la bsqueda de algoritmos efectivos para resolver ciertos
problemas se viene realizando desde hace ms de 2000 aos.
Los matemticos griegos, como se comprueba en los trabajos de Euclides y
Pitgoras, pusieron gran nfasis en las tcnicas constructivas. As, en geometra
se plantearon algunos problemas que dejaron sin resolver y que han constituido
materia de investigacin durante mucho tiempo, como:

El problema de la cuadratura del circulo:


"Dado un circulo, construir un cuadrado con la misma rea utilizando regla y
comps
El problema de la triseccin de un ngulo:
"Dividir un ngulo dado en tres partes iguales mediante regla y un comps".
El problema de la duplicacin del cubo:
"Dado un cubo, construir otro con exactamente el doble de volumen que el original,
utilizando regla y comps".

1.1 Breve historia de la Computacin


En este contexto, un algoritmo efectivo ser aquel que emplee en sus pasos de
computacin slo regla y comps. Sin embargo, hoy se sabe que ninguno de estos
problemas tiene solucin. Por lo tanto, no existe un mtodo de construccin
apropiado y as no pueden existir tales algoritmos.
La longitud de cualquier segmento construido usando regla y comps se
puede escribir como una expresin en la que intervienen los nmeros naturales y
las operaciones +, , y .
La duplicacin del cubo es imposible pues se precisa construir un segmento
de longitud 21/3 (Descartes, 1637).
La triseccin del ngulo requiere construir lneas cuyas longitudes vienen
dadas por las races de un polinomio cbico. Para ciertos ngulos, como los de 60
estas longitudes no son expresables en la forma requerida (Descartes, 1637).
Lindemann prob en 1882 que el nmero es trascendente y como cualquier
solucin deber construir un segmento de longitud , no existe un algoritmo vlido
para su construccin.

1.1 Breve historia de la Computacin


En un programa de ordenador se genera una salida utilizando la entrada leda. As,
cualquier programa se puede considerar como un evaluador de una funcin, f,
que aplica algn dominio de valores de entrada, I, en algn rango de valores de
salida, O.
La cuestin que surge ahora es:
Qu problemas se pueden resolver con programas de ordenador?
Es decir,
Qu funciones se pueden computar?
Para establecer una formulacin rigurosa de lo que entendemos por algoritmo
efectivo y por problema necesitamos dar los siguientes conceptos:
Un alfabeto es cualquier conjunto finito no vaco; un smbolo (o letra) es un
elemento del alfabeto; una palabra es una secuencia o cadena finita de smbolos
de y la longitud de una palabra x de *es el nmero de smbolos que la forman.

1.1 Breve historia de la Computacin


Dos palabras x e y de * sern iguales si y slo si tienen todos los trminos
iguales; esto es, si y slo si tienen las mismas letras en las mismas posiciones.
El conjunto infinito de todas las palabras que se pueden formar con smbolos de se
representa por *

* n , n 1, 2,3,...

En el conjunto * de las palabras del alfabeto se define una operacin llamada


concatenacin de palabras de la manera siguiente:
Dadas las palabras x = a1 a2 ...an e y = b1 b2 ...bm, la concatenacin es la palabra
xy = a1 a2 ...an b1 b2...bm

Llamaremos lenguaje sobre un alfabeto a cualquier subconjunto L de

1.1 Breve historia de la Computacin


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

Un problema de decisin es una funcin cuyo resultado es 0 1 (falso o


verdadero). Por lo tanto, todas las funciones

f : * 0,1

son problemas de decisin

1.1 Breve historia de la Computacin


Ejemplo: Problema de decisin de la paridad de un nmero natural expresado
en base dos.
El alfabeto es el conjunto {0,1} y cada palabra corresponde a un nmero natural
expresado en base dos. En este caso f(x) vale 1 si x corresponde a un nmero
par, es decir, si la palabra x termina con el smbolo 0. As,
f(010110) = 1 y f(11001) = 0.

Dado cualquier problema de decisin, f : 0,1


dividido en dos conjuntos disjuntos:
*

el conjunto * queda

{x * : f ( x) 1} y {x * : f ( x) 0}
que son el lenguaje correspondiente a f y su lenguaje complementario

1.1 Breve historia de la Computacin


Ejemplo:

El lenguaje correspondiente al problema de decisin de la paridad es:


L(f) = {0, 00, 10, 000, 010, 100, 110,....}
Hemos sustituido la idea vaga de resolucin del problema por el concepto
preciso de determinar si una palabra de entrada dada es un elemento de
un conjunto particular de palabras.
As, determinar si un nmero natural escrito en binario es par es equivalente a
decidir si dicho nmero se encuentra en el conjunto
{0, 00, 10, 000, 010, 100, 110,....}
Los modelos formales de computacin que vamos a estudiar nos suministran
un conjunto de operaciones bsicas para manipular los datos de entrada y
obtener los datos de salida. As, en un modelo de computacin cualquiera, un
algoritmo efectivo, para un problema de decisin dado, f, es una secuencia
de operaciones (permitidas) que determina si una palabra cualquiera x est (o
no) en L(f). Se dir que tal algoritmo (programa) reconoce el lenguaje L(f).

1.1 Breve historia de la Computacin


La Teora de la Computabilidad se ocupa de dividir el universo de todos los
*
lenguajes sobre , en aquellos lenguajes que pueden ser reconocidos por
algoritmos efectivos y los que no.
Ello conduce a las funciones no
computables, es decir, a los problemas no resolubles.
Vamos a recordar algunos modelos clsicos (mquinas) de computacin,
como las mquinas de Turing (determinstica y no determinsticas) y los
autmatas celulares que conducen a diferentes formalizaciones del concepto
de algoritmo, todas ellas equivalentes (equivalentes tambin a otras
formalizaciones ideadas por Kleene, Church, Post, etc.). Esta equivalencia
refuerza la Tesis de Church-Turing que afirma:
la clase de problemas que se pueden resolver
utilizando el sistema de programacin de Turing es
exactamente el mismo que los que se pueden
resolver
utilizando
cualquier
sistema
de
programacin razonable

1.2 De la computabilidad clsica a las Redes Neuronales

La teora clsica de la Computabilidad trata de determinar qu problemas


algortmicos se pueden resolver por ordenador en condiciones ideales de
disposicin ilimitada de memoria y tiempo. Las mquinas de Turing han sido
aceptadas como modelos estndar para el estudio de la computabilidad durante
ms de medio siglo. Comenzaremos analizando el modelo ms simple de
mquinas de estados finitos.

Las mquinas de estados finitos fueron introducidas formalmente por Rabin y


Scott (1959). Una mquina de estados finitos consta de un dispositivo de
memoria representado por una coleccin finita de estados y de una funcin de
transicin que actualiza el estado actual como una funcin del estado previo y de la
entrada en curso. Se supone que toda la informacin viene codificada por cadenas
de smbolos (caracteres) de un alfabeto fijo, que constituyen la entrada a la
mquina. Una formalizacin sencilla de una mquina de estados finitos es el
autmata finito.

1.2 De la computabilidad clsica a las Redes Neuronales


Un autmata finito determinstico es una quntupla M = (K, , , s, F),
K

s K
FK

es un conjunto finito de estados


es un alfabeto
es el estado inicial
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 finita, que presenta, en cada
momento especfico, un estado concreto del conjunto de estados posibles K. La
unidad de control finita puede leer 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.

1.2 De la computabilidad clsica a las Redes Neuronales


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 clausura (estrella
de Kleene). Por lo tanto, son los lenguajes regulares.

1.2 De la computabilidad clsica a las Redes Neuronales


Una posible generalizacin de los autmatas finitos determinsticos es sustituir la
funcin de transicin por una relacin de transicin que es un subconjunto
finito de *, donde * es el conjunto de todas las cadenas finitas que se
pueden formar con smbolos del alfabeto , incluyendo la cadena vaca. Es decir,
ahora se permiten varios estados siguientes para un smbolo de entrada dado y
un estado previo de la unidad de control. A este tipo de mquinas se le llama
autmatas finitos no deterministas. Sin embargo, estas maquinas son
equivalentes a los autmatas finitos determinsticos, es decir, aceptan los mismos
lenguajes. Adems, para cada autmata finito no deterministico se puede
construir un autmata finito determinstico equivalente.
Sin embargo, los autmatas finitos determinsticos no se pueden considerar
como modelos verdaderamente generales para el diseo de computadores
puesto que no son capaces de reconocer lenguajes tan simples como
L = { an bn cn : nZ+ }. Por ello, es necesario introducir nuevos mecanismos que
puedan reconocer estos lenguajes y lenguajes mucho ms complicados.

1.2 De la computabilidad clsica a las Redes Neuronales


Uno de estos dispositivos ms potentes es la mquina de Turing
que fue ideada por Alan Turing (1912-1954). La mquina de
Turing consta de una unidad de control finito, de una cinta y de
una cabeza grabadora que puede usarse para leer o para escribir
sobre la cinta. Una mquina de Turing no determinstica es una
cudrupla M = (K, , , s), en la que
K

es un conjunto finito de estados, que no contiene


al estado de parada h.

es un alfabeto que contiene el smbolo blanco ,


pero no contiene los smbolos L y R.
sK es el estado inicial

es una funcin de K en (K{h})({L,R}) ,


llamada funcin de transicin.

Para estudiar si una funcin es o no computable, utilizaremos la


mquina de Turing. Consideramos dos alfabetos o y 1 y una f
definida de
*
*

o 1

1.2 De la computabilidad clsica a las Redes Neuronales


Una mquina de Turing, M = (K, , , s), se dice que computa la funcin f si 0,
1 y para cualquier entrada w * la mquina se para y en las celdas de
0
salida escribe la cadena de smbolos u, siendo f(w)=u.
Si existe una mquina de Turing que computa la funcin f se dice que f es
computable segn Turing.

Si 0 es un alfabeto que no contiene el smbolo blanco, ni los smbolos fijos Y y N,


entonces diremos que un lenguaje L * es decidible segn Turing si la funcin
0
indicador

f L : *0 {Y , N }

definida por la expresin:

Y si w L
f L (w)
N si w L
es computable segn Turing. Tambin se dice que M decide L o que M es un
procedimiento de decisin para L.

1.2 De la computabilidad clsica a las Redes Neuronales


Tambin una mquina de Turing se puede utilizar como un aceptador de
lenguajes. Si 0 es un alfabeto que no contiene el smbolo blanco, diremos que
una maquina de Turing M acepta una palabra w si M se para con dicha palabra.

Asimismo, diremos que M acepta el lenguaje L *0 si y slo si


L = { w * : M acepta w } .
0

Ahora surge la pregunta cul es la clase de las funciones computables segn

Turing? la respuesta est clara, es la clase de las funciones -recursivas.


Una posible generalizacin de la mquina de Turing es la mquina de Turing no
determinstica, en la que se sustituye la funcin de transicin por una relacin de
transicin que asigna varios estados posibles a la unidad de control para un
mismo smbolo de entrada ledo y un mismo estado previo. Sin embargo, se
demuestra que cualquier lenguaje aceptado por una mquina de Turing no
determinstica es aceptado tambin por una cierta mquina de Turing
deterministica.

1.2 De la computabilidad clsica a las Redes Neuronales


Qu problemas (lenguajes) no resuelve (acepta) una mquina de Turing?
Si D es un diccionario infinito que da respuesta a cada cuestin del tipo:
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.

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
Una red de autmatas consiste en un conjunto de elementos de proceso, que van
a ser mquinas de estados finitos, localizados en los vrtices de un digrafo
(grafo dirigido), uno en cada vrtice. Cada elemento de proceso recibe su entrada
de las unidades vecinas y comunica su salida a sus unidades vecinas.
Formalmente, una red de autmatas es un par A= C , {M i } constituido por un

espacio celular C=(G,{Qi}), y

una familia de mquinas de estados finitos Mi (slo un nmero finito de ellas


pueden ser distintas) con alfabeto de entrada i Qi ... Qi
y funcin de
1
di
transicin local i : Qii Qi
que aplica ( xi , xi1 ,..., xid ) en i ( xi , xi1 ,..., xid ) , donde
conectados con el vrtice i.
i

i1 ,..., i di

son los vrtice

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
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.

M1

M3

M1
M1

M3

M2

M1

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
Una red neuronal (discreta) es una red de autmatas donde cada una de sus
clulas actualizan 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,
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 (potencial sinptico);

la actualizacin de los estados se realiza segn una funcin de activacin fi


,fi : A A,

xi (t 1) f i wij x j (t )
j

que verifica que fi(0)=0 (para evitar generacin espontnea de la activacin),


siendo A el conjunto de estados (niveles de activacin) que puede tomar las
unidades celulares.

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
Formalmente, una red neuronal (discreta) es un tripleta N = A,G,{fi}
constituida por un conjunto A de estados posibles finito (valores de
activacin), que admite una estructura aditivo-multiplicativa (permite la
suma de estados ponderados), un dgrafo numerable G, pero localmente
finito, y una familia de funciones de activacin, {fi}, una funcin de
activacin para cada unidad celular. La dinmica local de computacin de
la red viene dada por la expresin:

w23

w12

w31

xi (t 1) f i wij x j (t )
j

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
Un autmata celular es una red de autmatas definida sobre un grafo regular
con una mquina de estados finita idntica para cada unidad celular.
Generalmente, los autmatas celulares estn definidos sobre retculos
(enrejados) Eucldeos, de una o dos dimensiones que forman un grafo
homogneo y sobre cuyos puntos enteros se colocan las unidades celulares.

Formalmente, un autmata celular es una tripleta


M=C,N,M constituida por un espacio celular
C =(,Q) construido sobre un grafo de Cayley, ,
un conjunto finito N de vrtices de , una copia de
una mquina de estados finitos M en cada vrtice
i con alfabeto de entrada Qd =Q...Q (d veces) y
una funcin de transicin local

:QQ Q

( xi , xi1 ,..., xid ) (( xi , xi1 ,..., xid )

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
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 creerse que constituye un
contraejemplo para la tesis de Churh-Turing, pero no es as, ya que dicha tesis
se refiere a la resolucin algortmica de problemas por medios finitos, mientras
que la red neuronal que se emplea en la demostracin requiere la utilizacin
de un objeto infinito (el dgrafo G). Sin embargo, aunque utiliza un conjunto
infinito de unidades celulares ests operan sobre estados finitos.

Asimismo, hay en la literatura varias implementaciones diferentes de una


mquina de Turing mediante redes neuronales. Por otra parte, si nos
limitamos a redes neuronales acotadas, es decir, con un nmero finito de
unidades celulares y de valores de activacin, stas se pueden modelar
mediante un autmata finito M, pensando en las configuraciones como el
conjuntos de estados del autmata finito. La funcin de transicin de M vendr
determinada por el procedimiento de actualizacin de la red neuronal. As, las
redes neuronales finitas son equivalentes computacionalmente a los
autmatas finitos.

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
La arquitectura de von Neumann, que se basa en el
principio de un procesador complejo que realiza una
tarea en cada momento, ha dominado la tecnologa de
la computacin en los ltimos 50 aos.
Sin embargo, una nueva forma de computacin est emergiendo basada en
principios completamente diferentes, que podemos llamar Computacin
Celular.
Este nuevo paradigma computacional suministra nuevas formas de hacer la
computacin ms eficiente (en trminos de velocidad, coste, disipacin,
almacenamiento y calidad de la solucin) para tratar grandes problemas en
dominios de aplicacin especficos.
La computacin celular se basa en tres principios:
Simplicidad
Paralelismo inmenso
Localidad

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
Computacin Celular

Computacin Distribuida

Parcialmente conectadas
paralelo

Local

serie
global
Complejidad
Arquitectura Convencional

Simplicidad
Mquinas de Estados Finitos

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
La Computacin Celular viene tambin caracterizada por la conectividad local
de las unidades de proceso de manera que cada unidad de proceso slo se
comunica con un reducido nmero de unidades de proceso ms o menos
cercanas a ella. Adems, las lneas de conexin son portadoras de una
pequea cantidad de informacin. El principio de localidad conlleva que ninguna
unidad de proceso tenga una visin global del sistema; no hay un controlador
central.

Computacin Celular = Simplicidad + Paralelismo inmenso + Localidad

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
La computacin ADN, que utiliza unidades moleculares (ADN) y esta inspirada
en la biologa molecular. Aunque las unidades moleculares no son demasiado
simples pues pueden exhibir un comportamiento biolgico complejo, sin embargo,
se pueden tratar como elementos simples, desde un punto de vista computacional,
al poder realizar slo unas cuantas operaciones bsicas en el tubo de ensayo.
Para encontrar el camino Hamiltoniano entre dos vrtices dados (un camino que
pasa slo una vez por cada vrtice), Adleman (1994) utiliz oligonucletidos, es
decir, cadenas cortas de hasta 20 nucletidos, para codificar los vrtices y la
aristas de un grafo dado. A continuacin, coloc mltiples copias de los
oligonucletidos en un tubo de ensayo; los oligonucletidos se enlazaban unos con
otros formando molculas que representan caminos del grafo. Aplic entonces
procedimientos de la biologa molecular para tamizar la pltora de soluciones
moleculares ADN candidatas. Es decir, encontrar si existe o no un camino
Hamiltoniano. El tamao enormemente pequeo de estas molculas permite
un paralelismo inmenso sobre una escala completamente nueva. Adems, sern
ms rpidas, ms eficientes energticamente y capaces de almacenar mucha ms
informacin que los ordenadores actuales.

1.2 Computacin sobre grafos:


Redes de autmatas, autmatas celulares y RNA.
Las estructuras autorreproductoras, que fueron estudiadas por von Neumann a

finales de los cuarenta. Chou y Reggia (1998) han usado bucles reproductores
para resolver el problema NP-completo de la satisfacibilidad que consiste en ver si
existe valores de verdad que hacen verdadero un predicado (literal). Cada bucle
representa a una posible solucin de factibilidad para el problema; cuando se

reproduce un bucle se obtiene un bucle hijo que representa a una solucin


candidata diferente, que a su vez se vuelve a reproducir. Bajo un forma de
seleccin artificial, las reproducciones que representa soluciones prometedoras
proliferan y las que no se eliminan.

1.3.1 Caractersticas de un sistema de Computacin Celular


Tipos de clulas
Las clulas toman una valor de un conjunto de valores posibles, que puede ser
discreto (en cuyo caso el valor se llama estado) o continuo (analgico).
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.3.1 Caractersticas de un sistema de Computacin Celular


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

Lneas de conexin
La conexin entre las unidades celulares es simple, es decir, la informacin
transmitida por ellas es pequea, generalmente slo se transmiten los valores
de estado de las clulas vecinas.

1.3.1 Caractersticas de un sistema de Computacin Celular


Topologa celular
El propio esquema de conectividad induce una topologa en las unidades
celulares. Sin embargo, en algunas formas de computacin celular las unidades
celulares no estn colocadas sobre rejillas o grafos sino que estn en un
ambiente que provoca contactos a causa del movimiento aleatorio o dirigido de
las mismas, como ocurre en la computacin ADN, donde no hay una topologa
rgida. Esto mismo ocurre tambin en la computacin basada en hormigas.

Dinmicas temporales
El sistema se va actualizando (cambiando, o no, de estados) con el tiempo, y cada
actualizacin se hace en cada instante o periodo de tiempo.
En una dinmica temporal sincronizada (paralela) se actualizan todas las clulas
al mismo tiempo (simultneamente) o un bloque especfico de las mismas,
mientras que en la computacin asncrona (secuencial) se actualiza slo una
clula cada vez, siguiendo una cierta secuencia, que puede ser aleatoria.
La actualizacin se puede hacer a intervalos regulares de tiempo, es decir, en
trminos de sucesos temporales discretos, y la llamaremos actualizacin
discreta. Si no se hace ninguna divisin discreta del tiempo, la actualizacin es
instantnea, es decir, continua.

1.3.1 Caractersticas de un sistema de Computacin Celular


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.
Determinismo frente al no determinismo
El sistema es determinstico si para una entrada dada el sistema siempre
toma la misma configuracin de estados, y por tanto, termina con la misma
salida.

En un sistema no determinstico para una misma entrada podemos tener


varias configuraciones de estados posibles que conducirn, posiblemente, a
salidas diferentes. Segn como sea la funcin de transicin de la clula,
podemos tener un sistema determinstico o no determinstico.

1.3.2 Comportamiento
Programacin
La computacin celular requiere
Distinguiremos dos tipos:

nueve

tcnicas

de

programacin.

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
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.3.2 Comportamiento
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:

Implementacin de autmatas celulares como hardware digital de


propsito general

Implementacin de autmatas celulares usando procesadores configurables


Un chip analgico de redes neuronales celulares
Computacin molecular en tubos de prueba

Autmata celular de puntos cunticos donde los estados no se codifican


como voltajes, como con las arquitecturas digitales convencionales, sino por
la posiciones de electrones individuales.

1.3.2 Comportamiento
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.
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.3.2 Comportamiento
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.
Problemas locales frente a problemas globales
Un problema local contempla la computacin de una propiedad en trminos
puramente locales, como ocurre con el funcionamiento de una unidad celular.
Un problema global contempla la computacin de una propiedad general del
sistema. As, un reto para el diseador de modelos celulares es encontrar
reglas de interaccin local para resolver problemas globales.

1.3.3 Para qu reas de aplicacin es adecuada la


computacin celular?

La computacin celular encuentra soluciones rpidas y eficientes para


problemas NP-completos que se presentan en diferentes dominios, como en
diseo de redes, teora de grafos, lgica, optimizacin combinatoria,
secuenciacin, localizacin, bsqueda, determinacin de rutas ptimas, etc.

Los modelos celulares encuentran una aplicacin natural al procesamiento


de imgenes digitales, como consecuencia de su arquitectura, pues al ser las
imgenes matrices bidimensionales podemos utilizar rejillas rectangulares y
representar cada 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).

You might also like