La auto-reproducción y sus aplicaciones

Eugenio Jacobo Hernández Valdelamar

Fundación Arturo Rosenblueth. Insurgentes Sur 670-3. Colonia del Valle. CP 03100.
México, D.F., México
jack@mail.rosenblueth.mx
jack_hv@yahoo.com

Resumen. En este articulo se exponen las principales ideas y conceptos
relacionados a la auto-reproducción y sus aplicaciones en diversas áreas,
además de presentar un modelo de simulación de un constructor universal
basado en la arquitectura propuesta por Von Neumann.

Palabras clave: bioinformática, auto-reproducción, auto-replicación, vida
artificial, agentes.



1. Introducción

Uno de los procesos recurrentes en el procesamiento de información es la replicación,
que se define como “el proceso de hacer una replica (copia) de algo; el término es
usado en campos como la microbiología (replicación celular) y distribución de la
información (replicación de CD-ROMs, sitios espejo, sincronización de bases de
datos)”.

La información que copiamos por lo general son archivos de texto, bases de datos,
etc., que por sí misma no cambia, ni evoluciona. Sin embargo, hay información que
está muy ligada a procesos que tienen no solo la capacidad de copiar información, sino
su estructura completa para crear un nuevo proceso, independiente del original. Esta
capacidad es conocida como auto-reproducción, la cual puede encontrarse en sistemas
formados por un gran número de elementos idénticos, que interaccionan localmente y
que dan lugar a algún tipo de comportamiento global que no se puede explicar a partir
de las propiedades de un sólo individuo sino como resultado de las interacciones de un
colectivo (sistemas complejos).

Este trabajo expone los fundamentos de la auto-replicación y sus diversas
aplicaciones. El objetivo es mostrar como un fenómeno biológico puede aplicarse a los
desarrollos tecnológicos actuales, en áreas como la informática o la robótica,

2. Las características de los sistemas vivos

Todo sistema vivo está constituido genéricamente por células o unidades sistémicas
que, agrupadas de acuerdo a características de tipo funcional pasan a formar parte de
los subsistemas que relacionados entre si dan como resultado una conformación de
consistencia cuyo objetivo general será el de generar vida.

En este proceso un sistema vivo debe relacionarse con su medio ambiente ya sea
aceptando de éste recursos (entradas) que luego de ciertas transformaciones se obtiene
la energía necesaria para generar movimiento y aquello que careciera de utilidad
(salidas) se devuelva al espacio de origen y en esta forma se logra establecer continuos
ciclos a través de los cuales se va desarrollando la vida misma [13].

Cuando Scheiden y Schwann propusieron la teoría celular en 1838, se estableció lo
siguiente:
Todas las formas de vida nacen de una o más células.
Las células se producen solamente de células preexistentes.
La célula es la forma de vida más pequeña.
La teoría celular también nos provee con una definición operacional de
"vida".

En 1944 el premio Nobel de física, Erwin Schrödinger escribió sus reflexiones sobre
los sistemas vivos en un libro titulado “What is life?” y observó que:
Los sistemas vivos tienden a preservar su estructura en el tiempo.
La estructura molecular de la materia viva es mucho más compleja que la
materia inorgánica.
La complejidad es más o menos proporcional al tamaño. A escalas
microscópicas el azar hace difícil el desarrollo de mecanismos elaborados.
Los sistemas vivos se replican.

Carl Sagan, decía que su definición preferida de la vida es la siguiente: "un ser vivo es
cualquier sistema capaz de reproducirse, de mutar y de reproducir sus mutaciones". Los
biofísicos están de acuerdo en afirmar que efectivamente la auto-conservación, la auto-
reproducción y el almacenamiento de la información son características esenciales de
la vida. Pero para algunos científicos esto no es suficiente para definir la vida. Todo ser
vivo, además, ha de contar con un sistema que le permita aprovechar y transformar la
energía de su entorno, ha de tener control de su propio ambiente interno y de las
distintas partes que permitan conservar su identidad [10].

De lo anterior puede establecerse que una de las capacidades más importantes de los
seres vivos es la auto-reproducción, la cual puede definirse como:
Cuando una unidad produce otra con una organización similar a la propia, por
medio de un proceso que está acoplado al proceso de su propia especificación.
La producción de una unidad con una organización similar a la que lo produjo,
cada una ocupando diferentes espacios físicos, p.ej., la producción de
descendencia biológica.

Cabe aclarar que aunque parezcan sinónimos, auto-replicación y auto-replicación,
tienen contextos diferentes de aplicación. Para aclarar el alcance de estos términos,
primero deben exponerse los siguientes conceptos:
Filogenia. Se refiere a la evolución temporal del programa genético, el sello
de el cual es la evolución de la especie, o filogenia. La multiplicación de
organismos vivos se basa en la reproducción del programa, conforme a un
nivel de error extremadamente bajo en el nivel individual, para asegurarse de
que la identidad del descendiente permanezca prácticamente sin cambios.
Ontogenia. Sobre el aspecto de organismos multicelulares, un segundo nivel
de la organización biológica se manifiesta. Las divisiones sucesivas de la
célula de la madre, el cigote, con cada célula nuevamente formada poseyendo
una copia del genoma original, son seguidas por una especialización de las
células de la hija de acuerdo con sus alrededores, es decir, su posición dentro
del conjunto. Esta última fase se conoce como diferenciación celular. La
ontogenia es así el proceso de desarrollo de un organismo multicelular.
Epigénesis. Para alcanzar cierto nivel de complejidad, debe emerger un
proceso diferente que permita que el individuo integre la extensa cantidad de
interacciones con el mundo exterior. Este proceso se conoce como epigénesis,
e incluye sobre todo el sistema nervioso, el sistema inmune, y el sistema de la
endocrina. Estos sistemas son caracterizados por la posesión de una estructura
básica que sea definida enteramente por el genoma (la parte natural), que
entonces se sujeta a la modificación con las interacciones del curso de la vida
del individuo con el ambiente (la parte adquirida). Los procesos epigenéticos
se pueden agrupar libremente bajo título de aprender sistemas.

Por lo anterior se tiene que:
La Replicación es un proceso ontogenético, que no involucra operadores
genéticos, lo que resulta en un duplicado exacto del organismo padre.
La Reproducción es un proceso filogenético (evolucionista), que involucra
operadores genéticos como el cruzamiento y la mutación, con lo que se da
origen a la variedad y a la evolución.

Generalizando, la replicación es un caso particular de la reproducción.

3. Sistemas auto-replicables

A finales de la década de 1940 el matemático y físico John Von Neumann se interesó
en la pregunta de si una máquina se puede auto-replicar, es decir, producir copias de sí
misma; por lo que Von Neumann empezó a investigar la lógica necesaria para la
replicación.

Von-Neumann consideraba que una propiedad básica de los seres vivos era su
capacidad de auto-reproducción, mientras que los productos de las “máquinas'' son
cosas menos complejas que las máquinas que los producen, los seres vivos son capaces
de producir sistemas que son tanto o más complejos que ellos mismos.

Cuando aún no se tenía ni la más remota idea acerca del ADN de las células, Von-
Neumman propuso unos mecanismos de auto-reproducción basados en códigos
internos de autómatas celulares que captan los fundamentos de la reproducción celular.

Posteriormente con los trabajos de Watson y Creek estos “códigos internos”, asumieron
la identidad del ADN (ácido desoxirribonucleico), que pueden considerarse como el
componente celular que regula el número y naturaleza de cada tipo de estructura y
composición celular, transmitiendo la información hereditaria y determinando la
estructura de las proteínas, que a través de enzimas determinará el resto de funciones
celulares.

Esto dio paso a un mecanismo de auto-descripción llamado replicación del ADN, que
es el fenómeno donde el ADN hace una copia de sí mismo por medio de una enzima
que además de ser muy exacto posee un sistema de reparación de errores. El
mecanismo de replicación es esencialmente el mismo en todas las células. Es un
proceso semi-conservativo porque cada uno de los dos ADN hijo tiene una cadena del
ADN anterior.

¿Qué sería exactamente un sistema auto-replicable? Se conduciría a si mismo como un
virus simplemente replicándose a sí mismo sin deformaciones, sin conocimiento de
propio curso o acciones, sin saber a donde va o cuál es su objetivo, o podría ser un
sistema con un propósito, una estrategia, una base de conocimiento alterable y una
conciencia de su propia existencia?

Algunas consideraciones para la auto-replicación de una máquina son las siguientes:
El rasgo característico de la reproducción de la vida es que el organismo vivo
puede crear un nuevo organismo similar a sí mismo a partir de la materia
inerte que lo rodea.
Degradación de la complejidad; en una línea de ensamble que produce
automóviles, los automóviles no crean líneas de ensamble [7].
Auto-descripción de la máquina contenida en sí misma.
Si no hay auto-descripción la máquina debería percibirse a si misma para
obtener la descripción (pero que hay de la descripción de este “sensor”, o de la
comprensión de la descripción obtenida)

Es destacable el fenómeno de degradación de la complejidad, pues ciertamente muchos
productos que se construyen en líneas de producción sufren de este problema, incluso
las computadoras (fig.1 ). Sin embargo, retomando la propuesta de arquitectura de un
constructor universal de Von Neumann, las computadoras son parte esencial de este
tipo de máquinas.


Fig. 1 Simulación de una línea de ensamblaje de computadoras (José Huizar)

Aunque el corazón de una máquina auto-replicable es una computadora que también
puede ejecutar programas, sus elementos diferenciadores son:
La auto-descripción de la máquina está contenida en su memoria.
El constructor universal, que es un manipulador del ambiente que le permite
reunir materia para producir las copias.
El objetivo principal de la máquina es replicarse a sí misma.

Las configuraciones en que la computadora y el constructor pueden encontrarse son:
Unidos en un solo dispositivo (arquitectura monolítica) interactuando con el
ambiente.
Separados, donde la computadora envía señales a uno o más manipuladores
para que hagan su trabajo en un ambiente (arquitectura de broadcast).

Esta última configuración distribuida permite observar diversos fenómenos, pero el
más importante es el relacionado a la disponibilidad de materia prima para la
replicación. Como puede observarse en la fig. 2, se parte de una configuración inicial
(a) de donde los manipuladores parten a un almacén con las piezas necesarias (b); el
control central envía las instrucciones a los manipuladores para comiencen el
ensamblado de las réplicas (c). En el modelo planteado, se tienen partes para hacer
tanto el módulo de computo como de construcción, de manera que si en uno de los
almacenes no hay suficientes piezas, las replicas no serán exactas, y se producirá una
falla en el proceso. Al terminar el ensamblado, los manipuladores, incluso los nuevos,
regresan a la posición inicial (d).


Fig. 2 Simulación de un constructor universal con arquitectura de broadcast.

Aunque puede pensarse que el modelo solo aplicaría al ensamblaje de hardware, este
esquema es igualmente válido para sistemas solo de software; incluso en el caso de los
agentes móviles este es uno de los fundamentos de dicha arquitectura.

4. Áreas de aplicación de la auto-reproducción

Las áreas de conocimiento que han explorado el concepto de auto-reproducción y auto-
replicación, son las siguientes:

Robótica
Virus informáticos
Patrones generativos
Biosemiótica
Memética
Nanotecnología
Embriónica
Vida artificial

A continuación se describe la aplicación del concepto en cada una de ellas.

4.1 Robótica

Los dispositivos robóticos tienen la capacidad de manipular o de controlar otros
dispositivos. Pueden ser móviles, capaces de moverse a una cierta localización física
distante en donde una acción debe ser tomada. Los robots pueden ser automáticos o
tele-operados. Uno de los proyectos más ambiciosos que involucra el uso de robots es
la colonización lunar [9].

La principal meta del proyecto es generar un ambiente para que puedan habitar los
humanos, y la construcción de dicha infraestructura estaría a cargo de robots, pero
¿quién se haría cargo de ellos?, ¿cuánto costaría transportarlos de la Tierra a la Luna?,
¿cuántos viajes se requerirían?.

Las respuestas con la tecnología actual implicarían un costo demasiado alto, por lo que
se plantea que solo se envíe lo necesario para que los robots encuentren la materia
prima, la procesen y a partir de ahí se auto-repliquen. En este caso, el concepto de auto-
replicación permitiría crear colonias espaciales completas que solo tendríamos que
llegar a ocupar.

4.2 Virus informáticos

Si se trata de auto-replicar un programa es necesario que este contenga una descripción
de sí mismo, por ejemplo:

main(){
char *c= "main(){char *c=%c%s%c; printf(c,34,c,34);}";
printf(c,34,c,34);
}

Sin embargo, para que la réplica se considere útil no solo debe replicarse la
información del programa en pantalla o en almacenamiento secundario, sino también
en su ejecución. En este escenario encontramos a los llamados virus.
Un virus de la computadora es un programa que busca otros programas en los cuales
pueda furtivamente introducir sus propias instrucciones. Este proceso, llamado
infección, es la característica principal de un virus: se reproduce modificando otros
programas. Cuando se ejecutan los programas infectados, buscan otros programas para
infectarlos, creando un efecto de propagación.

Esta función de reproducción viene generalmente en par con otra funcionalidad, que
varía según cada virus [12]. Puede ser cualquier cosa: mostrar un mensaje, borrar
archivos, generar una abertura para los intrusos en el sistema, ajustar el formato del
disco duro, etc. El virus puede esperar un momento preestablecido o un acontecimiento
particular para entrar en la acción, o en casos menos maliciosos, simplemente no hacer
nada.

En 1949 John Von Neumann, describe programas que se reproducen a sí mismos en su
libro "Teoría y Organización de Autómatas Complicados", lo que hoy conocemos
como virus.

La característica de auto-reproducción y mutación de estos programas, los hace
parecidas a las de los virus biológicos.

Se sabe de un juego creado por programadores de la empresa AT&T, que desarrollaron
la primera versión del sistema operativo Unix, en los años 60. Para entretenerse, y
como parte de sus investigaciones, desarrollaron un juego, "Core War",un programa
que tenía la capacidad de reproducirse cada vez que se ejecutaba. Este programa tenía
instrucciones destinadas a destruir la memoria del rival o impedir su correcto
funcionamiento.

Al mismo tiempo, desarrollaron un programa llamado "Reeper", que destruía las copias
hechas por Core War. Un antivirus o antibiótico. Conscientes de lo peligroso del juego,
decidieron mantenerlo en secreto, y no hablar más del tema. No se sabe si esta decisión
fue por iniciativa propia, o por órdenes superiores.

4.3 Patrones generativos

Los patrones generativos nos dicen cómo crear algo y se pueden observar en las
arquitecturas del sistema resultante que ayudaron a formar. Los patrones no-
generativos describen fenómenos que se repiten sin necesariamente decir cómo
reproducirlos. La ventaja de documentar patrones generativos es porque no solamente
demuestran las características de buenos sistemas, sino que muestran cómo
construirlos.

Sin embargo, este elemento "instructivo" es solamente una faceta de lo que Alexander
llama generatividad (generativity) [8]. Se quisiera que los patrones, y especialmente los
idiomas del patrón, fueran capaces de generar las estructuras vivas completas. Parte del
deseo de crear las arquitecturas que emulan la vida reside en la capacidad notable única
de las cosas vivas de desarrollarse y de adaptarse a sus ambientes siempre que cambian
(no solamente para el motivo de la supervivencia individual, sino también para la
supervivencia de la especie).

De manera análoga en la construcción de software, las buenas arquitecturas de software
tratan de ser adaptables y resistentes al cambio. Otro aspecto de la generatividad está
en esforzarse en crear arquitecturas "vivas" que sean capaces dinámicamente de
adaptarse para satisfacer necesidades y demandas que cambian.

4.4 Biosemiótica

La biosemiótica (bios=vida y semion=signo) es una ciencia interdisciplinaria que
estudia la comunicación y el significado en los sistemas vivos. La comunicación es la
característica esencial de la vida. Un organismo es un mensaje a las generaciones
futuras que especifica cómo sobrevivir y reproducirse. Cualquier sistema auto-
catalítico transfiere la información (es decir condiciones iniciales) a su progenie de
modo que los sistemas hijos alcancen eventual el mismo estado que su padre.

Los sistemas de auto-reproducción tienen una cerradura semántico porque se definen
en su progenie. Un signo es un objeto que es una parte de un cierto sistema de auto-
reproducción. Un signo es siempre útil para el sistema y su valor se puede determinar
por su contribución al valor reproductivo del sistema entero.

4.5 Memética

Un meme es un patrón cognoscitivo o del comportamiento que se puede transmitir a
partir de un individuo otro. Puesto que el individuo que transmitió el meme continuará
llevándolo, la transmisión se puede interpretar como réplica: una copia del meme se
hace en la memoria de otro individuo, haciéndolo un portador del meme.

Este proceso de auto-reproducción (el ciclo vital memético), tiende a extenderse a un
grupo cada vez mayor de individuos, define al meme como replicador, de forma similar
al gene.

Para ser replicado, un meme debe pasar con éxito a través de cuatro etapas
subsecuentes [14]:

1) asimilación por un individuo, que de tal modo que se hace anfitrión del meme;
2) retención en la memoria de ese individuo;
3) expresión del individuo en lengua, comportamiento u otra forma que se puede
percibir por otros;
4) transmisión del mensaje o meme a uno o más individuos.

Esta última etapa es seguida otra vez por la etapa 1, cerrando así el ciclo de la réplica.
En cada etapa hay selección, lo que implica que algunos memes serán eliminados.


4.6 Nanotecnología

La idea de los científicos que desarrollan proyectos nanotecnológicos no solo aspira a
la ubicación de átomos a nivel individual, sino a la creación de máquinas moleculares
capaces de crear, átomo a átomo, todo lo que hoy nos rodea o lo que deseemos tener en
el futuro.

En las palabras del propio Eric Drexler: "Puestos en orden de una manera, los átomos
componen aire, tierra, agua. Con otro diseño, los átomos forman unas fabulosas fresas
frescas."[15]

Para llegar ahí, hay que crear máquinas de ensamblaje molecular, que a su vez crearan
otras mayores. Este proceso sigue hasta que las maquinas de ensamblaje quedan
configurar el producto final, utilizando como única materia prima átomos [16].

Se plantea que dichas máquinas de ensamblaje tengan una arquitectura similar a la del
constructor universal de Von Neumann.


4.7 Embriónica

Se basa en el mecanismo de desarrollo de seres vivientes multicelulares. Iniciando de
una simple célula madre (el cigote) que contiene la descripción completa del organismo
en la forma de un genoma, el organismo final es obtenido de la división sucesiva de la
célula, junto con un proceso de diferenciación de cada célula (especialización)
dependiente especialmente de la posición física de la célula (sus coordenadas en un
espacio dado).

El objetivo final es el desarrollo de sistemas lógicos programables de gran complejidad
(FPGAs) capaces no solo de realizar una función cualquiera, sino de tener propiedades
nuevas como auto-reparación, auto-reproducción, cruzamiento y evolución.

La concepción de tales circuitos se pretende de la imitación de mecanismos biológicos
en particular los procesos de división y de diferenciación celular.


4.8 Vida Artificial

La vida artificial es la implementación en sistemas de cómputo de las leyes que rigen y
dieron origen a los seres vivos. Una aplicación práctica de la vida artificial es la
solución de problemas complejos sin necesidad de aplicar un algoritmo especifico
resultante del análisis del problema. Podríamos plantear dicho problema como un
ambiente, luego usaríamos los algoritmos de vida artificial y solo seria cuestión de
esperar; las soluciones a dicho problema la plantearían las diferentes especies virtuales
que se han originado tratando de adaptarse a ese ambiente [10].

Algunos problemas que se abordan en esta disciplina son [17]:
La definición de vida y de sistema vivo. Vida y computación.
Sistemas autoorganizados. Auto-replicación.
Aprendizaje evolutivo. Técnicas de optimización. Algoritmos genéticos.
Adaptación dinámica de los Sistemas Complejos.


6. Conclusiones

Hay muchos ideas simples en la naturaleza, como la auto-reproducción. Inspirarnos en
ellas y llevarlas al mundo de las computadoras puede arrojar resultados sorpresivos y
útiles.

Como se ha expuesto, las líneas de investigación son variadas y seguramente hay más
por explorar. El solo hecho de variar las condiciones donde se realiza la copia del
componente puede causar comportamientos emergentes, que no deben ser considerados
como errores, sino como posibles alternativas de solución.

Esto puede llevarnos en un futuro a la posible implementación del concepto de:
Bioestésis [de bios + (sin)tesis]: término general para cualquier proceso mediante
el cual un sistema se rediseña y reconstruye a sí mismo. Auto-evolución.

Aunque puede parecer ilusorio, Jack Harich ha planteado generaciones avanzadas de
software [18] que podrán presentar este comportamiento. Lo que hay que hacer para
lograrlo es experimentar.



Referencias

[1] Theory of Self-Reproducing Automata, Univ.
of Illinois Press, Urbana IL. von Neumann, John
and Arthur W. Burks. 1966.
[2] Zooland http://surf.de.uu.net/zooland/
[3] Self Reproducing Cellular Automata Loops
http://ourworld.compuserve.com/homepages/cdo
sborn/caworld.html
[4] HAL - Hardware Artificial Life
http://www.alife.co.uk/hal/index.html
[5] Movies of Self-Reproduction in 3D-RCA
http://kelp.ke.sys.hiroshima-
u.ac.jp/projects/rca/sr3d/movies/movies.html
[6] Nanotechnology
http://www.zyvex.com/nano/
[7] Create a Car on an Assembly Line
http://www.sos.state.mi.us/history/museum/techs
tuf/erlyauto/createcar.html
[8] Patterns and Software: Essential Concepts
and Terminology. Brad Appleton .
http://www.enteract.com/~bradapp/
[9] Advanced Automation for Space Missions.
Edited by Robert A. Freitas, Jr., et.al.
http://www.islandone.org/MMSG/aasm/AASMIn
dex.html
[10] ¿Qué es la vida artificial?
http://www.geocities.com/krousky/Espanol/Defi
Vida.htm
[11] Análisis de sistemas de producción animal.
Tomo 1: Las bases conceptuales. J. Wadsworth
http://www.fao.org/DOCREP/004/W7451S/W74
51S00.htm
[12] Virus informáticos: una forma de vida
artificial. Eugene Spafford
http://www.mecad.org/e-
journal/archivo/numero3/
[13] TIEMPO Y ENVEJECIMIENTO
CELULAR
http://www.jfc.cl/esp/envejecimiento.htm
[14] Memetic life cycle
http://pespmc1.vub.ac.be/MEMEREP.html

[15] Engines of Creation. The Coming Era of
Nanotechnology. K. Eric Drexler
http://www.foresight.org/EOC
[16] Nanotecnología
http://www.iespana.es/gaiaxxi/nanotecnologia-
quees.htm
[17]Autómatas Celulares y Vida Artificial.
Francisco Jimenez Morales
http://complex.us.es/~jimenez/CA/ac/ac.html
[18] The myth of code-centricity. Jack
Harich.
http://www.javaworld.com/javaworld/jw-
08-2001/jw-0824-myth_p.html