11.01.2013 Views

Un Lenguaje para la Especificación de Autómatas Celulares con ...

Un Lenguaje para la Especificación de Autómatas Celulares con ...

Un Lenguaje para la Especificación de Autómatas Celulares con ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

INSTITUTO TECNOLÓGICO DE COSTA RICA<br />

DEPARTAMENTO DE COMPUTACIÓN<br />

PROGRAMA DE MAESTRÍA<br />

<strong>Un</strong> <strong>Lenguaje</strong> <strong>para</strong> <strong>la</strong> <strong>Especificación</strong> <strong>de</strong> <strong>Autómatas</strong><br />

Celu<strong>la</strong>res <strong>con</strong> Aplicaciones en Biología<br />

Tesis <strong>para</strong> optar por el grado <strong>de</strong> Magister Scientiae en Computación<br />

Tomás <strong>de</strong> Camino Beck<br />

Cartago, Costa Rica<br />

2000


Resumen<br />

En esta tesis, se <strong>de</strong>sarrol<strong>la</strong> un lenguaje <strong>de</strong> programación orientado a <strong>la</strong><br />

especificación <strong>de</strong> autómatas celu<strong>la</strong>res. Este lenguaje, <strong>de</strong>nominado Autómata<br />

Celu<strong>la</strong>r-FORTH (ACF), permite especificar cualquier autómata celu<strong>la</strong>r<br />

<strong>de</strong>terminístico o probabilístico <strong>de</strong> forma sencil<strong>la</strong>. Se <strong>de</strong>scribe <strong>la</strong> semántica formal<br />

<strong>de</strong>l lenguaje diseñado, a<strong>de</strong>más <strong>de</strong> una <strong>de</strong>scripción informal, que facilita su<br />

utilización <strong>para</strong> usuarios <strong>de</strong>l lenguaje. El lenguaje se implementa y se <strong>con</strong>struye<br />

un programa <strong>para</strong> Windows <strong>de</strong>nominado ACFw. Esta programa permite a un<br />

investigador especificar autómatas celu<strong>la</strong>res y provee herramientas analíticas,<br />

transformando el programa en un ambiente <strong>de</strong> experimentación. Se <strong>de</strong>sarrol<strong>la</strong><br />

una base teórica sobre autómatas celu<strong>la</strong>res <strong>de</strong>terminísticos y probabilísticos, y se<br />

establece su re<strong>la</strong>ción <strong>con</strong> los sistemas <strong>de</strong> ecuaciones diferenciales. Se p<strong>la</strong>ntean<br />

a<strong>de</strong>más, algunas especu<strong>la</strong>ciones <strong>con</strong> respecto a los sistemas biológicos y <strong>la</strong><br />

importancia <strong>de</strong> los autómatas celu<strong>la</strong>res como mo<strong>de</strong>lo i<strong>de</strong>al <strong>para</strong> <strong>de</strong>scribir estos<br />

sistemas. Para mostrar <strong>la</strong> efectividad <strong>de</strong>l lenguaje, se presentan tres ejemplos<br />

biológicos. El primer ejemplo es una simu<strong>la</strong>ción <strong>de</strong>l crecimiento <strong>de</strong> célu<strong>la</strong>s<br />

cancerosas en diferentes medios, el segundo es un mo<strong>de</strong>lo <strong>de</strong> pob<strong>la</strong>ciones <strong>de</strong><br />

<strong>de</strong>predador y recurso, y el último un mo<strong>de</strong>lo <strong>de</strong> cooperación <strong>de</strong> individuos en una<br />

pob<strong>la</strong>ción. El programa ACFw y el lenguaje ACF <strong>de</strong>sarrol<strong>la</strong>dos son una<br />

herramienta útil <strong>para</strong> <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> mo<strong>de</strong>los complejos basados en autómatas<br />

celu<strong>la</strong>res. El programa pue<strong>de</strong> ser utilizados <strong>con</strong> fines <strong>de</strong> investigación o <strong>para</strong> <strong>la</strong><br />

enseñanza.


Aprobación <strong>de</strong> Tesis<br />

<strong>Un</strong> <strong>Lenguaje</strong> <strong>para</strong> <strong>la</strong> <strong>Especificación</strong> <strong>de</strong> <strong>Autómatas</strong><br />

Celu<strong>la</strong>res <strong>con</strong> Aplicaciones en Biología<br />

Tribunal Examinador<br />

______________________________ ______________________________<br />

José Helo Guzmán, MSc. Ignacio Trejos Ze<strong>la</strong>ya MSc.<br />

Profesor Asesor Profesor<br />

______________________________ ______________________________<br />

Profesor Profesional Externo<br />

______________________________<br />

José Castro Mora, Lic.<br />

Director <strong>de</strong> <strong>la</strong> Maestría<br />

Mayo <strong>de</strong>l 2000


Agra<strong>de</strong>cimientos<br />

Agra<strong>de</strong>zco a los Profesores José Helo y Ignacio Trejos, quienes me apoyaron<br />

in<strong>con</strong>dicionalmente en el <strong>de</strong>sarrollo <strong>de</strong> esta tesis, y <strong>con</strong>fiaron en mi <strong>para</strong><br />

<strong>de</strong>sarrol<strong>la</strong>r un tema en el que no se había trabajado anteriormente.<br />

Agra<strong>de</strong>zco a<strong>de</strong>más, a los profesores Roxana Reyes y Celso Vargas, que <strong>con</strong> sus<br />

discusiones filosóficas e interés, permitían poner en juego y probar i<strong>de</strong>as<br />

interesantes.<br />

<strong>Un</strong>a agra<strong>de</strong>cimiento especial a Marce<strong>la</strong>, mi esposa y amiga, quien me apoyo<br />

psicológica e intelectualmente en el <strong>de</strong>sarrollo <strong>de</strong> <strong>la</strong> tesis. También quiero<br />

agra<strong>de</strong>cer a Walter Marín por su apoyo y ayuda.<br />

En particu<strong>la</strong>r agra<strong>de</strong>zco a mis padres, cuya figura, orientación, apoyo, y<br />

discusiones siempre me han dado <strong>la</strong> oportunidad <strong>de</strong> <strong>de</strong>sarrol<strong>la</strong>rme en cualquier<br />

meta que me proponga.


Indice General<br />

1 INTRODUCCIÓN ........................................................................................................................1<br />

1.1 CONSIDERACIONES PRELIMINARES ............................................................................................1<br />

1.2 OBJETIVOS GENERALES ............................................................................................................3<br />

1.3 OBJETIVOS ESPECÍFICOS ..........................................................................................................3<br />

2 AUTÓMATAS CELULARES ......................................................................................................4<br />

2.1 INTRODUCCIÓN .........................................................................................................................4<br />

2.2 ORIGEN DE LOS AUTÓMATAS CELULARES...................................................................................4<br />

2.3 DESCRIPCIÓN DE AUTÓMATAS CELULARES.................................................................................7<br />

2.3.1 Definición formal <strong>de</strong> un Autómata Celu<strong>la</strong>r ...................................................................10<br />

2.3.2 <strong>Autómatas</strong> Celu<strong>la</strong>res Elementales..............................................................................11<br />

2.3.3 <strong>Autómatas</strong> Celu<strong>la</strong>res <strong>de</strong> 2-Dimensiones .....................................................................15<br />

2.3.4 Propieda<strong>de</strong>s y C<strong>la</strong>ses <strong>de</strong> Autómata Celu<strong>la</strong>res ............................................................17<br />

2.3.5 Algunos Programas <strong>de</strong> <strong>Autómatas</strong> Celu<strong>la</strong>res..............................................................31<br />

2.4 AUTÓMATAS CELULARES PROBABILÍSTICOS..............................................................................32<br />

2.4.1 Autómata Celu<strong>la</strong>r Probabilístico No-uniforme..............................................................32<br />

2.4.2 Autómata Celu<strong>la</strong>r Probabilístico <strong>Un</strong>iforme...................................................................32<br />

2.4.3 <strong>Un</strong> AC probabilístico ....................................................................................................33<br />

2.5 COMENTARIO FINAL ................................................................................................................33<br />

3 SISTEMAS BIOLÓGICOS, VIDA ARTIFICIAL Y AC ..............................................................35<br />

3.1 INTRODUCCIÓN .......................................................................................................................35<br />

3.2 EL CONCEPTO DE VIDA............................................................................................................36<br />

3.2.1 ¿Qué significa <strong>la</strong> vida?................................................................................................36<br />

3.2.2 Propieda<strong>de</strong>s <strong>de</strong> <strong>la</strong> vida ................................................................................................37<br />

3.3 CONCEPTO DE ENTIDAD BIOLÓGICA .........................................................................................42<br />

3.4 EN BUSCA DE PRINCIPIOS FUNDAMENTALES EN ENTIDADES BIOLÓGICAS.....................................44<br />

3.5 ENTIDADES BIOLÓGICAS ARTIFICIALES: VIDA ARTIFICIAL............................................................46<br />

3.6 DINÁMICA BIOLÓGICA, SISTEMAS DE ECUACIONES DIFERENCIALES Y AUTÓMATAS CELULARES......46<br />

3.7 LOS AUTÓMATAS CELULARES COMO AMBIENTE DE EXPERIMENTACIÓN BIOLÓGICA .......................50<br />

3.8 COMENTARIO FINAL ................................................................................................................51<br />

4 DESCRIPCIÓN FORMAL DEL LENGUAJE DE AUTÓMATAS CELULARES – FORTH (ACF)<br />

53<br />

4.1 INTRODUCCIÓN .......................................................................................................................53<br />

4.2 EL AUTÓMATA CELULAR DE ACF .............................................................................................54<br />

4.2.1 Espacio celu<strong>la</strong>r A (p<strong>la</strong>nos <strong>de</strong>l AC) ...............................................................................54<br />

4.2.2 Vecindario N................................................................................................................55<br />

4.2.3 Tab<strong>la</strong> <strong>de</strong> transciciones ∆ ............................................................................................56<br />

4.2.4 Dinámica <strong>de</strong>l autómata <strong>de</strong> ACF ...................................................................................56<br />

4.3 EL LENGUAJE ACF .................................................................................................................58<br />

4.4 SEMÁNTICA FORMAL DEL LENGUAJE ACF ...............................................................................59<br />

4.4.1 Aspectos <strong>de</strong> notación...................................................................................................59<br />

4.4.2 Categorías Sintácticas .................................................................................................60<br />

4.4.3 Definiciones..................................................................................................................60<br />

4.4.4 juicios ...........................................................................................................................62<br />

4.4.5 Reg<strong>la</strong>s <strong>de</strong> Inferencia ....................................................................................................63<br />

4.5 DESCRIPCIÓN INFORMAL DE ACF ............................................................................................68<br />

4.5.1 Pa<strong>la</strong>bras reservadas ....................................................................................................70<br />

4.5.2 Notación Posfija ...........................................................................................................73<br />

4.5.3 La Pi<strong>la</strong> ..........................................................................................................................73<br />

4.5.4 Valores Númericos y Valores Lógicos .........................................................................74<br />

i


4.5.5 Localizaciones..............................................................................................................74<br />

4.5.6 Expresiones .................................................................................................................75<br />

4.5.7 Expresiones Aritméticas y Lógicas ..............................................................................75<br />

4.5.8 Operadores <strong>de</strong> números binarios ................................................................................76<br />

4.5.9 Operadores <strong>de</strong> Pi<strong>la</strong> ......................................................................................................77<br />

4.5.10 Expresiones Condicionales if else then. ......................................................................77<br />

4.5.11 Expresión Condicional Case........................................................................................79<br />

4.5.12 Dec<strong>la</strong>ración <strong>de</strong> Vecindario ...........................................................................................80<br />

4.5.13 Funciones.....................................................................................................................80<br />

4.5.14 Asignación <strong>de</strong> p<strong>la</strong>nos...................................................................................................81<br />

4.5.15 Programas <strong>de</strong> ACF ......................................................................................................82<br />

4.5.16 Reg<strong>la</strong>s probabilísticas..................................................................................................83<br />

4.5.17 Comentarios en ACF ...................................................................................................84<br />

4.6 COMENTARIO FINAL ................................................................................................................84<br />

5 AUTÓMATA CELULAR-FORTH PARA WINDOWS (ACFW).................................................85<br />

5.1 INTRODUCCIÓN .......................................................................................................................85<br />

5.2 PROGRAMACIÓN DE ACFW......................................................................................................85<br />

5.2.1 Objeto Compi<strong>la</strong>dor (Tcompi<strong>la</strong>dor)................................................................................86<br />

5.2.2 Objeto autómata Celu<strong>la</strong>r (TAC) ...................................................................................86<br />

5.2.3 Objeto Números Aleatorios (TRandom) ......................................................................88<br />

5.3 EL COMPILADOR DE ACFW......................................................................................................88<br />

5.3.1 Funcionamiento <strong>de</strong>l Compi<strong>la</strong>dor en ACFw .................................................................88<br />

5.3.2 Errores <strong>de</strong> compi<strong>la</strong>ción ................................................................................................89<br />

5.4 PLANOS DE ACFW ..................................................................................................................91<br />

5.5 AC DETERMINÍSTICOS Y PROBABILÍTSTICOS..............................................................................91<br />

5.6 EVOLUCIÓN DEL AC EN ACFW ................................................................................................92<br />

5.7 INTERFAZ DE ACFW ................................................................................................................92<br />

5.7.1 Programa Principal ......................................................................................................92<br />

5.7.2 Ventana <strong>de</strong> código ......................................................................................................93<br />

5.7.3 Ventana <strong>de</strong> AC.............................................................................................................94<br />

5.7.4 Comandos <strong>de</strong> ACFw....................................................................................................94<br />

5.8 EJEMPLOS DE PROGRAMAS EN ACFW ......................................................................................99<br />

5.8.1 Juego <strong>de</strong> <strong>la</strong> Vida <strong>de</strong> Conway .......................................................................................99<br />

5.8.2 Reg<strong>la</strong> 1 <strong>de</strong> 8...............................................................................................................101<br />

5.8.3 Reg<strong>la</strong> 90 <strong>de</strong> Wolfram. <strong>Un</strong> AC elemental...................................................................103<br />

5.8.4 Reg<strong>la</strong> “Anneal” ...........................................................................................................103<br />

5.9 COMENTARIO FINAL ..............................................................................................................104<br />

6 APLICACIONES BIOLÓGICAS .............................................................................................105<br />

6.1 INTRODUCCIÓN .....................................................................................................................105<br />

6.2 CRECIMIENTO DE CÁNCER.....................................................................................................106<br />

6.2.1 Antece<strong>de</strong>ntes .............................................................................................................106<br />

6.2.2 Reg<strong>la</strong>s <strong>de</strong>l Autómata Celu<strong>la</strong>r .....................................................................................106<br />

6.2.3 Resultados .................................................................................................................108<br />

6.2.4 Implicaciones .............................................................................................................111<br />

6.3 CRECIMIENTO DE POBLACIONES CON LIMITACIÓN DE RECURSOS ..............................................111<br />

6.3.1 Antece<strong>de</strong>ntes .............................................................................................................111<br />

6.3.2 Reg<strong>la</strong>s <strong>de</strong>l AC ............................................................................................................112<br />

6.3.3 Resultados .................................................................................................................113<br />

6.3.4 Implicaciones .............................................................................................................115<br />

6.4 COOPERACIÓN DE INDIVIDUOS DE UNA ESPECIE ......................................................................115<br />

6.4.1 Antece<strong>de</strong>ntes .............................................................................................................115<br />

6.4.2 Reg<strong>la</strong>s <strong>de</strong>l AC ............................................................................................................115<br />

6.4.3 Resultados .................................................................................................................117<br />

6.4.4 Implicaciones .............................................................................................................118<br />

ii


6.5 COMENTARIO FINAL ..............................................................................................................119<br />

7 CONCLUSIONES ...................................................................................................................120<br />

7.1 ¿POR QUÉ AUTÓMATAS CELULARES? .....................................................................................120<br />

7.2 ¿QUE IMPORTANCIA TIENE EL CONCEPTO DE ENTIDADES BIOLÓGICAS? ....................................120<br />

7.3 ¿SON LOS AUTÓMATAS CELULARES UN MODELO UNIVERSAL DE ENTIDADES BIOLÓGICAS? .........121<br />

7.4 ¿POR QUÉ UN LENGUAJE PARA ESPECIFICAR AUTÓMATAS CELULARES? ...................................121<br />

7.5 ¿ES ACFW CAPAZ DE MODELAR CUALQUIER AUTÓMATA CELULAR? .........................................121<br />

7.6 ¿ES ACFW UN MODELO IDEAL PARA APLICACIONES BIOLÓGICAS? ...........................................122<br />

7.7 ALCANCES DE LA TESIS..........................................................................................................122<br />

7.8 COMENTARIO FINAL ..............................................................................................................123<br />

8 BIBLIOGRAFÍA ......................................................................................................................124<br />

9 BIBLIOGRAFÍA CONSULTADA............................................................................................133<br />

ANEXO A: FORTH..........................................................................................................................134<br />

DICCIONARIO.................................................................................................................................134<br />

PILA..............................................................................................................................................134<br />

COMPILADOR.................................................................................................................................134<br />

CARACTERÍSTICAS ADICIONALES.....................................................................................................135<br />

ANEXO B. CAM (CELLULAR AUTOMATA MACHINES) .............................................................136<br />

EL ESPACIO CELULAR.....................................................................................................................136<br />

LA DINÁMICA..................................................................................................................................136<br />

DESPLIEGUE..................................................................................................................................136<br />

ANEXO C. MAQUINAS DE TURING Y AC ...................................................................................137<br />

ANEXO D: GENERADOR DE NÚMEROS ALEATORIOS ............................................................140<br />

EL GENERADOR DE NÚMEROS ALEATORIOS .....................................................................................140<br />

IMPLEMETACIÓN ............................................................................................................................141<br />

PRUEBAS DE ALEATORIDAD............................................................................................................142<br />

iii


Indice <strong>de</strong> figuras<br />

Figura 1 Estructura <strong>de</strong>l espacio celu<strong>la</strong>r en un autómata <strong>con</strong>: a) bor<strong>de</strong>s cerrados, b) bor<strong>de</strong>s<br />

periódicos....................................................................................................................................8<br />

Figura 2 Vecindarios <strong>de</strong> un AC <strong>de</strong> 2-dimensiones: a) vecindario Von Neumann, <strong>con</strong> 5 celdas<br />

vecinas. b) vecindario <strong>de</strong> Moore, <strong>con</strong> 9 celdas vecinas ............................................................9<br />

Figura 3 Algunos AC elementales que inician <strong>con</strong> una semil<strong>la</strong> central. Las líneas sucesivas se<br />

obtienen por <strong>la</strong> aplicación sucesiva <strong>de</strong> <strong>la</strong> reg<strong>la</strong> <strong>de</strong>l AC a cada una <strong>de</strong> <strong>la</strong>s celdas <strong>de</strong>l autómata.<br />

Estos AC muestran 63 generaciones en 150 celdas. a) Reg<strong>la</strong> 150 (10010110) b) Reg<strong>la</strong> 30<br />

(00011110) c) Reg<strong>la</strong> 45 (00101101) d) Reg<strong>la</strong> 60 (00111100). La codificación <strong>de</strong> <strong>la</strong>s reg<strong>la</strong>s<br />

correspon<strong>de</strong> a <strong>la</strong> utilizada por Wolfram. ...................................................................................11<br />

Figura 4 Codificación <strong>de</strong> reg<strong>la</strong>s <strong>para</strong> AC <strong>de</strong> 1-Dimensión según Wolfram. a) codificación numérica.<br />

b) Representación gráfica <strong>de</strong> <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> cambio <strong>de</strong> estado. 2r+1 es el número <strong>de</strong> vecinos<br />

involucrados en <strong>la</strong> reg<strong>la</strong> (r es el rango <strong>de</strong>l vecindario).............................................................12<br />

Figura 5 Reg<strong>la</strong> 90 <strong>de</strong> Wolfram <strong>con</strong> una celda 1 inicial en <strong>la</strong> mitad <strong>de</strong>l vector <strong>de</strong> celdas. a) <strong>de</strong>spués<br />

<strong>de</strong> 16 generaciones. b) <strong>de</strong>spués <strong>de</strong> 250 generaciones............................................................13<br />

Figura 6 Reg<strong>la</strong> 90 <strong>de</strong> Wolfram <strong>con</strong> inicio aleatorio <strong>de</strong> celdas en estado 1. Las celdas b<strong>la</strong>ncas<br />

representan el estado 0 y <strong>la</strong>s negras 1. Se observa <strong>la</strong> formación <strong>de</strong> estructuras estables<br />

(triángulos b<strong>la</strong>ncos invertidos) que representan el principio <strong>de</strong> auto-organización..................14<br />

t+<br />

1 t t t t t<br />

Figura7 Evolución <strong>de</strong>l AC <strong>de</strong> Fredkin, don<strong>de</strong>: a i,<br />

j = ( ai<br />

−1,<br />

j + ai,<br />

j−1<br />

+ ai,<br />

j + ai<br />

+ 1,<br />

j + ai,<br />

j+<br />

1 ) mod 2 .<br />

Se muestra <strong>la</strong> <strong>con</strong>figuración <strong>de</strong>l autómata <strong>de</strong>spués <strong>de</strong> 3,15 y 23 generaciones. ....................15<br />

Figura 8 Juego <strong>de</strong> <strong>la</strong> vida <strong>de</strong> Conway. a) estado inicial <strong>con</strong> 30% <strong>de</strong> 1 distribuidos aleatoriamente.<br />

b) <strong>de</strong>spués <strong>de</strong> 100 generaciones, se observan algunas estructuras estables y una<br />

organización <strong>de</strong>l espacio celu<strong>la</strong>r...............................................................................................16<br />

Figura 9 Ejemplos <strong>de</strong> <strong>la</strong>s c<strong>la</strong>ses <strong>de</strong> Wolfram. Estos autómatas lineales <strong>con</strong>si<strong>de</strong>ran 5 vecinos(r=3)<br />

<strong>con</strong> 2 estados(k=2)....................................................................................................................18<br />

Figura 10 Mo<strong>de</strong>lo <strong>de</strong> von Neumann. La unidad central procesa <strong>la</strong> información <strong>de</strong> una cinta,<br />

permitiendo que el brazo <strong>con</strong>structor localice <strong>la</strong>s partes y ensamble en nuevo individuo y<br />

luego inserte una copia <strong>de</strong> <strong>la</strong> cinta. ..........................................................................................20<br />

Figura 11 Autómata auto-replicable <strong>de</strong> Byl. <strong>Un</strong>a <strong>con</strong>figuración padre <strong>con</strong>struye un <strong>de</strong>scendiente<br />

<strong>con</strong> <strong>la</strong> misma estructura e información. Los colores representan los estados <strong>de</strong>l autómata..21<br />

Figura 12 Autómata replicable <strong>de</strong> Byl. Después <strong>de</strong> varias generaciones, a partir <strong>de</strong> un padre se<br />

logra reproducir una colonia en el espacio celu<strong>la</strong>r. ..................................................................22<br />

Figura 13 a) Cambio en <strong>la</strong> entropía espacial <strong>de</strong> bloques en el juego <strong>de</strong> <strong>la</strong> vida, <strong>de</strong>spués <strong>de</strong> 5000<br />

generaciones (t=5000). b) <strong>con</strong>figuración <strong>de</strong>l AC <strong>de</strong> 200x200 celdas <strong>de</strong>spués <strong>de</strong> 5000<br />

generaciones <strong>con</strong> un inicio aleatorio <strong>de</strong> 30% <strong>de</strong> celdas en estado 1.......................................24<br />

Figura 14 Frentes <strong>de</strong> propagación <strong>de</strong> celdas excitadas a) a partir <strong>de</strong> una línea <strong>de</strong> celdas excitadas<br />

<strong>de</strong>bajo <strong>de</strong> celdas refractarias, <strong>con</strong> el mo<strong>de</strong>lo <strong>de</strong> Greenberg. b) <strong>con</strong> 3% <strong>de</strong> celdas excitadas y<br />

3% refractarias, <strong>de</strong>spués <strong>de</strong> 200 generaciones. ......................................................................25<br />

Figura 15 Barrera <strong>de</strong> “WireWorld”. La señal <strong>de</strong> <strong>la</strong> izquierda es bloqueada en el paso 5. ...............27<br />

Figura 16 Diodo <strong>de</strong> “Wireworld”. a) La señal pue<strong>de</strong> viajar <strong>de</strong> izquierda a <strong>de</strong>recha. b) La señal <strong>de</strong><br />

<strong>de</strong>recha a izquierda es <strong>de</strong>tenida por el diodo...........................................................................27<br />

Figura 17 Compuerta OR <strong>de</strong> “Wireworld”. Se muestra una secuencia <strong>con</strong> dos relojes a) período 4 y<br />

c) periodo 2. La compuerta OR (b), en el paso 7 resulta en una señal, dado que a y c<br />

producen señales, en el paso 11, Or es una señal <strong>de</strong>bido a <strong>la</strong> señal producida por c en el<br />

paso 7. ......................................................................................................................................28<br />

Figura 18 Compuerta AND <strong>de</strong> “wireworld”. .......................................................................................28<br />

Figura 19 Complemento. En a) no hay señal en <strong>la</strong> entrada y por tanto se emite señal a <strong>la</strong> salida.<br />

en b) hay señal <strong>de</strong> entrada y no hay señal <strong>de</strong> salida. ..............................................................29<br />

iv


Figura 20 Reloj <strong>de</strong> “Wireworld”. El reloj manda señales en período 2. En el primer paso, <strong>la</strong> señal<br />

es emitida por el cable; en el paso 5 hay una nueva señal a ser emitida. En los paso <strong>de</strong>l 2 al<br />

4 <strong>la</strong> señal da vuelta en el ciclo. .................................................................................................29<br />

Figura 21 <strong>Un</strong>a estructura <strong>de</strong> memoria. A) se recuerda 0. b) se recuerda 1.....................................30<br />

Figura 22 a) AC probabilístico. b) El mismo AC pero <strong>de</strong>terminístico. ..............................................33<br />

Figura 23. Integración <strong>de</strong> niveles <strong>de</strong> organización biológica, cada entidad biológica (EB), interactúa<br />

<strong>con</strong> otras entida<strong>de</strong>s, originando ciertas particu<strong>la</strong>rida<strong>de</strong>s, gran cantidad <strong>de</strong> interacciones entre<br />

entida<strong>de</strong>s, produce leyes generales <strong>de</strong> comportamiento <strong>de</strong>l sistema. Estas leyes originan una<br />

nueva unidad estructural y <strong>de</strong> funcionamiento que es una nueva EB <strong>de</strong> nivel superior. .........51<br />

Figura 24 P<strong>la</strong>nos <strong>de</strong>l espacio celu<strong>la</strong>r <strong>de</strong> ACF. ..................................................................................55<br />

Figura 25 Procesamiento <strong>de</strong>l lenguaje ACF......................................................................................69<br />

Figura 26 Proceso <strong>de</strong> compi<strong>la</strong>ción <strong>de</strong> TCompiler..............................................................................86<br />

Figura 27 Proceso <strong>de</strong> <strong>con</strong>strucción <strong>de</strong> <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones a partir <strong>de</strong> código escrito en ACF. .87<br />

Figura 28 Reg<strong>la</strong> compi<strong>la</strong>da exitosamente. Los árboles <strong>de</strong> expresión quedan completos y no se<br />

indica error. ...............................................................................................................................88<br />

Figura 29 Significado <strong>de</strong> los símbolos en el árbol <strong>de</strong> expresión .......................................................89<br />

Figura 30 Error <strong>de</strong> i<strong>de</strong>ntificador <strong>de</strong>s<strong>con</strong>ocido. EL error establece que se está invocando a un<br />

i<strong>de</strong>ntificador que no ha sido <strong>de</strong>c<strong>la</strong>rado o no es ninguna <strong>de</strong> <strong>la</strong>s pa<strong>la</strong>bras reservadas <strong>de</strong>l<br />

lenguaje.....................................................................................................................................89<br />

Figura 31 El error <strong>de</strong> pi<strong>la</strong> vacía ET1. En este caso “else” no coloca ningún valor en <strong>la</strong> pi<strong>la</strong> y por<br />

tanto cuando se asigna al p<strong>la</strong>no, <strong>la</strong> pi<strong>la</strong> no tiene valores. ........................................................90<br />

Figura 32 Error ET2. Cuando se evalúan <strong>la</strong>s <strong>con</strong>figuraciones <strong>de</strong> vecinos, ocurre un caso que<br />

exce<strong>de</strong> lo <strong>de</strong>c<strong>la</strong>rado en el “case”. Y ocurre el valor 4. ...........................................................91<br />

Figura 33 Ventana principal <strong>de</strong> ACFw...............................................................................................92<br />

Figura 34 Ventana <strong>de</strong> código <strong>de</strong> ACFw.............................................................................................93<br />

Figura 35 Ventana <strong>de</strong> AC en ACFw ..................................................................................................94<br />

Figura 36 Juego <strong>de</strong> <strong>la</strong> Vida <strong>de</strong> Conway. a) Inicio aleatorio <strong>con</strong> 10% <strong>de</strong> celdas en estado 1. b)<br />

evolución <strong>de</strong>spués <strong>de</strong> 100 generaciones. c) evolución <strong>con</strong> rastro <strong>de</strong>spués <strong>de</strong> 200<br />

generaciones. Se distinguen líneas diagonales formadas por los “gli<strong>de</strong>r2, <strong>Un</strong>a estructura<br />

periódica que se forma en esta autómata. .............................................................................101<br />

Figura 37 Reg<strong>la</strong> 1 <strong>de</strong> 8. a )probabilístico. b) <strong>de</strong>terminístico..........................................................102<br />

Figura 38 Reg<strong>la</strong> “anneal”. a) iniciando <strong>con</strong> 50% <strong>de</strong> celdas en estado 1 y 50% en estado 0, <strong>de</strong>spués<br />

<strong>de</strong> 100 generaciones. b) Muestra una mgnificación <strong>de</strong>l cuadro b<strong>la</strong>nco en a). Los límites<br />

don<strong>de</strong> ocurre <strong>la</strong> acción son azules y rojos (cambian <strong>de</strong> 0 → 1 y <strong>de</strong> 1 → 0 respectivamente).<br />

................................................................................................................................................104<br />

Figura 39 Crecimiento <strong>de</strong> célu<strong>la</strong>s cancerosas en un arreglo <strong>de</strong> 200x200, <strong>de</strong>súés <strong>de</strong> 200<br />

generaciones. a) Las célu<strong>la</strong>s crecen sin presencia <strong>de</strong> citotoxinas. b) Las citotoxinas ocultas<br />

en <strong>la</strong>s célu<strong>la</strong>s normales hace que se forme un complejo <strong>con</strong> célu<strong>la</strong>s cancerosas que culmina<br />

eliminando <strong>la</strong>s célu<strong>la</strong>s <strong>de</strong> cancer formando un tejido menos compacto y ramificado............108<br />

Figura 40 Número <strong>de</strong> célu<strong>la</strong>s cancerosas (C) y normales (N) <strong>de</strong>spués <strong>de</strong> 1000 generaciones (t). a)<br />

No hay citotoxinas. b) hay citotoxinas ....................................................................................109<br />

Figura 41 Entropía espacial (S) <strong>de</strong>l crecimiento <strong>de</strong> célu<strong>la</strong>s cancerosas <strong>de</strong>spués <strong>de</strong> 1000<br />

generaciones. a)Las célu<strong>la</strong>s cancerosas no son afectadas por citotoxinas y su crecimiento<br />

genera un tejido <strong>con</strong>tinuo. b) Las célu<strong>la</strong>s normales tienen citotoxina que induce <strong>la</strong> muerte <strong>de</strong><br />

célu<strong>la</strong>s cancerosas generando mayor <strong>de</strong>sor<strong>de</strong>n. Note <strong>la</strong> diferencia en el valor <strong>de</strong> máxima<br />

entropía alcanzada por ambos casos a) S=0.11 y b) S=0.23 ................................................110<br />

Figura 42 Dinámica <strong>de</strong> <strong>con</strong>sumidor - recurso. a) A partir <strong>de</strong> una cantidad <strong>de</strong> recursos en una<br />

distribución especial, los organismos <strong>con</strong>sumen el recurso y el recurso no es renovable<br />

llevando a <strong>la</strong> <strong>de</strong>saparición <strong>de</strong> los <strong>de</strong>predadores. b) El recurso es renovable (se reproduce)<br />

llevando a una fluctuación entre <strong>la</strong> cantidad <strong>de</strong> recursos y <strong>la</strong> cantidad <strong>de</strong> organismos.........113<br />

v


Figura 43 Dinámica <strong>con</strong>sumidor (N) –recurso (R) en el tiempo (t). a) cantidad <strong>de</strong> <strong>con</strong>sumidores y<br />

<strong>de</strong> recurso a lo <strong>la</strong>rgo <strong>de</strong> <strong>la</strong>s generaciones en un mo<strong>de</strong>lo <strong>con</strong> recurso no-renovable. b) entropía<br />

(S) <strong>de</strong>l sistema <strong>con</strong> recursos no renovables. c) fluctuaciones <strong>de</strong> <strong>con</strong>sumidor – recurso en un<br />

sistema <strong>con</strong> recursos renovables. d) entropía en el sistema <strong>con</strong> recursos renovables.........114<br />

Figura 44 Crecimiento <strong>de</strong> <strong>la</strong> pob<strong>la</strong>ción <strong>con</strong> diferentes valores <strong>de</strong> cooperación. Al aumentar z<br />

aumenta <strong>la</strong> probabilidad <strong>de</strong> cooperación cuando hay vecinos...............................................117<br />

Figura 45 Evolución <strong>de</strong> 100 generaciones. a) inicio <strong>con</strong> 5% <strong>de</strong> celdas en estado 1. b) <strong>de</strong>spués <strong>de</strong><br />

100 generaciones, se observan parches <strong>de</strong> organismos. ......................................................118<br />

vi


A Marce<strong>la</strong><br />

vii


viii<br />

¿A quién le puedo preguntar<br />

qué vine a hacer en este mundo?<br />

¿Por qué me muevo sin querer,<br />

por qué no puedo estar inmóvil?<br />

¿Por qué voy rodando sin ruedas,<br />

vo<strong>la</strong>ndo sin a<strong>la</strong>s ni plumas?...<br />

Pablo Neruda


1 Introducción<br />

1.1 Consi<strong>de</strong>raciones Preliminares<br />

<strong>Un</strong>a <strong>de</strong> <strong>la</strong>s tareas fundamentales <strong>de</strong> los científicos <strong>de</strong> una nueva era es <strong>la</strong><br />

integración <strong>de</strong> teorías <strong>de</strong> diferentes ramas <strong>de</strong> <strong>la</strong> ciencia. Es interesante que<br />

muchos <strong>de</strong> los <strong>con</strong>ceptos <strong>de</strong> teorías computacionales tengan un análogo en algún<br />

sistema físico o biológico. Si pensamos en <strong>la</strong> maquinaria molecu<strong>la</strong>r asociada al<br />

ADN, podríamos <strong>con</strong>jeturar que el ADN es una máquina universal capaz <strong>de</strong><br />

producir cualquier máquina biológica 1 que se adapte a cualquier medio físico<br />

realizando cualquier procedimiento (<strong>de</strong> forma muy eficiente). Hay máquinas<br />

biológicas (nosotros) que producen máquinas físicas <strong>con</strong> características <strong>de</strong><br />

máquinas universales, como <strong>la</strong> máquina <strong>de</strong> Turing, que es a su vez análoga a <strong>la</strong><br />

maquinaria <strong>de</strong> ADN.<br />

Los biólogos tenemos uno <strong>de</strong> los problemas más complejos que el hombre pueda<br />

tratar <strong>de</strong> resolver: estudiar los sistemas biológicos. Para enten<strong>de</strong>rlos, necesitamos<br />

herramientas <strong>de</strong> muchas otras ciencias como <strong>la</strong> física, matemáticas, lógica y<br />

computación. Necesitamos enten<strong>de</strong>r el fenómeno biológico <strong>de</strong>s<strong>de</strong> <strong>la</strong> <strong>de</strong>finición <strong>de</strong><br />

vida, hasta el funcionamiento <strong>de</strong> GAIA 2 . Pareciera que existe un <strong>con</strong>tinuo entre <strong>la</strong>s<br />

leyes físicas y biológicas que comienza por <strong>la</strong> <strong>de</strong>scripción <strong>de</strong> materia inanimada<br />

que está dominada por leyes físicas y pasa a materia animada que opera sobre<br />

leyes biológicas.<br />

Los <strong>Autómatas</strong> Celu<strong>la</strong>res (AC) surgen gracias a John Von Neumann como una<br />

forma abstracta <strong>de</strong> sistemas biológicos. La i<strong>de</strong>a <strong>de</strong> Von Neumann era <strong>la</strong> <strong>de</strong><br />

<strong>con</strong>struir un mundo artificial <strong>de</strong> máquinas que se comportaran como los sistemas<br />

biológicos. Si bien no logró terminar sus trabajos en este campo, nos <strong>de</strong>jó <strong>con</strong> <strong>la</strong><br />

inquietud <strong>de</strong> un mecanismo formal <strong>para</strong> tratar <strong>de</strong> estudiar y probar <strong>con</strong>jeturas<br />

sobre los sistemas dinámicos y que son casi un ambiente <strong>para</strong> <strong>la</strong> formu<strong>la</strong>ción <strong>de</strong><br />

teorías <strong>de</strong> sistemas biológicos. El AC pue<strong>de</strong> ser visto como un medio particu<strong>la</strong>r <strong>de</strong><br />

reacciones químicas, don<strong>de</strong> son posibles los fenómenos <strong>de</strong> auto-organización<br />

<strong>para</strong> formar estructuras complejas autocatalíticas. <strong>Un</strong> AC pue<strong>de</strong> ser un individuo o<br />

autómata artificial capaz <strong>de</strong> replicarse y procesar información <strong>para</strong> lograr<br />

<strong>con</strong>struirse a sí mismo; una pob<strong>la</strong>ción inmersa en un AC don<strong>de</strong> los individuos<br />

interactúan <strong>para</strong> lograr su reproducción y alimentación, y don<strong>de</strong> surgen formas<br />

óptimas <strong>de</strong> aprovechamiento <strong>de</strong> recursos; o un ecosistema don<strong>de</strong> <strong>la</strong>s celdas <strong>de</strong>l<br />

AC son individuos <strong>de</strong> diferentes especies y en don<strong>de</strong> comienzan a emerger <strong>la</strong>s<br />

funciones que <strong>con</strong>fieren estabilidad a un ecosistema. Toda esta p<strong>la</strong>sticidad <strong>de</strong> los<br />

AC nos hace pensar que esta formalización matemática es más que una<br />

1 Se utiliza el término máquina biológica, <strong>para</strong> referirse a organismos vivos, dando el mismo uso al<br />

término “máquina” que Von Neumann y Turing [Turing, 1948, 1950; Von Neumann, 1966]<br />

2 La i<strong>de</strong>a <strong>de</strong> GAIA propuesta por James Lovelock es que nuestro p<strong>la</strong>neta es un organismo viviente<br />

único, y los habitantes (animales y p<strong>la</strong>ntas) son los órganos. [Al<strong>la</strong>by, 1989].<br />

1


curiosidad, y que realmente pue<strong>de</strong> ser un medio <strong>para</strong> el entendimiento <strong>de</strong> <strong>la</strong><br />

dinámica biológica.<br />

Ahora bien, <strong>para</strong> lograr probar <strong>la</strong> utilidad <strong>de</strong> los AC en el estudio <strong>de</strong> los fenómenos<br />

biológicos, es necesario <strong>de</strong>sarrol<strong>la</strong>r un ambiente <strong>de</strong> programación completo, que<br />

permita <strong>con</strong>struir cualquier AC. En este ambiente <strong>de</strong>be ser posible establecer,<br />

mediante un código formal, <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> funcionamiento <strong>de</strong> cualquier AC <strong>para</strong><br />

luego simu<strong>la</strong>r gráficamente, <strong>con</strong> cualquier <strong>con</strong>dición inicial, <strong>la</strong> dinámica <strong>de</strong>l AC.<br />

Para que el AC sea un ambiente <strong>de</strong> experimentación, <strong>de</strong>be ser posible realizar<br />

cálculos que permitan <strong>de</strong>scribir el estado en cualquier tiempo <strong>de</strong>l AC. Por un <strong>la</strong>do,<br />

<strong>la</strong> <strong>de</strong>scripción <strong>de</strong> reg<strong>la</strong>s representan el genotipo 3 <strong>de</strong> <strong>la</strong> dinámica <strong>de</strong>l sistema que<br />

se intenta mo<strong>de</strong><strong>la</strong>r <strong>con</strong> el AC, y por otro <strong>la</strong>do, el estado <strong>de</strong>l AC en cualquier<br />

tiempo, significa el fenotipo <strong>de</strong> dicho sistema.<br />

Adicionalmente, dada <strong>la</strong> naturaleza caótica y estadística <strong>de</strong> los sistemas<br />

biológicos, <strong>de</strong>bemos <strong>con</strong>struir un ambiente <strong>de</strong> AC don<strong>de</strong> se puedan <strong>con</strong>struir<br />

reg<strong>la</strong>s <strong>de</strong> naturaleza estocástica 4 que permitan mo<strong>de</strong><strong>la</strong>r apropiadamente <strong>la</strong>s<br />

imprecisiones <strong>de</strong> los sistemas biológicos. Se <strong>de</strong>be <strong>con</strong>si<strong>de</strong>rar a<strong>de</strong>más <strong>la</strong><br />

posibilidad <strong>de</strong> <strong>con</strong>struir reg<strong>la</strong>s que no sean uniformes, es <strong>de</strong>cir, que tengan<br />

comportamientos diferentes <strong>para</strong> diferentes celdas <strong>de</strong>ntro <strong>de</strong> un mismo autómata.<br />

Los aspectos fundamentales, <strong>con</strong>tenidos en esta tesis, van <strong>de</strong>s<strong>de</strong> el<br />

establecimiento <strong>de</strong> una teoría preliminar <strong>para</strong> lograr mo<strong>de</strong><strong>la</strong>r sistemas biológicos<br />

caóticos mediante autómatas celu<strong>la</strong>res, hasta <strong>la</strong> implementación <strong>de</strong> un lenguaje<br />

<strong>para</strong> especificación <strong>de</strong> autómatas celu<strong>la</strong>res <strong>de</strong>terminísticos y probabilísticos. Inicia<br />

<strong>con</strong> una introducción a los autómatas celu<strong>la</strong>res, <strong>de</strong>s<strong>de</strong> su <strong>de</strong>finición hasta <strong>la</strong><br />

<strong>de</strong>scripción <strong>de</strong> sus propieda<strong>de</strong>s (capítulo 2). El capítulo 3 es un viaje por el<br />

<strong>con</strong>cepto <strong>de</strong> vida, dinámica biológica y una justificación <strong>de</strong> <strong>la</strong> utilidad <strong>de</strong> los<br />

autómatas celu<strong>la</strong>res <strong>para</strong> el estudio <strong>de</strong> los sistemas biológicos. Los capítulos 4 y<br />

5 muestran el lenguaje <strong>de</strong>sarrol<strong>la</strong>do <strong>de</strong>nominado ACF (<strong>Autómatas</strong> Celu<strong>la</strong>res<br />

FORTH) y <strong>la</strong> interfaz <strong>para</strong> programar autómatas celu<strong>la</strong>res (ACFw), y por último el<br />

capítulo 6 propone tres ejemplos biológicos , que muestran <strong>la</strong> capacidad <strong>de</strong> los AC<br />

<strong>para</strong> mo<strong>de</strong><strong>la</strong>r sistemas biológicos.<br />

3 Estos <strong>con</strong>ceptos se explican en el capítulo 3.<br />

4 El <strong>con</strong>cepto estocástico significa <strong>la</strong> adopción <strong>de</strong> un punto <strong>de</strong> vista, don<strong>de</strong> <strong>la</strong> aleatoriedad o<br />

probabilidad se percibe como un aspecto real, objetivo y fundamental <strong>de</strong>l funcionamiento <strong>de</strong> un<br />

sistema físico. [Davis,1986].<br />

2


1.2 Objetivos Generales<br />

1. Diseñar, <strong>de</strong>finir e implementar un lenguaje que permita <strong>la</strong> experimentación <strong>con</strong><br />

autómatas celu<strong>la</strong>res <strong>de</strong>terminísticos y probabilísticos.<br />

2. Estudiar los elementos fundamentales <strong>de</strong> los sistemas biológicos complejos<br />

como base teórica <strong>para</strong> <strong>la</strong> utilización <strong>de</strong> autómatas celu<strong>la</strong>res en el mo<strong>de</strong><strong>la</strong>je<br />

(Vida artificial débil).<br />

1.3 Objetivos Específicos<br />

1. Especificar una teoría <strong>para</strong> el <strong>de</strong>sarrollo <strong>de</strong> autómatas celu<strong>la</strong>res probabilísticos.<br />

(capítulo 2)<br />

2. Especificar características fundamentales entre sistemas biológicos reales y<br />

sistemas artificiales basados en los autómatas celu<strong>la</strong>res. (capítulo 3 y 6)<br />

3. Diseñar, <strong>de</strong>finir e implementar un lenguaje <strong>para</strong> experimentación <strong>con</strong> AC<br />

<strong>de</strong>terminísticos y probabilísticos. (capíutlos 4 y 5)<br />

3.1. Descripción sintáctica y semántica <strong>de</strong>l lenguaje.<br />

3.2. Implementar un procesador y una interfaz <strong>para</strong> el mo<strong>de</strong><strong>la</strong>je <strong>con</strong> AC.<br />

3


2 <strong>Autómatas</strong> Celu<strong>la</strong>res<br />

2.1 Introducción<br />

Son muchos los ejemplos en <strong>la</strong> naturaleza <strong>de</strong> comportamientos complejos que<br />

surgen a partir <strong>de</strong> componentes e interacciones simples. Si se da una <strong>de</strong>scripción<br />

a<strong>de</strong>cuada y completa <strong>de</strong> dichos componentes, es posible <strong>con</strong>struir un mundo<br />

artificial don<strong>de</strong> interactúen organismos artificiales y cump<strong>la</strong>n los mismos principios<br />

que los sistemas naturales reales. Más aún, si existen leyes biológicas<br />

universales, entonces en el mundo artificial <strong>de</strong>berían surgir los mismos<br />

comportamientos que en el mundo natural <strong>de</strong> forma espontánea y por tanto ser un<br />

mundo natural en sí mismo.<br />

La <strong>con</strong>jetura anterior es difícil <strong>de</strong> probar y requiere en<strong>con</strong>trar un mecanismo <strong>para</strong><br />

<strong>la</strong> <strong>con</strong>strucción <strong>de</strong> mundos artificiales, que soporten todas <strong>la</strong>s leyes biológicas<br />

<strong>de</strong>scritas y por <strong>de</strong>scribir. Los autómatas celu<strong>la</strong>res (AC) l<strong>la</strong>man po<strong>de</strong>rosamente <strong>la</strong><br />

atención, y pue<strong>de</strong>n ser una <strong>de</strong> <strong>la</strong>s herramientas necesarias <strong>para</strong> <strong>la</strong> <strong>con</strong>strucción<br />

<strong>de</strong> mundos artificiales que prueben o refuten <strong>la</strong> <strong>con</strong>jetura.<br />

Los AC representan el es<strong>la</strong>bón perdido entre el mundo computable y <strong>la</strong><br />

<strong>con</strong>strucción <strong>de</strong> teorías <strong>con</strong>tun<strong>de</strong>ntes. Si una ley es universal, <strong>de</strong>bería en principio<br />

haber un mecanismo artificial que al aplicar<strong>la</strong> resulte en una simu<strong>la</strong>ción exacta <strong>de</strong><br />

<strong>la</strong> realidad. Los AC son un ambiente artificial don<strong>de</strong> se pue<strong>de</strong>n mo<strong>de</strong><strong>la</strong>r procesos<br />

<strong>de</strong> ciencias factuales como <strong>la</strong> física y <strong>la</strong> biología o <strong>de</strong> ciencias formales como <strong>la</strong>s<br />

matemáticas y <strong>la</strong> lógica. La generalidad <strong>de</strong> los AC y su versatilidad <strong>para</strong> <strong>con</strong>struir<br />

mundos en un espacio y tiempo <strong>de</strong>terminados, podrían ser una respuesta <strong>para</strong> <strong>la</strong><br />

<strong>con</strong>strucción <strong>de</strong> teorías sólidas.<br />

En este capítulo se brinda una introducción <strong>de</strong> los AC <strong>de</strong>s<strong>de</strong> sus orígenes, se da<br />

una <strong>de</strong>finición formal <strong>de</strong> AC y se <strong>de</strong>scriben <strong>con</strong> ejemplos sus propieda<strong>de</strong>s.<br />

2.2 Origen <strong>de</strong> los <strong>Autómatas</strong> Celu<strong>la</strong>res<br />

Alre<strong>de</strong>dor <strong>de</strong> 1940, John von Neumann, estaba interesado en una teoría general<br />

<strong>de</strong> autómatas <strong>para</strong> el procesamiento <strong>de</strong> información que fuera aplicable tanto a<br />

sistemas biológicos, como a a<strong>para</strong>tos tecnológicos. Gracias a esta i<strong>de</strong>a von<br />

Neumann sugirió exten<strong>de</strong>r <strong>la</strong> teoría lógica <strong>de</strong> autómatas a una teoría probabilística<br />

basado en el trabajo <strong>de</strong> C<strong>la</strong>u<strong>de</strong> Shannon 5 , sobre <strong>la</strong> teoría <strong>de</strong> <strong>la</strong> comunicación; y <strong>de</strong><br />

5 C<strong>la</strong>u<strong>de</strong> Shannon (1916) Se graduó en Michigan y luego estudió en MIT don<strong>de</strong> escribió una tesis<br />

acerca <strong>de</strong> <strong>la</strong> utilización <strong>de</strong> álgebra booleana <strong>para</strong> el análisis y optimización <strong>de</strong> circuitos<br />

interruptores “re<strong>la</strong>ys” . El se unió a los <strong>la</strong>boratorios Bell en 1941 como matemático en investigación<br />

y estuvo allí hasta 1972.<br />

4


Norbert Wienner 6 <strong>de</strong> <strong>la</strong> mecánica estadística <strong>de</strong> <strong>la</strong> cibernética [Aspray, 1990]. El<br />

objetivo <strong>de</strong> esta teoría extendida era explorar <strong>la</strong> complejidad <strong>de</strong> los sistemas<br />

biológicos y tecnológicos en el procesamiento <strong>de</strong> información, y <strong>la</strong> mecánica por <strong>la</strong><br />

cual estos sistemas complejos pue<strong>de</strong>n funcionar utilizando componentes Poco<br />

<strong>con</strong>fiables 7 , como tubos <strong>de</strong> vacío y neuronas [von Neumann, 1956]. Esto estudios<br />

<strong>de</strong> complejidad lo llevaron a investigar los mecanismos por los cuales los<br />

organismos se auto-replican e intentó <strong>con</strong>struir autómatas teóricos que tuvieran<br />

esta capacidad, lo que lo llevó a <strong>la</strong> noción <strong>de</strong> autómatas celu<strong>la</strong>res.<br />

Abstrayendo los aspectos mecánicos, biológicos y químicos <strong>de</strong> <strong>la</strong>s estructuras<br />

molecu<strong>la</strong>res que participan en auto-replicación, von Neumann fue capaz <strong>de</strong><br />

resaltar los aspectos esenciales <strong>para</strong> <strong>la</strong> auto-replicabilidad <strong>de</strong> una estructura[Koza,<br />

1992]. Von Neumann en su trabajo <strong>de</strong> 1948 titu<strong>la</strong>do “La teoría General y Lógica<br />

<strong>de</strong> <strong>Autómatas</strong>” [von Neumann, 1948] hace su primer intento <strong>de</strong> establecer <strong>la</strong>s<br />

bases <strong>para</strong> crear organismos artificiales capaces <strong>de</strong> auto-replicación. Von<br />

Neumann comienza su disertación, estableciendo:<br />

1) Los organismos vivos están <strong>con</strong>struidos <strong>de</strong> partes en cierta forma<br />

in<strong>de</strong>pendientes (unida<strong>de</strong>s elementales) y por ello es necesario enten<strong>de</strong>r <strong>la</strong><br />

estructura y funcionamiento <strong>de</strong> tales partes individuales.<br />

2) El entendimiento <strong>de</strong>l todo <strong>con</strong>siste en enten<strong>de</strong>r cómo estos elementos<br />

individuales están organizados, y cómo el funcionamiento <strong>de</strong>l todo es<br />

expresable en términos <strong>de</strong> sus partes.<br />

La primera premisa, correspon<strong>de</strong> a estudios sobre el funcionamiento <strong>de</strong> individuos<br />

(estudios fisiológicos) y tiene un carácter más <strong>de</strong>scriptivo; <strong>la</strong> segunda correspon<strong>de</strong><br />

a aspectos dinámicos <strong>de</strong> <strong>la</strong> interacción <strong>de</strong> componentes en un sistema. El interés<br />

<strong>de</strong> von Neumann era lograr <strong>la</strong> proyección <strong>de</strong> autómatas artificiales como<br />

organismos vivos. Por lo que se <strong>con</strong>centra en <strong>la</strong> segunda premisa y parte <strong>de</strong> un<br />

supuesto (o axioma) que mecaniza el comportamiento <strong>de</strong> organismos <strong>de</strong> <strong>la</strong><br />

siguiente manera:<br />

“Suponemos que los organismos poseen una característica funcional<br />

externa bien <strong>de</strong>finida, es <strong>de</strong>cir, los tratamos como una “caja negra”.<br />

Son vistos como objetos automáticos, cuya estructura interna no<br />

necesita ser especificada, pero que se supone que reaccionan <strong>de</strong> forma<br />

no ambigua ante estímulos no ambiguos.”<br />

Para lograr <strong>con</strong>struir un organismo artificial (automata) capaz <strong>de</strong> auto-replicación,<br />

von Neumann propone un mo<strong>de</strong>lo cinemático (autómata cinemático). Este mo<strong>de</strong>lo<br />

6 Norbert Wienner (1894-1964). Matemático sueco, graduado <strong>de</strong> Harvard. Fue estudiante <strong>de</strong><br />

Bertrand Russell en Cambridge. Trabajó en análisis armónico y los teoremas Tauberianos. Sus<br />

intereses principales en cibernética, procesos estocásticos, teoría cuántica e incluso el <strong>con</strong>trol <strong>de</strong><br />

armas.<br />

7 “Ureliable components”<br />

5


<strong>con</strong>sistía en un autómata que era una especie <strong>de</strong> computadora, compuesta <strong>de</strong><br />

interruptores, “re<strong>la</strong>ys” y otros componentes <strong>de</strong> transmisión <strong>de</strong> información [Levy,<br />

1992]. Sin embargo este autómata no <strong>con</strong>struía información sino más bien masa<br />

sólida en un mundo real. A<strong>de</strong>más <strong>de</strong> los diferentes componentes <strong>de</strong><br />

computadora, el autómata cinemático tenía los siguientes elementos:<br />

1) Manipu<strong>la</strong>dores (equivalente a una mano). Estos ejecutaban instrucciones <strong>de</strong><br />

una unidad <strong>de</strong> <strong>con</strong>trol, sosteniendo partes.<br />

2) Divisores. Capaces <strong>de</strong> <strong>de</strong>s<strong>con</strong>ectar dos elementos según instrucciones <strong>de</strong> <strong>la</strong><br />

unidad <strong>de</strong> <strong>con</strong>trol<br />

3) Conectores. Conectaban partes.<br />

4) Sensores. Re<strong>con</strong>ocen partes y entregan esta información a <strong>la</strong> computadora.<br />

5) “Gir<strong>de</strong>rs”. Proveen un chasis <strong>para</strong> el autómata a<strong>de</strong>más <strong>de</strong> toda <strong>la</strong>s facilida<strong>de</strong>s<br />

<strong>de</strong> almacenamiento <strong>de</strong> información.<br />

Este autómata se mueve en un ambiente don<strong>de</strong> están disponibles todas <strong>la</strong>s partes<br />

<strong>para</strong> <strong>con</strong>struirse a sí mismo 8 . Todos estos elementos forman parte <strong>de</strong> tres<br />

subsistemas:<br />

1) Componente A: busca y acumu<strong>la</strong> componentes <strong>de</strong>l medio según <strong>la</strong> instrucción<br />

<strong>de</strong> otro componente.<br />

2) Componente B: un duplicador, que lee información y <strong>la</strong> duplica.<br />

3) Componente C: una unidad <strong>de</strong> <strong>con</strong>trol (<strong>la</strong> computadora). Adicionalmente <strong>la</strong>s<br />

instrucciones formaban parte <strong>de</strong> un componente D.<br />

Este “Monstruo” funcionaba <strong>de</strong> <strong>la</strong> siguiente manera: C leía una instrucción en un<br />

gir<strong>de</strong>r-tape; esta instrucción <strong>la</strong> pasaba a B, el cual copiaba <strong>la</strong> instrucción y<br />

entregaba el duplicado a A, almacenando <strong>la</strong> original. A entonces busca <strong>la</strong>s partes<br />

en el ambiente, cuando <strong>la</strong>s re<strong>con</strong>oce, <strong>la</strong>s sostiene en el elemento manipu<strong>la</strong>dor y<br />

<strong>con</strong>tinua uniendo partes a medida que <strong>la</strong>s encuentra. Al terminar esto A <strong>con</strong>struye<br />

otro componente A, B y C. <strong>Un</strong>a vez <strong>con</strong>cluido esto <strong>la</strong> instrucción original que<br />

estaba en B, es insertada en el nuevo individuo 9 . De esta forma von Neumann<br />

establece <strong>la</strong> posibilidad <strong>de</strong> <strong>con</strong>struir organismos artificiales que repliquen el<br />

comportamiento <strong>de</strong> organismos naturales complejos 10 .<br />

8 Algo así como un gran almacén <strong>de</strong> partes.<br />

9 Cabe notar que todos los elementos que <strong>de</strong>scriben un autómata en el mo<strong>de</strong>lo cinemático, son<br />

análogos a lo que suce<strong>de</strong> <strong>con</strong> el ADN y <strong>la</strong> maquinaria molecu<strong>la</strong>r que manipu<strong>la</strong> el ADN; esto<br />

algunos años antes <strong>de</strong>l <strong>de</strong>scubrimiento <strong>de</strong>l ADN.<br />

10 von Neumann tenía particu<strong>la</strong>r interés en el sistema nervioso, y estaba pensando en realizar una<br />

máquina igual a un sistema nervioso humano. Los trabajos en re<strong>de</strong>s neuronales <strong>de</strong> McCulloch y<br />

Pitts, tuvieron gran influencia en él. [Aspray, 1990]<br />

6


El mo<strong>de</strong>lo cinemático fracasó. Era muy complicado y no apto <strong>para</strong> un análisis<br />

matemático. Cada componente <strong>con</strong>tenía elementos que no tenían un origen o<br />

<strong>con</strong>stitución <strong>de</strong>finida. Fue Stanis<strong>la</strong>w U<strong>la</strong>m 11 quién sugirió a von Neumann<br />

pensando en el crecimiento <strong>de</strong> un cristal; que utilizara un arreglo cuadricu<strong>la</strong>do, <strong>con</strong><br />

un autómata <strong>de</strong> estado finito en cada celda. Cada celda <strong>con</strong>tendría información<br />

que <strong>de</strong>terminará su estado y en cada paso <strong>de</strong> tiempo <strong>la</strong> celda tomaría información<br />

<strong>de</strong> <strong>la</strong>s celdas a su alre<strong>de</strong>dor y <strong>con</strong>sultaría una tab<strong>la</strong> <strong>de</strong> reg<strong>la</strong>s <strong>para</strong> cambiar <strong>de</strong><br />

estado. <strong>Un</strong>a colección <strong>de</strong> celdas en esta cuadrícu<strong>la</strong> podría ser <strong>con</strong>si<strong>de</strong>rado un<br />

organismo. A von Neumann le interesó <strong>la</strong> i<strong>de</strong>a y se dio cuenta <strong>de</strong> que este<br />

autómata, <strong>con</strong>struido mediante lógica pura, podría ser fácilmente especificado<br />

matemáticamente. Von Neumann nunca terminó su prueba escrita <strong>de</strong> estos<br />

autómatas, y sólo en algunas char<strong>la</strong>s en 1953, dio algunos <strong>de</strong>talles <strong>de</strong> su<br />

autómata <strong>de</strong> 29 estados <strong>con</strong> capacidad <strong>de</strong> auto–replicación [Levy, 1992]. Este<br />

autómata que utilizaba los 4 vecinos ortogonales en un arreglo cuadricu<strong>la</strong>do,<br />

ocupaba un espacio <strong>de</strong> 200,000 celdas <strong>para</strong> su auto-replicación [Gardner, 1971].<br />

Originalmente a estos autómatas se les <strong>de</strong>nominaba “Tesse<strong>la</strong>tion Structures” 12 o<br />

“Tesse<strong>la</strong>tion Autómata” y fue Arthur Burks [Burks, 1970] quien al editar los trabajos<br />

<strong>de</strong> von Neumann, utilizó el nombre <strong>de</strong> autómatas celu<strong>la</strong>res (AC).<br />

Después <strong>de</strong>l trabajo <strong>de</strong> von Neumann, el interés por los AC se <strong>de</strong>svaneció por<br />

algunos años, hasta que en los años 70 algunos físicos se interesaron por los AC<br />

[Fredkin, 1990]. Los AC se hicieron popu<strong>la</strong>res, <strong>de</strong>spués <strong>de</strong> <strong>la</strong> publicación <strong>de</strong> un<br />

AC l<strong>la</strong>mado “Juego <strong>de</strong> <strong>la</strong> Vida” propuesto por John H. Conway [Gardner, 1970].<br />

Este juego presentaba características que von Neumann buscaba, pero <strong>de</strong><br />

manera más simple <strong>con</strong> so<strong>la</strong>mente 2 estados Des<strong>de</strong> entonces el interés en estos<br />

sistemas ha llegado a ser tan importante, que incluso se sugiere que los AC<br />

representan <strong>la</strong> posibilidad <strong>de</strong> un nuevo <strong>para</strong>digma <strong>de</strong> estudios en el campo <strong>de</strong> <strong>la</strong><br />

física <strong>de</strong>nominado “Mecánica Digital” [Fredkin, 1990].<br />

2.3 Descripción <strong>de</strong> <strong>Autómatas</strong> Celu<strong>la</strong>res<br />

<strong>Un</strong> AC pue<strong>de</strong> ser <strong>con</strong>si<strong>de</strong>rado como un mundo estilizado. El espacio <strong>de</strong> AC es un<br />

arreglo uniforme <strong>de</strong> celdas, don<strong>de</strong> cada sitio o celda pue<strong>de</strong> <strong>con</strong>tener algunos bits<br />

<strong>de</strong> información y don<strong>de</strong> el tiempo transcurre en pasos discretos. La reg<strong>la</strong>s <strong>de</strong> este<br />

universo <strong>con</strong>sisten en una receta que <strong>de</strong>termina cuál será el nuevo <strong>con</strong>tenido <strong>de</strong><br />

11 Stanis<strong>la</strong>w U<strong>la</strong>m (1909-1984) fue un matemático y físico que trabajó en <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> <strong>la</strong><br />

bomba <strong>de</strong> hidrógeno. También propuso el Método <strong>de</strong> Monte Carlo, ampliamente usado <strong>para</strong><br />

resolver problemas matemáticos utilizando muestreo estadístico.<br />

12 S. U<strong>la</strong>m utilizó este término. “Tesse<strong>la</strong>tion” es un p<strong>la</strong>no regu<strong>la</strong>r <strong>de</strong> polígonos. U<strong>la</strong>m estaba<br />

interesado en <strong>la</strong> formación <strong>de</strong> patrones y crecimiento <strong>de</strong> figuras. Destacan dos <strong>de</strong> sus ensayos “On<br />

some Numerical problems Connected with Patters of Growth of Figures” [U<strong>la</strong>m, 1962] y “On<br />

recursively Defined Objects and Patterns of Growth” [Schrandt,1970].<br />

7


información <strong>de</strong> una celda basado en <strong>la</strong>s celdas vecinas. Las leyes <strong>de</strong> un AC son<br />

locales y uniformes 13 .<br />

b)<br />

a)<br />

Arreglo 2D<br />

Bor<strong>de</strong>s Cerrados<br />

Arreglo 2D<br />

Bor<strong>de</strong>s Periódicos<br />

<strong>Un</strong>ir Bor<strong>de</strong>s<br />

Figura 1 Estructura <strong>de</strong>l espacio celu<strong>la</strong>r en un autómata <strong>con</strong>: a) bor<strong>de</strong>s<br />

cerrados, b) bor<strong>de</strong>s periódicos<br />

Cuatro características son importantes en un AC [Hayes, 1984]:<br />

1) La geometría <strong>de</strong>l arreglo <strong>de</strong> celdas: Esta pue<strong>de</strong> tener 1, 2 ,3,... D dimensiones.<br />

Espacios <strong>con</strong> más <strong>de</strong> tres dimensiones se pue<strong>de</strong>n <strong>con</strong>struir fácilmente, pero<br />

son difíciles <strong>de</strong> representar visualmente. El AC pue<strong>de</strong> tener bor<strong>de</strong>s periódicos<br />

o cerrados. En el primer caso el arreglo <strong>de</strong> celdas (espacio celu<strong>la</strong>r) tiene una<br />

forma toroi<strong>de</strong>, don<strong>de</strong> los vecinos <strong>de</strong>l bor<strong>de</strong> superior son <strong>la</strong>s celdas <strong>de</strong>l bor<strong>de</strong><br />

inferior y los <strong>de</strong>l bor<strong>de</strong> izquierdo son <strong>la</strong>s celdas <strong>de</strong>l bor<strong>de</strong> <strong>de</strong>recho. Bor<strong>de</strong>s<br />

cerrados significa que los bor<strong>de</strong>s tiene valor 0. (Figura 1)<br />

2) El vecindario: Cada celda actualiza su estado tomando información <strong>de</strong> el<strong>la</strong><br />

misma y <strong>de</strong> un grupo <strong>de</strong> celdas a su alre<strong>de</strong>dor que <strong>con</strong>stituyen un vecindario.<br />

13 Locales significa qué <strong>para</strong> saber que va a suce<strong>de</strong>r en un momento, es suficiente <strong>con</strong>ocer el<br />

estado <strong>de</strong> <strong>la</strong>s cosas a mi <strong>la</strong>do. <strong>Un</strong>iforme significa que <strong>la</strong>s leyes son iguales en todos <strong>la</strong>dos.<br />

8<br />

<strong>Un</strong>ir Bor<strong>de</strong>s


Los vecindarios más comunes son el <strong>de</strong> von Neumann, don<strong>de</strong> son<br />

<strong>con</strong>si<strong>de</strong>rados los 4 vecinos ortogonales (vecino norte, sur, este y oeste,<br />

a<strong>de</strong>más <strong>de</strong> él mismo); el <strong>de</strong> Moore 14 , que a<strong>de</strong>más <strong>de</strong> los vecinos ortogonales,<br />

toma en cuenta los diagonales (norte, sur, este, oeste, noroeste, noreste,<br />

suroeste, sureste, a<strong>de</strong>más <strong>de</strong> él mismo). La celda central <strong>de</strong> un vecindario es<br />

sobre <strong>la</strong> cual se realizan los cálculos basados en los vecinos (en algunos casos<br />

el centro no se <strong>con</strong>si<strong>de</strong>ra como parte <strong>de</strong>l vecindario) (Figura 2).<br />

a) b)<br />

Figura 2 Vecindarios <strong>de</strong> un AC <strong>de</strong> 2-dimensiones: a) vecindario Von<br />

Neumann, <strong>con</strong> 5 celdas vecinas. b) vecindario <strong>de</strong> Moore, <strong>con</strong> 9 celdas<br />

vecinas<br />

3) El número <strong>de</strong> estados por celda: En general se pue<strong>de</strong> utilizar cualquier número<br />

arbitrario finito <strong>de</strong> estados. Von Neumann <strong>con</strong>struyó un AC que se autoreplicaba<br />

utilizando 29 estados, sin embargo AC más simples se han<br />

<strong>de</strong>sarrol<strong>la</strong>do <strong>con</strong> <strong>la</strong> misma capacidad;.<br />

4) Reg<strong>la</strong>s que <strong>de</strong>terminan el estado <strong>de</strong> <strong>la</strong> celda, basado en <strong>la</strong> <strong>con</strong>figuración <strong>de</strong>l<br />

vecindario. Si k es el número <strong>de</strong> estados posibles y n el número <strong>de</strong> celdas en<br />

n<br />

el vecindario, entonces habrán k posibles reg<strong>la</strong>s <strong>de</strong> transición <strong>de</strong>l AC.<br />

Los autómatas celu<strong>la</strong>res son una c<strong>la</strong>se <strong>de</strong> sistemas matemáticos, que se<br />

caracterizan por sus propieda<strong>de</strong>s discretas en espacio, tiempo y valores <strong>de</strong><br />

estado [Jen, 1990]. Se podría <strong>de</strong>cir que son una i<strong>de</strong>alización <strong>de</strong> sistemas físicos,<br />

en don<strong>de</strong> el espacio y el tiempo son discretos, y <strong>la</strong>s cantida<strong>de</strong>s físicas toman<br />

valores discretos [Wolfram, 1983b]. Estos sistemas son capaces <strong>de</strong> generar<br />

comportamientos extremadamente or<strong>de</strong>nados a partir <strong>de</strong>l <strong>de</strong>sor<strong>de</strong>n. Esta<br />

aparición <strong>de</strong> or<strong>de</strong>n tiene gran significado en <strong>la</strong> explicación <strong>de</strong> fenómenos físicos y<br />

biológicos [Kauffman, 1984]<br />

14<br />

l<strong>la</strong>mado Moore por Edward F. Moore utilizó este vecindario en su trabajo “Machine Mo<strong>de</strong>ls of<br />

Self-reproduction” [Moore, 1970]<br />

9


2.3.1 Definición formal <strong>de</strong> un Autómata Celu<strong>la</strong>r<br />

De manera más formal un AC es un retículo 15 o arreglo D-dimensional, <strong>con</strong> un<br />

autómata <strong>de</strong> estado finito 16 (AEF) en cada sitio o celda <strong>de</strong>l arreglo [Langton, 1990].<br />

Cada AEF toma como entradas los estados <strong>de</strong> celdas <strong>de</strong> una región local finita N<br />

<strong>de</strong>ntro <strong>de</strong>l arreglo, que <strong>de</strong>nominaremos como vecindario (Figura 2).<br />

Cada AEF <strong>con</strong>tiene un número finito <strong>de</strong> estados Q, un alfabeto finito Σ y una<br />

función <strong>de</strong> transición ∆ , <strong>la</strong> cual mapea <strong>de</strong>l <strong>con</strong>junto <strong>de</strong> vecindario al <strong>con</strong>junto <strong>de</strong><br />

estados <strong>de</strong> celdas. Sea N = | N | :<br />

Q N ∆ : →<br />

10<br />

Q<br />

eq 1.1<br />

<strong>la</strong> función ∆ toma cualquiera <strong>de</strong> los posibles valores <strong>de</strong> Q N . Σ (los símbolos <strong>de</strong><br />

entrada <strong>de</strong>l AEF) son todas <strong>la</strong>s posibles <strong>con</strong>figuraciones <strong>de</strong> vecinos <strong>con</strong> Q<br />

estados, es <strong>de</strong>cir, Σ = Q N . Sea K = | Q | (el número <strong>de</strong> estados <strong>de</strong> celda),<br />

entonces:<br />

Σ<br />

=<br />

∆<br />

=<br />

N<br />

Q =<br />

Es <strong>de</strong>cir, si se tiene K=2 estados posibles <strong>para</strong> cada celda (pe. {0,1}; {b<strong>la</strong>nco,<br />

negro }; etc.) y un vecindario que <strong>con</strong>si<strong>de</strong>ra 5 celdas vecinas (N = 5), entonces el<br />

dominio <strong>de</strong> ∆ será <strong>de</strong> 2 5 = 32, o sea, existen 32 reg<strong>la</strong>s <strong>de</strong> transición <strong>para</strong> un<br />

autómata celu<strong>la</strong>r <strong>de</strong> 2 estados <strong>con</strong> un vecindario que <strong>con</strong>si<strong>de</strong>ra 5 vecinos. Los<br />

símbolos <strong>de</strong> entrada <strong>de</strong>l AEF <strong>de</strong> cada celda será cualquiera <strong>de</strong> estas 32<br />

<strong>con</strong>figuraciones, y el símbolo <strong>de</strong> salida será algún valor <strong>de</strong> estado q ∈ Q<br />

De lo anterior po<strong>de</strong>mos entonces <strong>de</strong>finir un AC M como el siguiente cuádruple:<br />

K<br />

M = �A,Q, ∆ , N �<br />

Don<strong>de</strong> A representa un arreglo <strong>de</strong> D-dimensiones, Q es el <strong>con</strong>junto <strong>de</strong> estados <strong>de</strong><br />

celda, ∆ una función <strong>de</strong> transición <strong>de</strong> estados (eq.1.1), N el vecindario. Si cada<br />

celda ai ∈ A tiene un vecindario N ={ai-r, ... , ai , ... , ai+ r} entonces r representa el<br />

rango <strong>de</strong>l vecindario N .<br />

15<br />

<strong>Un</strong> arreglo espaciado <strong>de</strong> puntos que caen <strong>de</strong>ntro <strong>de</strong> líneas espaciadas <strong>de</strong> forma regu<strong>la</strong>r<br />

[Weisstein, 1996]<br />

16<br />

<strong>Un</strong> autómata <strong>de</strong> estado finito es un sistema matemático, <strong>con</strong> entradas y salidas discretas. El<br />

sistema pue<strong>de</strong> estar en cualquiera <strong>de</strong> un número finito <strong>de</strong> estados internos. [Hopcroft, 1979]<br />

N


2.3.2 <strong>Autómatas</strong> Celu<strong>la</strong>res Elementales<br />

<strong>Un</strong> AC <strong>de</strong> 1-Dimensión <strong>con</strong> Q = { 0, 1 } (K = 2) y que <strong>con</strong>si<strong>de</strong>ra un vecindario<br />

N={ai-1 , ai , ai+ 1} (r = 1) se le <strong>de</strong>nomina AC elemental [Wolfram, 1983a]. El espacio<br />

celu<strong>la</strong>r <strong>con</strong>siste en un vector lineal <strong>de</strong> celdas. <strong>Un</strong> AC elemental tiene K N = 2 3 = 8<br />

posibles <strong>con</strong>figuraciones <strong>de</strong> vecinos, que son 111,110,101,001,011,010,001 y 000.<br />

3<br />

2<br />

En total es posible <strong>con</strong>struir 2 = 256 AC elementales. En <strong>la</strong> Figura 3 se pue<strong>de</strong>n<br />

apreciar algunos AC elementales.<br />

a)<br />

c) d)<br />

Figura 3 Algunos AC elementales que inician <strong>con</strong> una semil<strong>la</strong> central.<br />

Las líneas sucesivas se obtienen por <strong>la</strong> aplicación sucesiva <strong>de</strong> <strong>la</strong> reg<strong>la</strong><br />

<strong>de</strong>l AC a cada una <strong>de</strong> <strong>la</strong>s celdas <strong>de</strong>l autómata. Estos AC muestran 63<br />

generaciones en 150 celdas. a) Reg<strong>la</strong> 150 (10010110) b) Reg<strong>la</strong> 30<br />

(00011110) c) Reg<strong>la</strong> 45 (00101101) d) Reg<strong>la</strong> 60 (00111100). La<br />

codificación <strong>de</strong> <strong>la</strong>s reg<strong>la</strong>s correspon<strong>de</strong> a <strong>la</strong> utilizada por Wolfram.<br />

Wolfram hace un estudio exhaustivo <strong>de</strong>l comportamiento <strong>de</strong> estos AC elementales<br />

<strong>para</strong> tratar <strong>de</strong> establecer todas <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> estos sistemas discretos y<br />

11<br />

b)


a)<br />

b)<br />

Figura 4 Codificación <strong>de</strong> reg<strong>la</strong>s <strong>para</strong> AC <strong>de</strong> 1-Dimensión según Wolfram.<br />

a) codificación numérica. b) Representación gráfica <strong>de</strong> <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong><br />

cambio <strong>de</strong> estado. 2r+1 es el número <strong>de</strong> vecinos involucrados en <strong>la</strong> reg<strong>la</strong><br />

(r es el rango <strong>de</strong>l vecindario).<br />

generar una teoría <strong>de</strong> AC sólida. Para iniciar, Wolfram establece un mecanismo<br />

<strong>de</strong> codificación <strong>de</strong> reg<strong>la</strong>s <strong>de</strong> AC elementales don<strong>de</strong> <strong>de</strong>scribe <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong><br />

transición <strong>de</strong> tres vecinos mediante un número binario <strong>de</strong> 8 dígitos (Figura 4).<br />

A<strong>de</strong>más, restringe los 256 posibles AC a 32 <strong>con</strong>si<strong>de</strong>rando <strong>la</strong>s siguientes reg<strong>la</strong>s:<br />

1) <strong>la</strong>s reg<strong>la</strong>s que <strong>de</strong> un estado quiescente (el estado <strong>de</strong> todos los vecinos es 0)<br />

cambien a 1 no son válidas. Esto no permite <strong>la</strong> generación <strong>de</strong> 1 a partir <strong>de</strong> una<br />

secuencia <strong>de</strong> ceros, es <strong>de</strong>cir, 000 → 0 .<br />

2) Las reg<strong>la</strong>s <strong>de</strong>ben ser reflexivamente simétricas, así por ejemplo 110 y 011<br />

generan el mismo cambio <strong>de</strong> estado.<br />

Veamos por ejemplo <strong>la</strong> reg<strong>la</strong> 90 <strong>de</strong> Wolfram (esta es <strong>la</strong> notación <strong>de</strong>cimal <strong>de</strong> los 8<br />

dígitos binarios figura 4 a y b). Esta reg<strong>la</strong> es <strong>la</strong> reg<strong>la</strong> suma módulo 2, es <strong>de</strong>cir<br />

t+<br />

1 t t<br />

= a + a ) mod 2 . El mod 2 es el residuo <strong>de</strong> <strong>la</strong> división <strong>de</strong> un entero entre 2 y<br />

a i ( i−1<br />

i+<br />

1<br />

t<br />

a i es el estado <strong>de</strong> <strong>la</strong> celda a ∈ A en posición i en el tiempo t. El arreglo A <strong>de</strong>l AC<br />

12


a)<br />

b)<br />

Figura 5 Reg<strong>la</strong> 90 <strong>de</strong> Wolfram <strong>con</strong> una celda 1 inicial en <strong>la</strong> mitad <strong>de</strong>l<br />

vector <strong>de</strong> celdas. a) <strong>de</strong>spués <strong>de</strong> 16 generaciones. b) <strong>de</strong>spués <strong>de</strong> 250<br />

generaciones<br />

es una secuencia lineal <strong>de</strong> celdas en una dimensión. En una secuencia A <strong>de</strong> L<br />

celdas, <strong>la</strong> <strong>con</strong>figuración <strong>de</strong> “semil<strong>la</strong>” representa un arreglo <strong>de</strong> ceros <strong>con</strong> un 1 en <strong>la</strong><br />

celda central (Figura 5). En <strong>la</strong> figura L = 400 e inicia <strong>con</strong> un 1 (cuadrado negro)<br />

en <strong>la</strong> celda 200. Después <strong>de</strong> unas 250 generaciones (t=250) se observa una<br />

estructura auto-simi<strong>la</strong>r 17 (fractal 18 ) <strong>con</strong> dimensión fractal 19 log 2 3 . La estructura<br />

que se forma, tiene re<strong>la</strong>ción <strong>con</strong> el triángulo <strong>de</strong> Pascal 20 . Cada línea <strong>de</strong>l AC<br />

17<br />

Algunos estudios sobre <strong>la</strong> formación <strong>de</strong> estructuras auto-simi<strong>la</strong>res en AC <strong>de</strong> 1 dimensión son<br />

[Willson, 1984, 1987a, 1987b; Haeseler, 1995]<br />

18<br />

<strong>Un</strong> fractal son objetos (puntos, curvas o patrones) que exhiben un incremento <strong>de</strong> <strong>de</strong>talle cuando<br />

se disminuye <strong>la</strong> esca<strong>la</strong>.<br />

19 −D<br />

Usualmente <strong>la</strong> dimensión fractal se mi<strong>de</strong> como n(<br />

ε) = ε don<strong>de</strong> n(�) es el número mínimo <strong>de</strong><br />

estruturas <strong>de</strong> diámetro � necesarias <strong>para</strong> cubrir el total. D es <strong>la</strong> dimensión fractal<br />

16 El triángulo se Pascal <strong>de</strong>termina los coeficientes <strong>de</strong> x i en <strong>la</strong> expansión polinomial (1+x) n .<br />

13<br />

t<br />

t


epresenta el módulo 2 <strong>de</strong> los valores en <strong>la</strong> línea correspondiente en el triángulo<br />

<strong>de</strong> Pascal [Wolfram, 1984c].<br />

Cuando esta misma reg<strong>la</strong> comienza <strong>con</strong> una <strong>con</strong>figuración inicial <strong>con</strong> 50% <strong>de</strong> unos<br />

y ceros distribuidos aleatoriamente ( Figura 6), esta <strong>con</strong>figuración inicial aleatoria,<br />

que no tiene ninguna estructura, da origen a estructuras en forma <strong>de</strong> triángulos<br />

invertidos (<strong>con</strong> el estado 0). Esta aparición espontánea <strong>de</strong> estas estructuras es<br />

un ejemplo simple <strong>de</strong> cómo un AC elemental pue<strong>de</strong> generar auto-organización<br />

[Wolfram, 1983b].<br />

Figura 6 Reg<strong>la</strong> 90 <strong>de</strong> Wolfram <strong>con</strong> inicio aleatorio <strong>de</strong> celdas en estado 1.<br />

Las celdas b<strong>la</strong>ncas representan el estado 0 y <strong>la</strong>s negras 1. Se observa <strong>la</strong><br />

formación <strong>de</strong> estructuras estables (triángulos b<strong>la</strong>ncos invertidos) que<br />

representan el principio <strong>de</strong> auto-organización.<br />

Algunos <strong>de</strong> los AC elementales exhiben reversibilidad. <strong>Un</strong> AC es reversible, si<br />

<strong>para</strong> cualquier <strong>con</strong>figuración <strong>de</strong>l autómata, ésta posee so<strong>la</strong>mente una<br />

<strong>con</strong>figuración pre<strong>de</strong>cesora [Hillman, 1991]. De forma <strong>con</strong>traria cuando el AC<br />

transforma diferentes <strong>con</strong>figuraciones iniciales a una misma final, es imposible<br />

<strong>de</strong>terminar cuál fue el antecesor <strong>de</strong> una <strong>con</strong>figuración y por tanto el AC es<br />

irreversible. La existencia <strong>de</strong> <strong>con</strong>figuraciones <strong>con</strong> múltiples pre<strong>de</strong>cesores, implica<br />

14<br />

t


que hay <strong>con</strong>figuraciones que no poseen pre<strong>de</strong>cesores y por tanto sólo pue<strong>de</strong>n<br />

existir como <strong>con</strong>figuraciones iniciales. El <strong>con</strong>junto <strong>de</strong> <strong>con</strong>figuraciones a <strong>la</strong>s que no<br />

se pue<strong>de</strong> llegar por evolución <strong>de</strong>l AC y sólo pue<strong>de</strong>n existir como <strong>con</strong>figuraciones<br />

iniciales, se les <strong>de</strong>nomina “jardín <strong>de</strong>l Edén” [Moore, 1970; Wolfram, 1984a].<br />

Wolfram ha estudiado <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> auto-organización, auto-similitud e<br />

irreversibilidad en AC elementales, dando una base teórica importante que<br />

<strong>de</strong>muestra <strong>la</strong> capacidad <strong>de</strong> generar complejidad, en un AC simple, a partir <strong>de</strong><br />

múltiples unida<strong>de</strong>s idénticas simples [Wolfram, 1983a, 1984a].<br />

2.3.3 <strong>Autómatas</strong> Celu<strong>la</strong>res <strong>de</strong> 2-Dimensiones<br />

La extensión a AC <strong>de</strong> 2-Dimensiones es significativa <strong>para</strong> el estudio <strong>de</strong> sistemas<br />

físicos y biológicos [Wolfram, 1985a]. Extendamos el AC elemental anterior (reg<strong>la</strong><br />

t+<br />

1 t t<br />

90) a un arreglo <strong>de</strong> 2 dimensiones. La reg<strong>la</strong> a i = ( ai−1<br />

+ ai+<br />

1)<br />

mod 2 se adapta<br />

<strong>para</strong> <strong>con</strong>si<strong>de</strong>rar los cuatro vecinos inmediatos ortogonales y central (vecindario <strong>de</strong><br />

t+<br />

1 t t t t t<br />

von Neumann) quedando a i,<br />

j = ( ai<br />

−1,<br />

j + ai<br />

, j−1<br />

+ ai,<br />

j + ai<br />

+ 1,<br />

j + ai,<br />

j+<br />

1 ) mod 2 . Al iniciar<br />

este AC <strong>con</strong> una semil<strong>la</strong> en el centro se genera el patrón que se muestra en <strong>la</strong><br />

Figura7. Este AC se <strong>con</strong>oce como reg<strong>la</strong> “Parity” propuesta por Edward Fredkin<br />

[Gardner, 1971].<br />

t=1 t=3 t=15 t=23<br />

Figura7 Evolución <strong>de</strong>l AC <strong>de</strong> Fredkin, don<strong>de</strong>:<br />

t+<br />

1<br />

a i,<br />

j<br />

t<br />

= ( ai<br />

−1,<br />

j<br />

t t<br />

+ ai<br />

, j−1<br />

+ ai,<br />

j<br />

t<br />

+ ai<br />

+ 1,<br />

j<br />

t<br />

+ ai,<br />

j+<br />

1 ) mod 2 . Se muestra <strong>la</strong><br />

<strong>con</strong>figuración <strong>de</strong>l autómata <strong>de</strong>spués <strong>de</strong> 3,15 y 23 generaciones.<br />

15


<strong>Un</strong> AC <strong>de</strong> 2–Dimensiones más interesante es el “juego <strong>de</strong> <strong>la</strong> vida. Conway,<br />

intentaba <strong>con</strong>struir un AC <strong>con</strong> capacidad <strong>de</strong> computación universal 21 que fuera<br />

más sencillo que el mo<strong>de</strong>lo propuesto por von Neumann [Levy, 1992]. Las reg<strong>la</strong>s<br />

<strong>de</strong> este AC, utilizando un vecindario <strong>de</strong> 9 vecinos (vecindario <strong>de</strong> Moore) son <strong>la</strong>s<br />

siguientes: 1) Si una celda esta en estado 1 (“viva”), se mantendrá como tal, si<br />

tiene 2 ó 3 vecinos a su alre<strong>de</strong>dor. 2) Si <strong>la</strong> celda está en estado 0 (“muerta”) se<br />

mantendrá como tal, excepto en el caso <strong>de</strong> que hayan 3 celdas en estado 1 a su<br />

alre<strong>de</strong>dor [Dewdney, 1993]. El resultado <strong>de</strong> este AC, <strong>con</strong> un inicio aleatorio <strong>de</strong><br />

celdas en estado 1, se muestra en <strong>la</strong> Figura 8.<br />

a) b)<br />

Figura 8 Juego <strong>de</strong> <strong>la</strong> vida <strong>de</strong> Conway. a) estado inicial <strong>con</strong> 30% <strong>de</strong> 1<br />

distribuidos aleatoriamente. b) <strong>de</strong>spués <strong>de</strong> 100 generaciones, se<br />

observan algunas estructuras estables y una organización <strong>de</strong>l espacio<br />

celu<strong>la</strong>r.<br />

Si este AC se <strong>de</strong>ja evolucionar 22 suficiente tiempo, se comenzarán a formar<br />

estructuras estables, que <strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista <strong>de</strong> un sistema dinámico se<br />

<strong>de</strong>scriben como puntos fijos, ciclos límites y caos 23 . Si se mezc<strong>la</strong>n estas<br />

estructuras en ciertas <strong>con</strong>figuraciones, es posible <strong>con</strong>struir una máquina que se<br />

comporte como una computadora.<br />

El juego <strong>de</strong> <strong>la</strong> vida ha sido un juego que ha permitido que un número gran<strong>de</strong> <strong>de</strong><br />

personas experimenten <strong>con</strong> AC, sin embargo, este AC no tiene re<strong>la</strong>ción alguna<br />

(a<strong>de</strong>más <strong>de</strong>l nombre) <strong>con</strong> el estudio <strong>de</strong> un sistema biológico. Algunos estudios<br />

interesantes <strong>de</strong>l “Juego <strong>de</strong> <strong>la</strong> Vida” incluye el estudio <strong>de</strong> “Criticalidad Autoorganizada”,<br />

es <strong>de</strong>cir un sistema que sistemáticamente es perturbado cerca <strong>de</strong> un<br />

21<br />

<strong>Un</strong>a máquina que es capaz <strong>de</strong> emu<strong>la</strong>r cualquier función <strong>de</strong>scribible por cualquier otra máquina, a<br />

través <strong>de</strong>l uso <strong>de</strong> reg<strong>la</strong>s lógicas.<br />

22<br />

Dejar que cambie <strong>la</strong> <strong>con</strong>figuración global <strong>de</strong>l AC por interacción <strong>de</strong> sus reg<strong>la</strong>s locales.<br />

23<br />

Inclusive existen algunos glosarios <strong>de</strong> <strong>la</strong>s estructuras generadas por el juego <strong>de</strong> <strong>la</strong> vida [Hensel,<br />

1995]<br />

16


estado <strong>de</strong> equilibrio, llegará a un punto crítico cuando el número medio <strong>de</strong><br />

elementos entrantes es igual a los salientes [Bak, 1989, 1991] .<br />

2.3.4 Propieda<strong>de</strong>s y C<strong>la</strong>ses <strong>de</strong> Autómata Celu<strong>la</strong>res<br />

Complejidad y C<strong>la</strong>ses <strong>de</strong> <strong>Autómatas</strong> Celu<strong>la</strong>res<br />

<strong>Un</strong>a <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s fundamentales <strong>de</strong> los AC, es que son capaces <strong>de</strong> producir<br />

comportamientos complejos 24 a partir <strong>de</strong> unida<strong>de</strong>s idénticas simples [Wolfram,<br />

1984d]. La complejidad es generada por efecto cooperativo <strong>de</strong> cada uno <strong>de</strong> los<br />

componentes. Esta complejidad es irreducible y por tanto no existe un<br />

procedimiento matemático que pueda <strong>de</strong>scribir <strong>la</strong> complejidad [Urías, 1991]. Esto<br />

quiere <strong>de</strong>cir que cuando vemos <strong>la</strong> reg<strong>la</strong> <strong>de</strong> un AC <strong>con</strong> una <strong>con</strong>figuración inicial<br />

dada, no po<strong>de</strong>mos <strong>con</strong> sólo mirarlo, <strong>de</strong>terminar cuál va a ser su <strong>con</strong>figuración final<br />

<strong>de</strong>spués <strong>de</strong> t generaciones. Esto hace difícil tener un sistema <strong>de</strong> c<strong>la</strong>sificación<br />

<strong>para</strong> AC basado en <strong>la</strong> complejidad <strong>de</strong> su comportamiento. En general AC <strong>con</strong><br />

reg<strong>la</strong>s <strong>de</strong> transición simi<strong>la</strong>res pue<strong>de</strong>n comportarse <strong>de</strong> manera diferente y AC <strong>con</strong><br />

comportamientos simi<strong>la</strong>res pue<strong>de</strong>n tener reg<strong>la</strong>s muy diferentes [Gutowitz, 1990]<br />

Los trabajos <strong>de</strong> Wolfram son uno <strong>de</strong> los más importantes intentos por hacer una<br />

c<strong>la</strong>sificación a partir <strong>de</strong> <strong>la</strong> simu<strong>la</strong>ción explícita <strong>de</strong> un <strong>con</strong>junto particu<strong>la</strong>r <strong>de</strong> AC<br />

[Wolfram, 1983b, 1984a, 1985b]. Wolfram caracteriza empíricamente el<br />

comportamiento <strong>de</strong> AC y propone <strong>la</strong>s siguientes cuatro c<strong>la</strong>ses cualitativas:<br />

� C<strong>la</strong>se I: Evolución <strong>de</strong>l AC lleva a un estado homogéneo.<br />

� C<strong>la</strong>se II : Evolución lleva a estructuras estables simples.<br />

� C<strong>la</strong>se III : Evolución lleva a patrones caóticos.<br />

� C<strong>la</strong>se IV: El AC lleva a patrones complejos, <strong>de</strong> <strong>la</strong>rgo período.<br />

Algunos estudios [Langton, 1986, 1990; Li, 1990; Gunji, 1990], utilizando <strong>la</strong>s<br />

características <strong>de</strong> <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> transición, más que el comportamiento explícito <strong>de</strong>l<br />

AC, han mostrado cierta correspon<strong>de</strong>ncia <strong>con</strong> <strong>la</strong>s c<strong>la</strong>ses <strong>de</strong> Wolfram.<br />

La existencia <strong>de</strong> so<strong>la</strong>mente cuatro c<strong>la</strong>ses implica una universalidad <strong>con</strong>si<strong>de</strong>rable<br />

en el comportamiento <strong>de</strong> los AC. Algunos ejemplos <strong>de</strong> estas cuatro c<strong>la</strong>ses se<br />

aprecian en <strong>la</strong> Figura 9. En términos <strong>de</strong> <strong>la</strong> teoría <strong>de</strong> sistemas dinámicos, <strong>la</strong>s<br />

c<strong>la</strong>ses <strong>de</strong> AC propuestas por Wolfram, son análogas <strong>con</strong> el comportamiento<br />

en<strong>con</strong>trado en <strong>la</strong> solución <strong>de</strong> sistemas <strong>de</strong> ecuaciones diferenciales (ED). Cuando<br />

<strong>la</strong> solución <strong>de</strong> una ED <strong>con</strong> cualquier <strong>con</strong>dición inicial llega a un punto fijo en un<br />

tiempo <strong>la</strong>rgo, esto equivale a <strong>la</strong> c<strong>la</strong>se 1 <strong>de</strong> AC. En otra c<strong>la</strong>se <strong>de</strong> ED, <strong>la</strong> solución es<br />

un ciclo <strong>con</strong> parámetros variando a lo <strong>la</strong>rgo <strong>de</strong>l tiempo, esto correspon<strong>de</strong> a <strong>la</strong> c<strong>la</strong>se<br />

2 <strong>de</strong> AC. Algunas ED muestran un comportamiento caótico (generando atractores<br />

extraños o caóticos) <strong>de</strong>pendiendo <strong>de</strong> <strong>la</strong> <strong>con</strong>figuración inicial, lo cual correspon<strong>de</strong> a<br />

24<br />

Cualquier sistema que exhiba <strong>la</strong> formación <strong>de</strong> algún tipo <strong>de</strong> estructuras organizada se <strong>de</strong>nomina<br />

complejo.<br />

17


<strong>la</strong> c<strong>la</strong>se 3. Esta correspon<strong>de</strong>ncia <strong>de</strong> c<strong>la</strong>ses en AC y sistemas dinámicos <strong>con</strong>tinuos<br />

apoya <strong>la</strong> generalidad <strong>de</strong> estas c<strong>la</strong>ses [Wolfram,1893b]. La c<strong>la</strong>se IV sin embargo<br />

C<strong>la</strong>se I<br />

C<strong>la</strong>se II<br />

C<strong>la</strong>se III<br />

C<strong>la</strong>se IV<br />

Figura 9 Ejemplos <strong>de</strong> <strong>la</strong>s c<strong>la</strong>ses <strong>de</strong> Wolfram. Estos autómatas lineales<br />

<strong>con</strong>si<strong>de</strong>ran 5 vecinos(r=3) <strong>con</strong> 2 estados(k=2).<br />

18


es algo problemática e incluso se sugiere, que AC <strong>de</strong> esta c<strong>la</strong>se es cualquier AC<br />

que no corresponda a <strong>la</strong>s c<strong>la</strong>ses anteriores [Chaté, 1990].<br />

Las otras c<strong>la</strong>ses propuestas por Wolfram también encuentran problemas.<br />

McIntosh, sugiere que el problema <strong>de</strong> <strong>la</strong>s c<strong>la</strong>ses <strong>de</strong> Wolfram se <strong>de</strong>be a que es<br />

in<strong>de</strong>cidible saber qué estructuras se van a generar en un AC, dada su<br />

irreducibilidad [McIntosh, 1990]. Así por ejemplo AC <strong>de</strong> <strong>la</strong> c<strong>la</strong>se I (evolución a<br />

estados <strong>con</strong>stantes) es in<strong>de</strong>cidible si algún AC pue<strong>de</strong> en algún momento<br />

<strong>de</strong>tenerse (en un tiempo <strong>la</strong>rgo o corto) y producir un estado <strong>con</strong>stante.<br />

A pesar <strong>de</strong> los problemas que pueda presentar una c<strong>la</strong>sificación como <strong>la</strong> <strong>de</strong><br />

Wolfram, es c<strong>la</strong>ro que los AC pue<strong>de</strong>n exhibir comportamientos complejos a partir<br />

<strong>de</strong> reg<strong>la</strong>s locales simples, y que el resultado global <strong>de</strong>l AC no se pue<strong>de</strong> explicar<br />

sólo en términos <strong>de</strong> sus reg<strong>la</strong>s.<br />

Auto-Replicación<br />

El estudio <strong>de</strong> estructuras o máquinas auto-replicables 25 se realiza <strong>con</strong> el fin <strong>de</strong><br />

enten<strong>de</strong>r los principios fundamentales <strong>de</strong>l procesamiento <strong>de</strong> información y los<br />

algoritmos involucrados en <strong>la</strong> replicación in<strong>de</strong>pendientemente <strong>de</strong> su realización<br />

física [Perrier, 1996]. Los AC son uno <strong>de</strong> los mo<strong>de</strong>los centrales <strong>para</strong> el estudio <strong>de</strong><br />

<strong>la</strong> auto-replicación, y fue lo que originalmente motivó a von Neumann a <strong>de</strong>sarrol<strong>la</strong>r<br />

una teoría <strong>de</strong> AC <strong>con</strong> capacidad <strong>de</strong> auto-replicación.<br />

Von Neumann <strong>con</strong>struyó el equivalente <strong>de</strong> su mo<strong>de</strong>lo cinemático (ver sección 2.1)<br />

en un AC <strong>de</strong> 29 estados <strong>con</strong> 5 vecinos 26 inmerso en un espacio celu<strong>la</strong>r<br />

<strong>con</strong>si<strong>de</strong>rable. A pesar <strong>de</strong> que von Neumann <strong>de</strong>jó su trabajo <strong>de</strong> autómatas <strong>con</strong><br />

auto-replicación incompleto, <strong>de</strong>spúes <strong>de</strong> su muerte Arthur Burks organizó lo que<br />

estaba escrito y completó los <strong>de</strong>talles [Langton, 1989]. El mo<strong>de</strong>lo <strong>de</strong> von<br />

Neumann es una prueba <strong>con</strong>structiva <strong>de</strong> que <strong>la</strong> auto-replicación es posible en<br />

máquinas artificiales. La Figura 10 muestra un esquema <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> von<br />

Neumann 27 .<br />

En el mo<strong>de</strong>lo <strong>de</strong> von Neumann hay dos aspectos importantes sobre lo que es<br />

<strong>con</strong>si<strong>de</strong>rado un autómata auto-replicable: 1) El AC en sí (el arreglo <strong>de</strong> celdas) 2)<br />

El autómata <strong>con</strong>structor universal 28 (el código y estructura <strong>de</strong>l autómata), el cual<br />

está inmerso en el AC como una <strong>con</strong>figuración <strong>de</strong> estados [Langton, 1984], es<br />

<strong>de</strong>cir el AC provee el espacio don<strong>de</strong> se diseña un autómata replicable. A<strong>de</strong>más<br />

hay dos tipos <strong>de</strong> información en el autómata: 1) información interpretada, <strong>la</strong> cual al<br />

ejecutarse permite <strong>con</strong>struir una máquina en otra parte <strong>de</strong>l AC; y 2) información<br />

25 Capaz <strong>de</strong> crear una copia <strong>de</strong> sí mismo.<br />

26 Por ello <strong>con</strong>ocido posteriormente como vecindario <strong>de</strong> von Neumann.<br />

27 Detalles <strong>de</strong> este mo<strong>de</strong>lo se encuentra en [Burks, 1970]<br />

28 <strong>Un</strong> <strong>con</strong>structor universal es capaz <strong>de</strong> <strong>con</strong>struir cualquier estructura dada su <strong>de</strong>scripción. Si <strong>la</strong><br />

<strong>de</strong>scripción es él mismo, entonces producirá una copia <strong>de</strong> él.<br />

19


no-interpretada, que es simplemente copiada a <strong>la</strong> nueva máquina [Langton, 1984,<br />

1989]<br />

<strong>Un</strong>idad<br />

Central<br />

Padre<br />

Figura 10 Mo<strong>de</strong>lo <strong>de</strong> von Neumann. La unidad central procesa <strong>la</strong><br />

información <strong>de</strong> una cinta, permitiendo que el brazo <strong>con</strong>structor localice<br />

<strong>la</strong>s partes y ensamble en nuevo individuo y luego inserte una copia <strong>de</strong> <strong>la</strong><br />

cinta.<br />

El mo<strong>de</strong>lo <strong>de</strong> von Neumann fue simplificado posteriormente por Codd, en un AC<br />

<strong>de</strong> 8 estados, <strong>con</strong> un vecindario <strong>de</strong> 5 vecinos, sin embargo su complejidad lo hace<br />

difícil <strong>de</strong> implementar [Perrier, 1996]. Langton, basado en el trabajo <strong>de</strong> Codd<br />

[Langton 1984, 1986], propone un AC celu<strong>la</strong>r <strong>de</strong> 8 estados y 5 vecinos, <strong>con</strong><br />

capacidad <strong>de</strong> auto-replicación no trivial, el cual es simple y fácil <strong>de</strong> implementar.<br />

En un autómata <strong>con</strong> replicación trivial <strong>la</strong> reproducción no resi<strong>de</strong> en el código <strong>de</strong><br />

estados <strong>de</strong> <strong>la</strong> máquina en el AC; un ejemplo es el AC <strong>de</strong> <strong>la</strong> Figura7 don<strong>de</strong> <strong>la</strong><br />

reproducción <strong>de</strong> estructuras no está <strong>con</strong>tenida en <strong>la</strong> información <strong>de</strong>l padre (semil<strong>la</strong><br />

central).<br />

El ejemplo más sencillo <strong>de</strong> un autómata auto-replicable lo representa el autómata<br />

<strong>de</strong> Byl [Byl, 1989]. Este autómata utiliza so<strong>la</strong>mente 6 estados <strong>con</strong> 5 vecinos. Al<br />

comenzar <strong>con</strong> una <strong>con</strong>figuración inicial <strong>de</strong>terminada, este autómata es capaz <strong>de</strong><br />

auto-replicarse en 26 pasos 29 (Figura 11). <strong>la</strong> Figura 12, muestra como en el<br />

autómata <strong>de</strong> Byl, a partir <strong>de</strong> un padre es capaz <strong>de</strong> producir una colonia entera <strong>de</strong><br />

autómatas iguales.<br />

29 El <strong>de</strong> Lagton ocupa 133 pasos.<br />

Brazo<br />

Constructor<br />

Cinta<br />

20<br />

<strong>Un</strong>idad<br />

Central<br />

Descendiente<br />

Cinta


1.<br />

1.<br />

2.<br />

2.<br />

3.<br />

4.<br />

5.<br />

6.<br />

7.<br />

8.<br />

9.<br />

Padre<br />

10.<br />

11.<br />

12.<br />

13.<br />

14.<br />

15.<br />

16.<br />

17.<br />

18.<br />

Figura 11 Autómata auto-replicable <strong>de</strong> Byl. <strong>Un</strong>a <strong>con</strong>figuración padre<br />

<strong>con</strong>struye un <strong>de</strong>scendiente <strong>con</strong> <strong>la</strong> misma estructura e información. Los<br />

colores representan los estados <strong>de</strong>l autómata.<br />

21<br />

19.<br />

20.<br />

21.<br />

22.<br />

23.<br />

24.<br />

25.<br />

26.<br />

Padre<br />

Descendiente


Figura 12 Autómata replicable <strong>de</strong> Byl. Después <strong>de</strong> varias generaciones,<br />

a partir <strong>de</strong> un padre se logra reproducir una colonia en el espacio celu<strong>la</strong>r.<br />

A pesar <strong>de</strong> que Von Neumann y Codd establecieron que <strong>para</strong> que un autómata<br />

pudiera auto-replicarse era necesario capacidad <strong>de</strong> <strong>con</strong>strucción universal<br />

Langton y Byl logran <strong>de</strong>mostrar <strong>con</strong> sus autómatas, que aunque ésta es una<br />

<strong>con</strong>dición suficiente, no es necesaria. A<strong>de</strong>más los autómatas replicables<br />

<strong>con</strong>struidos en AC, han permitido <strong>de</strong>mostrar <strong>la</strong> capacidad <strong>de</strong> <strong>con</strong>struir máquinas<br />

artificiales que se reproduzcan utilizando mecanismos análogos a los <strong>de</strong> los<br />

sistemas biológicos.<br />

Auto-Organización<br />

Algo interesante <strong>de</strong> los AC, es que cualquier patrón que se genera en esca<strong>la</strong>s más<br />

allá <strong>de</strong> una so<strong>la</strong> celda, se <strong>con</strong>si<strong>de</strong>ra comportamiento emergente 30 [Langton, 1986].<br />

Las reg<strong>la</strong>s <strong>de</strong> transcición en un AC son locales y uniformes, y el comportamiento<br />

30 Emergencia, como una doctrina filosófica clásica, es <strong>la</strong> creencia <strong>de</strong> que en sistemas complejos,<br />

surgen nuevas categorías <strong>de</strong> comportamiento que no se pue<strong>de</strong>n <strong>de</strong>rivar <strong>de</strong> sólo los elementos <strong>de</strong>l<br />

sistema. [Pattee, 1989].<br />

22


global emerge <strong>de</strong> <strong>la</strong>s <strong>con</strong>strucciones <strong>de</strong> comportamientos locales. Estas nuevas<br />

propieda<strong>de</strong>s emergentes son el resultado <strong>de</strong> <strong>la</strong> capacidad <strong>de</strong> auto-organización<br />

<strong>de</strong>l espacio celu<strong>la</strong>r.<br />

El comportamiento y capacidad <strong>de</strong> auto-organización <strong>de</strong> un AC pue<strong>de</strong> ser<br />

estudiado utilizando diferentes métodos estadísticos. <strong>Un</strong>a <strong>de</strong> <strong>la</strong>s medidas más<br />

utilizadas es <strong>la</strong> entropía. La entropía se <strong>de</strong>fine como el logaritmo (base 2 por<br />

ejemplo) <strong>de</strong>l número promedio <strong>de</strong> estados posibles <strong>de</strong> un sistema, es <strong>de</strong>cir:<br />

∑<br />

S = − pi<br />

log 2 p<br />

i<br />

don<strong>de</strong> pi es <strong>la</strong> probabilidad <strong>de</strong>l estado i [Wolfram, 1983a; Lagton, 1990] . La<br />

entropía <strong>de</strong> un sistema es <strong>la</strong> suma <strong>de</strong> <strong>la</strong>s entropías <strong>de</strong> los subsistemas<br />

in<strong>de</strong>pendientes estadísticamente. El valor <strong>de</strong> entropía es máximo cuando el<br />

sistema esta <strong>de</strong>sorganizado; y por el <strong>con</strong>trario es mínimo cuando el sistema está<br />

organizado. Existen muchas formas en <strong>la</strong>s que <strong>la</strong> entropía se pue<strong>de</strong> aplicar a AC.<br />

Por ejemplo <strong>la</strong> entropía espacial, cuando se quiere analizar una <strong>con</strong>figuración en<br />

un tiempo <strong>de</strong>terminado, y <strong>la</strong> entropía temporal, cuando se <strong>de</strong>sea <strong>con</strong>ocer los<br />

cambios <strong>de</strong> <strong>con</strong>figuración <strong>de</strong> un sitio fijo a lo <strong>la</strong>rgo tiempo.[Li, 1990]<br />

<strong>Un</strong>a forma <strong>de</strong> calcu<strong>la</strong>r <strong>la</strong> entropía espacial en un AC, es utilizar <strong>la</strong> entropía <strong>de</strong><br />

bloques que <strong>con</strong>siste en:<br />

don<strong>de</strong><br />

1 ( b)<br />

( b)<br />

S b = ∑ p i log 2 p i<br />

b i<br />

(b)<br />

p <strong>de</strong>nota <strong>la</strong> probabilidad <strong>de</strong> <strong>la</strong> secuencia i <strong>de</strong> b valores en un AC.<br />

i<br />

Si aplicamos <strong>la</strong> entropía espacial <strong>de</strong> bloques al juego <strong>de</strong> <strong>la</strong> vida (ver sección<br />

2.3.3), si existe algún tipo <strong>de</strong> auto-organización, <strong>la</strong> entropía espacial a lo <strong>la</strong>rgo <strong>de</strong><br />

5000 generaciones <strong>de</strong>be disminuir,. Como se observa en <strong>la</strong> Figura 13,<br />

efectivamente hay una disminución en <strong>la</strong> entropía, y <strong>de</strong> hecho se observan<br />

estructura estables en el AC.<br />

Otro ejemplo <strong>de</strong> auto-organización en AC, es el AC estudiado por Greenberg y<br />

Hasting [Greenberg, 1978] <strong>para</strong> mo<strong>de</strong><strong>la</strong>r medios excitables. Ondas periódicas que<br />

se mueven en medios excitables proveen una dramática ilustración <strong>de</strong><br />

organización espacio – temporal en sistemas químicos, físicos y biológicos<br />

[Gerhardt, 1990].<br />

23<br />

i


a)<br />

b)<br />

S<br />

0.2<br />

0.1<br />

0<br />

0 1000 2000 3000 4000 5000<br />

Figura 13 a) Cambio en <strong>la</strong> entropía espacial <strong>de</strong> bloques en el juego <strong>de</strong> <strong>la</strong><br />

vida, <strong>de</strong>spués <strong>de</strong> 5000 generaciones (t=5000). b) <strong>con</strong>figuración <strong>de</strong>l AC <strong>de</strong><br />

200x200 celdas <strong>de</strong>spués <strong>de</strong> 5000 generaciones <strong>con</strong> un inicio aleatorio <strong>de</strong><br />

30% <strong>de</strong> celdas en estado 1.<br />

<strong>Un</strong> medio excitable es un sistema dinámico, que pue<strong>de</strong> ser “excitado” por<br />

pequeñas perturbaciones sobre un punto límite. <strong>Un</strong>a vez excitado, el medio<br />

vuelve a un estado “refractario” o <strong>de</strong> recuperación, <strong>para</strong> luego volver a su estado<br />

“receptivo” (susceptible nuevamente a ser excitado) [Markus, 1990]. Los mo<strong>de</strong>los<br />

<strong>de</strong> medios excitables en AC se han <strong>con</strong>struido <strong>de</strong> <strong>la</strong> manera más simple posible<br />

[Ermentrout, 1993]. Se han utilizado diferentes formas <strong>de</strong> simu<strong>la</strong>r esta actividad en<br />

AC. Arreglos <strong>con</strong> celdas hexagonales [Madore, 1983] o <strong>de</strong> celdas cuadradas<br />

[Greenberg, 1978; Gerhardt, 1990; Markus, 1990]. En el mo<strong>de</strong>lo <strong>de</strong> Greenberg el<br />

espacio celu<strong>la</strong>r <strong>con</strong> celdas cuadradas, y <strong>con</strong> un vecindario <strong>de</strong> Von Neumann <strong>de</strong> 5<br />

vecinos. <strong>Un</strong>a celda pue<strong>de</strong> estar en cualquiera <strong>de</strong> tres estado: receptivo (0),<br />

excitado (1) o refractario (2). <strong>Un</strong>a celda en estado receptivo se excita si tiene al<br />

menos 2 vecinos en estado 1. Cualquier celda en estado excitado pasa a estado<br />

24<br />

t


efractario y una en estado refractario pasa nuevamente a receptivo. En <strong>la</strong> Figura<br />

14a, se observa cómo se producen frentes <strong>de</strong> excitación, cuando en el medio<br />

(arreglo <strong>de</strong> celdas) se inicia <strong>con</strong> una celda excitada, o <strong>con</strong> un línea <strong>de</strong> celdas<br />

excitadas <strong>de</strong>bajo <strong>de</strong> una línea refractaria. <strong>Un</strong>a simu<strong>la</strong>ción en un arreglo <strong>de</strong><br />

200x200 <strong>de</strong>spués <strong>de</strong> 200 generaciones <strong>con</strong> inicio aleatorio (3% excitado, 3%<br />

refractario) produce un patrón como el que se observa en <strong>la</strong> Figura 14b.<br />

a)<br />

b)<br />

Figura 14 Frentes <strong>de</strong> propagación <strong>de</strong> celdas excitadas a) a partir <strong>de</strong> una<br />

línea <strong>de</strong> celdas excitadas <strong>de</strong>bajo <strong>de</strong> celdas refractarias, <strong>con</strong> el mo<strong>de</strong>lo <strong>de</strong><br />

Greenberg. b) <strong>con</strong> 3% <strong>de</strong> celdas excitadas y 3% refractarias, <strong>de</strong>spués <strong>de</strong><br />

200 generaciones.<br />

La capacidad <strong>de</strong> los AC <strong>de</strong> producir auto-organización, tiene gran importancia en<br />

el <strong>de</strong>sarrollo <strong>de</strong> mo<strong>de</strong>los teóricos <strong>de</strong> sistemas complejos. Es interesante como, a<br />

partir <strong>de</strong> <strong>con</strong>figuraciones iniciales aleatorias (como en el caso <strong>de</strong>l juego <strong>de</strong> <strong>la</strong> vida<br />

y el <strong>de</strong> medios excitables), se pueda auto-organizar el espacio celu<strong>la</strong>r <strong>de</strong>l AC por<br />

<strong>la</strong> so<strong>la</strong> interacción estrecha entre celdas que actúan <strong>con</strong> reg<strong>la</strong>s <strong>de</strong>terminísticas.<br />

25


Computación <strong>Un</strong>iversal<br />

<strong>Un</strong> sistema es una computadora universal, si al darle un programa inicial<br />

a<strong>de</strong>cuado, su evolución en el tiempo pue<strong>de</strong> implementar cualquier algoritmo finito<br />

[Wolfram, 1983b]. <strong>Un</strong>a computadora universal sólo necesita ser reprogramada y<br />

no re<strong>con</strong>struida <strong>para</strong> procesar cualquier cálculo posible. SI un AC pue<strong>de</strong> ser una<br />

computadora universal, entonces, <strong>con</strong> una reg<strong>la</strong> fija y diferentes <strong>con</strong>figuraciones<br />

iniciales <strong>de</strong>berán codificar todos los programas posibles.<br />

<strong>Un</strong> AC pue<strong>de</strong> ser <strong>con</strong>si<strong>de</strong>rado como un mundo lógico don<strong>de</strong> una computadora<br />

pue<strong>de</strong> ser <strong>con</strong>struida, o como una computadora por sí misma [Lagnton, 1990]. En<br />

el primer caso es posible <strong>de</strong>mostrar <strong>la</strong> capacidad <strong>de</strong> computación universal <strong>de</strong> un<br />

AC, i<strong>de</strong>ntificando estructuras que funcionen como los componentes principales <strong>de</strong><br />

una computadora digital tales como puertas NAND, memoria y relojes. [Dewdney,<br />

1990]. En el segundo, <strong>la</strong> computación universal <strong>de</strong>l AC se pue<strong>de</strong> <strong>de</strong>finir<br />

<strong>de</strong>mostrando su equivalencia <strong>con</strong> sistemas cuya capacidad <strong>de</strong> computación haya<br />

sido <strong>de</strong>mostrada, como <strong>la</strong> máquinas <strong>de</strong> Turing, o más fuerte aún, si se pue<strong>de</strong><br />

<strong>con</strong>struir un AC capaz <strong>de</strong> simu<strong>la</strong>r cualquier otro AC [Culik, 1990]. La primera<br />

posibilidad <strong>la</strong> mostraremos <strong>con</strong> algunos ejemplos en esta sección, <strong>la</strong> segunda se<br />

<strong>de</strong>muestra en el ANEXO C.<br />

Mediante <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> un AC sencillo, l<strong>la</strong>mado “Wireworld” es posible<br />

<strong>con</strong>struir todos los componentes lógicos <strong>de</strong> una computadora universal [Dewnwey,<br />

1990]. “Wireworld” es un AC <strong>de</strong> 4 estados <strong>con</strong> 9 vecinos (vecindario <strong>de</strong> Moore),<br />

don<strong>de</strong> cada estado significa lo siguiente: (0) celda <strong>de</strong> fondo, (1) celda cable, (2)<br />

cabeza <strong>de</strong> electrón y (3) co<strong>la</strong> <strong>de</strong> electrón. La reg<strong>la</strong>s <strong>de</strong> evolución son <strong>la</strong>s<br />

siguientes:<br />

1) <strong>Un</strong>a celda cable (1) cambia a una cabeza <strong>de</strong> electrón (2) si una o dos celdas<br />

vecinas son cabezas <strong>de</strong> electrón, <strong>de</strong> lo <strong>con</strong>trario se mantiene igual.<br />

2) <strong>Un</strong>a celda cabeza <strong>de</strong> electrón (2) siempre cambia a co<strong>la</strong> <strong>de</strong> electrón (3)<br />

3) <strong>Un</strong>a co<strong>la</strong> <strong>de</strong> electrón (3) siempre cambia a cable (1).<br />

4) La celdas <strong>de</strong> fondo (0) nunca cambian.<br />

McIntosh [McIntosh, 1992] y Dewdney [Dewdney, 1990], <strong>de</strong>scriben cómo se<br />

pue<strong>de</strong>n <strong>con</strong>struir diferentes componentes lógicos mediante esta reg<strong>la</strong>, algunos <strong>de</strong><br />

los cuales veremos a <strong>con</strong>tinuación.<br />

26


Barreras: Este es un circuito que impi<strong>de</strong> que una señal pase, cualquiera que sea<br />

su dirección. Figura 15.<br />

1.<br />

2.<br />

3.<br />

4.<br />

5.<br />

6.<br />

Figura 15 Barrera <strong>de</strong> “WireWorld”. La señal <strong>de</strong> <strong>la</strong> izquierda es bloqueada<br />

en el paso 5.<br />

Diodos: Los diodos fuerzan a una señal a viajar en un solo sentido. En <strong>la</strong> Figura<br />

16, <strong>la</strong> señal pue<strong>de</strong> viajar <strong>de</strong> izquierda a <strong>de</strong>recha pero no en sentido <strong>con</strong>trario.<br />

a) b)<br />

Figura 16 Diodo <strong>de</strong> “Wireworld”. a) La señal pue<strong>de</strong> viajar <strong>de</strong> izquierda a<br />

<strong>de</strong>recha. b) La señal <strong>de</strong> <strong>de</strong>recha a izquierda es <strong>de</strong>tenida por el diodo.<br />

27


Compuerta OR: La compuerta OR toma dos entradas y aplica <strong>la</strong> operación OR <strong>de</strong><br />

<strong>la</strong>s señales. En <strong>la</strong> Figura 17 se observa un puerto OR junto <strong>con</strong> dos relojes, uno<br />

<strong>de</strong> período 2 y otro <strong>de</strong> período 4, alternando <strong>la</strong> señal true Or true / false OR true.<br />

1.<br />

2.<br />

a)<br />

b)<br />

c)<br />

3.<br />

4.<br />

5.<br />

Figura 17 Compuerta OR <strong>de</strong> “Wireworld”. Se muestra una secuencia <strong>con</strong><br />

dos relojes a) período 4 y c) periodo 2. La compuerta OR (b), en el paso<br />

7 resulta en una señal, dado que a y c producen señales, en el paso 11,<br />

Or es una señal <strong>de</strong>bido a <strong>la</strong> señal producida por c en el paso 7.<br />

Compuerta AND: En <strong>la</strong> Figura 18 se <strong>de</strong>tal<strong>la</strong> <strong>la</strong> estructura <strong>de</strong> AND.<br />

a b<br />

6.<br />

Figura 18 Compuerta AND <strong>de</strong> “wireworld”.<br />

28<br />

7.<br />

8.<br />

a AND b<br />

9.<br />

10.<br />

11.


Complemento (NOT): invierte una señal, es <strong>de</strong>cir, si hay señal en el resultado no <strong>la</strong><br />

hay, si por el <strong>con</strong>trario no hay señal en el resultado sí <strong>la</strong> hay. (Figura 19)<br />

reloj<br />

Figura 19 Complemento. En a) no hay señal en <strong>la</strong> entrada y por tanto se<br />

emite señal a <strong>la</strong> salida. en b) hay señal <strong>de</strong> entrada y no hay señal <strong>de</strong><br />

salida.<br />

Relojes: En <strong>la</strong> Figura 20 se observa un reloj <strong>de</strong> período 2. Para aumentar el<br />

período basta <strong>con</strong> aumentar el <strong>la</strong>rgo <strong>de</strong> cable en el ciclo.<br />

1.<br />

2.<br />

3.<br />

4.<br />

5.<br />

a) b)<br />

Figura 20 Reloj <strong>de</strong> “Wireworld”. El reloj manda señales en período 2. En<br />

el primer paso, <strong>la</strong> señal es emitida por el cable; en el paso 5 hay una<br />

nueva señal a ser emitida. En los paso <strong>de</strong>l 2 al 4 <strong>la</strong> señal da vuelta en el<br />

ciclo.<br />

29


Memoria: <strong>Un</strong>a estructura sencil<strong>la</strong> <strong>de</strong> memoria se observa en <strong>la</strong> Figura 21. Esta<br />

emplea un ciclo en don<strong>de</strong> se recuerda un 1; cuando se recuerda un 0 no hay<br />

electrones en el ciclo. Cuando el cable superior trae señal, indica que se <strong>de</strong>be<br />

recordar un 0 y si el cable inferior trae señal entonces se <strong>de</strong>be recordar un 1.<br />

a)<br />

b) Ciclo<br />

memoria<br />

Figura 21 <strong>Un</strong>a estructura <strong>de</strong> memoria. A) se recuerda 0. b) se recuerda<br />

1.<br />

<strong>Un</strong>iendo varias <strong>de</strong> estas estructuras es posible <strong>con</strong>struir una computadora<br />

universal <strong>de</strong>ntro <strong>de</strong>l AC. De manera simi<strong>la</strong>r se han <strong>con</strong>struido estructuras lógicas<br />

<strong>con</strong> el juego <strong>de</strong> <strong>la</strong> vida [Dewdney, 1985]. Otro ejemplo <strong>de</strong> este tipo <strong>de</strong><br />

<strong>con</strong>strucción es el autómata <strong>de</strong> Bank [Toffoli, 1987], el cual sólo ocupa 2 estados<br />

como el juego <strong>de</strong> <strong>la</strong> vida.<br />

Con el autómata <strong>de</strong> von Neumann también se pue<strong>de</strong>n <strong>con</strong>struir los componentes<br />

lógicos necesarios <strong>para</strong> <strong>la</strong> computación universal, sin embargo ejemplos como los<br />

anteriores son mucho más sencillos <strong>de</strong> implementar.<br />

La forma más elegante <strong>de</strong> <strong>de</strong>mostrar computación universal es establecer <strong>la</strong><br />

equivalencia entre máquinas <strong>de</strong> Turing y AC. En principio es necesario <strong>de</strong>finir<br />

estados <strong>para</strong> trabajar como símbolos <strong>de</strong> <strong>la</strong> máquina <strong>de</strong> turing y estados <strong>para</strong><br />

simu<strong>la</strong>r <strong>la</strong> posición <strong>de</strong> <strong>la</strong> cabeza y los estados internos <strong>de</strong> <strong>la</strong> máquina <strong>de</strong> Turing.<br />

La <strong>de</strong>mostración es bastante directa y se encuentra en el ANEXO C.<br />

30<br />

recuerda 1


2.3.5 Algunos Programas <strong>de</strong> <strong>Autómatas</strong> Celu<strong>la</strong>res<br />

Los programas más <strong>con</strong>ocido <strong>de</strong> AC son CAM <strong>de</strong>sarrol<strong>la</strong>dos por Toffoli en el MIT<br />

[Toffoli, 1984b, 1986] y Mathematica <strong>de</strong>sarrol<strong>la</strong>do por Wolfram [Wolfram, 1991].<br />

CAM-PC<br />

CAM es una “caja negra” que <strong>con</strong>tiene un procesador <strong>para</strong>lelo <strong>para</strong> <strong>la</strong> simu<strong>la</strong>ción<br />

<strong>de</strong> autómatas celu<strong>la</strong>res y otros sistemas discretos. Esta caja negra es una tarjeta<br />

que se insta<strong>la</strong> en cualquier PC (esta versión es CAM-6); el software <strong>para</strong> <strong>con</strong>tro<strong>la</strong>r<br />

a CAM es Forth. CAM <strong>con</strong>tiene 4 p<strong>la</strong>nos <strong>de</strong> 256x256 celdas, cada celda <strong>de</strong> 1-bit,<br />

por tanto en cada p<strong>la</strong>no es posible tener dos valores {0,1}, uniendo los cuatro<br />

p<strong>la</strong>nos, es posibles hasta 16 estados por celda. Las reg<strong>la</strong>s <strong>de</strong> transición <strong>de</strong>l AC<br />

son <strong>con</strong>struidas en Forth, <strong>la</strong>s cuales son <strong>con</strong>vertidas en una tab<strong>la</strong> <strong>de</strong> transición,<br />

que es una lista explícita <strong>de</strong> todas <strong>la</strong>s combinaciones <strong>de</strong> posición y estado <strong>de</strong> los<br />

vecinos seleccionados. La versión más actual <strong>de</strong> CAM es CAM-8 (<strong>de</strong> 512x512<br />

celdas), que trabaja en computadoras especiales l<strong>la</strong>madas STEP. En términos<br />

generales CAM es una implementación <strong>de</strong> hardware <strong>de</strong> AC que se <strong>con</strong>tro<strong>la</strong><br />

mediante un lenguaje Forth extendido <strong>de</strong> alto nivel.<br />

Mathematica<br />

Mathematica, es una aplicación <strong>de</strong>sarrol<strong>la</strong>da <strong>para</strong> <strong>la</strong> solución analítica o numérica<br />

<strong>de</strong> funciones matemáticas. Con este programa es posible <strong>de</strong>sarrol<strong>la</strong>r mo<strong>de</strong>los<br />

bastante complejos. En términos <strong>de</strong> AC, Mathematica provee comandos<br />

específicos <strong>para</strong> el diseño <strong>de</strong> AC. El lenguaje <strong>de</strong> Mathematica es simi<strong>la</strong>r a C, y se<br />

pue<strong>de</strong> <strong>con</strong>si<strong>de</strong>rar como un lenguaje <strong>de</strong> propósito general, don<strong>de</strong> se han<br />

incorporado algunos comandos <strong>para</strong> AC.<br />

Otros programas<br />

Algunos otros lenguajes <strong>de</strong> AC incluyen:<br />

1) Camel [Spezzano, 1996], este sistema utiliza computadoras <strong>para</strong>le<strong>la</strong>s como<br />

MIND, <strong>con</strong> un lenguaje propio l<strong>la</strong>mado Carpet (cellu<strong>la</strong>r programming<br />

environment).<br />

2) StarLogo lenguaje, que pue<strong>de</strong> ser utilizado en sistema UNIX, Macintosh o PC<br />

[Resnick, 1994], sin embargo el movimiento <strong>de</strong> <strong>la</strong>s “tortugas” difiere respecto al<br />

mo<strong>de</strong>lo <strong>de</strong> AC, y su utilización es <strong>con</strong> fines educativos más que <strong>de</strong><br />

investigación.<br />

31


3) SARCASim (Animated Reduction Cellu<strong>la</strong>r Automata) es un programa que<br />

funciona en Windows, y que utiliza un lenguaje l<strong>la</strong>mado ARCAL [Maydwell,<br />

1999].<br />

4) Cel<strong>la</strong>b es un programa que funciona en ambiente Windows, es bastante<br />

interesante y eficiente; <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> este programa se escriben en Basic,<br />

Pascal o C, y hay un compi<strong>la</strong>dor que <strong>la</strong>s transforma a un lenguaje propio;<br />

<strong>de</strong>bido a esto este programa es bastante flexible y útil [Rucker, 1999].<br />

2.4 <strong>Autómatas</strong> Celu<strong>la</strong>res Probabilísticos<br />

Po<strong>de</strong>mos <strong>de</strong>finir dos formas <strong>de</strong> AC probabilístico. <strong>Un</strong>a don<strong>de</strong> <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong>l<br />

autómata se aplican <strong>de</strong> manera uniforme a todas <strong>la</strong>s celdas <strong>de</strong>l espacio celu<strong>la</strong>r,<br />

pero cada cambio <strong>de</strong> estado tiene una probabilidad <strong>de</strong> ocurrencia; y otra don<strong>de</strong> <strong>la</strong>s<br />

reg<strong>la</strong>s no son uniformes y cada celda pue<strong>de</strong> aplicar una reg<strong>la</strong> u otra <strong>con</strong><br />

diferentes probabilida<strong>de</strong>s. En el primer caso, lo l<strong>la</strong>maremos AC probabilístico<br />

uniforme (ACPU) y el segundo AC probabilístico no uniforme (ACPN)<br />

2.4.1 Autómata Celu<strong>la</strong>r Probabilístico No-uniforme<br />

Sea M un AC probabilístico:<br />

M = �A,Q, ∆ , N ,P�<br />

los componentes A,Q, ∆ , N ; matienen el significado <strong>de</strong> <strong>la</strong> sección 2.3.1 P es una<br />

función P: ∆ → Q. <strong>la</strong> probabilidad <strong>de</strong> que una transición δ origine el nuevo estado<br />

q lo <strong>de</strong>notaremos <strong>con</strong> p( δ , q)<br />

. Se cumple que:<br />

∑<br />

q∈Q<br />

∀δ<br />

∈ ∆,<br />

p( δ , q)<br />

= 1<br />

2.4.2 Autómata Celu<strong>la</strong>r Probabilístico <strong>Un</strong>iforme<br />

Mantiene <strong>la</strong> misma <strong>de</strong>finición que ACPN a excepción <strong>de</strong> <strong>la</strong> función P: ∆ x Q → Q.<br />

La probabilidad <strong>de</strong> que <strong>la</strong> transición δ produzca cambio <strong>de</strong> estado <strong>de</strong> q a q’ se<br />

<strong>de</strong>nota por p ( δ , q′<br />

q)<br />

y <strong>la</strong> probabilidad <strong>de</strong> que no se produzca cambio es<br />

1− p ( δ , q′<br />

q)<br />

.<br />

32


2.4.3 <strong>Un</strong> AC probabilístico<br />

<strong>Un</strong> ejemplo <strong>de</strong> un ACPU, que simu<strong>la</strong> el crecimiento <strong>de</strong> un liquen <strong>con</strong>siste en un<br />

AC <strong>con</strong> 2 estados y 9 vecinos, <strong>con</strong> <strong>la</strong>s siguientes reg<strong>la</strong>s probabilísticas:<br />

� <strong>Un</strong>a celda pasa a 1 o se mantiene en estado 1, si hay uno y so<strong>la</strong>mente un<br />

vecino en estado 1. Esto ocurre <strong>con</strong> una probabilidad p <strong>de</strong> 0.1,<br />

La Figura 22a muestra el AC <strong>de</strong>spués <strong>de</strong> 100 generaciones, iniciando <strong>con</strong> una<br />

semil<strong>la</strong> central. Si p = 1 el crecimiento, <strong>de</strong>spués <strong>de</strong> 25 generaciones, es muy<br />

regu<strong>la</strong>r y genera el patrón <strong>de</strong> <strong>la</strong> Figura 22b.<br />

a) b)<br />

Figura 22 a) AC probabilístico. b) El mismo AC pero <strong>de</strong>terminístico.<br />

En términos generales, cuando se cambia un AC <strong>de</strong> <strong>de</strong>terminístico a<br />

probabilístico, se incrementa el <strong>de</strong>sor<strong>de</strong>n [Eisele, 1991]. Sin embargo, los AC<br />

probabilísticos, tiene gran valor práctico <strong>para</strong> <strong>la</strong> simu<strong>la</strong>ción <strong>de</strong> sistemas biológicos<br />

o físicos.<br />

2.5 Comentario Final<br />

El po<strong>de</strong>r analítico <strong>de</strong> los AC va <strong>de</strong>s<strong>de</strong> simples mo<strong>de</strong>los <strong>para</strong> mostrar ciertas<br />

propieda<strong>de</strong>s, hasta <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> mo<strong>de</strong>los equivalentes <strong>de</strong> sistemas <strong>de</strong><br />

ecuaciones diferenciales. Esta capacidad fue <strong>la</strong> que motivó esta tesis, y en<br />

particu<strong>la</strong>r <strong>la</strong> posibilidad <strong>de</strong> crear un medio <strong>de</strong> experimentación <strong>con</strong> AC, don<strong>de</strong> se<br />

puedan <strong>con</strong>struir mo<strong>de</strong>los biológicos.<br />

33


En <strong>la</strong> revisión <strong>de</strong> literatura sobre AC, aunque se mencionan AC en algunos<br />

documentos, no se en<strong>con</strong>tró ningún trabajo o <strong>de</strong>scripción <strong>de</strong> AC en español. Este<br />

capítulo <strong>con</strong>tiene algunos <strong>de</strong> los aspectos fundamentales <strong>de</strong> los AC y que pue<strong>de</strong>n<br />

servir <strong>de</strong> referencia en español <strong>de</strong> AC, a estudiantes e investigadores que quieran<br />

explorar este tema.<br />

34


3 Sistemas Biológicos, Vida Artificial y AC<br />

3.1 Introducción<br />

Nuestra impresión general <strong>de</strong>l mundo nos hace pensar en dos partes: una parte<br />

físico - química, y otra parte biológica. La parte físico - química <strong>con</strong>siste <strong>de</strong> aire,<br />

océanos, rocas, el clima; y en general <strong>la</strong> suma <strong>de</strong> componentes 31 <strong>de</strong> lo que<br />

<strong>de</strong>nominamos el medio. Este medio es un sistema inanimado, vasto y gobernado<br />

por leyes físicas. Por otro <strong>la</strong>do pensamos en <strong>la</strong>s cosas “animadas” o “vivas” y<br />

tratamos <strong>de</strong> enten<strong>de</strong>r<strong>la</strong>s como parte <strong>de</strong> un sistema don<strong>de</strong> <strong>la</strong>s leyes <strong>de</strong> <strong>la</strong> física son<br />

respetadas 32 pero existen leyes biológicas particu<strong>la</strong>res que <strong>de</strong>scriben o<br />

<strong>de</strong>terminan el estado <strong>de</strong> <strong>la</strong>s cosas “vivas”. P<strong>la</strong>ntas y animales 33 (objetos vivos 34 )<br />

se adaptan a <strong>la</strong>s <strong>con</strong>diciones que el medio provee, se alimentan en el medio; y<br />

sufren cambios o son <strong>de</strong>struidos, inducidos por el medio. A<strong>de</strong>más los objetos<br />

vivos se re<strong>la</strong>cionan <strong>con</strong> otros objetos vivos que están en el medio. Animales<br />

comen p<strong>la</strong>ntas, animales a animales.<br />

La biología estudia los objetos vivos. ¿Qué estudia <strong>la</strong> biología <strong>de</strong> los objetos<br />

vivos?. Bueno, pue<strong>de</strong> <strong>de</strong>scribir los fenómenos internos o externos <strong>de</strong> los objetos<br />

vivos o pue<strong>de</strong> tratar <strong>de</strong> explicar comportamientos generales <strong>de</strong> los objetos vivos<br />

mediante algún tipo <strong>de</strong> mo<strong>de</strong>lo formal. Las ciencias biológicas (y en general en<br />

cualquier ciencia natural 35 ) trabajan <strong>con</strong> tres enfoques importantes: c<strong>la</strong>sificatorio,<br />

com<strong>para</strong>tivo y cuantitativo. En el primer caso, los objetos vivos son ubicados en<br />

c<strong>la</strong>ses utilizando algún argumento <strong>de</strong> forma, origen, etc. Para lograr <strong>la</strong><br />

c<strong>la</strong>sificación, es necesario caracterizar todos los objetos biológicos. El enfoque<br />

com<strong>para</strong>tivo, en cambio, trata <strong>de</strong> establecer re<strong>la</strong>ciones entre objetos vivos, p.e. un<br />

objeto biológico es más gran<strong>de</strong> que otro, tiene un comportamiento diferente, etc.<br />

Este enfoque es importante y tiene gran valor <strong>para</strong> una ciencia cuando el enfoque<br />

cuantitativo es difícil, como en el caso <strong>de</strong> <strong>la</strong> biología. Gran parte <strong>de</strong> los avances<br />

en biología se <strong>de</strong>ben a los estudios com<strong>para</strong>tivos mediante los cuales se intentan<br />

sacar nociones generales sobre propieda<strong>de</strong>s <strong>de</strong> los objetos vivos. Los <strong>con</strong>ceptos<br />

cuantitativos, tratan <strong>de</strong> <strong>de</strong>scribir hechos naturales mediante <strong>con</strong>ceptos <strong>con</strong> valores<br />

numéricos. En <strong>la</strong> biología estos <strong>con</strong>ceptos <strong>con</strong> valores numéricos <strong>de</strong>scriben<br />

objetos vivos. <strong>Un</strong>a biología mecánica, estudia los fenómenos asociados a los<br />

objetos vivos en términos <strong>de</strong> cantida<strong>de</strong>s que cambian; estas cantida<strong>de</strong>s (variables<br />

<strong>de</strong> estado) representan <strong>la</strong> aparición <strong>de</strong> estructura y organización en espacio y<br />

tiempo. <strong>Un</strong> ejemplo <strong>de</strong> un <strong>con</strong>cepto biológico asociado a objeto vivo es <strong>la</strong><br />

biodiversidad. Biodiversidad es expresable en términos <strong>de</strong> número <strong>de</strong> especies en<br />

31<br />

Conocidos como componentes abióticos.<br />

32<br />

<strong>Un</strong>a forma tradicional en <strong>la</strong> que los biólogos tratan <strong>de</strong> justificar a <strong>la</strong> biología.<br />

33<br />

Todo ser vivo<br />

34<br />

Se utilizará objeto vivo y no ser vivo, <strong>para</strong> evitar el significado que “ser vivo” pueda tener. Objeto<br />

vivo incluye cualquier nivel <strong>de</strong> organización en los sistemas biológicos, así un objeto vivo pue<strong>de</strong> ser<br />

un individuo, una pob<strong>la</strong>ción, un ecosistema, etc.<br />

35<br />

Rudolf Carnap hace una discusión interesante <strong>de</strong> esto en el libro “fundamentación lógica <strong>de</strong> <strong>la</strong><br />

física” [Carnap, 1969].<br />

35


espacio y tiempo <strong>de</strong>terminados 36 . El cambio <strong>de</strong> <strong>la</strong> diversidad en el tiempo es una<br />

función compleja que involucra tanto interacciones internas entre todos los grupos<br />

(re<strong>la</strong>ciones <strong>de</strong> alimentación, extinción, aparición <strong>de</strong> nuevas especies, etc.) que<br />

ocurren en un espacio - tiempo, y factores abióticos (clima, topografía, etc.) <strong>de</strong>l<br />

medio. Construir un mo<strong>de</strong>lo <strong>de</strong> tal tipo es complejo y <strong>de</strong> hecho nunca ha sido<br />

<strong>con</strong>struido o formalizado 37 . Con un enfoque cuantitativo se intentaría tener valores<br />

o cantida<strong>de</strong>s que <strong>de</strong>scriban <strong>la</strong> dinámica universal <strong>de</strong> los objetos vivos. Los<br />

sistemas biológicos 38 son sistemas complejos, que involucran una gran cantidad<br />

<strong>de</strong> variables y re<strong>la</strong>ciones entre variables. Esta complejidad aparente <strong>de</strong> los<br />

sistemas biológicos dificulta <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> mo<strong>de</strong>los <strong>con</strong> un enfoque<br />

cuantitativo. No nos permite <strong>con</strong>struir fácilmente i<strong>de</strong>alizaciones formales (teorías,<br />

leyes, etc.) <strong>para</strong> <strong>de</strong>scribir fenómenos <strong>de</strong> objetos vivos. Sin embargo esta tarea no<br />

es imposible.<br />

En resumen, hay dos cuestiones importantes <strong>de</strong> <strong>de</strong>finir cuando se trabaja <strong>con</strong> <strong>la</strong>s<br />

ciencias biológicas: <strong>la</strong> <strong>de</strong>finición <strong>de</strong> objeto vivo, y cómo estudiar los cambios <strong>de</strong><br />

dichos objetos. De hecho <strong>la</strong> vida artificial trata <strong>de</strong> hacer <strong>con</strong>strucciones a partir <strong>de</strong><br />

estos enfoques, por un <strong>la</strong>do <strong>la</strong> creación <strong>de</strong> entida<strong>de</strong>s vivas artificiales que<br />

sobreviven en un medio cibernético, y por otro <strong>la</strong>do <strong>la</strong> simu<strong>la</strong>ción <strong>de</strong> sistemas<br />

biológicos complejos. En este capítulo se hace una discusión sobre el <strong>con</strong>cepto<br />

<strong>de</strong> vida, <strong>para</strong> p<strong>la</strong>ntear <strong>con</strong> una <strong>de</strong>finición propia 39 , un <strong>con</strong>cepto universal <strong>de</strong><br />

entidad biológica. Luego se <strong>de</strong>scribe cómo se estudian los cambios en sistemas<br />

biológicos complejos y cuál es el papel que tienen los autómatas celu<strong>la</strong>res <strong>para</strong> el<br />

estudio <strong>de</strong> <strong>la</strong> dinámica biológica.<br />

3.2 El <strong>con</strong>cepto <strong>de</strong> Vida.<br />

3.2.1 ¿Qué significa <strong>la</strong> vida?<br />

Dos corrientes filosóficas importantes han tratado <strong>de</strong> establecer el significado <strong>de</strong> <strong>la</strong><br />

materia viva, el vitalismo y el mecanicismo [Wuketits, 1995]. Aristóteles,<br />

<strong>con</strong>sciente <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> los seres vivos en un mundo animado, introdujo<br />

<strong>la</strong> noción <strong>de</strong> que los organismos vivos <strong>de</strong>pen<strong>de</strong>n <strong>de</strong> una función o actividad<br />

interna sin <strong>la</strong> cual no serían organismos vivos. Esta i<strong>de</strong>a fue <strong>la</strong> que fundó el<br />

<strong>con</strong>cepto <strong>de</strong> los vitalistas, quienes piensan que <strong>la</strong> vida y todas sus expresiones<br />

particu<strong>la</strong>res 40 <strong>de</strong>pen<strong>de</strong>n <strong>de</strong> agentes in<strong>de</strong>pendientes que no pue<strong>de</strong>n ser explicados<br />

36<br />

También es posible pensar en <strong>la</strong> biodiversidad en término <strong>de</strong> funciones ecológicas, es <strong>de</strong>cir, el<br />

número <strong>de</strong> funciones que ocurren en un espacio y tiempo particu<strong>la</strong>r.<br />

37<br />

Cuando se hab<strong>la</strong> <strong>de</strong> biodiversidad se mencionan todas <strong>la</strong>s posibles variables involucradas en <strong>la</strong><br />

formación y mantenimiento <strong>de</strong> <strong>la</strong> diversidad, pero no existe actualmente una ecuación universal <strong>de</strong><br />

<strong>la</strong> diversidad biológica.<br />

38<br />

<strong>Un</strong> objeto vivo es un sistema biológico. Se utiliza sistema biológico <strong>para</strong> enmarcar a los objetos<br />

vivos <strong>de</strong>ntro <strong>de</strong> <strong>la</strong> teoría <strong>de</strong> sistemas (en este caso sistemas dinámicos complejos).<br />

39<br />

Del autor <strong>de</strong> <strong>la</strong> tesis.<br />

40<br />

Comportamiento, <strong>de</strong>sarrollo, etc.<br />

36


en términos físicos o químicos. A este agente se le l<strong>la</strong>mó “po<strong>de</strong>r vital”. Por otro<br />

<strong>la</strong>do <strong>la</strong> corriente mecanicista establece que cada organismo vivo es un sistema<br />

mecánico, una especie <strong>de</strong> máquina basada en elementos químicos y por ello<br />

pue<strong>de</strong> ser entendida en el marco <strong>de</strong> <strong>la</strong> mecánica clásica. Hoy en día <strong>la</strong><br />

<strong>con</strong>troversia entre estas dos corrientes ha perdido significado y <strong>de</strong> hecho son<br />

pocos los que todavía <strong>de</strong>fien<strong>de</strong>n una corriente como <strong>la</strong> vitalista. La pregunta es<br />

más bien, si es posible explicar los sistemas vivos en términos físicos o químicos<br />

o si existe alguna limitación a este reduccionismo. Era c<strong>la</strong>ro <strong>de</strong> que <strong>la</strong> visión<br />

mecanicista podía explicar fenómenos biológicos a nivel molecu<strong>la</strong>r reduciéndolo a<br />

problemas químicos y físicos, sin embargo a niveles más altos <strong>de</strong> integración,<br />

estos mecanismos juegan un papel cada vez menor (sino <strong>de</strong>spreciable)<br />

[Mayr,1997]. Los altos niveles <strong>de</strong> integración poseen características emergentes<br />

producto <strong>de</strong> <strong>la</strong> organización. A raíz <strong>de</strong> esta i<strong>de</strong>a surge un nuevo movimiento<br />

organicista (alre<strong>de</strong>dor <strong>de</strong> 1920) que supone que <strong>la</strong>s características únicas <strong>de</strong> los<br />

organismos vivos se <strong>de</strong>be a su composición y organización. Según esta corriente,<br />

el todo está tan re<strong>la</strong>cionado <strong>con</strong> <strong>la</strong>s partes, que su existencia se <strong>de</strong>be a <strong>la</strong><br />

cooperación or<strong>de</strong>nada e inter<strong>de</strong>pen<strong>de</strong>ncia <strong>de</strong> <strong>la</strong> partes; y que el todo <strong>con</strong>tro<strong>la</strong> <strong>la</strong>s<br />

partes. En términos generales se dice “el todo es más que <strong>la</strong>s partes”.<br />

En <strong>la</strong> biología mo<strong>de</strong>rna se han incorporado nuevos argumentos en el intento <strong>de</strong><br />

<strong>de</strong>finir los sistemas biológicos: un programa genético, y el <strong>con</strong>cepto <strong>de</strong><br />

propieda<strong>de</strong>s emergentes. El programa genético, <strong>con</strong> el <strong>de</strong>scubrimiento <strong>de</strong> los<br />

mecanismos <strong>de</strong>l ADN, ha permitido establecer <strong>la</strong> base molecu<strong>la</strong>r <strong>de</strong> <strong>la</strong> herencia y<br />

<strong>de</strong> los procesos <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> los organismos como base <strong>de</strong> <strong>la</strong> corriente<br />

reduccionista 41 . El <strong>con</strong>cepto <strong>de</strong> emergencia, ha permitido enmarcar los<br />

comportamientos <strong>de</strong> niveles superiores <strong>de</strong> organización <strong>de</strong>ntro <strong>de</strong> programas <strong>de</strong><br />

estudio 42 particu<strong>la</strong>res en <strong>la</strong>s ciencias biológicas <strong>con</strong> un enfoque holístico 43 .<br />

3.2.2 Propieda<strong>de</strong>s <strong>de</strong> <strong>la</strong> vida<br />

En <strong>la</strong> actualidad en <strong>la</strong>s ciencias biológicas se toma como un hecho que los<br />

organismos poseen características fundamentales que los diferencian <strong>de</strong> <strong>la</strong><br />

materia inanimada (que estudian los físicos) [Mayr, 1997]. Los organismos son<br />

sistemas jerárquicamente or<strong>de</strong>nados <strong>con</strong> propieda<strong>de</strong>s emergentes que no se<br />

encuentran en <strong>la</strong> materia inanimada; y sus activida<strong>de</strong>s están gobernadas por<br />

programas genéticos que <strong>con</strong>tienen información adquirida históricamente. <strong>Un</strong><br />

organismo según esta perspectiva es una forma <strong>de</strong> dualismo entre el genotipo 44 y<br />

el fenotipo 45 .<br />

41<br />

Biología molecu<strong>la</strong>r y celu<strong>la</strong>r, genética, etc.<br />

42<br />

como ecología, comportamiento, etc.<br />

43<br />

<strong>Un</strong>a visión <strong>de</strong> arriba abajo, partiendo <strong>de</strong>l todo a <strong>la</strong>s partes, en <strong>con</strong>traposición <strong>de</strong> <strong>la</strong> visión<br />

reduccionista que estudia <strong>la</strong>s partes como justificación <strong>de</strong>l todo.<br />

44<br />

Constitución y estructura genética <strong>de</strong> un individuo que <strong>de</strong>termina sus características hereditarias<br />

45<br />

Carácter físico observable en un individuo, tal y como se manifiesta por <strong>la</strong> acción combinada <strong>de</strong><br />

los genes y <strong>de</strong> factores ambientales<br />

37


Des<strong>de</strong> un punto <strong>de</strong> vista biológico, Mayr sugiere que los siguientes fenómenos<br />

ocurren en los organismos vivos:<br />

� Programas evolucionados: Todo el <strong>de</strong>sarrollo y comportamiento está en parte<br />

<strong>con</strong>tro<strong>la</strong>do por programas genéticos que son el resultado <strong>de</strong> <strong>la</strong> información<br />

genética acumu<strong>la</strong>da en millones <strong>de</strong> años <strong>de</strong> evolución.<br />

� Propieda<strong>de</strong>s químicas: Las macromolécu<strong>la</strong>s que forman parte <strong>de</strong> los seres<br />

vivos no se encuentran en <strong>la</strong> materia inanimada.<br />

� Mecanismos regu<strong>la</strong>torios: mecanismos <strong>de</strong> regu<strong>la</strong>ción, como retroalimentación,<br />

que mantiene estables a los seres vivos.<br />

� Organización: Los organismos vivos son complejos y or<strong>de</strong>nados.<br />

� Sistemas teleonómicos 46 : Los sistemas vivos son adaptativos, han sido sujeto<br />

<strong>de</strong> selección natural por generaciones. Estos sistemas están programados<br />

<strong>para</strong> activida<strong>de</strong>s teleonómicas (<strong>con</strong> una finalidad) <strong>de</strong>s<strong>de</strong> el <strong>de</strong>sarrollo en el<br />

embrión hasta los comportamientos y activida<strong>de</strong>s psicológicas.<br />

� Or<strong>de</strong>n <strong>de</strong> magnitud limitado: El tamaño <strong>de</strong> los organismos ocupa un rango<br />

limitado <strong>de</strong>ntro <strong>de</strong> nuestro p<strong>la</strong>neta. La unidad fundamental <strong>de</strong> <strong>la</strong> célu<strong>la</strong> es<br />

pequeña lo que permite gran flexibilidad en el <strong>de</strong>sarrollo y evolución.<br />

� Ciclos <strong>de</strong> vida: Los organismos vivos cambian <strong>de</strong> estado varias veces en su<br />

vida.<br />

� Sistemas abiertos: Los organismos obtienen energía y materiales <strong>de</strong>l medio<br />

externo y eliminan productos <strong>de</strong> su metabolismo al medio. Al ser sistemas<br />

abiertos, estos sistemas no están sujetos a <strong>la</strong> segunda ley <strong>de</strong> <strong>la</strong><br />

termodinámica.<br />

Estas características le dan <strong>la</strong> capacidad a los organismos <strong>de</strong> evolución,<br />

reproducción, crecimiento y diferenciación, metabolismo, autorregu<strong>la</strong>ción,<br />

respuesta a estímulos y a cambios a nivel <strong>de</strong> genotipo y fenotipo.<br />

La mayoría <strong>de</strong> <strong>de</strong>finiciones <strong>de</strong> vida son como <strong>la</strong> anterior, una lista <strong>de</strong> propieda<strong>de</strong>s<br />

don<strong>de</strong> se prueban los candidatos <strong>para</strong> ver si exhiben <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> <strong>la</strong> lista.<br />

Sin embargo, no existe un acuerdo <strong>de</strong> cuáles son <strong>la</strong>s propieda<strong>de</strong>s que <strong>de</strong>ben estar<br />

en <strong>la</strong> lista. <strong>Un</strong>a <strong>de</strong>finición más computacional <strong>la</strong> hace Thomas S. Ray tratando <strong>de</strong><br />

evitar pensar en <strong>la</strong> vida basada en el carbono [Ray, 1992; 1995]. Su <strong>de</strong>finición<br />

elimina algunos <strong>de</strong> los características antes mencionadas, limitando <strong>la</strong> <strong>de</strong>finición a<br />

dos <strong>con</strong>ceptos: auto - replicación y evolución abierta. Según Ray, cualquier objeto<br />

vivo <strong>de</strong>be auto - replicarse, y evolucionar a estructuras que no son diseñadas o<br />

46<br />

<strong>Un</strong> proceso o comportamiento que tiene una finalidad <strong>con</strong>creta <strong>de</strong>bida a <strong>la</strong> operación <strong>de</strong> un<br />

programa específico.<br />

38


pre<strong>con</strong>cebidas por un creador. Ray también sugiere que no es necesario que un<br />

objeto vivo exhiba todas <strong>la</strong>s características <strong>de</strong> <strong>la</strong> lista, sino que es más importante<br />

establecer si un objeto vivo presenta una instancia genuina <strong>de</strong> algunas <strong>de</strong> <strong>la</strong>s<br />

características.<br />

No cabe duda <strong>de</strong> que <strong>la</strong> <strong>de</strong>scripción <strong>de</strong> estas propieda<strong>de</strong>s justifica <strong>la</strong> autonomía<br />

<strong>de</strong> <strong>la</strong>s ciencias biológicas, sin embargo esta caracterización refleja <strong>la</strong> i<strong>de</strong>a <strong>de</strong> un<br />

ser vivo, tal como <strong>la</strong> <strong>con</strong>ocemos en nuestro p<strong>la</strong>neta; y no refleja una <strong>de</strong>finición<br />

abstracta que tenga carácter universal 47 . De hecho en <strong>la</strong> lista todas <strong>la</strong>s<br />

características son <strong>con</strong>secuencias y no causas <strong>de</strong> <strong>la</strong> vida. Esta <strong>de</strong>finición <strong>de</strong>scribe<br />

algunas características <strong>de</strong> los seres vivos que <strong>con</strong>ocemos, pero no p<strong>la</strong>ntea <strong>de</strong><br />

forma teórica cuándo y cómo un objeto <strong>de</strong>ja <strong>de</strong> ser inanimado y comienza a tener<br />

vida.<br />

Hay algo que parece ser c<strong>la</strong>ro ante nuestros ojos <strong>con</strong> respecto a <strong>la</strong> vida, y es que<br />

<strong>la</strong> materia viva parece hacer algo diferente. Este comportamiento parece no ser<br />

reducible a <strong>la</strong>s leyes físicas comunes, sino <strong>con</strong>tener nuevas leyes fuera <strong>de</strong> <strong>la</strong> física<br />

común (que l<strong>la</strong>maríamos leyes biológicas). El físico Erwin Schrödinger 48 sugiere<br />

que <strong>la</strong> materia viva tiene <strong>la</strong> capacidad <strong>de</strong> persistencia, es <strong>de</strong>cir, pue<strong>de</strong> permanecer<br />

por <strong>la</strong>rgos períodos <strong>de</strong> tiempo antes <strong>de</strong> <strong>de</strong>caer. Cuando un sistema no – vivo es<br />

colocado en un ambiente ais<strong>la</strong>do y uniforme, todo el movimiento llega a un<br />

equilibrio estable como resultado <strong>de</strong>:<br />

1) Varios tipos <strong>de</strong> fricción.<br />

2) La estabilización <strong>de</strong> <strong>la</strong>s diferencias en los potenciales químicos y físicos.<br />

3) Las sustancia que tien<strong>de</strong>n a formar un compuesto químico.<br />

4) Cuando <strong>la</strong> temperatura se hace uniforme por <strong>con</strong>ducción <strong>de</strong> calor.<br />

5) <strong>Un</strong> estado permanente es alcanzado don<strong>de</strong> no hay eventos observables.<br />

Este punto se <strong>con</strong>oce como el estado <strong>de</strong> equilibrio termodinámico o <strong>de</strong> máxima<br />

entropía 49 . <strong>Un</strong> organismo trata <strong>de</strong> evitar el <strong>de</strong>caimiento tratando <strong>de</strong> procesar <strong>la</strong><br />

entropía negativa 50 <strong>de</strong>l medio, <strong>para</strong> evitar su aumento <strong>de</strong> entropía [Schrödinger,<br />

1944]. <strong>Un</strong> cristal al calentarse aumenta su entropía hasta llegar a un <strong>de</strong>sor<strong>de</strong>n<br />

máximo y per<strong>de</strong>r su estructura perfecta <strong>de</strong> cristal, si el cristal estuviera vivo parte<br />

<strong>de</strong> <strong>la</strong> energía <strong>de</strong>l calor se utilizaría <strong>para</strong> mantener <strong>la</strong> estructura y por tanto evitar<br />

47 Este es un problema semántico <strong>de</strong> ser vivo<br />

48 Premio Nobel <strong>de</strong> física por su trabajo en mecánica ondu<strong>la</strong>toria<br />

49 La ecuación <strong>de</strong> Boltzmann <strong>de</strong> entropía es S=k log D don<strong>de</strong> k es <strong>la</strong> <strong>con</strong>stante <strong>de</strong> Boltzmann<br />

(3.2983 x 10 -24 cal/°C) y D es una medida cuantitativa <strong>de</strong>l <strong>de</strong>sor<strong>de</strong>n atómico <strong>de</strong>l cuerpo en<br />

cuestión. [Shrödinger, 1944]<br />

50 Energía libre. Shrödinger lo l<strong>la</strong>ma entropía negativa dado que si D es una medida <strong>de</strong>l <strong>de</strong>sdoren<br />

entonces 1/D es una medida <strong>de</strong> or<strong>de</strong>n, y el logaritmo <strong>de</strong> 1/D es igual a menos el logaritmo <strong>de</strong> D,<br />

por tanto –S = k log (1/D)<br />

39


su aumento <strong>de</strong> entropía y <strong>de</strong>caimiento. De <strong>la</strong> i<strong>de</strong>a <strong>de</strong> Schrödinger 51 , se<br />

<strong>de</strong>spren<strong>de</strong>n dos elementos importantes: <strong>la</strong> persistencia, es <strong>de</strong>cir, los objetos vivos<br />

tien<strong>de</strong>n a ser persistentes en <strong>con</strong>traste <strong>con</strong> <strong>la</strong> materia inerte; y en segundo lugar,<br />

un objeto vivo es un sistema que busca minimizar su entropía (auto - organizarse)<br />

utilizando energía <strong>de</strong>l medio.<br />

La i<strong>de</strong>a <strong>de</strong> Schrödinger fue <strong>de</strong>sarrol<strong>la</strong>da <strong>de</strong> forma simi<strong>la</strong>r a nivel <strong>de</strong> pob<strong>la</strong>ciones<br />

varios años antes por A.J. Lotka en 1925. Según Lotka, basado en los principios<br />

<strong>de</strong> termodinámica, <strong>la</strong>s leyes que gobiernan los cambios <strong>de</strong> energía, son los<br />

mismos que <strong>de</strong>terminan el estado <strong>de</strong> <strong>la</strong> materia viva y que <strong>de</strong>terminan su<br />

evolución [Maurer, 1987]. El <strong>de</strong>finió <strong>la</strong> evolución como <strong>la</strong> historia <strong>de</strong> un sistema<br />

físico que sufre cambios irreversibles en <strong>la</strong> distribución <strong>de</strong> materia entre sus<br />

componentes <strong>de</strong> acuerdo <strong>con</strong> lo que l<strong>la</strong>mó “Persistencia <strong>de</strong> formas estables”. La<br />

i<strong>de</strong>a <strong>de</strong> Lotka se centraba en los procesos energéticos que ocurren en los<br />

sistemas biológicos (<strong>con</strong> <strong>la</strong> pob<strong>la</strong>ción como el eje) don<strong>de</strong> estableció tres<br />

propieda<strong>de</strong>s importantes : a) La energía se pier<strong>de</strong> <strong>de</strong>bido a los cambios en <strong>la</strong><br />

distribución <strong>de</strong> <strong>la</strong> materia, b) La energía es necesaria <strong>para</strong> mantener un estado<br />

estable (homeostasis 52 ) y c) Los cambios <strong>de</strong> energía que ocurren <strong>para</strong> el<br />

mantenimiento son el resultado <strong>de</strong> cambios en <strong>la</strong> distribución <strong>de</strong> materia en el<br />

sistema. En resumen, <strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista <strong>de</strong> Lotka, un sistema biológico<br />

utiliza energía <strong>para</strong> optimizar su persistencia en el medio, pero <strong>de</strong>bido a <strong>la</strong> 2 ley <strong>de</strong><br />

<strong>la</strong> termodinámica 53 , cualquier cambio <strong>de</strong> energía <strong>de</strong>be estar acompañado por una<br />

pérdida <strong>de</strong> energía en el sistema; por tanto <strong>la</strong> persistencia <strong>de</strong> un sistema biológico<br />

<strong>de</strong>pen<strong>de</strong> <strong>de</strong>l ba<strong>la</strong>nce entre su habilidad <strong>de</strong> usar energía eficientemente <strong>para</strong><br />

mantenimiento y su pérdida <strong>de</strong> energía durante transformaciones inevitables <strong>de</strong><br />

materia que ocurren a lo <strong>la</strong>rgo <strong>de</strong>l tiempo. Algunos trabajos posteriores sugieren<br />

que <strong>la</strong> evolución es una <strong>con</strong>secuencia directa <strong>de</strong> <strong>la</strong> segunda ley <strong>de</strong> <strong>la</strong><br />

termodinámica. Dado que cualquier sistema físico tiene propieda<strong>de</strong>s<br />

termodinámicas, los sistemas biológicos como nucleótidos 54 , molécu<strong>la</strong>s <strong>de</strong> ADN,<br />

célu<strong>la</strong>s, organismos, pob<strong>la</strong>ciones y ecosistemas pue<strong>de</strong>n ser estudiados<br />

termodinámicamente [Jordan, 1990]. Sin embargo se ha cuestionado esta i<strong>de</strong>a,<br />

dado que <strong>la</strong> fórmu<strong>la</strong> <strong>de</strong> Boltzman <strong>de</strong> entropía, aplica so<strong>la</strong>mente a sistemas<br />

ais<strong>la</strong>dos <strong>con</strong> energía interna fija. Esta <strong>con</strong>dición no es cumplida por los sistemas<br />

naturales que son disipativos 55 . Mientras que el equilibrio <strong>de</strong> un sistema ais<strong>la</strong>do<br />

se caracteriza por su máxima entropía, el l<strong>la</strong>mado estado – estable <strong>de</strong> un sistema<br />

dinámico abierto se caracteriza por una entropía mínima [Berry, 1995].<br />

51<br />

El ensayo <strong>de</strong> Shrödinger, incluyen otros aspectos como <strong>la</strong> <strong>de</strong>finición <strong>de</strong> genes como cristales<br />

aperiódicos, el código genético como “co<strong>de</strong> script” , <strong>de</strong> <strong>la</strong> estabilidad <strong>de</strong> los genes, <strong>la</strong>s mutaciones,<br />

y algunos aspectos, etc. <strong>de</strong> los cuales no nos referiremos en este trabajo.<br />

52<br />

Ten<strong>de</strong>ncia <strong>de</strong> los sistemas biológicos a resistir cambios y permanecer en estado <strong>de</strong> equilibrio<br />

dinámico.<br />

53<br />

La 2da ley <strong>de</strong> termodinámica (expresión <strong>de</strong> entropía) establece que en cualquier proceso, <strong>la</strong><br />

energía <strong>de</strong>l universo o aumenta (si el proceso es irreversible) o permanece <strong>con</strong>stante si el proceso<br />

es reversible)<br />

54<br />

Componentes estructurales <strong>de</strong>l ADN.<br />

55<br />

La energía y materiales se disipan por interacción <strong>con</strong> otros sistemas<br />

40


Wesley [Rietman, 1993; Wesley, 1974], tratando <strong>de</strong> cuantificar e incorporar<br />

<strong>con</strong>ceptos físicos a <strong>la</strong> <strong>de</strong>finición <strong>de</strong> vida, establecen que <strong>la</strong> vida es una cantidad<br />

<strong>de</strong>scrita por <strong>la</strong> siguiente función:<br />

⎛ S<br />

L = ⎜<br />

⎜1<br />

−<br />

⎝ S<br />

<strong>la</strong> vida L toma en cuenta <strong>la</strong> entropía S, y <strong>la</strong> re<strong>la</strong>ción <strong>de</strong>l flujo <strong>de</strong> energía R y <strong>la</strong> masa<br />

M. S i es <strong>la</strong> entropía <strong>de</strong> los átomos <strong>de</strong>l organismo en cuestión y S 0 es <strong>la</strong> entropía<br />

<strong>de</strong>l mismo tipo y cantidad <strong>de</strong> átomos en una <strong>con</strong>figuración <strong>de</strong> mínima entropía.<br />

Esta <strong>de</strong>finición es interesante y <strong>con</strong>si<strong>de</strong>ra dos aspectos fundamentales en los<br />

organismos vivos: flujo <strong>de</strong> energía y organización (medido como <strong>la</strong> entropía).<br />

<strong>Un</strong>a nueva rama <strong>de</strong> <strong>la</strong> biología que ha surgido trata <strong>de</strong> enten<strong>de</strong>r los sistemas<br />

biológicos como sistemas complejos adaptativos. Según estas i<strong>de</strong>as, un sistema<br />

complejo adaptativo posee <strong>la</strong>s siguientes características [Brown, 1995; Burian,<br />

1990; Kauffman 1987]:<br />

1) Sus componentes son muchos y <strong>de</strong> diferentes tipos.<br />

2) Los componentes interactúan <strong>de</strong> manera no-lineal y en diferentes esca<strong>la</strong>s <strong>de</strong><br />

tiempo y espacio.<br />

3) Los sistemas se organizan <strong>para</strong> formar diferentes estructuras y<br />

comportamientos complejos.<br />

4) Los sistemas mantienen estados termodinámicos poco comunes por<br />

intercambio <strong>de</strong> energía y materiales a través <strong>de</strong> sus membranas <strong>con</strong><br />

permaeabilidad diferencial 56 .<br />

5) Alguna forma <strong>de</strong> información heredable permite <strong>la</strong> respuesta adaptativa a los<br />

cambios en el medio.<br />

6) Dado que <strong>la</strong> magnitud y dirección <strong>de</strong> los cambios están afectados por<br />

<strong>con</strong>diciones preexistentes <strong>la</strong> dinámica y estructura <strong>de</strong> estos sistemas es<br />

irreversible.<br />

Ejemplos <strong>de</strong> sistemas que correspon<strong>de</strong>n a estas propieda<strong>de</strong>s son el cerebro<br />

humano, ciuda<strong>de</strong>s, programas <strong>de</strong> computadora, etc. Estas propieda<strong>de</strong>s son<br />

interesantes y aplican a un sistemas biológico en cualquier nivel estructural o <strong>de</strong><br />

organización.<br />

56<br />

Permeabilidad diferencial significa que el intercambio se da entre materiales específicos y no<br />

todo los materiales <strong>de</strong>l medio.<br />

41<br />

i<br />

0<br />

⎞<br />

⎟<br />

⎠<br />

R<br />

M


3.3 Concepto <strong>de</strong> Entidad biológica<br />

¿Es posible <strong>con</strong>struir un <strong>con</strong>cepto <strong>de</strong> vida universal?. Ciertamente es algo difícil<br />

que <strong>de</strong>be ir más allá <strong>de</strong> sólo un <strong>con</strong>cepto. En esta tesis se propone que una teoría<br />

biológica es universal, <strong>de</strong>be ser válida en un dominio que abarque todos los<br />

niveles estructurales <strong>de</strong> <strong>la</strong>s ciencias biológicas, es <strong>de</strong>cir: a nivel molecu<strong>la</strong>r,<br />

organísmico, pob<strong>la</strong>cional y <strong>de</strong> ecosistema. El <strong>con</strong>cepto <strong>de</strong> objeto vivo <strong>de</strong>bería ser<br />

aplicable a cualquier nivel estructural, es <strong>de</strong>cir, está vivo tanto el organismo, <strong>la</strong><br />

pob<strong>la</strong>ción y el ecosistema; a esta i<strong>de</strong>a <strong>la</strong> l<strong>la</strong>maremos entidad biológica. Tratando<br />

<strong>de</strong> <strong>con</strong>struir una <strong>de</strong>finición <strong>de</strong> entidad biológica <strong>de</strong> carácter universal,<br />

<strong>con</strong>si<strong>de</strong>raremos varios aspectos fundamentales <strong>de</strong> los sistemas biológicos<br />

ampliamente re<strong>con</strong>ocidos y estudiados:<br />

Persistencia: Quizá una <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s fundamentales principales <strong>de</strong> los<br />

sistemas biológicos es <strong>la</strong> persistencia. Esta persistencia se i<strong>de</strong>ntifica en cada uno<br />

<strong>de</strong> los niveles estructurales don<strong>de</strong> el sistema persiste a pesar <strong>de</strong> que se<br />

sacrifiquen componentes [Reichle, 1980]. El organismo unicelu<strong>la</strong>r persiste<br />

aunque se sacrifiquen compuestos químicos, el organismo multicelu<strong>la</strong>r persiste<br />

aunque se sacrifiquen célu<strong>la</strong>s individuales; <strong>la</strong> pob<strong>la</strong>ción se extien<strong>de</strong> aunque<br />

perezcan algunos <strong>de</strong> sus individuos y el ecosistema aunque haya cambios en <strong>la</strong>s<br />

pob<strong>la</strong>ciones que lo componen.<br />

Información: Otro aspecto fundamental es el procesamiento <strong>de</strong> información. Si <strong>la</strong><br />

herencia 57 es posible, entonces cada procesamiento <strong>de</strong> energía <strong>para</strong> <strong>con</strong>strucción<br />

<strong>de</strong>be estar <strong>con</strong>tenido como un algoritmo en algún tipo <strong>de</strong> estructura. Esta<br />

estructura <strong>con</strong>tiene <strong>la</strong> información que es interpretada <strong>para</strong> <strong>con</strong>struir y que<br />

a<strong>de</strong>más es copiada en el caso <strong>de</strong> <strong>la</strong> reproducción. Con el <strong>de</strong>scubrimiento <strong>de</strong> <strong>la</strong><br />

base molecu<strong>la</strong>r 58 <strong>de</strong> <strong>la</strong> herencia en 1950, <strong>la</strong> biología reduccionista sugiere que <strong>la</strong><br />

causa <strong>de</strong> los fenómenos biológicos es <strong>la</strong> información genética estructurada en un<br />

<strong>con</strong>junto <strong>de</strong> registros or<strong>de</strong>nados <strong>de</strong> naturaleza <strong>con</strong>servativa [Moreno, 1994].<br />

Nuestra i<strong>de</strong>a <strong>de</strong> información <strong>de</strong>be ir más allá <strong>de</strong> <strong>la</strong> información genética, es <strong>de</strong>cir,<br />

tanto <strong>la</strong> pob<strong>la</strong>ción como el ecosistema <strong>con</strong>tienen estructuras <strong>de</strong> información.<br />

Estos niveles <strong>de</strong> organización, no son abstracciones, sino entida<strong>de</strong>s reales y<br />

mantienen sus propieda<strong>de</strong>s c<strong>la</strong>ves (individualidad, heredabilidad, reproducción).<br />

<strong>Un</strong>a pob<strong>la</strong>ción <strong>con</strong>tiene información en <strong>la</strong> distribución y estado interno <strong>de</strong> cada<br />

uno <strong>de</strong> sus individuos, el ecosistema <strong>con</strong>tiene información en el estado y<br />

<strong>con</strong>figuración <strong>de</strong> <strong>la</strong>s pob<strong>la</strong>ciones que lo forman. Esta información es interpretada<br />

cuando <strong>la</strong> pob<strong>la</strong>ción o el ecosistema interactúa y es copiada cuando los individuos<br />

se reproducen y cuando <strong>la</strong>s pob<strong>la</strong>ciones se extien<strong>de</strong>n y colonizan otros territorios.<br />

Energía: Los sistemas biológicos son unida<strong>de</strong>s procesadoras <strong>de</strong> energía [Reichle,<br />

1980]. El procesamiento <strong>de</strong> energía esta regu<strong>la</strong>do por <strong>la</strong> disponibilidad <strong>de</strong><br />

57 Herencia es <strong>la</strong> transmisión <strong>de</strong> información genética <strong>de</strong> una generación a otra.<br />

58 ADN<br />

42


componentes estructurales y un sustrato estable 59 . En los sistemas biológicos, a<br />

diferencia <strong>de</strong> <strong>la</strong> materia inerte, <strong>la</strong> sustancia que trabaja (componentes<br />

estructurales y <strong>de</strong> información) es a <strong>la</strong> vez fuente <strong>de</strong> energía <strong>para</strong> sus propias<br />

transformaciones [Ryszkowski, 1980]; por ejemplo, en una pob<strong>la</strong>ción <strong>con</strong>stituida<br />

por individuos <strong>de</strong> una especie, cada individuo procesa energía y <strong>la</strong> transforma en<br />

materia <strong>para</strong> mantenimiento (auto-<strong>con</strong>strucción) o reproducción (auto-replicación).<br />

Esta materia fijada es a su vez fuente <strong>de</strong> energía <strong>para</strong> otras pob<strong>la</strong>ciones <strong>de</strong>ntro<br />

<strong>de</strong>l mismo sistema.<br />

Propieda<strong>de</strong>s Emergentes: La i<strong>de</strong>a <strong>de</strong> propieda<strong>de</strong>s emergentes, es un <strong>con</strong>cepto<br />

aceptado en <strong>la</strong>s ciencias biológicas. Jacob [Jacob, 1973] <strong>de</strong>scribe <strong>la</strong> emergencia<br />

<strong>de</strong> <strong>la</strong> siguiente manera: “en cada nivel, <strong>la</strong>s unida<strong>de</strong>s <strong>de</strong> tamaño bien <strong>de</strong>finido y<br />

<strong>con</strong> estructura casi idéntica se asocian <strong>para</strong> formar una unidad <strong>de</strong> nivel superior.<br />

Cada una <strong>de</strong> estas unida<strong>de</strong>s está formada por <strong>la</strong> integración <strong>de</strong> sub-unida<strong>de</strong>s alos<br />

que se les l<strong>la</strong>ma ‘integrón’. <strong>Un</strong> integrón está formado por un ensamb<strong>la</strong>je <strong>de</strong><br />

integrones <strong>de</strong> nivel inferior y forma parte en <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> integrones <strong>de</strong> nivel<br />

superior”. Se supone que cada integrón adquiere nuevas categorías particu<strong>la</strong>res<br />

producto <strong>de</strong> <strong>la</strong> organización <strong>de</strong> integrones inferiores. Utilizaremos este mismo<br />

<strong>con</strong>cepto recursivo sobre nuestra <strong>de</strong>finición <strong>de</strong> entida<strong>de</strong>s biológicas.<br />

La i<strong>de</strong>a <strong>de</strong> propieda<strong>de</strong>s emergentes fue <strong>con</strong>si<strong>de</strong>rada en un principio como un<br />

<strong>con</strong>cepto <strong>de</strong> carácter metafísico. Sin embargo, <strong>con</strong> el <strong>de</strong>sarrollo <strong>de</strong> <strong>la</strong> teoría <strong>de</strong>l<br />

caos, <strong>la</strong>s propieda<strong>de</strong>s emergentes son aceptadas como <strong>con</strong>cepto científico. H.<br />

Pattee [Patte, 1989], propone tres niveles <strong>de</strong> emergencia en un sistema complejo:<br />

emergencia sintáctica, emergencia semántica y emergencia <strong>de</strong> medidas. En el<br />

primer caso, producto <strong>de</strong> <strong>la</strong> interacción <strong>de</strong> sistemas complejos se producen<br />

estructuras <strong>con</strong> <strong>con</strong>tenido estable <strong>de</strong> información; <strong>la</strong> emergencia semántica surge<br />

cuando <strong>la</strong>s estructuras tiene un sentido funcional <strong>de</strong>ntro <strong>de</strong> un <strong>con</strong>texto. El último<br />

nivel <strong>de</strong> emergencia correspon<strong>de</strong> al funcionamiento <strong>de</strong>l sistema como una unidad,<br />

y por tanto su comportamiento global es medible.<br />

Estos elementos son suficientes <strong>para</strong> formu<strong>la</strong>r nuestra siguiente <strong>de</strong>finición <strong>de</strong><br />

carácter universal sobre los sistemas biológicos:<br />

Entidad Biológica (EB): <strong>Un</strong>a Entidad Biológica es una entidad persistente en<br />

espacio y tiempo, que <strong>con</strong>tiene información <strong>para</strong> <strong>con</strong>struirse a sí misma utilizando<br />

componentes estructurales <strong>de</strong> un medio o sustrato, mediante procesos<br />

energéticos (internos o externos). Los componentes estructurales pue<strong>de</strong>n ser<br />

cualquier estructura estable o entidad biológica.<br />

Esta <strong>de</strong>finición no requiere <strong>de</strong> una realización física especial, es <strong>de</strong>cir, tanto<br />

soporta <strong>la</strong> i<strong>de</strong>a <strong>de</strong> organismos basados en carbono como los informáticos (vida<br />

artificial) u otro tipo <strong>de</strong> forma <strong>de</strong> vida.<br />

59 En el caso <strong>de</strong> <strong>la</strong> Tierra, <strong>la</strong> energía primaria es <strong>la</strong> que proviene <strong>de</strong>l sol, y <strong>la</strong> disponibilidad <strong>de</strong><br />

nutrientes esenciales, agua y <strong>la</strong> variabilidad climática limitan a los sistemas biológicos.<br />

43


A partir <strong>de</strong> <strong>la</strong> <strong>de</strong>finición formu<strong>la</strong>mos <strong>la</strong> siguiente proposición sobre los niveles<br />

estructurales.<br />

Proposición 1 : Los individuos, pob<strong>la</strong>ciones y ecosistemas son entida<strong>de</strong>s<br />

biológicas.<br />

Así por ejemplo, un individuo es una entidad biológica formado por célu<strong>la</strong>s que son<br />

entida<strong>de</strong>s biológicas y estos a su vez por molécu<strong>la</strong>s que son entida<strong>de</strong>s biológicas.<br />

Es <strong>de</strong>cir cualquier entidad biológica pue<strong>de</strong> funcionar como entidad biológica<br />

autónoma o como parte estructural <strong>de</strong> otra entidad biológica. Por ejemplo una<br />

célu<strong>la</strong> pue<strong>de</strong> funcionar como componente <strong>de</strong> un individuo multicelu<strong>la</strong>r o como un<br />

individuo <strong>de</strong>ntro <strong>de</strong> una pob<strong>la</strong>ción unicelu<strong>la</strong>r.<br />

Proposición 2 : Toda ley biológica, será aplicable a una entidad biológica, es <strong>de</strong>cir,<br />

a cualquier organismo, pob<strong>la</strong>ción y ecosistema.<br />

Proposición 3 : <strong>Un</strong>a entidad biológica está gobernada por principios biológicos<br />

fundamentales. Muchos <strong>de</strong> estos principios han sido formu<strong>la</strong>dos <strong>de</strong> manera<br />

formal o empírica y son parte <strong>de</strong>l <strong>con</strong>ocimiento común en <strong>la</strong>s ciencias biológicas.<br />

3.4 En busca <strong>de</strong> principios fundamentales en entida<strong>de</strong>s biológicas<br />

Toda entidad biológica cumple <strong>con</strong> los siguientes principios, que <strong>de</strong>nominaremos<br />

principios fundamentales <strong>de</strong> <strong>la</strong> biología:<br />

Principio <strong>de</strong> Emergencia (Organización): Toda entidad biológica es un sistema<br />

organizado estructural y funcionalmente, y representa una unidad. Esta<br />

organización surge como propieda<strong>de</strong>s emergentes. Es <strong>de</strong>cir <strong>la</strong> entidad biológica<br />

tiene una estructura persistente don<strong>de</strong> se encuentran <strong>la</strong>s “reg<strong>la</strong>s” <strong>de</strong> su<br />

funcionamiento. A su vez cada EB interactúa en un medio don<strong>de</strong> sus estructuras<br />

tiene un sentido funcional. Finalmente una entidad biológica es una unidad, sus<br />

bor<strong>de</strong>s pue<strong>de</strong>n ser <strong>con</strong>tinuos o dis<strong>con</strong>tinuos. Así una entidad biológica es una<br />

unidad que se encuentra <strong>con</strong>finada a un espacio (<strong>con</strong> bor<strong>de</strong> o no) y tiempo<br />

<strong>con</strong>stituido por unida<strong>de</strong>s organizadas estructural y funcionalmente<br />

Principio <strong>de</strong> auto – replicabilidad (Reproducción): Cualquier objeto capaz <strong>de</strong><br />

<strong>con</strong>struirse a sí mismo, es capaz <strong>de</strong> crear copias iguales en el espacio. La<br />

replicación es una característica necesaria <strong>para</strong> que <strong>la</strong> selección pueda operar<br />

[Eigen, 1981]<br />

Principio <strong>de</strong> Imprecisión (ruido o aleatoriedad): Dado que los componentes<br />

estructurales <strong>de</strong> cualquier entidad biológica son <strong>de</strong> naturaleza imprecisa, toda<br />

entidad biológica tendrá comportamientos imprecisos. <strong>Un</strong> componente es<br />

impreciso cuando cualquiera que sea su función como componente estructural en<br />

una entidad biológica, falle <strong>con</strong> una probabilidad in<strong>de</strong>pendiente al objeto <strong>de</strong>l que<br />

44


forma parte. Esta imprecisión es <strong>la</strong> que ha permitido <strong>la</strong> producción <strong>de</strong> variantes en<br />

<strong>la</strong>s entida<strong>de</strong>s vivas que son posteriormente seleccionadas por evolución.<br />

Principio <strong>de</strong> Evolvabilidad (Evolución - Darwin): Cualquier entidad biológica capaz<br />

<strong>de</strong> <strong>con</strong>struirse a sí misma y por tanto <strong>de</strong> auto – replicación (principio <strong>de</strong> auto –<br />

replicabilidad), tendrá mayor persistencia en espacio y tiempo, si su<br />

funcionamiento impreciso permite <strong>la</strong> producción <strong>de</strong> nuevas variantes que sean<br />

favorecidas por <strong>la</strong>s presiones <strong>de</strong>l medio (evolución por selección natural). La<br />

evolución por selección natural es un proceso que ocurre en un medio físico [Ray,<br />

1995]. Mediante <strong>la</strong> selección en grupos <strong>de</strong> entida<strong>de</strong>s biológicas <strong>la</strong> evolución<br />

explora <strong>la</strong>s posibilida<strong>de</strong>s que pue<strong>de</strong>n ocurrir en un sustrato o medio <strong>con</strong><br />

propieda<strong>de</strong>s físicas <strong>de</strong>terminadas.<br />

Principio <strong>de</strong> espacio-tiempo y energía (nicho fundamental - McArtur): Toda entidad<br />

biológica ocurre en un espacio y tiempo en un medio <strong>con</strong> energía libre. En este<br />

espacio, una entidad biológica requiere <strong>de</strong> un <strong>con</strong>junto <strong>de</strong> <strong>con</strong>diciones <strong>de</strong>l medio<br />

<strong>para</strong> persistir, este <strong>con</strong>junto <strong>de</strong> <strong>con</strong>diciones se <strong>de</strong>nomina nicho fundamental. Se<br />

pue<strong>de</strong> pensar en el nicho N como un espacio n – dimensional. Si B es un medio 60<br />

y p(N) es un punto en N, entonces <strong>para</strong> una entidad biológica cada punto pi(B)<br />

correspon<strong>de</strong> a un punto en N, es <strong>de</strong>cir, cada punto <strong>de</strong>l N tiene una realización en<br />

B. [Hutchinson, 1957]. Es fácil pensar esto <strong>para</strong> cada nivel estructural. <strong>Un</strong><br />

individuo ocupa un espacio y requiere <strong>de</strong> ciertas <strong>con</strong>diciones <strong>de</strong>l medio p.e.<br />

recursos alimenticios, refugio, reproducción, etc. Del mismo modo una pob<strong>la</strong>ción<br />

como <strong>con</strong>junto requiere ciertas <strong>con</strong>diciones <strong>de</strong>l medio como topografía, otras<br />

pob<strong>la</strong>ciones, etc.<br />

Principio <strong>de</strong> competitividad (exclusión competitiva - Gauss-Volterra): Cuando <strong>la</strong><br />

intersección <strong>de</strong> nichos entre dos entida<strong>de</strong>s biológicas ocurre, estas compiten 61 .<br />

Producto <strong>de</strong> <strong>la</strong> competencia los nichos se ven modificados y ambas entida<strong>de</strong>s<br />

pue<strong>de</strong>n coexistir o una <strong>de</strong> el<strong>la</strong>s será <strong>de</strong>sp<strong>la</strong>zada.<br />

Estos principios operan sobre entida<strong>de</strong>s biológicas y son los responsables <strong>de</strong> <strong>la</strong><br />

dinámica <strong>de</strong> los sistemas biológicos. Todos estos principios han sido <strong>de</strong>scritos a<br />

nivel <strong>de</strong> individuo (<strong>con</strong> excepción <strong>de</strong> los dos primeros) y nuestra intención es<br />

exten<strong>de</strong>r los principios a cualquier nivel <strong>de</strong> organización. Así por ejemplo <strong>la</strong><br />

selección <strong>de</strong> grupos, <strong>la</strong> evolución <strong>de</strong> linajes ventajosos a nivel <strong>de</strong> grupo y que<br />

pudieran ser <strong>de</strong>sventajosas a nivel <strong>de</strong> individuo [May, 1975], sería posible no sólo<br />

a nivel <strong>de</strong> pob<strong>la</strong>ción sino también a nivel <strong>de</strong> ecosistema.<br />

60<br />

Biotopo, es <strong>de</strong>cir, una región <strong>con</strong> <strong>con</strong>diciones re<strong>la</strong>tivamente uniformes que permite el<br />

establecimiento <strong>de</strong> comunida<strong>de</strong>s biológicas.<br />

61<br />

Tratan <strong>de</strong> <strong>de</strong>sp<strong>la</strong>zar a <strong>la</strong> otra entidad.<br />

45


3.5 Entida<strong>de</strong>s biológicas artificiales: Vida Artificial<br />

El estudio <strong>de</strong> sistemas biológicos mediante el uso <strong>de</strong> <strong>con</strong>ceptos informacionales y<br />

el mo<strong>de</strong><strong>la</strong>je computacional se <strong>de</strong>nomina Vida Artificial [Bo<strong>de</strong>n, 1996]. Según<br />

Langton [Langton, 1989], <strong>la</strong> vida artificial es un enfoque sintético, en <strong>con</strong>traste al<br />

enfoque analítico <strong>de</strong> los estudios biológicos en general. Las investigaciones en<br />

vida artificial (VA), permiten crear ambientes artificiales <strong>con</strong>tro<strong>la</strong>dos, <strong>de</strong><br />

complejidad in<strong>de</strong>finida [Dennett, 1996].<br />

Según Elliot Sober [Sober, 1992], al igual que en inteligencia artificial, existen dos<br />

corrientes en el estudio <strong>de</strong> <strong>la</strong> vida artificial:<br />

Vida Artificial Débil VAD (Simu<strong>la</strong>ciones): La intención <strong>de</strong> <strong>la</strong> investigación es<br />

resolver problemas <strong>de</strong> <strong>la</strong> biología teórica mediante el uso <strong>de</strong> computadoras, dado<br />

que <strong>la</strong> solución matemática analítica es intratable. La intención no es <strong>la</strong><br />

<strong>con</strong>strucción <strong>de</strong> entida<strong>de</strong>s biológicas autónomas y persistentes, sino <strong>la</strong><br />

<strong>con</strong>strucción <strong>de</strong> mo<strong>de</strong>los <strong>de</strong> dinámica que integren a entida<strong>de</strong>s biológicas y que<br />

<strong>de</strong>scriban su comportamiento. Dada <strong>la</strong> irreducibilidad <strong>de</strong> los sistemas complejos,<br />

<strong>la</strong> VAD trata <strong>de</strong> resolver mediante simu<strong>la</strong>ciones, el comportamiento <strong>de</strong> <strong>la</strong>s<br />

entida<strong>de</strong>s biológicas. En este sentido <strong>la</strong> computadora es so<strong>la</strong>mente un medio<br />

<strong>para</strong> <strong>la</strong> experimentación <strong>con</strong> entida<strong>de</strong>s biológicas. Por ejemplo, los algoritmos<br />

genéticos, se utilizan <strong>para</strong> resolver problemas <strong>de</strong> optimización utilizando una<br />

analogía <strong>con</strong> el proceso biológico <strong>de</strong> selección.<br />

Vida Artificial Fuerte VAF: Estudia <strong>la</strong> posibilidad <strong>de</strong> vida en una computadora. La<br />

computadora se <strong>con</strong>vierte en el medio <strong>de</strong> realización <strong>de</strong> <strong>la</strong> vida. <strong>Un</strong> ejemplo es el<br />

sistema Terra <strong>de</strong> Thomas Ray [Ray, 1992], don<strong>de</strong> el computador se transforma en<br />

un medio energético <strong>para</strong> el <strong>de</strong>sarrollo <strong>de</strong> pob<strong>la</strong>ciones <strong>de</strong> seres artificiales.<br />

La vida artificial, en cualquiera <strong>de</strong> sus dos programas <strong>de</strong> investigación, trata <strong>con</strong> <strong>la</strong><br />

<strong>con</strong>strucción <strong>de</strong> entida<strong>de</strong>s biológicas artificiales. Los AC son un medio don<strong>de</strong> se<br />

pue<strong>de</strong>n <strong>con</strong>struir mo<strong>de</strong>los en ambas líneas. El trabajo <strong>de</strong> von Neumann era<br />

producir vida en el computador, mientras que los trabajos <strong>de</strong> Wolfram ven a los AC<br />

como herramienta <strong>de</strong> estudio <strong>de</strong> <strong>la</strong> dinámica compleja <strong>de</strong> cualquier sistema físico<br />

o biológico.<br />

3.6 Dinámica biológica, sistemas <strong>de</strong> ecuaciones diferenciales y autómatas<br />

celu<strong>la</strong>res<br />

Es aparente que muchas <strong>de</strong> <strong>la</strong>s leyes <strong>de</strong> <strong>la</strong> física que se <strong>con</strong>ocen actualmente se<br />

re<strong>la</strong>cionan <strong>con</strong> fenómenos comunes. Sin embargo hay muchos sistemas<br />

naturales cuya estructura compleja y comportamiento han <strong>de</strong>safiado cualquier<br />

análisis, incluso cualitativo. En algunos casos este comportamiento complejo<br />

pue<strong>de</strong> ser simu<strong>la</strong>do numéricamente <strong>con</strong> sólo algunos pocos componentes, pero<br />

en <strong>la</strong> mayoría <strong>de</strong> los casos involucra muchos componentes y un enfoque directo<br />

46


fal<strong>la</strong> [Wolfram, 1983b]. Los sistemas biológicos son sistemas complejos 62 cuya<br />

experimentación en <strong>con</strong>diciones naturales es prácticamente imposible. Los<br />

métodos tradicionales <strong>para</strong> mo<strong>de</strong><strong>la</strong>r sistemas biológicos complejos, involucran<br />

sistemas <strong>de</strong> ecuaciones diferenciales, sin embargo esto presenta ciertas<br />

limitaciones. Por ejemplo, en muchos mo<strong>de</strong>los (como el mapa logístico <strong>de</strong><br />

crecimiento <strong>de</strong> pob<strong>la</strong>ciones 63 ) es común hab<strong>la</strong>r <strong>de</strong> <strong>la</strong> <strong>de</strong>rivada <strong>de</strong> una variable <strong>con</strong><br />

respecto al tamaño <strong>de</strong> <strong>la</strong> pob<strong>la</strong>ción N, eliminando el efecto existente en<br />

pob<strong>la</strong>ciones pequeñas y en don<strong>de</strong> <strong>la</strong> actividad individual no cuenta. Otra dificultad<br />

radica en <strong>la</strong> complejidad <strong>de</strong> soluciones numéricas o analíticas <strong>de</strong> tales sistemas <strong>de</strong><br />

ecuaciones, cuando <strong>la</strong> cantidad <strong>de</strong> variables involucradas es alta [Taylor, 1997].<br />

La base matemática <strong>para</strong> <strong>la</strong> mayoría <strong>de</strong> fenómenos naturales es <strong>la</strong> ecuación<br />

diferencial. Este tipo <strong>de</strong> ecuación permite establecer <strong>la</strong>s re<strong>la</strong>ciones entre algunas<br />

cantida<strong>de</strong>s y su re<strong>la</strong>ción <strong>de</strong> cambio [Wolfram, 1984c]. La investigación <strong>de</strong> <strong>la</strong><br />

dinámica biológica necesita utilizar estos mo<strong>de</strong>los <strong>para</strong> po<strong>de</strong>r estudiar <strong>la</strong>s<br />

interacciones múltiples <strong>de</strong> un amplio grupo <strong>de</strong> organismos y fenómenos [Jeffers,<br />

1991]. Las entida<strong>de</strong>s biológicas ocurren en un espacio y tiempo, y su dinámica<br />

<strong>de</strong>scribe un cambio <strong>con</strong>tinuo en el tiempo. Este cambio es no – lineal 64 y en su<br />

forma más simple pue<strong>de</strong> ser <strong>de</strong>scrito por una ecuación diferencial ordinaria 65<br />

(EDO). Otra <strong>de</strong> <strong>la</strong>s herramientas principales <strong>para</strong> el estudio <strong>de</strong> los procesos<br />

espacio temporales <strong>de</strong> los sistemas biológicos son <strong>la</strong>s ecuaciones diferenciales<br />

parciales (EDP). Las EDP son ventajosas porque pue<strong>de</strong>n incorporar procesos<br />

temporales y espaciales al mismo tiempo, <strong>para</strong> que <strong>la</strong>s ecuaciones <strong>de</strong>scriban <strong>la</strong><br />

dinámica global <strong>de</strong>l sistema [Holmes, 1994]. A pesar <strong>de</strong> que <strong>la</strong>s EDP son bastante<br />

efectivas en mo<strong>de</strong><strong>la</strong>r <strong>la</strong> realidad, son más difíciles <strong>de</strong> resolver que <strong>la</strong>s ecuaciones<br />

diferenciales ordinarias.<br />

<strong>Un</strong>a <strong>de</strong> <strong>la</strong>s EDO más utilizadas en <strong>la</strong> biología <strong>para</strong> <strong>de</strong>scribir <strong>la</strong> dinámica <strong>de</strong><br />

crecimiento <strong>de</strong> cualquier sistemas biológico, es <strong>la</strong> ecuación logística <strong>de</strong><br />

crecimiento:<br />

dN<br />

dt<br />

⎛ N ⎞<br />

= rN⎜1<br />

− ⎟<br />

⎝ K ⎠<br />

62 <strong>Un</strong> objeto físico es complejo, si <strong>con</strong>tiene información difícil <strong>de</strong> obtener, es <strong>de</strong>cir, <strong>para</strong> caracterizar<br />

el objeto son necesarios un número gran<strong>de</strong> <strong>de</strong> parámetros [Ruelle, 1991]. En términos <strong>de</strong><br />

dinámica <strong>de</strong> sistemas, un sistema es complejo si presenta comportamiento no lineal, gran<br />

retroalimentación y dis<strong>con</strong>tinuidad [Jeffers,1991].<br />

dN =<br />

dt<br />

, N es el tamaño <strong>de</strong> <strong>la</strong> pob<strong>la</strong>ción y r <strong>la</strong> razón <strong>de</strong> crecimiento.<br />

( n)<br />

y = f ( x,<br />

y,<br />

y′<br />

,<br />

( n−1)<br />

, y es lineal cuando<br />

y , y′<br />

,<br />

( n−1)<br />

, y . Es <strong>de</strong>cir <strong>la</strong> variable <strong>de</strong>pendiente y y sus <strong>de</strong>rivadas<br />

63 rN<br />

64 Se dice que una ecuación diferencial <strong>de</strong> <strong>la</strong> forma )<br />

f es una función lineal <strong>de</strong><br />

siempre son <strong>de</strong> primer grado, y cada coeficiente sólo <strong>de</strong>pen<strong>de</strong> <strong>de</strong> x. De lo <strong>con</strong>trario no es lineal.<br />

65<br />

<strong>Un</strong>a ecuación diferencial ordinaria, es una ecuación que involucra <strong>la</strong>s <strong>de</strong>rivadas <strong>de</strong> una función<br />

<strong>de</strong>s<strong>con</strong>ocida <strong>de</strong> una variable.<br />

47


don<strong>de</strong> N es el número <strong>de</strong> entida<strong>de</strong>s biológicas, r es <strong>la</strong> tasa <strong>de</strong> crecimiento y K es<br />

el número máximo <strong>de</strong> entida<strong>de</strong>s que pue<strong>de</strong> soportar el sistema. Esta ecuación<br />

exhibe un espectro <strong>de</strong> comportamiento dinámico que <strong>con</strong> un incremento en r va<br />

<strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> equilibrio estable, hasta comportamiento caótico [May, 1974,<br />

1976a]. Sin embargo, ecuaciones discretas más simples, análogas a EDO,<br />

muestran el mismo comportamiento, <strong>con</strong> <strong>la</strong> ventaja <strong>de</strong> ser más fáciles <strong>de</strong> tratar<br />

analítica y numéricamente. En estas formas discretas <strong>la</strong>s <strong>de</strong>rivadas son sustituidas<br />

por <strong>la</strong>s diferencias entre <strong>la</strong>s variables <strong>de</strong> estado que están <strong>con</strong>tiguas en espacio<br />

y/o tiempo. Así una ecuación análoga a <strong>la</strong> ecuación logística es <strong>de</strong> <strong>la</strong> forma<br />

N = F(<br />

N ) [May, 1976b]. <strong>Un</strong>a <strong>de</strong> <strong>la</strong>s más utilizadas es:<br />

t+<br />

1 t<br />

N = rN ( 1−<br />

N<br />

t+<br />

1 t t<br />

Cabe notar que esta ecuación tiene algunos comportamientos triviales, en<br />

términos <strong>de</strong> dinámica <strong>de</strong> sistemas biológicos, cuando N < 0 ó N >1. Si N > 1, F(N)<br />

tien<strong>de</strong> a − ∞ . A<strong>de</strong>más F(N) tiene su valor máximo cuando N=0.5, por tanto el<br />

comportamiento es no trivial <strong>para</strong> r < 4. A pesar <strong>de</strong> estas restricciones, se ha<br />

<strong>de</strong>mostrado [May, 1976b] que el comportamiento es análogo a <strong>la</strong> ecuación<br />

logística y tiene el mismo po<strong>de</strong>r <strong>de</strong> explicación <strong>de</strong> <strong>la</strong> dinámica biológica 66 . En el<br />

caso <strong>de</strong> EDP <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> formas discretas es más complicada. Si el<br />

dominio espacial <strong>de</strong> <strong>la</strong> ecuación es <strong>con</strong>tinuo, este se transforma en un espacio<br />

varias regiones finitas quedando un espacio discreto. Este espacio pue<strong>de</strong> ser un<br />

arreglo o matriz <strong>de</strong> dimensiones finitas 67 . Si el tiempo es finito, no hay nada más<br />

que hacer, <strong>de</strong> otra forma es necesario hacer una transformación aproximando <strong>la</strong>s<br />

<strong>de</strong>rivadas <strong>de</strong>l tiempo <strong>con</strong> un método como el <strong>de</strong> Euler 68 .<br />

Dado que <strong>la</strong> experimentación biológica siempre impone limitaciones en espacio y<br />

tiempo, en <strong>la</strong> mayoría <strong>de</strong> los casos los datos experimentales serán muestras<br />

discretas <strong>de</strong>l sistema. Si por ejemplo se quiere medir el cambio en <strong>la</strong> <strong>de</strong>nsidad <strong>de</strong><br />

pob<strong>la</strong>ción en el tiempo, se harán muestreos finitos en intervalos discretos. Esto<br />

permite que estas formas discretas sean una aproximación simple <strong>para</strong> <strong>la</strong><br />

utilización <strong>de</strong> datos experimentales reales.<br />

Los AC representan un método alternativo, más que una aproximación <strong>de</strong> EDP<br />

[Toffoli, 1984b]. Recor<strong>de</strong>mos que un AC es un mo<strong>de</strong>lo <strong>de</strong> sistema dinámico<br />

don<strong>de</strong> el universo es como un tablero <strong>de</strong> ajedrez, y don<strong>de</strong> cada cuadro pue<strong>de</strong><br />

tener un número finito <strong>de</strong> estados y avanza en tiempos discretos. Las leyes <strong>de</strong><br />

ese universo están <strong>de</strong>terminadas por una tab<strong>la</strong> <strong>de</strong> transiciones, en don<strong>de</strong> cada<br />

celda <strong>de</strong>termina su estado basado en <strong>la</strong> <strong>con</strong>figuración <strong>de</strong> vecinos. Este<br />

mecanismo simple es suficiente <strong>para</strong> soportar toda una jerarquía <strong>de</strong> estructuras,<br />

66 Otra ecuación análoga que aunque es más complicada presenta menos restricciones es<br />

r(<br />

1−N<br />

t )<br />

Nt<br />

+ 1 Nte<br />

=<br />

67<br />

Por lo general <strong>con</strong> bor<strong>de</strong>s periódicos (ver capitulo 2)<br />

68<br />

Conocido también como método <strong>de</strong> pendiente <strong>con</strong>stante. Se subdivi<strong>de</strong> el intervalo <strong>de</strong> tiempo en<br />

n pasos <strong>de</strong> dimensión h, y se asume que <strong>la</strong> pendiente <strong>de</strong> f(t) es <strong>con</strong>stante en cada paso.<br />

48<br />

)


propieda<strong>de</strong>s y fenómenos (ver capítulo 2). Como se mencionó anteriormente, el<br />

problema fundamental en AC (así como en EDP) el <strong>de</strong>terminar <strong>la</strong> evolución<br />

temporal <strong>de</strong> un sistema, lo que generalmente no posee solución analítica. Los AC<br />

tienen suficiente po<strong>de</strong>r <strong>de</strong> expresión <strong>para</strong> representar fenómenos <strong>de</strong> complejidad<br />

arbitraria [Vichniac, 1984]. Los AC son una alternativa fuerte que, dada su<br />

naturaleza discreta, permite <strong>la</strong> integración numérica exacta, y a<strong>de</strong>más los<br />

resultados obtenidos tienen <strong>la</strong> fuerza <strong>de</strong> teoremas [Toffoli, 1984a]. Se <strong>con</strong>jetura<br />

que un sistema <strong>de</strong> ecuaciones diferenciales parciales es capaz <strong>de</strong> computación<br />

universal, si existe un autómata celu<strong>la</strong>r equivalente que lo sea [Omohundro, 1984].<br />

Como sugiere T. Toffoli [Toffoli, 1984b], <strong>para</strong> <strong>con</strong>struir un AC a partir <strong>de</strong> un mo<strong>de</strong>lo<br />

<strong>de</strong>scrito por EDP, es necesario cumplir <strong>con</strong> los siguientes pasos:<br />

1) Espacio y tiempo <strong>con</strong>tinuos <strong>de</strong>ben ser sustituidos por arreglos discretos (se<br />

pue<strong>de</strong>n hacer <strong>la</strong>s aproximaciones que se explicaron anteriormente). En el<br />

caso <strong>de</strong>l espacio, un arreglo finito <strong>de</strong> celdas representa cada punto <strong>de</strong> un<br />

espacio <strong>con</strong>tinuo. El tiempo es sustituido por cambios en intervalos regu<strong>la</strong>res.<br />

2) El estado <strong>de</strong>l sistema 69 <strong>de</strong>be ser discretizado y restringido a un rango finito.<br />

Por ejemplo en el caso <strong>de</strong> <strong>la</strong> ecuación logística, <strong>la</strong> variable <strong>de</strong> estado <strong>de</strong> <strong>la</strong><br />

pob<strong>la</strong>ción en el tiempo, es se<strong>para</strong>da en cada uno <strong>de</strong> los individuos <strong>de</strong> <strong>la</strong><br />

pob<strong>la</strong>ción.<br />

3) Las <strong>de</strong>rivadas son reemp<strong>la</strong>zadas por diferencias en espacio y tiempo<br />

<strong>con</strong>tiguos. Las <strong>de</strong>rivadas se transforman en reg<strong>la</strong>s que toman en cuenta los<br />

vecinos cercanos en el tiempo actual <strong>para</strong> <strong>de</strong>terminar el estado en <strong>la</strong> próxima<br />

generación.<br />

Los sistemas biológicos son sistemas complejos y <strong>para</strong> reproducir su<br />

comportamiento se requiere <strong>de</strong> procesos computacionales extensivos. Esta es<br />

una <strong>con</strong>secuencia <strong>de</strong>l hecho <strong>de</strong> que <strong>la</strong> evolución <strong>de</strong> dicho sistema correspon<strong>de</strong> a<br />

un proceso computacionalmente complejo 70 . De hecho, como se mencionó<br />

anteriormente, <strong>la</strong> evolución <strong>de</strong> muchos sistemas complejos es<br />

computacionalmente irreducible, es <strong>de</strong>cir, no es posible hacer predicciones<br />

mediante procedimientos “atajo”, sino por simu<strong>la</strong>ción explícita <strong>de</strong> componentes<br />

[Wolfram, 1986, 1984d, 1985b]. Esto es un problema fundamental, dado que el<br />

interés <strong>de</strong> analizar un sistema complejo es <strong>de</strong>terminar su evolución temporal y en<br />

general esto no tiene solución analítica en un sistema <strong>de</strong> ecuaciones<br />

diferenciales 71 (o inclusive en un autómata celu<strong>la</strong>r). Es <strong>de</strong>cir, si se quiere saber el<br />

estado general qt que el sistema obtendrá <strong>de</strong>spués <strong>de</strong> t períodods 72 , comenzando<br />

<strong>de</strong> un estado inicial q0, el único método posible es <strong>con</strong>struir los estado intermedios<br />

q0,...,qt-1, <strong>para</strong> realizar <strong>la</strong> integración numérica [Toffoli, 1984a]. Por ello es<br />

69<br />

Variable <strong>de</strong> estado.<br />

70<br />

Si enten<strong>de</strong>mos a los procesos dinámicos naturales como algoritmos computacionales<br />

71<br />

Intratabilidad matemática.<br />

72<br />

Generaciones o pasos<br />

49


importante reproducir un sistema a partir <strong>de</strong> sus componentes fundamentales,<br />

<strong>para</strong> po<strong>de</strong>r simu<strong>la</strong>r <strong>de</strong> forma explícita cada una <strong>de</strong> <strong>la</strong>s etapas <strong>de</strong> su evolución<br />

temporal.<br />

Es mucho más sencillo <strong>con</strong>struir un mo<strong>de</strong>lo biológico basado en AC, a partir <strong>de</strong><br />

datos experimentales, que <strong>de</strong>terminar una EDP que pueda simu<strong>la</strong>r <strong>con</strong> <strong>de</strong>talles lo<br />

observado en el campo. En este sentido los AC son más que una aproximación<br />

<strong>de</strong> <strong>la</strong> realidad biológica y podrían llegar a ser una representación exacta <strong>de</strong><br />

fenómenos biológicos. En términos <strong>de</strong> dinámica física, los AC proveen una<br />

interpretación directa en términos computacionales <strong>de</strong> <strong>la</strong> realidad física [Margolus,<br />

1984]. En términos <strong>de</strong> sistemas biológicos po<strong>de</strong>mos <strong>con</strong>jeturar lo mismo y, si esto<br />

es cierto, los mundos biológicos artificiales son posibles y cumplirán <strong>la</strong>s mismas<br />

leyes que los mundos biológicos reales.<br />

3.7 Los autómatas celu<strong>la</strong>res como ambiente <strong>de</strong> experimentación biológica<br />

Las características <strong>de</strong> los AC <strong>de</strong>scritas en el capítulo 2, muestran que éste<br />

sistema matemático tiene <strong>la</strong>s mismas propieda<strong>de</strong>s que muchos sistemas físicos y<br />

biológicos. A<strong>de</strong>más, los AC son útiles <strong>para</strong> trabajar <strong>con</strong> cualquiera <strong>de</strong> lo enfoques<br />

<strong>de</strong> VA, es <strong>de</strong>cir, como herramienta <strong>de</strong> creación <strong>de</strong> vida en un medio cibernético, y<br />

como herramienta <strong>de</strong> simu<strong>la</strong>ción <strong>de</strong> procesos biológicos.<br />

Dado que un AC es una forma discreta <strong>de</strong> un sistema <strong>de</strong> ecuaciones diferenciales,<br />

es natural pensar que toda dinámica biológica, pue<strong>de</strong> ser <strong>de</strong>scrita por un AC. Las<br />

ventajas <strong>de</strong> utilizar los AC como ambiente <strong>de</strong> mo<strong>de</strong><strong>la</strong>je biológico son varias:<br />

1) Es fácil interpretar los fenómenos biológicos y traducirlos a un AC.<br />

2) La solución <strong>de</strong> una simu<strong>la</strong>ción <strong>con</strong> AC es fácil <strong>de</strong> interpretar en términos<br />

biológicos.<br />

3) Es sencillo crear todas <strong>la</strong>s variantes <strong>de</strong> una simu<strong>la</strong>ción <strong>para</strong> <strong>de</strong>terminar el<br />

efecto <strong>de</strong> variables en <strong>la</strong> dinámica biológica.<br />

4) Es posible hacer simu<strong>la</strong>ciones don<strong>de</strong> se incorpora el efecto individual <strong>de</strong> los<br />

componentes <strong>de</strong>l sistema.<br />

5) <strong>Un</strong>a vez <strong>con</strong>struido un AC este se pue<strong>de</strong> acop<strong>la</strong>r <strong>con</strong> otro AC <strong>para</strong> mo<strong>de</strong><strong>la</strong>r <strong>la</strong><br />

interacción <strong>de</strong> dos sistemas biológicos.<br />

6) La naturaleza gráfica <strong>de</strong> los AC, permite ver <strong>la</strong> dinámica en tiempo real al<br />

realizar simu<strong>la</strong>ciones.<br />

7) Los mo<strong>de</strong>los biológicos <strong>con</strong>struidos pue<strong>de</strong>n ser <strong>de</strong> complejidad arbitraria.<br />

50


8) Es posible realizar todos los procedimientos normales <strong>de</strong> un proceso <strong>de</strong><br />

experimentación <strong>de</strong> <strong>la</strong>s ciencias biológicas (<strong>con</strong>trol, tratamientos, etc.)<br />

9) Las reg<strong>la</strong>s <strong>de</strong>l AC se pue<strong>de</strong>n <strong>con</strong>struir como un reflejo <strong>de</strong> los fenómenos<br />

observados por experimentación.<br />

10) En términos <strong>de</strong> enseñanza, los AC son un medio simple <strong>para</strong> <strong>de</strong>mostrar<br />

diferentes propieda<strong>de</strong>s complejas <strong>de</strong> los sistemas biológicos.<br />

Todas estas ventajas, hacen <strong>de</strong> los AC un ambiente i<strong>de</strong>al <strong>de</strong> experimentación <strong>de</strong><br />

entida<strong>de</strong>s biológicas. Es posible <strong>con</strong> un AC <strong>con</strong>struir simu<strong>la</strong>ciones que<br />

representan fenómenos <strong>de</strong> gran esca<strong>la</strong> <strong>de</strong> espacio y tiempo, que son imposibles<br />

<strong>de</strong> realizar mediante procesos experimentales reales.<br />

3.8 Comentario Final<br />

En este capítulo se presentan <strong>con</strong>jeturas que intentan integrar algunos <strong>de</strong> los<br />

aspectos re<strong>con</strong>ocidos <strong>de</strong>l estudio <strong>de</strong> los sistemas biológicos, <strong>con</strong> el fin <strong>de</strong><br />

enmarcarlos en una teoría unificada que integre todos los niveles <strong>de</strong> organización.<br />

Leyes<br />

Generales<br />

Particu<strong>la</strong>rida<strong>de</strong>s<br />

Leyes<br />

Generales<br />

Interacción<br />

EB<br />

Propieda<strong>de</strong>s<br />

Emergentes<br />

Figura 23. Integración <strong>de</strong> niveles <strong>de</strong> organización biológica, cada entidad<br />

biológica (EB), interactúa <strong>con</strong> otras entida<strong>de</strong>s, originando ciertas<br />

particu<strong>la</strong>rida<strong>de</strong>s, gran cantidad <strong>de</strong> interacciones entre entida<strong>de</strong>s, produce<br />

leyes generales <strong>de</strong> comportamiento <strong>de</strong>l sistema. Estas leyes originan<br />

una nueva unidad estructural y <strong>de</strong> funcionamiento que es una nueva EB<br />

<strong>de</strong> nivel superior.<br />

51<br />

EB


Esta i<strong>de</strong>a que ha sido <strong>de</strong>sarrol<strong>la</strong>da por el autor, se menciona <strong>de</strong> forma provisional<br />

en esta tesis, y es motivada en parte por los autómatas celu<strong>la</strong>res. Pareciera que<br />

cualquier AC, pue<strong>de</strong> ser interpretado como un mo<strong>de</strong>lo <strong>de</strong> cualquier nivel <strong>de</strong><br />

organización, y esto sugiere cierto carácter universal <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s que se<br />

intentan mo<strong>de</strong><strong>la</strong>r. Si lo propuesto sobre entida<strong>de</strong>s biológicas tiene vali<strong>de</strong>z, cada<br />

nivel <strong>de</strong> organización biológica, representa una nueva fase <strong>de</strong>l sistema compuesto<br />

por múltiples componentes. Las entida<strong>de</strong>s biológicas, son una <strong>de</strong>finición recursiva<br />

<strong>de</strong> sistemas biológicos. Como se observa en <strong>la</strong> Figura 23, una EB interactúa <strong>con</strong><br />

otras <strong>de</strong> su mismo nivel. Producto <strong>de</strong> esta interacción, comienzan a surgir <strong>la</strong>s<br />

propieda<strong>de</strong>s emergentes (estructural, funcional y <strong>de</strong> unidad), <strong>de</strong> aquí surge una<br />

nueva EB, <strong>de</strong> nivel superior que cumple <strong>con</strong> <strong>la</strong>s mismas leyes que <strong>la</strong>s unida<strong>de</strong>s<br />

que <strong>la</strong> componen.<br />

No es el objetivo <strong>de</strong> este trabajo dar pruebas formales <strong>de</strong>l <strong>con</strong>cepto <strong>de</strong> entidad<br />

biológica, <strong>la</strong> intención es <strong>la</strong> <strong>de</strong> formu<strong>la</strong>r <strong>de</strong> manera informal una i<strong>de</strong>a que pue<strong>de</strong><br />

tener algunas implicaciones importantes <strong>para</strong> <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> una teoría<br />

biológica unificada y <strong>de</strong> carácter universal.<br />

Dentro <strong>de</strong> este marco <strong>de</strong> funcionamiento <strong>de</strong> los sistemas biológicos, los AC son<br />

una herramienta <strong>de</strong> programación <strong>de</strong> leyes, don<strong>de</strong> pue<strong>de</strong>n ser evaluadas <strong>la</strong>s leyes<br />

universales biológicas. Esta sugerencia <strong>la</strong> hace Stephen Wolfram <strong>de</strong> <strong>la</strong> siguiente<br />

forma [Wolfram, 1984e] :<br />

“Las leyes científicas producen algoritmos o procedimientos <strong>para</strong> <strong>de</strong>terminar cómo<br />

se comporta un sistema. Los AC son un medio en don<strong>de</strong> estos algoritmos y<br />

procedimientos pue<strong>de</strong>n ser aplicados. Las estructuras físicas y biológicas se<br />

representan como números y símbolos en <strong>la</strong> computadora, y el programa se<br />

escribe <strong>para</strong> manipu<strong>la</strong>rlos <strong>de</strong> acuerdo <strong>con</strong> el algoritmo. Cuando el programa corre,<br />

<strong>la</strong> manipu<strong>la</strong>ción <strong>de</strong> símbolos y números correspon<strong>de</strong> a <strong>la</strong> especificación <strong>de</strong> <strong>la</strong><br />

leyes científicas y por tanto permite que <strong>la</strong>s <strong>con</strong>secuencias <strong>de</strong> dichas leyes sean<br />

<strong>de</strong>ducidas.”<br />

Aunque el objetivo principal <strong>de</strong> esta tesis es <strong>la</strong> <strong>de</strong> <strong>con</strong>struir un lenguaje <strong>para</strong><br />

especificar autómatas, este capítulo intenta establecer, <strong>de</strong> forma informal y sin<br />

ninguna prueba <strong>con</strong>creta, como es posible <strong>con</strong>struir leyes biológicas en un AC. La<br />

i<strong>de</strong>a es que un biólogo (estudiante o investigador) pueda poner a prueba i<strong>de</strong>as a<br />

través <strong>de</strong> <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> mo<strong>de</strong>los sencillos en un ambiente <strong>de</strong> mo<strong>de</strong><strong>la</strong>je <strong>con</strong><br />

AC.<br />

52


4 Descripción Formal <strong>de</strong>l <strong>Lenguaje</strong> <strong>de</strong> <strong>Autómatas</strong> Celu<strong>la</strong>res – FORTH (ACF)<br />

4.1 Introducción<br />

Para <strong>con</strong>struir un ambiente que permita especificar AC son necesarios dos<br />

elementos importantes: 1) <strong>Un</strong> espacio celu<strong>la</strong>r <strong>de</strong> propósito general 73 , don<strong>de</strong> se<br />

puedan ejecutar <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> un AC, y 2) un lenguaje <strong>con</strong> el cual se pueda <strong>de</strong>finir<br />

dichas reg<strong>la</strong>s. En esta tesis, y particu<strong>la</strong>rmente en este capítulo, se diseña y<br />

p<strong>la</strong>ntea formalmente un lenguaje <strong>de</strong> <strong>Autómatas</strong> Celu<strong>la</strong>res-FORTH ó ACF, que es<br />

un lenguaje orientado a <strong>la</strong> especificación <strong>de</strong> AC. En el capítulo siguiente (capítulo<br />

5) se implementa el lenguaje y se <strong>con</strong>struye una interfaz <strong>para</strong> su utilización.<br />

ACF provee un ambiente <strong>para</strong> <strong>la</strong> programación <strong>de</strong> AC <strong>con</strong> un lenguaje simple,<br />

basado en FORTH (ver ANEXO A). FORTH es un lenguaje <strong>de</strong> programación que<br />

se utiliza en procesos <strong>de</strong> <strong>con</strong>trol [Ahson, 1985]. Este lenguaje fue diseñado <strong>para</strong><br />

facilitar <strong>la</strong> comunicación entre máquinas y seres humanos, utilizando un lenguaje<br />

orientado al manejo <strong>de</strong> máquinas.[ANS-FORTH, 1993]. Este lenguaje tiene<br />

características <strong>de</strong> lenguaje <strong>de</strong> alto nivel como PASCAL y BASIC, pero permite<br />

una estrecha re<strong>la</strong>ción a bajo nivel <strong>con</strong> <strong>la</strong> máquina. Esta característica hace <strong>de</strong><br />

este un lenguaje i<strong>de</strong>al <strong>para</strong> <strong>la</strong> programación <strong>de</strong> reg<strong>la</strong>s en un AC dado que el<br />

cambio <strong>de</strong> estado en cada celda <strong>de</strong>l AC es procesado por un autómata <strong>de</strong> estado<br />

finito (ver capíulo 2) que es una máquina que procesa <strong>la</strong> información <strong>de</strong>l<br />

vecindario y genera una salida siguiendo instrucciones, <strong>la</strong> estructura sintáctica <strong>de</strong><br />

FORTH, permite <strong>de</strong>sarrol<strong>la</strong>r instrucciones <strong>para</strong> ser procesadas por el esta<br />

máquina <strong>de</strong> forma simple y directa . ACF utiliza varios aspectos <strong>de</strong> FORTH e<br />

incorpora algunas funciones especiales <strong>de</strong> AC (vecindario p<strong>la</strong>nos, etc.) que<br />

facilitan <strong>la</strong> programación <strong>de</strong> reg<strong>la</strong>s tanto <strong>de</strong>terminísticas como probabilísticas.<br />

Mediante el lenguaje ACF se especifican el vecindario y <strong>la</strong>s reg<strong>la</strong>s que operan<br />

sobre los estados <strong>de</strong> cada celda en un AC. Cuando ACF procesa el lenguaje,<br />

<strong>con</strong>struye una tab<strong>la</strong> <strong>de</strong> transiciones, incorporando todos los posibles resultados<br />

que se generan a partir <strong>de</strong> todas <strong>la</strong>s <strong>con</strong>figuraciones <strong>de</strong>l vecindario <strong>de</strong>c<strong>la</strong>rado.<br />

<strong>Un</strong>a vez <strong>con</strong>struida esta tab<strong>la</strong>, el espacio celu<strong>la</strong>r verifica en forma secuencial, <strong>para</strong><br />

cada celda, el vecindario y busca en <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones cuál <strong>de</strong>be ser el<br />

nuevo estado. Esto quiere <strong>de</strong>cir que <strong>la</strong> reg<strong>la</strong> queda implícita en <strong>la</strong> tab<strong>la</strong> <strong>de</strong><br />

transiciones.<br />

73<br />

Con propósito general nos referimos a que se puedan utilizar cualquier <strong>con</strong>figuración <strong>de</strong> vecinos<br />

y <strong>de</strong> <strong>con</strong>diciones <strong>de</strong> periodicidad <strong>de</strong>l espacio.<br />

53


4.2 El Autómata Celu<strong>la</strong>r <strong>de</strong> ACF<br />

Dado que ACF es un lenguaje orientado a AC, <strong>la</strong>s reg<strong>la</strong>s especificadas en el<br />

lenguaje <strong>de</strong>terminan el comportamiento <strong>de</strong> un espacio celu<strong>la</strong>r. De esta forma<br />

existe una integración <strong>de</strong>l mecanismo <strong>de</strong> <strong>con</strong>strucción <strong>de</strong> reg<strong>la</strong>s <strong>de</strong> AC y el<br />

ambiente don<strong>de</strong> evoluciona el AC.<br />

La estructura <strong>de</strong>l AC en ACF, está basada en <strong>la</strong>s especificaciones <strong>de</strong> CAM (ver<br />

ANEXO B). CAM es una tarjeta que permite <strong>la</strong> simu<strong>la</strong>ción <strong>de</strong> AC a traves <strong>de</strong>l<br />

lenguaje FORTH. ACF toma <strong>de</strong> base el funcionamiento <strong>de</strong> CAM, pero<br />

implementado <strong>de</strong> forma completa como “Software” <strong>para</strong> correr en ambiente<br />

Windows. A<strong>de</strong>más ACF incorpora <strong>la</strong>s estructuras necesarias <strong>para</strong> <strong>con</strong>struir AC<br />

probabilísticos.<br />

Aquí <strong>con</strong>si<strong>de</strong>ramos el ambiente <strong>de</strong>l AC, que incorpora el espacio celu<strong>la</strong>r, el<br />

vecindario y <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones.<br />

4.2.1 Espacio celu<strong>la</strong>r A (p<strong>la</strong>nos <strong>de</strong>l AC)<br />

ACF <strong>con</strong>siste en un AC don<strong>de</strong> el espacio celu<strong>la</strong>r se divi<strong>de</strong> en varios p<strong>la</strong>nos y<br />

cumple <strong>con</strong> <strong>la</strong>s siguientes restricciones. Sea A el espacio celu<strong>la</strong>r <strong>de</strong>l autómata :<br />

1) A es un <strong>con</strong>junto <strong>de</strong> p<strong>la</strong>nos A 0 , , Aα<br />

(Figura 24).<br />

2) Cada p<strong>la</strong>no <strong>de</strong> A= {Az | 0 ¯ z ¯ α } es un arreglo bi-dimensional <strong>de</strong> celdas.<br />

3) ax,y,z es el estado <strong>de</strong> una celda <strong>de</strong> A en <strong>la</strong> posición (x,y) y el p<strong>la</strong>no z .<br />

4) Cada celda en A sólo pue<strong>de</strong> estar en dos posibles estados, es <strong>de</strong>cir a ∈ Q<br />

={0,1} <strong>con</strong> k=2 .<br />

5) A pue<strong>de</strong> tener bor<strong>de</strong>s periódicos o cerrados 74 (ver capítulo 2).<br />

Los p<strong>la</strong>nos <strong>de</strong> A se pue<strong>de</strong>n <strong>con</strong>si<strong>de</strong>rar como espacios celu<strong>la</strong>res in<strong>de</strong>pendientes (si<br />

se <strong>con</strong>struye una reg<strong>la</strong> que no establezca interacción <strong>de</strong> un p<strong>la</strong>no <strong>con</strong> el otro) , o<br />

se pue<strong>de</strong>n utilizar <strong>de</strong> forma <strong>con</strong>junta <strong>para</strong> lograr mayor cantidad <strong>de</strong> estados por<br />

celda. Si se <strong>con</strong>si<strong>de</strong>ran todos los p<strong>la</strong>nos, es posible <strong>con</strong>struir un AC don<strong>de</strong> una<br />

1<br />

celda pueda tener<br />

α<br />

estados, en ese caso el valor <strong>de</strong> estado vendrá dado por:<br />

a<br />

x,<br />

y<br />

=<br />

α<br />

∑<br />

i=<br />

0<br />

a<br />

x,<br />

y,<br />

i<br />

2<br />

i<br />

2 +<br />

Es <strong>de</strong>cir el estado a x,<br />

y es <strong>la</strong> representación en notación <strong>de</strong>cimal <strong>de</strong> los valores<br />

binarios <strong>de</strong> estado <strong>de</strong>l p<strong>la</strong>no 0 al p<strong>la</strong>no α . Así si el estado ax,y,0=0 y ax,y,1=1 ,<br />

Entonces ax,y=2.<br />

74 Estructura toroi<strong>de</strong> o p<strong>la</strong>na ver cap 1<br />

54


4.2.2 Vecindario N<br />

Figura 24 P<strong>la</strong>nos <strong>de</strong>l espacio celu<strong>la</strong>r <strong>de</strong> ACF.<br />

Cuando el AC evoluciona en tiempos discretos, el estado <strong>de</strong> una celda cambia <strong>con</strong><br />

respecto <strong>de</strong> una función <strong>de</strong> transición ∆ que toma en cuenta el estado <strong>de</strong> un<br />

grupo <strong>de</strong> celdas a su alre<strong>de</strong>dor. Esto ocurre <strong>de</strong> forma simultánea <strong>para</strong> cada una<br />

<strong>de</strong> <strong>la</strong>s celdas a ∈ A, este grupo <strong>de</strong> celdas es <strong>con</strong>ocido como vecindario. Sea N el<br />

vecindario, N es una especie <strong>de</strong> ventana o p<strong>la</strong>ntil<strong>la</strong> que se aplica <strong>para</strong> cada celda<br />

a en A y que obtiene los valores <strong>de</strong> estado <strong>de</strong> cada uno <strong>de</strong> los vecinos <strong>de</strong> a. N es<br />

una secuencia <strong>de</strong> posiciones <strong>de</strong> celda <strong>de</strong> <strong>la</strong> forma:<br />

N = ax-r,y-r, ax-r+1,y-r+1, ... , ax,y, ... , ax+r-1,y+r-1, ax+r,y+r<br />

el valor r ∈ � correspon<strong>de</strong> al rango <strong>de</strong>l vecindario. Sea N= | N | , supongamos que<br />

vi es el valor <strong>de</strong> estado <strong>de</strong> celda <strong>de</strong>l elemento i-ésimo <strong>de</strong> <strong>la</strong> secuencia N (0 � i �<br />

N-1). W es el “estado <strong>de</strong> vecindario” <strong>de</strong> una celda. W se <strong>de</strong>fine mediante <strong>la</strong><br />

ecuación:<br />

55<br />

Aα<br />

A1<br />

A0<br />

A


W<br />

=<br />

∑ − N 1<br />

i=<br />

0<br />

v<br />

i<br />

2<br />

N −i<br />

En un vecindario <strong>con</strong> N vecinos <strong>con</strong> k=2 existen 2 N posibles estados <strong>de</strong> vecindario<br />

W. w(a) es el estado <strong>de</strong>l vecindario W <strong>de</strong> <strong>la</strong> celda a.<br />

4.2.3 Tab<strong>la</strong> <strong>de</strong> transciciones ∆<br />

En <strong>la</strong> <strong>con</strong>strucción <strong>la</strong>s reg<strong>la</strong>s quedan <strong>de</strong>scritas en una tab<strong>la</strong> <strong>de</strong> transiciones. Es<br />

<strong>de</strong>cir, al procesar el lenguaje todas <strong>la</strong>s posibles combinaciones <strong>de</strong> 2 N<br />

<strong>con</strong>figuraciones <strong>de</strong> N vecinos son procesadas y transformadas en entradas en <strong>la</strong><br />

tab<strong>la</strong> <strong>de</strong> transiciones ∆ . ∆ es un vector uni-dimensional in<strong>de</strong>xado, <strong>de</strong> pares<br />

S=�s,p�, don<strong>de</strong> s ∈ Q y p ∈ � es <strong>la</strong> probabilidad <strong>de</strong> cambio <strong>de</strong> estado a s. El<br />

arreglo ∆ tiene S0,S1,..., 1<br />

2 − N S entradas que correspon<strong>de</strong>n a cada una <strong>de</strong> <strong>la</strong>s<br />

<strong>con</strong>figuraciones <strong>de</strong> vecindario W (estado <strong>de</strong> vecindario). Si por ejemplo N = ax-1,y,,<br />

ax,y , ax+1,y , existirán 2 3 = 8 estados <strong>de</strong> vecindario posibles. Digamos a<strong>de</strong>más que<br />

t+<br />

1 t t t<br />

<strong>la</strong> reg<strong>la</strong> <strong>de</strong> cambio <strong>de</strong> estado correspon<strong>de</strong> a a x,<br />

y = ( ax−1,<br />

y + ax,<br />

y + ax+<br />

1,<br />

y ) mod 2 . La<br />

tab<strong>la</strong> <strong>de</strong> transiciones ∆ <strong>para</strong> cada W se muestra en el siguiente cuadro:<br />

N<br />

W<br />

56<br />

sW<br />

∆ (W)<br />

pW<br />

000 0 0 0.2<br />

001 1 1 0.3<br />

010 2 1 0.8<br />

011 3 0 0.6<br />

100 4 1 0.8<br />

101 5 0 1<br />

110 6 0 1<br />

111 7 1 0.05<br />

Cuando el AC evoluciona, <strong>para</strong> cada celda <strong>de</strong> A obtiene el estado <strong>de</strong> vecindario W<br />

utilizando <strong>la</strong> secuencia <strong>de</strong> vecinos N . W representa una aentrada <strong>de</strong> ∆ <strong>de</strong>l que se<br />

obtinene el nuevo estado. Si el autómata es probabilístico, antes <strong>de</strong> <strong>de</strong>terminar el<br />

cambio <strong>de</strong> estado se genera un número aleatorio γ tal que si γ � pW entonces se<br />

da el cambio <strong>de</strong> estado o <strong>de</strong> lo <strong>con</strong>trario no suce<strong>de</strong> nada <strong>con</strong> <strong>la</strong> celda. (ver sección<br />

siguiente).<br />

4.2.4 Dinámica <strong>de</strong>l autómata <strong>de</strong> ACF<br />

La actualización <strong>de</strong> estados <strong>de</strong> un AC ocurre en <strong>para</strong>lelo <strong>para</strong> cada una <strong>de</strong> <strong>la</strong>s<br />

celdas <strong>de</strong>l arreglo. Sin embargo, en ACF <strong>la</strong> actualización <strong>de</strong> <strong>la</strong>s celdas ocurre en<br />

forma secuencial, creando primero una copia A c <strong>de</strong>l espacio celu<strong>la</strong>r A <strong>para</strong><br />

actualizar los estados en <strong>la</strong> copia y luego sustituirlos sobre el arreglo original.


Existen ligeras diferencias entre el funcionamiento <strong>de</strong> un AC <strong>de</strong>terminístico y uno<br />

probabilístico, y por ello se <strong>de</strong>scribirán por aparte cada uno <strong>de</strong> estos.<br />

Autómata Celu<strong>la</strong>r Determinístico<br />

Dejemos que c(A), sea <strong>la</strong> <strong>con</strong>figuración <strong>de</strong>l espacio celu<strong>la</strong>r A . utilizaremos c0,<br />

<strong>para</strong> <strong>de</strong>notar <strong>la</strong> <strong>con</strong>figuración inicial <strong>de</strong> A y ci, i =1,2,3,... � <strong>para</strong> <strong>de</strong>notar<br />

<strong>con</strong>figuraciónes sucesivas y c′ <strong>para</strong> cualquier <strong>con</strong>figuración. <strong>Un</strong>a generación 75<br />

�c� →� c′� <strong>de</strong>l AC <strong>de</strong>terminístico significa que ∀ a ∈ A :<br />

a ∈ A<br />

∆ (w(a)) s<br />

⇒ a′<br />

___________<br />

�a� → � a′�<br />

La notación es <strong>la</strong> misma que se <strong>de</strong>scribe en <strong>la</strong> sección 4.4, <strong>con</strong> el juicio adicional<br />

_ s<br />

⇒ _ : W Q (ver <strong>de</strong>scripción <strong>de</strong> <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones en <strong>la</strong> sección 4.2.3). Lo<br />

que indica esto es que el cambio <strong>de</strong> <strong>con</strong>figuración en un paso <strong>de</strong>l AC implica que<br />

<strong>para</strong> cada celda <strong>de</strong>l arreglo se <strong>de</strong>termine el estado <strong>de</strong> su vecindario y se calcule<br />

en <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones su nuevo estado.<br />

Autómata Celu<strong>la</strong>r Probabilístico<br />

Para el AC probabilístico necesitamos un generador <strong>de</strong> números aleatorios<br />

Γ → [ 0,<br />

1]<br />

a<strong>de</strong>más <strong>de</strong>l juicio _ p<br />

⇒ _ : W �. <strong>Un</strong>a generación �c� →� c′� <strong>de</strong>l AC<br />

probabilístico significa que ∀ a ∈ A :<br />

Caso en que ocurre el cambio <strong>de</strong> estado:<br />

a ∈ A<br />

∆ (w(a)) p<br />

⇒ p<br />

Γ � p<br />

∆ (w(a)) s<br />

⇒ a′<br />

___________<br />

�a� → � a′�<br />

75 Generalmente en <strong>la</strong> literatura sobre AC, evoluciona significa los cambios <strong>de</strong> <strong>con</strong>figuración <strong>de</strong>l<br />

vecindario dada <strong>la</strong> reg<strong>la</strong> <strong>de</strong>l AC. También se utiliza “corre”, “avanza t generaciones”. Todas estas<br />

se utilizan en este trabajo.<br />

57


Caso en que no hay cambio <strong>de</strong> estado:<br />

a ∈ A<br />

∆ (w(a)) p<br />

⇒ p<br />

Γ > p<br />

___________<br />

�a� → �a�<br />

4.3 El <strong>Lenguaje</strong> ACF<br />

El lenguaje que se <strong>de</strong>sarrol<strong>la</strong> <strong>para</strong> <strong>la</strong> especificación <strong>de</strong> AC, está basado en el<br />

lenguaje FORTH. ACF es un sub<strong>con</strong>junto <strong>de</strong> FORTH (<strong>para</strong> <strong>de</strong>talles <strong>de</strong> FORTH<br />

ver ANEXO A), al cual se han agregado pa<strong>la</strong>bras y <strong>con</strong>structores particu<strong>la</strong>res <strong>para</strong><br />

especificar AC <strong>de</strong> forma simple y directa. De FORTH , se toman tres<br />

características: 1) La orientación a pi<strong>la</strong>s, 2) <strong>la</strong> notación posfija, 3) algunos<br />

aspectos sintácticos.<br />

ACF es un lenguaje compuesto <strong>de</strong> expresiones, <strong>con</strong> <strong>la</strong>s cuales se pue<strong>de</strong>n <strong>de</strong>finir<br />

reg<strong>la</strong>s <strong>de</strong>terminísticas o probabilísticas <strong>para</strong> el AC. <strong>Un</strong> programa <strong>de</strong> ACF <strong>con</strong>sta<br />

<strong>de</strong> tres componentes principales:<br />

1) Dec<strong>la</strong>ración <strong>de</strong> vecinos: esto <strong>de</strong>termina cuál es el vecindario que utilizará <strong>la</strong><br />

reg<strong>la</strong> que se <strong>de</strong>fine. En términos <strong>de</strong> un AC esta <strong>de</strong>c<strong>la</strong>ración permite <strong>de</strong>finir el<br />

rango (r) <strong>de</strong> <strong>la</strong> reg<strong>la</strong> 76 .<br />

2) Dec<strong>la</strong>ración <strong>de</strong> funciones: Estas funciones pue<strong>de</strong>n ser utilizadas en <strong>la</strong><br />

<strong>de</strong>finición <strong>de</strong> reg<strong>la</strong>s o en otras funciones <strong>de</strong>c<strong>la</strong>radas posteriormente<br />

3) <strong>Especificación</strong> <strong>de</strong> <strong>la</strong> reg<strong>la</strong> <strong>de</strong>l AC: estas reg<strong>la</strong>s pue<strong>de</strong>n ser <strong>de</strong>terminísticas<br />

(una so<strong>la</strong> reg<strong>la</strong>) o probabilísticas <strong>de</strong> dos tipos: in<strong>de</strong>pendientes <strong>de</strong> <strong>la</strong><br />

<strong>con</strong>figuración <strong>de</strong> vecinos, o <strong>de</strong>pendientes.<br />

Las variables en el lenguaje representan sitios específicos en un espacio celu<strong>la</strong>r y<br />

estas no pue<strong>de</strong>n ser <strong>de</strong>finidas por el usuario, es <strong>de</strong>cir, <strong>la</strong> asignación <strong>de</strong> estas es<br />

parte <strong>de</strong> <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones, por parte <strong>de</strong>l procesador <strong>de</strong>l<br />

lenguaje, que <strong>con</strong>tiene todas <strong>la</strong>s combinaciones posibles <strong>de</strong> vecinos <strong>para</strong> una<br />

reg<strong>la</strong>.<br />

La sección 4.4 da una <strong>de</strong>scripción formal <strong>de</strong> <strong>la</strong> sintaxis y semántica <strong>de</strong> ACF,<br />

mientras que en 4.5 se da una <strong>de</strong>scripción informal <strong>de</strong> ACF , <strong>para</strong> usuarios <strong>de</strong> <strong>la</strong><br />

interfaz <strong>de</strong> ACF.<br />

76 r representa el rango <strong>de</strong> acción <strong>de</strong> <strong>la</strong> reg<strong>la</strong>, tal como se <strong>de</strong>fine en el cap. 1<br />

58


4.4 Semántica Formal <strong>de</strong>l lenguaje ACF<br />

En esta sección se presenta <strong>la</strong> semántica operacional <strong>de</strong>l lenguaje ACF. EL<br />

comportamiento <strong>de</strong> ACF se explica mediante reg<strong>la</strong>s estructurales que <strong>de</strong>finen<br />

cómo <strong>la</strong>s expresiones son evaluadas y procesadas por una unidad <strong>de</strong> <strong>con</strong>trol, y<br />

los valores resultado <strong>de</strong> expresiones almacenados en pi<strong>la</strong>. Las reg<strong>la</strong>s que se<br />

presentan son muy cercanas a <strong>la</strong> implementación <strong>de</strong>l lenguaje.<br />

Cuando se procesa el lenguaje ACF, el resultado final será <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> <strong>la</strong><br />

tab<strong>la</strong> <strong>de</strong> transiciones ∆ que representa <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong>l AC <strong>de</strong>scrito por el lenguaje.<br />

4.4.1 Aspectos <strong>de</strong> notación<br />

Para <strong>la</strong> <strong>de</strong>scripción <strong>de</strong>l lenguaje, se utilizará semántica operacional <strong>de</strong> pasos<br />

pequeños, es <strong>de</strong>cir, se hace una <strong>de</strong>scripción <strong>de</strong>l significado por pasos <strong>de</strong> cada<br />

uno <strong>de</strong> los pasos <strong>de</strong>l procesamiento <strong>de</strong> una expresión en ACF. Antes <strong>de</strong><br />

comenzar, <strong>de</strong>finamos algunos formalismos notacionales utilizados en <strong>la</strong><br />

<strong>de</strong>scripción semántica <strong>de</strong>l lenguaje:<br />

1) La notación R : X Y Es una re<strong>la</strong>ción R <strong>de</strong> X y Y. Matemáticamente R es el<br />

sub<strong>con</strong>junto <strong>de</strong> X × Y .<br />

2) El símbolo “::=” <strong>de</strong>nota elementos que <strong>con</strong>tiene <strong>la</strong> metavariable. Por ejemplo:<br />

e::= n | e, <strong>de</strong>nota <strong>de</strong> que e es una expresión que pue<strong>de</strong> ser un numeral n o otra<br />

expresión e (“|” significa o exclusivo).<br />

3) cuando se encierran elementos en “[ ]” estos pue<strong>de</strong>n ocurrir o no en <strong>la</strong><br />

expresión.<br />

4) Las reg<strong>la</strong>s <strong>de</strong> inferencia se especifican utilizando <strong>la</strong> siguiente notación:<br />

Premisas<br />

__________________<br />

Conclusiones<br />

5) <strong>Un</strong> paso operacional “ →”, se <strong>de</strong>fine como: →: st st’. Es una función parcial<br />

<strong>de</strong> estado a estado.<br />

6) La operación Ap(op,v, v′ ) op<br />

⇒ v ′′ don<strong>de</strong> v, v′ , v ′′ ∈ N, asume que <strong>la</strong> expresión en<br />

notación posfija “v v′ op” es evaluada en una unidad <strong>de</strong> operaciones<br />

aritméticas que realiza el cálculo <strong>con</strong> los operandos v, v′ y el operador op en <strong>la</strong><br />

forma correcta y <strong>de</strong>vuelve el valor v ′′<br />

59


7) <strong>la</strong> expresión dom R <strong>de</strong>nota los elementos X <strong>de</strong> un <strong>con</strong>junto R : X Y<br />

8) (n)2 es el valor n en notación binaria y (n)10 es n en notación <strong>de</strong>cimal. <strong>la</strong><br />

expresión (v1v2 ... vk)2 es <strong>la</strong> notación binaria <strong>de</strong> un entero <strong>con</strong> k dígitos binarios; y<br />

(v1v2 ... vk)2 = ( v′ )10 es <strong>la</strong> notación <strong>de</strong>cimal <strong>de</strong> k dígitos binarios que se<br />

transforman a v′ en notación <strong>de</strong>cimal.<br />

4.4.2 Categorías Sintácticas<br />

Metavairable Cat. Sintáctica Descricpción<br />

p : Prog Programa<br />

n : Num Numerales n ∈ �<br />

a : Cel Posiciones primitivas <strong>de</strong> celda en AC<br />

l : Loc Sitios <strong>de</strong>l AC<br />

e : Exp Expresiones<br />

f : Dec Dec<strong>la</strong>raciones <strong>de</strong> funciones<br />

d : DecN Dec<strong>la</strong>ración <strong>de</strong> vecindario<br />

φ : DecR Dec<strong>la</strong>ración <strong>de</strong> reg<strong>la</strong>s<br />

op : Ope Operadores aritméticos y booleanos (No<br />

hay distinción entre Booleanos y � )<br />

v : Val Valores v ∈ �<br />

id : Id I<strong>de</strong>ntificador <strong>de</strong> Función.<br />

Las metavariables que se utilizan <strong>para</strong> moverse a través <strong>de</strong> categorías sintácticas,<br />

pue<strong>de</strong>n estar <strong>con</strong> primas o <strong>con</strong> subíndices. por ejemplo v ′ , v′<br />

′ , l0<br />

, etc.<br />

4.4.3 Definiciones<br />

st : Estado Estado<br />

S : Stack Pi<strong>la</strong> <strong>de</strong> datos<br />

C : Control Memoria <strong>de</strong> Control<br />

∆ : TransT Tab<strong>la</strong> <strong>de</strong> transiciones<br />

N : AmbS Ambiente <strong>de</strong> Sitios<br />

ρ : AmbF Ambiente <strong>de</strong> funciones<br />

as : Asoc Asociación<br />

<strong>con</strong>s : Const Constructores<br />

60


� = Vacío<br />

n,k,u,i ∈ �<br />

α ∈ {0,1,2,3}<br />

1 ≤ m ≤ 12<br />

Funciones Semánticas<br />

ρ : Id Exp<br />

N : Loc {0,1}<br />

Reg<strong>la</strong>s <strong>de</strong> formación<br />

programa <strong>de</strong> AC<br />

p ::= d [ f ] rules φ<br />

Localizaciones<br />

a ::= C | N | S | E | W | NE | NW | SE | SW<br />

l ::= a | a+ | aα | aα +<br />

Expresiones y operadores<br />

q::= n | id<br />

op ::= + | - | * | div | mod | > | < | = | and | or | xor<br />

e ::= n | l | e e′ op | e not | e1 ... ek k int | e k bin | e if e′ [else e ′ ] then |<br />

e dup | e e′ swap | e drop | e >Pα | e >PA | e case { q1 ... q� } |<br />

e e′ pcase<br />

Dec<strong>la</strong>raciones<br />

f ::= : id e ;| f f ′<br />

d ::= : vec l1 ... lm ;<br />

61


4.4.4 juicios<br />

φ ::= : [ u prob ] e ;| φ φ′<br />

Computaciones<br />

st ::= �S, N , ρ ,C, ∆ �<br />

S ::= � | v.S<br />

C ::= � | e.C | f.C | d.C | φ .C | p.C | op.C<br />

ρ ::= � | (id, e). ρ<br />

N ::= � | l..N | (l,v). N<br />

∆ ::= � | (v, v′ , v ′′ ). ∆ | α . ∆<br />

nota: El elemento más accesible <strong>de</strong> <strong>la</strong> pi<strong>la</strong> S es el <strong>con</strong>tiguo a S.<br />

Evaluación <strong>de</strong> expresiones: el resultado <strong>de</strong> evaluar una expresión es un valor<br />

entero.<br />

_ e<br />

⇒ _ : Exp Val<br />

Localizaciones: <strong>de</strong>vuelve el valor <strong>de</strong> una localización <strong>de</strong>l vecindario<br />

_ l<br />

⇒ _ : Loc {0,1}<br />

Operaciones: Las operaciones toman dos valores enteros y <strong>de</strong>vuelve el resultado<br />

<strong>de</strong> <strong>la</strong> operación op<br />

_ op<br />

⇒ _ : Val x Val Val<br />

Base <strong>de</strong>l entero: Convierte <strong>la</strong> base <strong>de</strong> un valor entero, en el mismo valor entero<br />

<strong>con</strong> otra base. Permite <strong>con</strong>vertir <strong>de</strong> notación binaria a <strong>de</strong>cimal y viceversa.<br />

_ base<br />

⇒ _ : Val Val<br />

Vecindario: Toma el vecindario (ambiente <strong>de</strong> sitios) y modifica su estado<br />

asignando valores a cada una <strong>de</strong> <strong>la</strong>s localizaciones <strong>de</strong> dicho vecindario.<br />

62


_ N<br />

⇒ _ : AmbS AmbS<br />

Procesamiento <strong>de</strong> transición: Procesa una <strong>de</strong>c<strong>la</strong>ración <strong>de</strong> reg<strong>la</strong>s <strong>con</strong> el valor Val y<br />

<strong>de</strong>vuelve una nueva tab<strong>la</strong> <strong>de</strong> transiciones <strong>con</strong> <strong>la</strong> entrada <strong>de</strong>scrita por Val<br />

modificada <strong>con</strong> el nuevo estado.<br />

_ φ<br />

⇒ _ : Val x DecR x AmbS TransT<br />

4.4.5 Reg<strong>la</strong>s <strong>de</strong> Inferencia<br />

Reg<strong>la</strong> <strong>de</strong> <strong>con</strong>strucción <strong>de</strong> tab<strong>la</strong> <strong>de</strong> transiciones<br />

Inicio<br />

S = �<br />

i = 0<br />

_____________________________________<br />

�S, N , ρ ,φ .C , ∆ � →�i.S, N , ρ , φ .C , ∆ �<br />

Procesamiento <strong>de</strong> todas <strong>la</strong>s <strong>con</strong>figuraciones <strong>de</strong> vecinos<br />

i � 2<br />

| N |<br />

N [(i)2 / l l N ] N<br />

⇒ N ′<br />

(i, φ , N ′) φ<br />

⇒ ∆′<br />

0<br />

2<br />

�i.S, N ′, ρ ,C, ∆ � →�(i+1).S, N ′, ρ , φ .C, ∆′ �<br />

____________________________________________________<br />

� i.S, N , ρ ,φ .C, ∆ � →�S, N ′ , ρ φ .C, ∆′ �<br />

63


final<br />

| N |<br />

i > 2<br />

_____________________________________<br />

�i.S, N , ρ ,φ .C , ∆ � →��.S, N , ρ , C, ∆ �<br />

Reg<strong>la</strong> Asignación <strong>de</strong> vecindario<br />

_______________________________________________<br />

�S,�,�,(: vec l0 ... lm ;).C, ∆ � →�S, lm . ... . l0. N , � , C, ∆ �<br />

Reg<strong>la</strong> Dec<strong>la</strong>ración <strong>de</strong> Funciones<br />

Reg<strong>la</strong> <strong>de</strong> p<strong>la</strong>nos<br />

id ∉dom ρ<br />

___________________________________<br />

�S, N , ρ , (: id e;).C, ∆ � →�S, N , (id,e). ρ , C, ∆ �<br />

u ≠ �<br />

________________________________________________<br />

�i.u.v.S, N , ρ ,(>Pα ).C, ∆ � →�S, N , ρ , C,(i,u,v).α . ∆ �<br />

u = �<br />

_______________________________________________<br />

�i.u.v.S, N , ρ ,(>Pα ).C, ∆ � →�S, N , ρ , C,(i,v).α . ∆ �<br />

Reg<strong>la</strong> <strong>de</strong> todos los p<strong>la</strong>nos<br />

u ≠ �<br />

v� α<br />

2<br />

v ∈ {0,1}<br />

v0,v1, . . . , α<br />

(v)10 ⇒ (v)2 = v α<br />

. . . v1v0<br />

________________________________________________________<br />

�i.u.v.S, N , ρ ,(>PA).C, ∆ � →�S, N , ρ , C,(i,u,v).α . ... .(i,u,v).0. ∆ �<br />

64


u = �<br />

v� α<br />

2<br />

Reg<strong>la</strong> <strong>de</strong> Operadores<br />

Reg<strong>la</strong> <strong>para</strong> sitios<br />

Reg<strong>la</strong> <strong>para</strong> Valores<br />

v ∈ {0,1}<br />

v0,v1, . . . , α<br />

(v)10 ⇒ (v)2 = v α<br />

. . . v1v0<br />

________________________________________________________<br />

�i.u.v.S, N , ρ ,(>PA).C, ∆ � →�S, N , ρ , C,(i,v).α . ... .(i,v).0. ∆ �<br />

Ap(op,v, v′ ) op<br />

⇒ v ′′<br />

__________________________<br />

� v′ .v.S, N , ρ ,op.C, ∆ � →� v ′′ .S, N , ρ ,C, ∆ �<br />

l ∈ dom N<br />

N (l) l<br />

⇒ v<br />

______________________________<br />

�S, N , ρ ,l.C, ∆ � →�v.S, N , ρ ,C, ∆ �<br />

_______________________________<br />

�S, N , ρ ,v.C, ∆ � →�v.S, N , ρ ,C, ∆ �<br />

Reg<strong>la</strong>s <strong>de</strong> Pi<strong>la</strong> (dup, swap, drop)<br />

_____________________________________<br />

�v.S, N , ρ , dup.C, ∆ � → �v.v.S, N , ρ ,C, ∆ �<br />

_________________________________________<br />

�v’.v.S, N , ρ , swap.C, ∆ � → �v.v’.S, N , ρ ,C, ∆ �<br />

___________________________________<br />

�v.S, N , ρ , drop.C, ∆ � → �S, N , ρ ,C, ∆ �<br />

65


Reg<strong>la</strong> Int<br />

Reg<strong>la</strong> Bin<br />

Reg<strong>la</strong> Not<br />

Reg<strong>la</strong> IF ELSE THEN<br />

v0,v1, . . . ,vk ∈ {0,1}<br />

(vk . . . v1v0)2 base<br />

⇒ (vk . . . v1v0)10 = v′<br />

________________________________<br />

�k.v0.v1. . . . .vk..S, N , ρ , int.C, ∆ � → � v′ .S, N , ρ ,C, ∆ �<br />

v0,v1, . . . ,vk ∈ {0,1}<br />

(v)10 base<br />

⇒ (v)2 = vk . . . v1v0<br />

________________________________<br />

�k.v.S, N , ρ , bin.C, ∆ � → �v0.v1. . . . .vk..S, N , ρ ,C, ∆ �<br />

v≥ 1<br />

________________________<br />

�v.S, N , ρ ,not.C, ∆ � →�0.S, N , ρ ,C, ∆ �<br />

v = 0<br />

________________________<br />

�v.S, N , ρ ,not.C, ∆ � →�1.S, N , ρ ,C, ∆ �<br />

e e<br />

⇒ v<br />

v ≥ 1<br />

________________________<br />

�S, N , ρ ,(if e′ else e ′ then).e.C, ∆ � →�S, N , ρ , e′ .C, ∆ �<br />

66


Reg<strong>la</strong> IF THEN<br />

Reg<strong>la</strong> case<br />

e e<br />

⇒ v<br />

v = 0<br />

________________________<br />

�S, N , ρ , (if e′ else e ′ then).e.C, ∆ � →�S, N , ρ , e ′ .C, ∆ �<br />

e e<br />

⇒ v<br />

v ≥ 1<br />

________________________<br />

�S, N , ρ ,(if e′ then).e.C, ∆ � →�S, N , ρ , e′ .C, ∆ �<br />

e e<br />

⇒ v<br />

v = 0<br />

________________________<br />

�S, N , ρ , (if e′ then).e.C, ∆ � →�S, N , ρ ,C, ∆ �<br />

i ∈ {0 , ... , k}<br />

qi ∉dom ρ<br />

___________________________________<br />

�i.S, N , ρ , (case{q0 q1 ... qk}).C, ∆ � →�qi.S, N , ρ ,C, ∆ �<br />

i ∈ {0 , ... , k}<br />

qi ∈ dom ρ<br />

ρ (qi) ⇒ e<br />

___________________________________<br />

�i.S, N , ρ , (case{q0 q1 ... qk}).C, ∆ � →�S, N , ρ ,e.C, ∆ �<br />

Reg<strong>la</strong> <strong>de</strong> l<strong>la</strong>mado <strong>de</strong> Funciones<br />

id ∈ dom ρ<br />

ρ (id)⇒ e<br />

______________________<br />

�S, N , ρ ,id.C, ∆ � →�S, N , ρ ,e.C, ∆ �<br />

67


4.5 Descripción Informal <strong>de</strong> ACF<br />

El AC <strong>de</strong> ACF son 5 p<strong>la</strong>nos cada uno <strong>con</strong> un arreglo <strong>de</strong> 300 x 300 celdas, don<strong>de</strong><br />

cada celda sólo pue<strong>de</strong> tomar dos valores posibles: 1 y 0. Cada celda representa<br />

una localización ubicada en alguno <strong>de</strong> los 5 p<strong>la</strong>nos, así por ejemplo C1 representa<br />

<strong>la</strong> celda central en el p<strong>la</strong>no 1 (ver sección 4.5.6). ACF al procesar una reg<strong>la</strong><br />

especificada por el lenguaje <strong>de</strong> ACF, <strong>con</strong>struye una tab<strong>la</strong> <strong>de</strong> transiciones don<strong>de</strong> se<br />

calcu<strong>la</strong> el nuevo estado <strong>de</strong> una celda central en cualquiera <strong>de</strong> <strong>la</strong>s posibles<br />

<strong>con</strong>figuraciones <strong>de</strong> vecinos. Por ejemplo, <strong>con</strong>si<strong>de</strong>remos el código en lenguaje<br />

ACF <strong>de</strong> <strong>la</strong> siguiente reg<strong>la</strong> simple: si <strong>la</strong> celda izquierda y central tienen un valor <strong>de</strong><br />

0, entonces <strong>la</strong> celda central permanecerá como 0; <strong>de</strong> lo <strong>con</strong>trario cambiará a 1:<br />

:vec W C;<br />

rules<br />

: W C or >P0;<br />

La primera línea establece cuál va a ser el vecindario que va autilizar el AC, <strong>la</strong><br />

segunda línea establece que a <strong>con</strong>tinuación se especifican <strong>la</strong>s reg<strong>la</strong>s y <strong>la</strong> úitlima<br />

línea es <strong>la</strong> reg<strong>la</strong>. W y C correspon<strong>de</strong>n a localizaciones en el AC (ver sección<br />

4.5.6) y >P0 correspon<strong>de</strong> a <strong>la</strong> asignación <strong>de</strong> p<strong>la</strong>nos. Esta reg<strong>la</strong> dice simplemente<br />

que se aplica el operador lógico or a los valores <strong>de</strong> <strong>la</strong>s localizaciones <strong>de</strong> W y C. Al<br />

procesar esta reg<strong>la</strong>, ACF <strong>con</strong>struye <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones siguiente:<br />

W C W C or<br />

1 1 1<br />

1 0 1<br />

0 1 1<br />

0 0 0<br />

Que representan <strong>la</strong> 4 posibilida<strong>de</strong>s <strong>con</strong> dos vecinos. En <strong>la</strong> tercera línea <strong>la</strong> pa<strong>la</strong>bra<br />

>P0 significa que el resultado es colocado en <strong>la</strong> celda central <strong>de</strong>l p<strong>la</strong>no 0 (esto se<br />

explica en <strong>la</strong> sección 4.5.14). En cada iteración <strong>de</strong>l espacio celu<strong>la</strong>r, a cada celda<br />

<strong>de</strong>l arreglo se le aplica <strong>la</strong> reg<strong>la</strong> especificada, es <strong>de</strong>cir, ve el valor que tiene <strong>la</strong> celda<br />

izquierda, el valor propio y busca en <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones <strong>para</strong> <strong>de</strong>terminar el<br />

nuevo estado. Esta reg<strong>la</strong> propaga cualquier celda que se encuentre en estado 1<br />

en el p<strong>la</strong>no 0, hacia <strong>la</strong> <strong>de</strong>recha.<br />

En otras pa<strong>la</strong>bras, al compi<strong>la</strong>r <strong>la</strong> reg<strong>la</strong> especificada <strong>con</strong> el lenguaje ACF, se<br />

<strong>con</strong>struye <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones <strong>de</strong> estado <strong>para</strong> cada una <strong>de</strong> <strong>la</strong>s posibles<br />

<strong>con</strong>figuraciones <strong>de</strong> vecinos (Figura 25). Al evolucionar el AC, cada celda <strong>de</strong>l AC<br />

junto <strong>con</strong> su vecindario busca su nuevo estado en <strong>la</strong> tab<strong>la</strong>.<br />

68


Código en ACF <strong>de</strong> <strong>la</strong> reg<strong>la</strong><br />

: vec C N S W E ;<br />

rules<br />

: C N S W E xor xor xor xor >P0 ;<br />

Compi<strong>la</strong>ción<br />

Tab<strong>la</strong> <strong>de</strong> transiciones<br />

E W S N C P0<br />

0 0 0 0 0 0<br />

0 0 0 0 1 1<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

1 1 1 1 1 0<br />

Figura 25 Procesamiento <strong>de</strong>l lenguaje ACF.<br />

Al especificar una reg<strong>la</strong> <strong>de</strong> AC en el lenguaje ACF el código <strong>de</strong>be <strong>con</strong>tener <strong>la</strong>s<br />

siguientes partes:<br />

1) Dec<strong>la</strong>ración <strong>de</strong> vecindario.<br />

2) Dec<strong>la</strong>ración <strong>de</strong> funciones (opcional).<br />

3) <strong>Especificación</strong> <strong>de</strong> <strong>la</strong> reg<strong>la</strong>.<br />

Para cada celda y su vecindario,<br />

se busca <strong>la</strong> posición en <strong>la</strong> tab<strong>la</strong><br />

Evoluación<br />

<strong>de</strong>l AC<br />

Se coloca el valor <strong>de</strong><br />

nuevo estado <strong>de</strong> <strong>la</strong> tab<strong>la</strong><br />

Antes <strong>de</strong> <strong>de</strong>scribir en <strong>de</strong>talle cada una <strong>de</strong> estas partes (secciones 4.5.12, 4.5.13 y<br />

4.5.15), se hará una <strong>de</strong>scripción <strong>de</strong> <strong>la</strong>s características principales <strong>de</strong>l lenguaje.<br />

69


4.5.1 Pa<strong>la</strong>bras reservadas<br />

ACF <strong>con</strong>tiene <strong>la</strong>s siguientes pa<strong>la</strong>bras reservadas:<br />

Bloques<br />

Expresiones Condicionales<br />

Asignación <strong>de</strong> p<strong>la</strong>nos<br />

: (dos puntos) Inicio <strong>de</strong> bloque<br />

; (punto y coma) Final <strong>de</strong> Bloque<br />

vec <strong>de</strong>c<strong>la</strong>ración <strong>de</strong> vecinos<br />

rules Indica el inicio <strong>de</strong> especificación <strong>de</strong> reg<strong>la</strong>s<br />

if then expresión1 if expresión2 then<br />

if else then expresión1 if expresión2 else expresión3 then<br />

case { } expresión1 case { v1 [ v2 ......] } v pue<strong>de</strong> ser<br />

un l<strong>la</strong>mado a función o un valor entero<br />

>Pα expresión >Pα . Coloca el resultado <strong>de</strong> <strong>la</strong><br />

expresión en <strong>la</strong> celda central <strong>de</strong>l p<strong>la</strong>no α .<br />

α ={0,1,2,3,4}<br />

>PA expresión >PA . Toma el entero, resultado<br />

<strong>de</strong> <strong>la</strong> expresión y coloca el primer dígito <strong>de</strong><br />

<strong>la</strong> forma binaria, en el p<strong>la</strong>no 0 y el segundo<br />

en el p<strong>la</strong>no 1 y así sucesivamente hasta el<br />

p<strong>la</strong>no 4<br />

70


Pi<strong>la</strong><br />

Operadores Aritméticos<br />

dup dup. duplica el valor tope <strong>de</strong> <strong>la</strong> pi<strong>la</strong><br />

swap swap invierte <strong>la</strong> posición <strong>de</strong>l primero y<br />

segundo elemento <strong>de</strong> <strong>la</strong> pi<strong>la</strong><br />

drop drop elimina el primer elemento <strong>de</strong> <strong>la</strong> pi<strong>la</strong><br />

int expresión1 ... expresiónk k int. toma el valor<br />

k y los valores <strong>de</strong> k expresiones anteriores y<br />

los transforma en un entero<br />

div expresión1 expresión2 div. calcu<strong>la</strong> <strong>la</strong> división<br />

<strong>de</strong> enteros <strong>de</strong> <strong>la</strong> expresión1 entre expresión2<br />

mod expresión1 expresión2 mod. calcu<strong>la</strong> el<br />

residuo <strong>de</strong> <strong>la</strong> división <strong>de</strong> <strong>la</strong> expresión1 entre<br />

expresión2<br />

min expresión1 expresión2 min. <strong>de</strong>vuelve el<br />

valor menor entre <strong>la</strong> expresión1 y<br />

expresión2<br />

max expresión1 expresión2 max. <strong>de</strong>vuelve el<br />

valor mayor entre <strong>la</strong> expresión1 y<br />

expresión2<br />

bin expresión1 k bin. toma el resultado entero <strong>de</strong><br />

<strong>la</strong> expresión1 y coloca en <strong>la</strong> pi<strong>la</strong> los k<br />

primeros dígitos menos significativos en<br />

notación binaria <strong>de</strong> dicho entero.<br />

* expresión1 expresión2 *. multiplica<br />

expresión1 por expresión2<br />

- expresión1 expresión2 -. sustrae expresión1<br />

menos expresión2<br />

+ expresión1 expresión2 +. suma expresión1<br />

más expresión2<br />

71


Operadores Lógicos<br />

not expresión not . si el resultado <strong>de</strong> <strong>la</strong> expresión<br />

es 0 retorna 1, <strong>de</strong> lo <strong>con</strong>trario 0<br />

and expresión1 expresión2 and. Si el resultado<br />

<strong>de</strong> ambas expresiones es mayor que 1<br />

entonces el resultado es 1, <strong>de</strong> lo <strong>con</strong>trario es<br />

0.<br />

or expresión1 expresión2 or. Si el resultado <strong>de</strong><br />

ambas expresiones es 0 entonces el resultado<br />

es 0, <strong>de</strong> lo <strong>con</strong>trario es 1.<br />

xor expresión1 expresión2 xor.<br />

> expresión1 expresión2 > . El resultado es 1<br />

si <strong>la</strong> expresión1 da un resultado mayor que <strong>la</strong><br />

expresión2<br />

< expresión1 expresión2 < . El resultado es 1<br />

si <strong>la</strong> expresión1 da un resultado menor que <strong>la</strong><br />

expresión2<br />

>= expresión1 expresión2 >=. El resultado es 1<br />

si <strong>la</strong> expresión1 da un resultado mayor o<br />

igual a <strong>la</strong> expresión2<br />


4.5.2 Notación Posfija<br />

ACF utiliza notación posfija. En notación posfija, los operadores aritméticos y<br />

lógicos se colocan <strong>de</strong>spués <strong>de</strong> los operandos. Así <strong>la</strong> operación en notación infija<br />

(2 + 3)*2 se <strong>con</strong>vierte en notación posfija 2 3 + 2 *. Nótese que en este tipo <strong>de</strong><br />

notación los paréntesis no son necesarios. Algunos ejemplos com<strong>para</strong>dos <strong>con</strong><br />

notación infija se muestran a <strong>con</strong>tinuación:<br />

4.5.3 La Pi<strong>la</strong><br />

Notación Infija Notación ACF<br />

(posfija)<br />

((2+4) div (3 *4)) mod 5 2 4 + 3 4 * div 5 mod<br />

(1 or 0) and (not 1) 1 0 or 1 not and<br />

<strong>Un</strong>a pi<strong>la</strong> es un grupo or<strong>de</strong>nado <strong>de</strong> elementos <strong>de</strong>l mismo tipo. Al agregar<br />

elementos a <strong>la</strong> pi<strong>la</strong>, sólo se pue<strong>de</strong>n agregar en el tope y al quitarlos, so<strong>la</strong>mente se<br />

pue<strong>de</strong>n sacar <strong>de</strong>l tope. En el caso <strong>de</strong> ACF existe una pi<strong>la</strong> <strong>de</strong> números enteros<br />

que procesa <strong>la</strong>s expresiones. Si <strong>la</strong> unidad <strong>de</strong> <strong>con</strong>trol encuentra un número, esta lo<br />

colocará en el tope <strong>de</strong> <strong>la</strong> pi<strong>la</strong> (push), y si encuentra un operador sacará uno o dos<br />

valores <strong>de</strong> <strong>la</strong> pi<strong>la</strong> (pop), <strong>de</strong>pendiendo <strong>de</strong>l operador, aplicará <strong>la</strong> operación y<br />

almacenará <strong>la</strong> información en el tope <strong>de</strong> <strong>la</strong> pi<strong>la</strong>. Ej.:<br />

Expresión: 1 0 or 1 not and :<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

... ... ...<br />

1 Push 1 1...<br />

0 Push 0 1 0 ...<br />

or 1 or 0 = 1 1...<br />

1 Push 1 1 1 ...<br />

not not 1 = 0, push 0 1 0 ...<br />

and 1 and 0 = 0, push 0 0 ...<br />

73


Expresión: 2 3 * 3 5 4 + + div<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

... ... ...<br />

2 Push 2 2 ...<br />

3 Push 3 2 3 ...<br />

* 2 * 3 = 6 , push 6 6 ...<br />

3 Push 3 6 3 ...<br />

5 Push 5 6 3 5 ...<br />

4 Push 4 6 3 5 4<br />

...<br />

+ 5 + 4 = 9, push 9 6 3 9 ...<br />

+ 3 + 9 = 12, push 12 6 12 ...<br />

div 6 div 12 = 0 , push 0 0...<br />

4.5.4 Valores Númericos y Valores Lógicos<br />

ACF opera so<strong>la</strong>mente <strong>con</strong> números enteros, entonces cualquier valor numérico,<br />

pertenece al <strong>con</strong>junto <strong>de</strong> enteros. Los valores lógicos “verda<strong>de</strong>ro” y “falso”, son<br />

interpretados como 1 y 0 respectivamente. Si se aplica un operador lógico sobre<br />

valores enteros mayores que 1, éstos serán interpretados como verda<strong>de</strong>ros, así<br />

por ejemplo:<br />

4.5.5 Localizaciones<br />

Expresión Resultado en Pi<strong>la</strong><br />

2 3 or 1<br />

4 0 and 0<br />

2 1 and 1<br />

Las localizaciones correspon<strong>de</strong>n a sitios en el vecindario <strong>de</strong> un autómata celu<strong>la</strong>r.<br />

En ACF estas son variables (no asignables) que toman valores <strong>de</strong> 0 o 1,<br />

<strong>de</strong>pendiendo <strong>de</strong>l estado <strong>de</strong> <strong>la</strong> <strong>con</strong>figuración <strong>de</strong> vecinos. ACF procesa <strong>la</strong> reg<strong>la</strong> y<br />

crea <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones asignando <strong>para</strong> cada <strong>con</strong>figuración posible los valores<br />

<strong>de</strong>l vecindario y calcu<strong>la</strong>ndo, según <strong>la</strong> reg<strong>la</strong> especificada, el resultado que se<br />

asigna a <strong>la</strong> celda central en cualquiera <strong>de</strong> sus p<strong>la</strong>nos.<br />

74


Las localizaciones son:<br />

Localización Posición <strong>con</strong> respecto a <strong>la</strong><br />

celda central<br />

C celda central<br />

N norte<br />

S sur<br />

E este<br />

W oeste<br />

NE noreste<br />

NW noroeste<br />

SE sureste<br />

SW suroeste<br />

A<strong>de</strong>más, a cada una <strong>de</strong> estas localizaciones, se le pue<strong>de</strong> agregar sufijos, que<br />

indican el p<strong>la</strong>no sobre el cual serán aplicados {0,1,2,3,4}, o si se refieren al vecino<br />

siguiente <strong>de</strong>l más cercano {+}. Por ejemplo, el vecino superior al vecino Norte en<br />

el p<strong>la</strong>no 1 <strong>de</strong> <strong>la</strong> celda central correspon<strong>de</strong> a N1+, y el vecino norte en el p<strong>la</strong>no 0<br />

es N, el vecino superior <strong>de</strong>l vecino norte en el p<strong>la</strong>no 0 es N+.<br />

4.5.6 Expresiones<br />

Las expresiones son cualquier número, localización, o combinación <strong>de</strong> números y<br />

localizaciones <strong>con</strong> operadores (aritméticos, lógicos, binarios, <strong>de</strong> pi<strong>la</strong>), sentencias<br />

if, o sentencias case. <strong>Un</strong>a expresión, al ser evaluada, siempre <strong>de</strong>vuelve un valor<br />

que queda en el tope <strong>de</strong> <strong>la</strong> pi<strong>la</strong>. Los siguientes son ejemplos <strong>de</strong> expresiones:<br />

� 2<br />

� 2 3 +<br />

� 1 0 xor<br />

� 3 1 + 5 6 * or<br />

� 8sum case { 0 0 0 1 1 0 0 0 }<br />

� C 0 = if C N + else C then<br />

4.5.7 Expresiones Aritméticas y Lógicas<br />

ACF opera so<strong>la</strong>mente <strong>con</strong> valores enteros, por tanto <strong>la</strong>s operaciones aritméticas y<br />

lógicas aplican so<strong>la</strong>mente a este tipo <strong>de</strong> valores. Las operaciones lógicas que se<br />

aplican son or, and, xor, =, , =, not y <strong>la</strong>s aritméticas +, - , *, div, mod, max y<br />

min. Los operadores se escriben <strong>de</strong> <strong>la</strong> siguiente manera:<br />

expresión1 expresión2 Operador<br />

75


Ej.: 2 3 + , 4 3 * , 3 2 div, etc.<br />

El resultado <strong>de</strong> aplicar operadores lógicos and, or, xor y not; se muestra en el<br />

siguiente cuadro:<br />

p q p and q p or q p xor q not p<br />

1 1 1 1 0 0<br />

1 0 0 1 1 0<br />

0 1 0 1 1 1<br />

0 0 0 0 0 1<br />

4.5.8 Operadores <strong>de</strong> números binarios<br />

Los operadores <strong>de</strong> números binarios int y bin, permiten <strong>con</strong>versión <strong>de</strong> notación<br />

<strong>de</strong>cimal a binario y viceversa. Ej.:<br />

Expresión : 1 1 0 1 4 int<br />

Expresión : 13 3 bin<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

1 Push 1 1...<br />

1 Push 1 1 1 ...<br />

0 Push 0 1 1 0 ...<br />

1 Push 1 1 1 0 1 ...<br />

4 Push 4 1 1 0 1 4 ...<br />

int 1*2 0 +0*2 1 +1*2 2 +1*2 3 = 13<br />

push 13 13 ...<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

13 push 13 13...<br />

3 push 3 13 3 ...<br />

bin 1310=...<br />

1*2 2 , push 1<br />

0*2 1 , push 0<br />

1*2 0 , push 1<br />

76<br />

1 ...<br />

1 0 ...<br />

1 0 1 ...


4.5.9 Operadores <strong>de</strong> Pi<strong>la</strong><br />

Los operadores dup, drop, swap; cambian el estado <strong>de</strong> <strong>la</strong> pi<strong>la</strong>. Ej.<br />

Expresión: 1 2 + dup<br />

Expresión: 1 2 drop<br />

Expresión: 1 2 swap<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

1 push 1 1 ...<br />

2 push 2 1 2 ...<br />

+ 1 + 2 , push 3 3 ...<br />

dup pop<br />

push 3<br />

push 3<br />

77<br />

...<br />

3 ...<br />

3 3 ...<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

1 push 1 1 ...<br />

2 push 2 1 2 ...<br />

drop pop 1 ...<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

1 push 1 1 ...<br />

2 push 2 1 2 ...<br />

swap pop<br />

pop<br />

push 2<br />

push 1<br />

4.5.10 Expresiones Condicionales if else then.<br />

1 ...<br />

...<br />

2 ...<br />

2 1 ...<br />

Las expresiones <strong>con</strong>dicionales, if then, if else then; son evaluadas <strong>de</strong> <strong>la</strong> siguiente<br />

manera:<br />

La expresión if then:<br />

expresión1 if expresión2 then<br />

Si al evaluar <strong>la</strong> expresión1, queda un valor <strong>de</strong> 1 o mayor, se evalua <strong>la</strong> expresión2, <strong>de</strong><br />

lo <strong>con</strong>trario, no suce<strong>de</strong> nada. Ej.:<br />

Expresión: 2 C if 1 + then 2 +


caso C=1<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

2 push 2 2 ...<br />

C C = 1<br />

push 1<br />

78<br />

2 1 ...<br />

if 1 � 1 = verda<strong>de</strong>ro 2 ...<br />

1 push 1 2 1 ...<br />

+ 2 + 1 = 3<br />

push 3 3 ...<br />

2 push 2 3 2 ...<br />

+ 3 + 2 = 5<br />

push 5<br />

5 ...<br />

Caso C=0<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

2 push 2 2 ...<br />

C C = 1<br />

En <strong>la</strong> expresión if else then:<br />

push 1<br />

2 1 ...<br />

if 0 � 1 = falso 2 ...<br />

2 push 2 2 2 ...<br />

+ 2 + 2 = 4<br />

push 4 4 ...<br />

expresión1 if expresión2 else expresión3 then<br />

Si al evaluar <strong>la</strong> expresión1, queda un valor <strong>de</strong> 1 o mayor, se evalua <strong>la</strong> expresión2, <strong>de</strong><br />

lo <strong>con</strong>trario, se evalua expresión3.<br />

Expresión: 2 C if 1 + else 3 + then 2 +<br />

caso C=1<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

2 push 2 2 ...<br />

C C = 1<br />

push 1<br />

2 1 ...<br />

if 1 � 1 = verda<strong>de</strong>ro 2 ...<br />

1 push 1 2 1 ...<br />

+ 2 + 1 = 3<br />

push 3 3 ...<br />

2 push 2 3 2 ...<br />

+ 3 + 2 = 5<br />

push 5<br />

5 ...


caso C=0<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

2 push 2 2 ...<br />

C C = 1<br />

push 1<br />

79<br />

2 1 ...<br />

if 0 � 1 = falso 2 ...<br />

3 push 3 2 3 ...<br />

+ 2 + 3 = 5<br />

push 5 5 ...<br />

2 push 2 5 2 ...<br />

+ 5 + 2 = 7<br />

push 7<br />

4.5.11 Expresión Condicional Case<br />

La expresión case toma el valor <strong>de</strong> <strong>la</strong> pi<strong>la</strong> y lo utiliza como índice <strong>para</strong> seleccionar<br />

el elemento <strong>de</strong> <strong>la</strong> lista <strong>de</strong>l case, <strong>la</strong> sintaxis es:<br />

expresión1 case { v1 [ v2 ...] }<br />

El valor v pue<strong>de</strong> ser un valor entero o un l<strong>la</strong>mado a función. Supongamos que en<br />

<strong>la</strong> siguiente expresión C =1 y N =0, entonces <strong>la</strong> expresión (suponga que <strong>la</strong> función<br />

suma retorna el valor 3 en <strong>la</strong> pi<strong>la</strong>):<br />

Expresión: C N 2 int case { 0 1 suma 0 } 2 +<br />

7 ...<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

C C= 1<br />

push 1 2 1 ...<br />

N N = 0<br />

push 0 2 1 0 ...<br />

2 push 2 2 1 0 2 ...<br />

int pop<br />

0*2 0 +1*2 1 2 1 0 ...<br />

= 2 2 ...<br />

push 2 2 2 ...<br />

case pop<br />

2 ...<br />

función suma 2 3 ...<br />

+ 2 + 3 = 5<br />

push 5 5 ...<br />

Note que en el ejemplo, suma correspon<strong>de</strong> a <strong>la</strong> posición 2 <strong>de</strong>l case <strong>con</strong>tando<br />

<strong>de</strong>s<strong>de</strong> 0. Las <strong>de</strong>c<strong>la</strong>raciones y l<strong>la</strong>mados <strong>de</strong> funciones se explicarán en <strong>la</strong> sección<br />

4.5.13.


4.5.12 Dec<strong>la</strong>ración <strong>de</strong> Vecindario<br />

Esta siempre estará al inicio <strong>de</strong> un programa <strong>de</strong> ACF y tiene <strong>la</strong> siguiente sintaxis<br />

: vec lista <strong>de</strong> localizaciones ;<br />

<strong>la</strong> lista <strong>de</strong> localizaciones pue<strong>de</strong> ser cualquiera <strong>de</strong> <strong>la</strong> localizaciones explicadas en <strong>la</strong><br />

sección 4.5.5. Ej.: el vecindario <strong>de</strong> von Neumann <strong>de</strong> 5 vecinos es:<br />

: vec C N S E W ;<br />

Para el caso <strong>de</strong>l vecindario <strong>de</strong> Moore, <strong>con</strong> 9 vecinos:<br />

: vec C N S E W NE NW SE SW ;<br />

La <strong>de</strong>c<strong>la</strong>ración <strong>de</strong>l vecindario, <strong>de</strong>termina el número <strong>de</strong> entradas en <strong>la</strong> tab<strong>la</strong> <strong>de</strong><br />

transición, a<strong>de</strong>más <strong>de</strong>l or<strong>de</strong>n en que serán revisados los vecinos cuando el AC<br />

esté corriendo.<br />

4.5.13 Funciones<br />

Las funciones <strong>de</strong>ben ser <strong>de</strong>c<strong>la</strong>radas <strong>de</strong>spués <strong>de</strong> <strong>la</strong> <strong>de</strong>c<strong>la</strong>ración <strong>de</strong> vecinos y antes<br />

<strong>de</strong> especificar <strong>la</strong>s reg<strong>la</strong>s en un programa <strong>de</strong> ACF (que inician <strong>con</strong> <strong>la</strong> pa<strong>la</strong>bra rules).<br />

Las funciones pue<strong>de</strong>n tomar valores <strong>de</strong> <strong>la</strong> pi<strong>la</strong> como parámetros, y el valor<br />

resultado siempre se colocará en el tope <strong>de</strong> <strong>la</strong> pi<strong>la</strong>. La sintaxis es:<br />

: vec lista <strong>de</strong> localizaciones;<br />

: nombre_función1 expresión ;<br />

: nombre_función2 expresión ;<br />

.<br />

.<br />

: nombre_funciónn expresión ;<br />

rules<br />

Toda función <strong>de</strong>be comenzar <strong>con</strong> un nombre <strong>de</strong> función cualquiera, que no<br />

<strong>con</strong>tenga espacios y que no sea alguna pa<strong>la</strong>bra reservada. Si una función es<br />

<strong>de</strong>c<strong>la</strong>rada <strong>con</strong> el mismo nombre, <strong>la</strong> primera <strong>de</strong>c<strong>la</strong>ración prevalecerá. No hay<br />

estructura <strong>de</strong> bloques y <strong>la</strong>s funciones no se anidan sintácticamente. Para invocar<br />

una función basta <strong>con</strong> l<strong>la</strong>mar<strong>la</strong> por su nombre en el cuerpo <strong>de</strong> una expresión. Ej. :<br />

Consi<strong>de</strong>remos <strong>la</strong>s siguientes <strong>de</strong>c<strong>la</strong>raciones <strong>de</strong> funciones :<br />

: cuadrado dup *;<br />

: suma_al_cuadrado C N + cuadrado;<br />

80


Consi<strong>de</strong>remos ahora que C = 1 y N = 1, entonces <strong>con</strong>si<strong>de</strong>remos <strong>la</strong> siguiente<br />

expresión que hace un l<strong>la</strong>mado a suma_al_cuadrado:<br />

Expresión: 2 suma_al_cuadrado +<br />

Valor leído Operación que se realiza Pi<strong>la</strong><br />

2 push 2 2 ...<br />

suma_al_cuadrado l<strong>la</strong>mado a función<br />

suma_al_cuadrado<br />

2 ...<br />

C C = 1<br />

push 1 2 1 ...<br />

N N = 1<br />

push 1 2 1 1 ...<br />

+ 1 + 1 = 2 2 ...<br />

push 2 2 2 ...<br />

cuadrado l<strong>la</strong>mado a función<br />

cuadrado<br />

2 2 ...<br />

dup pop 2 ...<br />

push 2 2 2 ...<br />

push 2 2 2 2 ...<br />

* 2 * 2 = 4 2 ...<br />

push 4 2 4 ...<br />

fin <strong>de</strong> cuadrado 2 4 ..<br />

fin <strong>de</strong><br />

suma_al_cuadrado<br />

2 4 ...<br />

+ 2 + 4 = 6 ...<br />

push 6 6 ...<br />

Nótese que <strong>la</strong> función cuadrado utiliza el primer elemento <strong>de</strong> <strong>la</strong> pi<strong>la</strong> que es pasado<br />

por <strong>la</strong> función suma_al_cuadrado.<br />

4.5.14 Asignación <strong>de</strong> p<strong>la</strong>nos<br />

La asignación <strong>de</strong> p<strong>la</strong>nos, indica que el resultado <strong>de</strong> <strong>la</strong> expresión evaluada <strong>de</strong>be<br />

ser colocado en <strong>la</strong> celda central <strong>de</strong> uno <strong>de</strong> los p<strong>la</strong>nos <strong>de</strong>l AC. La forma <strong>de</strong> asignar<br />

p<strong>la</strong>nos es <strong>la</strong> siguiente:<br />

expresion >Pα<br />

don<strong>de</strong> α es un valor entre 0 y 4. Si por ejemplo α es 1 entonces >P1 indica que<br />

el resultado <strong>de</strong> <strong>la</strong> expresión a evaluar <strong>de</strong>be ser colocado en el p<strong>la</strong>no 1. Toda reg<strong>la</strong><br />

<strong>con</strong>struida <strong>con</strong> ACF <strong>de</strong>be indicar mediante asignación <strong>de</strong> p<strong>la</strong>nos, qué hacer <strong>con</strong> el<br />

resultado, <strong>de</strong> lo <strong>con</strong>trario al compi<strong>la</strong>r <strong>la</strong> reg<strong>la</strong>, el resultado siempre será 0.<br />

81


Recuer<strong>de</strong> que una celda en un p<strong>la</strong>no sólo ue<strong>de</strong> tener estado 0 y 1, por tanto si se<br />

asigna un valor mayor que 1 este se colocará como 1. Si usted <strong>de</strong>sea colocar un<br />

valor mayor que 1 en todos los p<strong>la</strong>nos, entonces utilice >PA. >PA <strong>con</strong>vierte el<br />

valor entero producto <strong>de</strong> <strong>la</strong> expresión a notación binaria y coloca cada uno <strong>de</strong> los<br />

dígitos binarios en cada p<strong>la</strong>no <strong>de</strong> ACF. La cifra menos significativa <strong>de</strong>l número<br />

binario correspon<strong>de</strong> al p<strong>la</strong>no 0. Esto permite asignar todos los p<strong>la</strong>nos <strong>de</strong> manera<br />

rápida y sin escribir tanto código. Veamos por ejemplo <strong>la</strong>s siguientes funciones<br />

equivalentes:<br />

SinUtilizar >PA Utilizando >PA<br />

:3 2 bin >P0 >P1; : 3 >PA ;<br />

Al asignar p<strong>la</strong>nos <strong>con</strong> >PA no es necesario <strong>con</strong>vertir explícitamente el valor entero<br />

3 a binario; dado que >PA lo hace implícitamente.<br />

4.5.15 Programas <strong>de</strong> ACF<br />

Como se mencionó al inicio <strong>de</strong> este capítulo un programa <strong>de</strong> ACF especifica una<br />

reg<strong>la</strong>s <strong>de</strong> funcionamiento <strong>de</strong>l AC. Utilicemos el ejemplo <strong>de</strong> <strong>la</strong> reg<strong>la</strong> <strong>de</strong>l juego <strong>de</strong> <strong>la</strong><br />

vida:<br />

: vec C N S E W NE NW SE SW ;<br />

: 8sum N S E W NE NW SE SW + + + + + + + ;<br />

rules<br />

: C 0 = if<br />

8sum case { 0 0 0 1 0 0 0 0 0 }<br />

else<br />

8sum case { 0 0 1 1 0 0 0 0 0 }<br />

then >P0 ;<br />

La primera línea en ACF siempre <strong>de</strong>be ser <strong>la</strong> <strong>de</strong>c<strong>la</strong>ración <strong>de</strong> vecindario. Esto<br />

permite al compi<strong>la</strong>dor <strong>de</strong>terminar el número <strong>de</strong> posibilida<strong>de</strong>s en <strong>la</strong> tab<strong>la</strong> <strong>de</strong><br />

transiciones que <strong>de</strong>ben ser calcu<strong>la</strong>das, y el or<strong>de</strong>n en que se lee el vecindario. En<br />

el caso <strong>de</strong>l juego <strong>de</strong> <strong>la</strong> vida, se especifica un vecindario <strong>de</strong> 9 vecinos (4<br />

ortogonales, 4 esquinas y <strong>la</strong> celda central). En <strong>la</strong> segunda línea se <strong>de</strong>c<strong>la</strong>ra una<br />

función l<strong>la</strong>mada “8sum” esta toma los 8 vecinos <strong>de</strong> <strong>la</strong> celda central y los suma,<br />

colocando el resultado <strong>de</strong> <strong>la</strong> suma en <strong>la</strong> pi<strong>la</strong>. Esta función es invocada en el<br />

cuerpo <strong>de</strong>l programa, don<strong>de</strong> se establecen <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong>l juego <strong>de</strong> <strong>la</strong> vida.<br />

82<br />

Dec<strong>la</strong>ración <strong>de</strong> vecindario<br />

Dec<strong>la</strong>ración <strong>de</strong> funciones<br />

Reg<strong>la</strong>s <strong>de</strong>l AC (cuerpo <strong>de</strong>l<br />

programa)


4.5.16 Reg<strong>la</strong>s probabilísticas<br />

El lenguaje ACF provee dos posibilida<strong>de</strong>s <strong>de</strong> <strong>con</strong>struir reg<strong>la</strong>s probabilísticas:<br />

expresión1 expresión2 expresión3 pcase<br />

pcase permite que <strong>la</strong> expresión1 se ejecuta <strong>con</strong> probabilidad expresión2 / expresión3. Si<br />

no ocurre <strong>la</strong> expresión1, entonces, al asignar el p<strong>la</strong>no, <strong>la</strong> celda no cambiará <strong>de</strong><br />

estado. Veamos el ejemplo:<br />

:vec C N S E W;<br />

rules<br />

: C N S E W + + + + dup 5 pcase >PA;<br />

La reg<strong>la</strong> hace primero una suma <strong>de</strong> <strong>la</strong>s celdas C,N,S,E,W; y luego duplica el<br />

resultado <strong>de</strong> <strong>la</strong> pi<strong>la</strong>. pcase toma <strong>la</strong> copia <strong>de</strong>l resultado <strong>de</strong> <strong>la</strong> suma lo divi<strong>de</strong> entre 5,<br />

estableciendo varias posibilida<strong>de</strong>s, <strong>de</strong>pendiendo <strong>de</strong>l resultado <strong>de</strong> <strong>la</strong> suma, es<br />

<strong>de</strong>cir:<br />

C N S E W + + + + pcase (probabilidad <strong>de</strong> ocurrencia)<br />

1 1 / 5 = 0.2<br />

2 2 / 5 = 0.4<br />

3 3 / 5 = 0.6<br />

4 4 / 5 = 0.8<br />

5 5 / 5 = 1<br />

Esto quiere <strong>de</strong>cir que: si <strong>la</strong> suma <strong>de</strong> vecinos es 1 entonces se asigna 1 <strong>con</strong><br />

probabilidad <strong>de</strong> 0.2 y no cambia <strong>con</strong> probabilidad <strong>de</strong> 0.8 (1-0.2); si <strong>la</strong> suma es 2<br />

entonces se asigna 2 <strong>con</strong> probabilidad 0.4 y no cambia <strong>con</strong> 0.6, y así<br />

sucesivamente.<br />

La otra posibilidad es:<br />

: v prob expresión1 ;<br />

Esta probabilidad se asigna a todo el cuerpo <strong>de</strong> <strong>la</strong> reg<strong>la</strong>, por ello es necesario<br />

<strong>de</strong>finir dos o más reg<strong>la</strong>s <strong>de</strong> <strong>la</strong> siguiente forma:<br />

rules<br />

: v1 prob expresión1 ;<br />

: v2 prob expresión2 ;<br />

83


...<br />

: vn prob expresiónn ;<br />

Esto indica que <strong>la</strong> expresiónj (1� j � n) ocurrirá <strong>con</strong> probabilidad<br />

En el caso <strong>de</strong> utilizar prob, se pue<strong>de</strong>n establecer <strong>la</strong> probabilidad <strong>de</strong> ocurrir<br />

diferentes reg<strong>la</strong>s <strong>de</strong>ntro <strong>de</strong>l mismo AC. En el caso <strong>de</strong> utilizar pcase, se establece <strong>la</strong><br />

probabilidad <strong>de</strong> ocurrir un caso particu<strong>la</strong>r <strong>de</strong>ntro <strong>de</strong> <strong>la</strong> misma reg<strong>la</strong>.<br />

4.5.17 Comentarios en ACF<br />

Los comentarios se escriben entre “/*” y “*/”. Cualquier texto entre estos<br />

marcadores será ignorado por el compi<strong>la</strong>dor. Ej:<br />

/* Parity. reg<strong>la</strong> propuesta por Fredkin<br />

Es el AC <strong>con</strong> capacidad <strong>de</strong> auto-replicación más simple */<br />

: vec C N S W E ;<br />

rules<br />

: C N S W E xor xor xor xor >P0 ;<br />

4.6 Comentario Final<br />

SI bien <strong>la</strong> <strong>de</strong>scripción semántica formal <strong>de</strong> un lenguaje es un terreno difícil, su<br />

formalización permite su rápida implementación. Cualquier persona familiarizada<br />

<strong>con</strong> este tipo <strong>de</strong> <strong>de</strong>scripción <strong>de</strong> lenguaje, pue<strong>de</strong> utilizar<strong>la</strong> <strong>para</strong> implementar su<br />

propia versión <strong>de</strong>l procesador <strong>de</strong>l lenguaje y <strong>de</strong>finir su propio ambiente <strong>de</strong><br />

especificación <strong>de</strong> AC. Por otro <strong>la</strong>do, <strong>la</strong> <strong>de</strong>scripción informal, permite a un usuario<br />

familiarizarse <strong>con</strong> <strong>la</strong>s posibilida<strong>de</strong>s <strong>de</strong> este lenguaje <strong>para</strong> especificar AC.<br />

A partir <strong>de</strong> esta <strong>de</strong>scripción semántica y sintáctica, se implementó un procesador<br />

<strong>de</strong> lenguaje y un ambiente <strong>para</strong> trabajar <strong>con</strong> AC. Esta implementación se <strong>de</strong>scribe<br />

en el capítulo siguiente.<br />

84<br />

v<br />

n<br />

∑<br />

i=<br />

1<br />

j<br />

v<br />

i


5 Autómata Celu<strong>la</strong>r-FORTH <strong>para</strong> Windows (ACFw)<br />

5.1 Introducción<br />

A partir <strong>de</strong> <strong>la</strong> <strong>de</strong>scripción semántica y sintáctica <strong>de</strong> ACF (<strong>de</strong>scrita en el capítulo 4),<br />

se implementó, como parte <strong>de</strong> <strong>la</strong> tesis, un procesador <strong>de</strong>l lenguaje ACF y una<br />

interfaz que permite mo<strong>de</strong><strong>la</strong>r AC. Esta implementación se <strong>de</strong>nomina ACFw<br />

(Autómata Celu<strong>la</strong>r-FORTH <strong>para</strong> Windows). ACFw es un programa <strong>para</strong> Windows,<br />

que permite <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> AC mediante el lenguaje ACF. Este ambiente <strong>de</strong><br />

AC permite realizar varias funciones <strong>para</strong> el diseño y análisis <strong>de</strong> AC, algunos <strong>de</strong><br />

los cuales son:<br />

� Programación <strong>de</strong> AC <strong>de</strong>terminísticos <strong>de</strong> 1 ó 2 dimensiones.<br />

� Programación <strong>de</strong> AC probabilísticos <strong>de</strong> 1 ó 2 dimensiones.<br />

� Evolución visual <strong>de</strong> AC.<br />

� Establecer diferentes <strong>con</strong>figuraciones iniciales <strong>para</strong> AC.<br />

� Grabar resultados <strong>de</strong> AC<br />

� Utilizar máscaras gráficas como <strong>con</strong>figuración inicial <strong>de</strong>l AC.<br />

� Aplicar métodos estadísticos <strong>para</strong> analizar <strong>la</strong> evolución <strong>de</strong> AC.<br />

En este capítulo se hace una <strong>de</strong>scripción general <strong>de</strong> <strong>la</strong> programación <strong>de</strong> ACFw,<br />

posteriormente se explica el funcionamiento <strong>de</strong>l programa <strong>con</strong> sus comandos <strong>para</strong><br />

finalizar <strong>con</strong> <strong>la</strong> explicación <strong>de</strong> 4 ejemplos.<br />

5.2 Programación <strong>de</strong> ACFw<br />

ACFw 77 fue programado en Delphi 3.0. Delphi es un ambiente <strong>de</strong> programación<br />

orientado a objetos <strong>para</strong> el <strong>de</strong>sarrollo rápido <strong>de</strong> aplicaciones <strong>de</strong> propósito general<br />

o <strong>de</strong> programas más sofisticados <strong>de</strong> manejo <strong>de</strong> datos. El compi<strong>la</strong>dor <strong>de</strong> Delphi<br />

permite crear ejecutables auto-<strong>con</strong>tenidos (archivos EXE), esto incrementa su<br />

eficiencia en com<strong>para</strong>ción <strong>con</strong> lenguajes interpretados y permite que <strong>la</strong> aplicación<br />

final no <strong>de</strong>penda <strong>de</strong> ninguna librería especial (DLL). [Bor<strong>la</strong>nd, 1997]<br />

La programación <strong>de</strong> ACFw <strong>con</strong>sistió en <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> tres objetos importantes<br />

y <strong>la</strong> interfaz:<br />

� El compi<strong>la</strong>dor <strong>de</strong>l lenguaje ACF (TCompi<strong>la</strong>dor)<br />

� El Autómata Celu<strong>la</strong>r (TAC)<br />

� El generador <strong>de</strong> números aleatorios (TRandom)<br />

� Interfaz en Windows <strong>de</strong> ACFw.<br />

77 Es importante distinguir entre tres abreviaciones utilizadas hasta ahora: AC = autómata celu<strong>la</strong>r<br />

ACF = <strong>Lenguaje</strong> <strong>para</strong> especificar autómatas celu<strong>la</strong>res y ACFw = interfaz en Windows que procesa<br />

el lenguaje ACF y ejecuta el autómata celu<strong>la</strong>r.<br />

85


5.2.1 Objeto Compi<strong>la</strong>dor (Tcompi<strong>la</strong>dor)<br />

El objeto TCompi<strong>la</strong>dor <strong>con</strong>tiene los siguientes objetos:<br />

1) TVecinos: Lista <strong>de</strong> vecinos (Vecindario <strong>de</strong> AC)<br />

2) TparseTree: árbol <strong>de</strong> expresiones.<br />

3) TTransTable: Tab<strong>la</strong> <strong>de</strong> transiciones. Esta tab<strong>la</strong> es un vector don<strong>de</strong> se<br />

almacenan todos los resultados <strong>de</strong> evaluar el árbol <strong>de</strong> expresión <strong>con</strong> todas <strong>la</strong>s<br />

posibles combinaciones <strong>de</strong> vecinos.<br />

Al crear el objeto, se <strong>con</strong>struye el árbol <strong>de</strong> expresiones (TParseTree) y <strong>la</strong> lista <strong>de</strong><br />

vecinos (Tvecinos) a partir <strong>de</strong> una secuencia <strong>de</strong> caracteres, que representan un<br />

programa en lenguaje ACF (lenguaje fuente). TCompi<strong>la</strong>dor tiene un método<br />

l<strong>la</strong>mado “Compile”, que <strong>con</strong>struye <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones (programa meta)<br />

TTransTable evaluando en TParseTree todas <strong>la</strong>s posibles <strong>con</strong>figuraciones <strong>de</strong> dos<br />

estados <strong>de</strong> los elementos <strong>de</strong>l objeto Tvecinos (Figura 26)<br />

<strong>Lenguaje</strong><br />

ACF<br />

TCompiler<br />

Errores<br />

Figura 26 Proceso <strong>de</strong> compi<strong>la</strong>ción <strong>de</strong> TCompiler<br />

Tcompi<strong>la</strong>dor levanta dos tipos <strong>de</strong> excepciones: errores sintácticos y errores <strong>de</strong><br />

<strong>con</strong>strucción <strong>de</strong> tab<strong>la</strong>. En el primer caso al ocurrir un error retorna un mensaje <strong>de</strong><br />

error, y en el segundo, el error marca <strong>la</strong> posición en TparseTree don<strong>de</strong> ocurrieron.<br />

5.2.2 Objeto autómata Celu<strong>la</strong>r (TAC)<br />

El objeto TAC <strong>con</strong>tiene todos los elementos que forman parte <strong>de</strong> un AC, esto<br />

incluye componentes <strong>de</strong> almacenamiento <strong>de</strong> celdas, <strong>de</strong>spliegue <strong>de</strong> celdas,<br />

transición <strong>de</strong> estados y modificaciones <strong>de</strong>l espacio celu<strong>la</strong>r. Los principales objetos<br />

que componen al TAC son:<br />

1) TAC<strong>la</strong>ttice: representado por un arreglo <strong>de</strong> enteros <strong>de</strong> 16bits <strong>de</strong> 300x300<br />

celdas. Los primeros 5 bits representan 5 p<strong>la</strong>nos <strong>de</strong>l AC, una celda en cada<br />

86<br />

Tab<strong>la</strong> <strong>de</strong><br />

transiciones<br />

<strong>de</strong>l AC


p<strong>la</strong>no es <strong>de</strong> 1bit y por tanto pue<strong>de</strong> soportar dos estados por celda por p<strong>la</strong>no.<br />

En total, los 5 bits permiten 32 estados. Los 11bits restantes se utilizan como<br />

“Buffers” <strong>para</strong> pasar <strong>de</strong> una <strong>con</strong>figuración a otra en el AC y <strong>para</strong> algunas<br />

operaciones adicionales.<br />

2) TACdisp<strong>la</strong>y: Este es un objeto gráfico en don<strong>de</strong> se pintan todas <strong>la</strong>s celdas <strong>de</strong>l<br />

TAC<strong>la</strong>ttice. TACDisp<strong>la</strong>y permite el cambio <strong>de</strong> paleta <strong>de</strong> colores y <strong>la</strong><br />

transformación <strong>de</strong> bitmap a estados <strong>de</strong>l TAC<strong>la</strong>ttice.<br />

3) TTransTable : Esta estructura es <strong>la</strong> misma que está <strong>con</strong>tenida en TCompiler, y<br />

<strong>con</strong>tiene <strong>la</strong>s transiciones <strong>de</strong> estado <strong>para</strong> una celda <strong>con</strong> una <strong>con</strong>figuración <strong>de</strong><br />

vecinos <strong>de</strong>terminada.<br />

4) TVecinos: Eta es <strong>la</strong> misma estructura <strong>con</strong>tenida en TCompiler. TVecinos<br />

<strong>con</strong>tiene el vecindario que <strong>de</strong>be ser revisado <strong>para</strong> cada celda <strong>para</strong> <strong>de</strong>terminar<br />

su nuevo estado en TTransTable.<br />

El objeto TAC utiliza en objeto TCompiler <strong>para</strong> <strong>con</strong>struir <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones a<br />

partir <strong>de</strong>l lenguaje ACF. En <strong>la</strong> Figura 27, se observa el proceso <strong>de</strong> compi<strong>la</strong>ción<br />

<strong>para</strong> <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones <strong>de</strong> TAC.<br />

Código en<br />

ACF<br />

Código en ACF<br />

TCompiler<br />

� ∆<br />

� N<br />

TAC<br />

TTransTable = ∅<br />

TVecinos = ∅<br />

Figura 27 Proceso <strong>de</strong> <strong>con</strong>strucción <strong>de</strong> <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones a partir <strong>de</strong><br />

código escrito en ACF.<br />

<strong>Un</strong>a vez que TAC <strong>con</strong>tiene una tab<strong>la</strong> <strong>de</strong> transiciones <strong>de</strong>spués <strong>de</strong> compi<strong>la</strong>r un<br />

código escrito en ACF, es posible l<strong>la</strong>mar diferentes métodos <strong>de</strong> TAC, como<br />

“Evolve” que hace evolucionar el AC por un número <strong>de</strong> generaciones especificado.<br />

Esta ejecución <strong>de</strong>l AC se hace como un hilo <strong>de</strong> ejecución in<strong>de</strong>pendiente,<br />

permitiendo que <strong>la</strong>s <strong>de</strong>más operaciones <strong>de</strong>l sistema <strong>con</strong>tinúen funcionando.<br />

A<strong>de</strong>más TAC permite <strong>de</strong>tener <strong>la</strong> evolución AC en cualquier momento.<br />

87<br />

TAC<br />

TTransTable = ∆<br />

TVecinos = N


5.2.3 Objeto Números Aleatorios (TRandom)<br />

El objeto TRandom genera números aleatorios <strong>con</strong> un AC elemental. Consiste en<br />

un entero <strong>de</strong> 64 bits que sirve <strong>de</strong> arreglo <strong>de</strong>l AC y aplica <strong>la</strong> reg<strong>la</strong> 30 <strong>de</strong> Wolfram.<br />

32<br />

TRandom retorna un número real utilizando los 32 bits centrales <strong>de</strong>l arreglo / 2 .<br />

Detalles <strong>de</strong>l generador se encuentran en el ANEXO D.<br />

5.3 El Compi<strong>la</strong>dor <strong>de</strong> ACFw<br />

5.3.1 Funcionamiento <strong>de</strong>l Compi<strong>la</strong>dor en ACFw<br />

El compi<strong>la</strong>dor <strong>de</strong> ACFw procesa el lenguaje ACF y <strong>con</strong>struye <strong>la</strong> tab<strong>la</strong> <strong>de</strong><br />

transiciones don<strong>de</strong> están <strong>con</strong>tenidas <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> cambio <strong>de</strong> estado. Como<br />

primer paso, el compi<strong>la</strong>dor <strong>con</strong>struye un árbol <strong>de</strong> expresiones don<strong>de</strong> se establece<br />

cómo serán evaluadas <strong>la</strong>s expresiones. Luego el compi<strong>la</strong>dor utiliza una pi<strong>la</strong> <strong>para</strong><br />

evaluar <strong>la</strong>s expresiones <strong>con</strong>tenidas en el árbol y procesa todas <strong>la</strong>s posibles<br />

<strong>con</strong>figuraciones <strong>de</strong> vecinos dado el vecindario <strong>de</strong>c<strong>la</strong>rado, almacenándo<strong>la</strong>s en <strong>la</strong><br />

tab<strong>la</strong> <strong>de</strong> transiciones <strong>de</strong>l AC<br />

En <strong>la</strong> Figura 28 hay escrito un programa <strong>de</strong> AC, en el editor <strong>de</strong> código (ver sección<br />

5.7.2) a <strong>la</strong> <strong>de</strong>recha se ven los arboles <strong>de</strong> expresión <strong>de</strong> <strong>la</strong>s funciones y <strong>de</strong> <strong>la</strong> reg<strong>la</strong>.<br />

Cada categoría sintáctica en el árbol <strong>de</strong> expresiones está etiquetada <strong>con</strong> un<br />

símbolo diferente <strong>para</strong> facilitar su interpretación (ver Figura 29). La utilidad <strong>de</strong> los<br />

árboles <strong>de</strong> expresiones es <strong>para</strong> i<strong>de</strong>ntificar los errores que surgen al evaluar <strong>la</strong>s<br />

expresiones en <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones.<br />

Programa <strong>de</strong> AC<br />

en lenguaje ACF<br />

Figura 28 Reg<strong>la</strong> compi<strong>la</strong>da exitosamente. Los árboles <strong>de</strong> expresión<br />

quedan completos y no se indica error.<br />

88<br />

Arboles <strong>de</strong><br />

Expresión


El editor <strong>de</strong> código cambia <strong>de</strong> forma automática <strong>la</strong>s pa<strong>la</strong>bras reservadas a azul y<br />

los comentarios a ver<strong>de</strong>. Estos cambios le permiten al usuario corregir mientras<br />

escribe. Así por ejemplo al escribir “cas” en lugar <strong>de</strong> “case” el usuario notará que<br />

<strong>la</strong> pa<strong>la</strong>bra no cambia a azul y <strong>de</strong>tectará el error rápidamente. A<strong>de</strong>más <strong>de</strong> esto los<br />

errores sintácticos y <strong>de</strong> <strong>con</strong>strucción <strong>de</strong> tab<strong>la</strong> se i<strong>de</strong>ntifican al compi<strong>la</strong>r el<br />

programa.<br />

Figura 29 Significado <strong>de</strong> los símbolos en el árbol <strong>de</strong> expresión<br />

5.3.2 Errores <strong>de</strong> compi<strong>la</strong>ción<br />

L<strong>la</strong>mado a función<br />

Operador Lógico o Aritmético<br />

Numeral<br />

Localización <strong>de</strong> AC<br />

Pa<strong>la</strong>bra Reservada<br />

Hay dos tipos <strong>de</strong> errores que pue<strong>de</strong>n surgir durante <strong>la</strong> compi<strong>la</strong>ción <strong>de</strong> un<br />

programa en ACF. Errores Sintácticos (ES) y Errores <strong>de</strong> Construcción <strong>de</strong> Tab<strong>la</strong><br />

(ET). Los ES ocurren cuando:<br />

Figura 30 Error <strong>de</strong> i<strong>de</strong>ntificador <strong>de</strong>s<strong>con</strong>ocido. EL error establece que se<br />

está invocando a un i<strong>de</strong>ntificador que no ha sido <strong>de</strong>c<strong>la</strong>rado o no es<br />

ninguna <strong>de</strong> <strong>la</strong>s pa<strong>la</strong>bras reservadas <strong>de</strong>l lenguaje.<br />

89


� ES1: Se han utilizado pa<strong>la</strong>bras o operadores que no existen en el lenguaje, o<br />

hay l<strong>la</strong>mados a funciones no <strong>de</strong>c<strong>la</strong>radas. En cualquier caso el compi<strong>la</strong>dor <strong>la</strong>s<br />

trata como l<strong>la</strong>mado a funciones buscando una <strong>de</strong>c<strong>la</strong>ración previa. En el<br />

ejemplo <strong>de</strong> <strong>la</strong> Figura 30.<br />

� ES2: Se utiliza una pa<strong>la</strong>bra reservada <strong>para</strong> dar nombre a una función: Aparece<br />

un diálogo que indica que el nombre <strong>de</strong> función no es valido.<br />

� ES3: No se han marcado los bloques <strong>de</strong>l programa: En este caso aparece un<br />

diálogo que indica que <strong>la</strong> expresión es incompleta.<br />

� ES4: No se ha especificado dón<strong>de</strong> comienza <strong>la</strong> especificación <strong>de</strong> reg<strong>la</strong>s: Esto<br />

quiere <strong>de</strong>cir que se ha omitido “rules” y por ello el compi<strong>la</strong>dor entien<strong>de</strong> todo<br />

como <strong>de</strong>c<strong>la</strong>raciones <strong>de</strong> funciones, levantando el error 2.<br />

� ES5: No se <strong>de</strong>c<strong>la</strong>ran reg<strong>la</strong>s: Sólo se ha especificado los vecinos y <strong>la</strong>s<br />

funciones. Aparece un diálogo que indica que no se han especificado reg<strong>la</strong>s.<br />

Los ET ocurren cuando el compi<strong>la</strong>dor está evaluando todas <strong>la</strong>s posibles<br />

<strong>con</strong>figuraciones <strong>de</strong> vecinos en el árbol <strong>de</strong> expresión y ocurre uno <strong>de</strong> los dos<br />

siguientes casos:<br />

� ET1: La pi<strong>la</strong> está vacía cuando se aplica una operación. La Figura 31, muestra<br />

este tipo <strong>de</strong> error.<br />

Figura 31 El error <strong>de</strong> pi<strong>la</strong> vacía ET1. En este caso “else” no coloca<br />

ningún valor en <strong>la</strong> pi<strong>la</strong> y por tanto cuando se asigna al p<strong>la</strong>no, <strong>la</strong> pi<strong>la</strong> no<br />

tiene valores.<br />

90


� ET2: Hay un caso que exce<strong>de</strong> lo <strong>de</strong>c<strong>la</strong>rado en el case. El error se indica en el<br />

árbol <strong>de</strong> expresión como se muestra en <strong>la</strong> Figura 32.<br />

Figura 32 Error ET2. Cuando se evalúan <strong>la</strong>s <strong>con</strong>figuraciones <strong>de</strong> vecinos,<br />

ocurre un caso que exce<strong>de</strong> lo <strong>de</strong>c<strong>la</strong>rado en el “case”. Y ocurre el valor 4.<br />

5.4 P<strong>la</strong>nos <strong>de</strong> ACFw<br />

En ACFw el AC son cinco arreglos <strong>de</strong> 2 dimensiones (n x n don<strong>de</strong> n pue<strong>de</strong> tomar<br />

un valor máximo <strong>de</strong> 300). Cada arreglo se <strong>de</strong>nomina p<strong>la</strong>no, y cada celda pue<strong>de</strong><br />

tener dos posibles estados por p<strong>la</strong>no {0,1}. Al acop<strong>la</strong>r los 5 p<strong>la</strong>nos, es posible<br />

<strong>con</strong>struir un AC <strong>de</strong> hasta 32 estados. Sin embargo, también es posible utilizar<br />

cada p<strong>la</strong>no <strong>de</strong> forma in<strong>de</strong>pendiente (un AC en un p<strong>la</strong>no y uno diferente en otro).<br />

Cada p<strong>la</strong>no es representado <strong>de</strong> forma gráfica por un valor entero. Por ejemplo,<br />

una celda <strong>con</strong> estado 1 en el p<strong>la</strong>no 0, será representada como el estado 1, y una<br />

celda <strong>con</strong> valor <strong>de</strong> 1 en el p<strong>la</strong>no 1, como el estado 2. En términos generales, <strong>la</strong><br />

representación en 2 dimensiones <strong>de</strong> los p<strong>la</strong>nos se hace mediante <strong>la</strong> forma <strong>de</strong>cimal<br />

<strong>de</strong> <strong>la</strong> expansión binaria en los p<strong>la</strong>nos, siendo el p<strong>la</strong>no 0 el menos significativo.<br />

5.5 AC <strong>de</strong>terminísticos y probabilítsticos<br />

ACFw utiliza un generador <strong>de</strong> números aleatorios que es a su vez un AC. Este AC<br />

es capaz <strong>de</strong> generar <strong>de</strong> forma efectiva una secuencia <strong>de</strong> números aleatorios.<br />

Detalles <strong>de</strong> <strong>la</strong> capacidad <strong>de</strong> este generador se encuentran en el ANEXO D.<br />

91


5.6 Evolución <strong>de</strong>l AC en ACFw<br />

La evolución en un AC significa que cada celda actualiza su estado, en re<strong>la</strong>ción a<br />

<strong>la</strong> <strong>con</strong>figuración <strong>de</strong> vecinos, en forma simultánea, sin embargo, dado que ACFw<br />

evalua en forma secuencial, ACFw crea una copia <strong>de</strong>l arreglo <strong>de</strong>l AC y en esta<br />

copia se colocan los nuevos estados <strong>de</strong> cada celda <strong>de</strong>spués <strong>de</strong> <strong>de</strong>terminar su<br />

nuevo estado en <strong>la</strong> tab<strong>la</strong> <strong>de</strong> transiciones, y finalmente el arreglo original es<br />

sustituido <strong>con</strong> el nuevo arreglo.<br />

5.7 Interfaz <strong>de</strong> ACFw<br />

La interfaz <strong>de</strong> ACFw es muy sencil<strong>la</strong> y permite un rápido acceso a todas <strong>la</strong>s<br />

funciones <strong>de</strong>l sistema.<br />

5.7.1 Programa Principal<br />

Menú Principal<br />

Figura 33 Ventana principal <strong>de</strong> ACFw<br />

92<br />

Barra <strong>de</strong> Herramientas<br />

Ventana<br />

<strong>de</strong><br />

Código<br />

Ventana<br />

<strong>de</strong> AC


La Figura 33 muestra <strong>la</strong>s características principales <strong>de</strong>l programa ACFw. En <strong>la</strong><br />

ventana principal, se encuentra el menú principal, <strong>la</strong> barra <strong>de</strong> herramientas, <strong>la</strong><br />

ventana <strong>de</strong> código y <strong>la</strong> ventana <strong>de</strong> AC. A <strong>con</strong>tinuación se <strong>de</strong>scribe <strong>la</strong> función <strong>de</strong><br />

cada una <strong>de</strong> el<strong>la</strong>s.<br />

Menú principal: En el menú principal se encuentran todas <strong>la</strong>s funciones <strong>de</strong> ACFw.<br />

Barra <strong>de</strong> Herramientas: Son botones que permiten rápido acceso a funciones <strong>de</strong><br />

ACFw. Los botones permiten <strong>con</strong> un solo “click” utilizar <strong>la</strong>s funciones más<br />

comunes <strong>de</strong> ACFw.<br />

Ventana <strong>de</strong> Código: En esta ventana está el editor <strong>de</strong> código, que permite <strong>la</strong><br />

programación <strong>de</strong> AC.<br />

Ventana <strong>de</strong> AC: En esta ventana se pue<strong>de</strong> ver el AC, a<strong>de</strong>más <strong>de</strong> modificar<br />

opciones tanto <strong>de</strong> visualización como <strong>de</strong> tamaño <strong>de</strong>l arreglo <strong>de</strong>l AC.<br />

5.7.2 Ventana <strong>de</strong> código<br />

Editor <strong>de</strong><br />

código<br />

Figura 34 Ventana <strong>de</strong> código <strong>de</strong> ACFw<br />

Generaciones que correrá el AC<br />

En <strong>la</strong> ventana <strong>de</strong> código se pue<strong>de</strong> editar el lenguaje ACF <strong>para</strong> especificar <strong>la</strong>s<br />

reg<strong>la</strong>s <strong>de</strong>l AC. La ventana <strong>de</strong> código <strong>con</strong>tiene un editor <strong>de</strong> código, y los árboles <strong>de</strong><br />

expresión <strong>de</strong>l código compi<strong>la</strong>do, don<strong>de</strong> se pue<strong>de</strong> ver <strong>la</strong> estructura <strong>de</strong> <strong>la</strong> reg<strong>la</strong><br />

<strong>de</strong>spués <strong>de</strong> compi<strong>la</strong>da y los errores <strong>de</strong> compi<strong>la</strong>ción. La Figura 34 muestra <strong>la</strong>s<br />

partes <strong>de</strong> <strong>la</strong> ventana <strong>de</strong> código.<br />

93<br />

Arbol <strong>de</strong><br />

expresión<br />

<strong>de</strong> <strong>la</strong>s<br />

funciones<br />

Arbol <strong>de</strong><br />

expresión<br />

<strong>de</strong> <strong>la</strong> reg<strong>la</strong>


5.7.3 Ventana <strong>de</strong> AC<br />

La ventana <strong>de</strong> AC muestra el AC. En el<strong>la</strong> es posible modificar el estado <strong>de</strong> <strong>la</strong>s<br />

celdas, cambiar <strong>de</strong> tamaño el AC, y agrandar o achicar <strong>la</strong> imagen (Figura 35).<br />

Autómata<br />

Celu<strong>la</strong>r<br />

Figura 35 Ventana <strong>de</strong> AC en ACFw<br />

Cuando corre el AC en esta ventana se ven los cambios.<br />

5.7.4 Comandos <strong>de</strong> ACFw<br />

Abrir archivos <strong>de</strong> reg<strong>la</strong>s<br />

Las reg<strong>la</strong>s grabadas en formato ASCII, pue<strong>de</strong>n ser abiertas en el editor <strong>de</strong> código.<br />

Para abrir un archivo, seleccione en el menú principal “Archivos / Abrir Reg<strong>la</strong>...”.<br />

En el diálogo que aparece seleccione el archivo que <strong>de</strong>sea abrir y presione<br />

aceptar.<br />

Editor <strong>de</strong> texto<br />

El editor <strong>de</strong> texto es una ventana que permite ver cualquier texto en formato<br />

ASCII. Si <strong>de</strong>sea abrir un archivo, seleccione en el menú principal “Archivos / Abrir<br />

Texto..” e indique <strong>la</strong> ruta <strong>de</strong>l archivo que <strong>de</strong>sea abrir.<br />

Si más bien quiere crear un archivo <strong>de</strong> texto, seleccione en el menú principal<br />

“Editor / Editor <strong>de</strong> texto...”. Si al terminar <strong>de</strong> escribir usted acepta los cambios, le<br />

aparecerá el diálogo <strong>para</strong> indicar dón<strong>de</strong> será grabado el archivo (se graban <strong>con</strong><br />

extensión txt). Si cance<strong>la</strong> per<strong>de</strong>rá lo escrito.<br />

94<br />

Agrandar o<br />

achicar <strong>la</strong><br />

imágen<br />

Definir p<strong>la</strong>no<br />

activo<br />

Tamaño <strong>de</strong>l<br />

arreglo<br />

Generaciones<br />

transcurridas


Abrir máscara x p<strong>la</strong>no<br />

Usted pue<strong>de</strong> cargar una máscara en el espacio celu<strong>la</strong>r <strong>de</strong>l AC. La máscara por<br />

p<strong>la</strong>no <strong>con</strong>siste en un archivo <strong>de</strong> bitmap <strong>de</strong> 2 bits (b<strong>la</strong>nco y negro). Indique en <strong>la</strong><br />

ventana <strong>de</strong> AC en cuál p<strong>la</strong>no quiere colocar <strong>la</strong> máscara, seleccionando el p<strong>la</strong>no<br />

activo. Luego en el menú principal seleccione “Archivos / Abrir Máscara x P<strong>la</strong>no...<br />

“. En el diálogo que aparece seleccione el archivo <strong>de</strong> bitmap que <strong>de</strong>be colocar<br />

como máscara y presione aceptar. La máscara quedará en el p<strong>la</strong>no indicado,<br />

cambiando al estado 1 <strong>la</strong>s celdas don<strong>de</strong> <strong>la</strong> máscara es negra, y <strong>de</strong>jando como<br />

cero don<strong>de</strong> <strong>la</strong> máscara es <strong>de</strong> color b<strong>la</strong>nca.<br />

Abrir máscara x estado<br />

Si usted quiere cargar una máscara que tiene varios estados, seleccione <strong>de</strong>l menú<br />

principal “ Archivos / Abrir Máscara x Estado... “ y seleccione el archivo <strong>de</strong> bitmap.<br />

El archivo <strong>de</strong> bitmap <strong>de</strong>be ser <strong>de</strong> 256 colores (8bit); el valor superior izquierdo se<br />

<strong>con</strong>si<strong>de</strong>rará como estado 0 y el resto <strong>de</strong>pendiendo <strong>de</strong>l índice <strong>de</strong> color según <strong>la</strong><br />

paleta activa <strong>de</strong> colores <strong>de</strong> ACF.<br />

Esta opción es recomendable si se quiere grabar una <strong>con</strong>figuración inicial<br />

particu<strong>la</strong>r, o cargar <strong>la</strong> <strong>con</strong>figuración <strong>de</strong>l autómata que se ha grabado<br />

anteriormente.<br />

Grabar reg<strong>la</strong><br />

Para grabar una reg<strong>la</strong> seleccione en el menú principal “Archivos / Grabar Reg<strong>la</strong>“,<br />

Esta opción graba el código que se encuentra en el editor <strong>de</strong> código. Esta opción<br />

graba el archivo utilizando el mismo nombre <strong>de</strong> <strong>la</strong> reg<strong>la</strong> cargada.<br />

Si se <strong>de</strong>sea grabar <strong>con</strong> otro nombre seleccionar “Archivos / Grabar como...” <strong>de</strong>l<br />

menú principal, y seleccionar una ruta y nombre <strong>para</strong> el archivo <strong>de</strong> reg<strong>la</strong> (los<br />

archivos <strong>de</strong> texto siempre se graban <strong>con</strong> <strong>la</strong> extensión txt)<br />

Grabar espacio celu<strong>la</strong>r<br />

Si <strong>de</strong>sea grabar una <strong>con</strong>figuración actual <strong>de</strong>l AC, seleccione “Archivos / Grabar<br />

espacio celu<strong>la</strong>r...”, e indique <strong>la</strong> ruta y nombre <strong>con</strong> el cual será grabado. ACFw<br />

graba estas <strong>con</strong>figuraciones como Bitmap <strong>de</strong> 8 bits, utilizando <strong>la</strong> paleta <strong>de</strong> colores<br />

activa.<br />

95


Esta opción es útil si se quiere grabar el estado <strong>de</strong>l AC en un tiempo <strong>de</strong>terminado<br />

o alguna <strong>con</strong>figuración inicial particu<strong>la</strong>r. También es útil <strong>para</strong> exportar el resultado<br />

<strong>de</strong> <strong>la</strong> evolución <strong>de</strong>l AC como bitmap, <strong>para</strong> utilizar<strong>la</strong> en otras aplicaciones.<br />

Imprimir código<br />

En el menú principal seleccione “Archivos / Imprimir Código”, seleccione <strong>la</strong><br />

impresora. Esto imprime el <strong>con</strong>tenido <strong>de</strong>l editor <strong>de</strong> código.<br />

Compi<strong>la</strong>ción <strong>de</strong>l código<br />

<strong>Un</strong>a vez escrito el código en <strong>la</strong> ventana <strong>de</strong> código, en el editor <strong>de</strong> código, <strong>la</strong> reg<strong>la</strong><br />

se compi<strong>la</strong> presionando en el menú principal, <strong>la</strong> opción “Editor / Compi<strong>la</strong>r Reg<strong>la</strong>s”.<br />

Los errores sintácticos aparecerán como mensajes indicando cuál es el error. Los<br />

errores <strong>de</strong> ejecución aparecen en el árbol <strong>de</strong> expresiones, indicando el tipo <strong>de</strong><br />

error en el punto don<strong>de</strong> ocurrió.<br />

Ejecutar el AC<br />

<strong>Un</strong>a vez compi<strong>la</strong>da <strong>la</strong> reg<strong>la</strong>, <strong>para</strong> hacer correr el AC seleccione en el menú<br />

principal “Ejecutar / Ejecutar AC”. Esto iniciará <strong>la</strong> evolución <strong>de</strong>l AC hasta cumplir<br />

<strong>con</strong> <strong>la</strong>s generaciones indicadas en <strong>la</strong> ventana <strong>de</strong> código.<br />

Ejecutar Estadística AC.<br />

Esta opción permite correr el AC, y cada cierto intervalo <strong>de</strong> generaciones calcu<strong>la</strong>r<br />

algunos datos estadísticos. Para hacer esto seleccione en el menú principal<br />

“Ejecutar / Ejecutar estadística AC...”, le aparecerá un diálogo, seleccione lo que<br />

<strong>de</strong>sea que se calcule e indique los intervalos en los que se <strong>de</strong>be calcu<strong>la</strong>r.<br />

Al finalizar <strong>la</strong> evolución <strong>de</strong>l AC, le aparecerá un diálogo en el cual <strong>de</strong>be indicar<br />

dón<strong>de</strong> <strong>de</strong>sea grabar el archivo <strong>con</strong> los resultados. El archivo que se graba tiene<br />

formato <strong>de</strong> texto (extensión txt), se<strong>para</strong>ndo <strong>con</strong> comas los valores respectivos.<br />

Crear secuencia <strong>de</strong> BMP<br />

Esta opción le permite grabar una secuencia <strong>de</strong> mapa <strong>de</strong> bits (bitmaps), <strong>para</strong><br />

posteriormente crear una animación <strong>con</strong> algún otro programa.<br />

Seleccione en el menú principal “Ejecutar / Crear secuencia <strong>de</strong> BMP...” en el<br />

diálogo que aparece indique el nombre y directorio en el que <strong>de</strong>sea colocar los<br />

96


archivos. Estos serán grabados <strong>con</strong> ese nombre agregando números <strong>de</strong><br />

secuencia.<br />

Detener AC<br />

Si el AC está corriendo, al seleccionar “Ejecutar / Detener AC” usted <strong>de</strong>tendrá <strong>la</strong><br />

evolución <strong>de</strong>l AC. Tenga cuidado, puesto que ACFw <strong>de</strong>tiene el AC en el momento<br />

que usted lo indique, pudiendo quedar algunas celdas sin actualizar. Lo<br />

recomendable es siempre iniciar nuevamente <strong>la</strong> simu<strong>la</strong>ción.<br />

Reiniciar<br />

Reinicia el <strong>con</strong>tador <strong>de</strong> generaciones <strong>de</strong>l AC. Seleccione “Ejecutar / Reiniciar” <strong>de</strong>l<br />

menú principal.<br />

Zoom<br />

En <strong>la</strong> ventana <strong>de</strong> AC indique el tamaño <strong>de</strong> pixel que <strong>de</strong>sea en el AC, esto<br />

cambiará automáticamente el tamaño <strong>de</strong> visualización <strong>de</strong>l AC. También pue<strong>de</strong><br />

seleccionar en el menú principal “Herramientas / Zoom In “ o “Herramientas /<br />

Zoom Out “. En <strong>la</strong> ventana <strong>de</strong> AC siempre se indicará el tamaño <strong>de</strong>l pixel.<br />

Bor<strong>de</strong>s <strong>de</strong>l AC<br />

Por omisión el AC <strong>de</strong> ACFw es <strong>con</strong> bor<strong>de</strong>s periódicos (el bor<strong>de</strong> superior <strong>con</strong>tinúa<br />

en el bor<strong>de</strong> inferior y el izquierdo en el <strong>de</strong>recho), sin embargo, al seleccionar<br />

“Herramientas / Bor<strong>de</strong>s periódicos” usted pue<strong>de</strong> utilizar el AC <strong>con</strong> bor<strong>de</strong>s<br />

cerrados.<br />

Si usted utiliza bor<strong>de</strong>s cerrados, <strong>la</strong> primera y última columna se <strong>con</strong>si<strong>de</strong>ran <strong>con</strong><br />

valor 0. Usted pue<strong>de</strong> crear una máscara <strong>para</strong> dar bor<strong>de</strong>s 1 al AC.<br />

Colores<br />

Usted pue<strong>de</strong> seleccionar 7 posibles paletas <strong>de</strong> colores <strong>para</strong> <strong>de</strong>splegar el AC, estas<br />

son:<br />

� B<strong>la</strong>nco y Negro: Todos los estados mayores que 1 son negros y el resto (0) es<br />

b<strong>la</strong>nco.<br />

97


� 4 Colores: Los cuatro primeros estados (0 al 3) tienen colores diferentes, luego<br />

<strong>de</strong> forma cíclica va asignando los mismos colores.<br />

� ACF: esta es <strong>la</strong> paleta seleccionada por omisión. Es <strong>de</strong> 256 colores.<br />

� Gradiente: Esta paleta permite utilizar un gradiente <strong>de</strong> ver<strong>de</strong>s a rojos. Tiene<br />

256 colores y es muy útil cuando se quieren resaltar gradientes generados en<br />

<strong>la</strong> evolución <strong>de</strong>l AC.<br />

� Windows: Esta es <strong>la</strong> paleta <strong>de</strong> 256 colores <strong>de</strong> Windows. Esto es útil si usted<br />

tiene <strong>con</strong>figurada su computadora a 256 colores.<br />

� Grises: Es <strong>de</strong> 256 grises y es práctica <strong>para</strong> resaltar gradientes y estructuras<br />

generadas por <strong>la</strong> evolución <strong>de</strong>l AC.<br />

� Azules: permite crear gradientes <strong>de</strong> azul.<br />

Para utilizar cualquiera <strong>de</strong> estas paletas, seleccionar “Herramientas / Colores” y<br />

marque <strong>la</strong> paleta que <strong>de</strong>sea utilizar.<br />

Cálculo <strong>de</strong> entropía<br />

Si usted selecciona esta opción en “Herramientas > Entropía” usted pue<strong>de</strong><br />

seleccionar cualquiera <strong>de</strong> tres formas:<br />

� Entropía Bloques 9x9: La entropía se calcu<strong>la</strong> utilizando una cuadrícu<strong>la</strong> <strong>de</strong> 9x9,<br />

don<strong>de</strong> <strong>la</strong>s <strong>con</strong>figuraciones simétricas son <strong>con</strong>si<strong>de</strong>radas como diferentes.<br />

� Entropía Simetría Rotacional 9x9: Igual que <strong>la</strong> anterior pero <strong>la</strong>s simetrías<br />

rotacionales son <strong>con</strong>si<strong>de</strong>radas como <strong>con</strong>figuraciones iguales.<br />

� Entropía Lineal: Calcu<strong>la</strong> <strong>la</strong> entropía utilizando líneas <strong>de</strong> 9 celdas.<br />

La entropía siempre se calcu<strong>la</strong> sobre el p<strong>la</strong>no activo, en <strong>la</strong> ventana <strong>de</strong> AC.<br />

Invertir p<strong>la</strong>nos<br />

Esta opción permite invertir dos p<strong>la</strong>nos. Seleccione “ Herramientas / Invertir<br />

P<strong>la</strong>nos... “ En el diálogo que aparece indique que p<strong>la</strong>nos <strong>de</strong>sea invertir y acepte o<br />

cancele. Usted notará el cambio <strong>de</strong> color en <strong>la</strong>s celdas causado por el cambio <strong>de</strong><br />

p<strong>la</strong>nos.<br />

98


Inicializar <strong>con</strong> semil<strong>la</strong><br />

Usted pue<strong>de</strong> iniciar el AC <strong>con</strong> una celda activa en el centro. Seleccione<br />

“Herramientas / Inicializar semil<strong>la</strong>”. La celda se colocará en el p<strong>la</strong>no que este<br />

activo en <strong>la</strong> ventana <strong>de</strong> AC.<br />

Inicalizar aleatorio x p<strong>la</strong>no<br />

Si usted quiere una <strong>de</strong>nsidad particu<strong>la</strong>r <strong>de</strong> celdas <strong>con</strong> una distribución aleatoria,<br />

seleccione “Herramientas / Inicializar Aleatorio x P<strong>la</strong>no...”. En el diálogo que<br />

aparece seleccione <strong>la</strong> <strong>de</strong>nsidad <strong>de</strong>seada (note que se expresa como fracción).<br />

Esta opción opera sobre el p<strong>la</strong>no activo en <strong>la</strong> ventana <strong>de</strong> AC.<br />

Inicializar aleatorio x estado<br />

Si usted quiere una <strong>de</strong>nsidad particu<strong>la</strong>r <strong>de</strong> celdas <strong>con</strong> una distribución aleatoria,<br />

seleccione “Herramientas / Inicializar Aleatorio x Estado...”. En el diálogo que<br />

aparece seleccione <strong>la</strong> <strong>de</strong>nsidad <strong>de</strong>seada (note que se expresa como fracción), y<br />

el rango <strong>de</strong> estado que <strong>de</strong>sea colocar en el AC.<br />

5.8 Ejemplos <strong>de</strong> programas en ACFw<br />

5.8.1 Juego <strong>de</strong> <strong>la</strong> Vida <strong>de</strong> Conway<br />

Como se menciona en el capítulo 1, en 1970 John Conway introdujo un AC<br />

interesante que atrajo <strong>la</strong> atención <strong>de</strong> científicos y <strong>de</strong>l público en general. Este AC<br />

se <strong>con</strong>oce como “El juego <strong>de</strong> <strong>la</strong> Vida” y funciona <strong>de</strong> <strong>la</strong> siguiente manera:<br />

1) Cada ce<strong>la</strong> pue<strong>de</strong> estar en cualquiera <strong>de</strong> dos posibles estados: vivo (1) y<br />

muerto (0).<br />

2) Si una celda está viva, entonces permanecerá así si tiene 2 ó 3 vecinos vivos a<br />

su alre<strong>de</strong>dor.<br />

3) <strong>Un</strong>a celda muerta revive si tiene exactamente 3 vecinos vivos a su alre<strong>de</strong>dor.<br />

99


En ACF esta reg<strong>la</strong> se <strong>de</strong>fine <strong>de</strong> <strong>la</strong> siguiente manera:<br />

: vec C N S E W NE NW SE SW ;<br />

: 8sum N S E W NE NW SE SW + + + + + + + ;<br />

rules<br />

: C 0 = if<br />

8sum case { 0 0 0 1 0 0 0 0 0 }<br />

else<br />

8sum case { 0 0 1 1 0 0 0 0 0 }<br />

then >P0 ;<br />

Como se explicó en el capítulo 2, se <strong>de</strong>c<strong>la</strong>ran 8 vecinos a<strong>de</strong>más <strong>de</strong> <strong>la</strong> celda<br />

central, y una función “8sum” que suma los 8 vecinos alre<strong>de</strong>dor <strong>de</strong> C . Note cómo,<br />

si <strong>la</strong> celda C tiene el valor 0, entonces se ejecuta <strong>la</strong> primera parte <strong>de</strong>l if, don<strong>de</strong> se<br />

l<strong>la</strong>ma a <strong>la</strong> función 8sum, que retorna el valor <strong>de</strong> <strong>la</strong> suma, y este resultado<br />

representa el índice <strong>de</strong>l case, es <strong>de</strong>cir, si el resultado es 0, el case retorna el<br />

primer valor <strong>de</strong> <strong>la</strong> lista y si 8sum retorna 8 entonces es el último valor <strong>de</strong>l case.<br />

Finalmente el resultado <strong>de</strong>l case es asignado al p<strong>la</strong>no 0 (es <strong>de</strong>cir como nuevo<br />

estado <strong>de</strong> <strong>la</strong> celda central).<br />

<strong>Un</strong>a forma alternativa <strong>de</strong> esta misma reg<strong>la</strong> es :<br />

: vec C N S E W NE NW SE SW ;<br />

: 8sum N S E W NE NW SE SW + + + + + + + ;<br />

: U C;<br />

rules<br />

: 8sum case { 0 0 U 1 0 0 0 0 0 } >P0 ;<br />

La reg<strong>la</strong> funciona <strong>de</strong> <strong>la</strong> misma manera. <strong>Un</strong>icamente se le ha agregado <strong>la</strong> función<br />

“U” que retorna el mismo valor <strong>de</strong> <strong>la</strong> celda central (recuer<strong>de</strong> que el case pue<strong>de</strong><br />

<strong>con</strong>tener l<strong>la</strong>mados a funciones, ver capítulo 4). En este caso si <strong>la</strong> suma es 2, si <strong>la</strong><br />

celda está viva seguirá viva y si está muerta, seguirá muerta y en el caso <strong>de</strong> que<br />

sum sea 3, si <strong>la</strong> celda está muerta pasa a 1 y si está en 1 se queda en 1.<br />

Escriba cualquiera <strong>de</strong> <strong>la</strong>s dos reg<strong>la</strong>s (son equivalentes) en el editor <strong>de</strong> código (ver<br />

sección 5.7.2) y Compile (ver sección 5.7.4) e Incialice el p<strong>la</strong>no 0 <strong>de</strong>l AC <strong>con</strong> un<br />

10% <strong>de</strong> celdas en estado uno. Cuando corre el AC se pue<strong>de</strong> ver el movimiento <strong>de</strong><br />

celdas y a ratos se pue<strong>de</strong>n apreciar ciertas estructuras que se mueven o osci<strong>la</strong>n<br />

entre dos puntos. Después <strong>de</strong> unas 100 generaciones el resultado permite<br />

apreciar algunas estructuras estables (Figura 36b)<br />

Para saber dón<strong>de</strong> ocurrió el movimiento, se pue<strong>de</strong> utilizar el p<strong>la</strong>no 1 <strong>para</strong> que <strong>la</strong>s<br />

celdas <strong>de</strong>jen el rastro. Esto permitirá ver los “gli<strong>de</strong>rs” los cuales aparecen <strong>de</strong><br />

100


forma esporádica y <strong>de</strong>jan rastros diagonales. Para hacerlo, modificar el código y<br />

colocar:<br />

: vec C N S E W NE NW SE SW ;<br />

: 8sum N S E W NE NW SE SW + + + + + + + ;<br />

rules<br />

: C C1 or >P1 /* Rastro*/<br />

C 0 = if<br />

8sum case { 0 0 0 1 0 0 0 0 0 }<br />

else<br />

8sum case { 0 0 1 1 0 0 0 0 0 }<br />

then >P0 ;<br />

Note en <strong>la</strong> línea marcada como rastro, <strong>la</strong> expresión “C C1 or >P1”. Esto permite<br />

que si hay un 1 en el p<strong>la</strong>no 0, este que<strong>de</strong> marcado en el p<strong>la</strong>no 1, y si no hay nada,<br />

que se mantenga <strong>la</strong> marca <strong>de</strong>l p<strong>la</strong>no 1. En <strong>la</strong> Figura 36c, se observan los rastros<br />

<strong>de</strong> algunos “gli<strong>de</strong>rs”, y en general como se han <strong>de</strong>sp<strong>la</strong>zado <strong>la</strong>s celdas en el AC.<br />

5.8.2 Reg<strong>la</strong> 1 <strong>de</strong> 8<br />

Figura 36 Juego <strong>de</strong> <strong>la</strong> Vida <strong>de</strong> Conway. a) Inicio aleatorio <strong>con</strong> 10% <strong>de</strong><br />

celdas en estado 1. b) evolución <strong>de</strong>spués <strong>de</strong> 100 generaciones. c)<br />

evolución <strong>con</strong> rastro <strong>de</strong>spués <strong>de</strong> 200 generaciones. Se distinguen líneas<br />

diagonales formadas por los “gli<strong>de</strong>r2, <strong>Un</strong>a estructura periódica que se<br />

forma en esta autómata.<br />

Esta reg<strong>la</strong> crea una estructura auto-simi<strong>la</strong>r. La reg<strong>la</strong> es muy sencil<strong>la</strong>, el código es<br />

el siguiente:<br />

: vec C N S E W NE NW SE SW ;<br />

: 8sum N S E W NE NW SE SW + + + + + + + ;<br />

rules<br />

: 8sum 1 = if 1 else C then >P0;<br />

101


Lo que establece <strong>la</strong> reg<strong>la</strong> es lo siguiente: Si <strong>la</strong> suma <strong>de</strong> los 8 vecinos (mediante <strong>la</strong><br />

función <strong>de</strong>c<strong>la</strong>rada 8sum) es 1 entonces cambia <strong>de</strong> estado <strong>de</strong> 0 →1 o se mantiene<br />

<strong>de</strong> 1 →1, en el caso <strong>con</strong>trario, <strong>la</strong> celda se mantiene igual.<br />

Al compi<strong>la</strong>r y ejecutar <strong>la</strong> reg<strong>la</strong> iniciando <strong>con</strong> una semil<strong>la</strong> central, se observa el<br />

patrón <strong>de</strong> <strong>la</strong> Figura 37b<br />

Para hacer <strong>la</strong>s cosas más interesantes, transformemos <strong>la</strong> reg<strong>la</strong> entarior en un AC<br />

probabilístico. Modifique el código como sigue:<br />

: vec C N S E W NE NW SE SW ;<br />

: 8sum N S E W NE NW SE SW + + + + + + + ;<br />

rules<br />

: C >P1 8sum 1 = if 1 else C then >P0 1 10 pcase;<br />

<strong>la</strong> expresión “1 10 pcase” significa que <strong>la</strong> reg<strong>la</strong> se aplica <strong>con</strong> una probabilidad <strong>de</strong> 1<br />

<strong>de</strong> cada 10, es <strong>de</strong>cir, 0.1. Existe entonces una probabilidad <strong>de</strong> 0.1 <strong>de</strong> que una<br />

celda cualquiera cambie <strong>de</strong> estado según <strong>la</strong> reg<strong>la</strong> y un 0.9 <strong>de</strong> probabilidad <strong>de</strong> que<br />

se mantenga sin cambio <strong>de</strong> estado. El resultado se pue<strong>de</strong> ver en <strong>la</strong> Figura 37a.<br />

Figura 37 Reg<strong>la</strong> 1 <strong>de</strong> 8. a )probabilístico. b) <strong>de</strong>terminístico<br />

Este ejemplo muestra como, a pesar <strong>de</strong> que un sistema es capaz <strong>de</strong> formar<br />

estructuras muy or<strong>de</strong>nadas en <strong>con</strong>diciones i<strong>de</strong>ales (sin ningún tipo <strong>de</strong> ruido), en<br />

<strong>con</strong>diciones ruidosas el comportamiento es diferente. Esto es simi<strong>la</strong>r a lo que<br />

ocurre <strong>con</strong> hongos que son cultivados en <strong>con</strong>diciones i<strong>de</strong>ales y lo que realmente<br />

se observa en <strong>la</strong> naturaleza.<br />

102


5.8.3 Reg<strong>la</strong> 90 <strong>de</strong> Wolfram. <strong>Un</strong> AC elemental<br />

Los AC elementales, son fáciles <strong>de</strong> programar en ACF. La reg<strong>la</strong> 90 <strong>con</strong>siste en<br />

aplicar el operador xor al <strong>la</strong>do izquierdo y el <strong>de</strong>recho <strong>de</strong> cada celda. Sin embargo,<br />

es necesario aplicar un truco sencillo <strong>para</strong> lograr que <strong>la</strong> evolución <strong>de</strong>l AC se vea<br />

como una secuencia en el eje vertical <strong>de</strong> <strong>la</strong> ventana <strong>de</strong> AC. El código es el<br />

siguiente:<br />

:vec C C1 N NW NE ;<br />

rules<br />

: C >P1<br />

C1 0 = if NW NE xor<br />

else C1<br />

then >P0 ;<br />

El nuevo estado <strong>de</strong> <strong>la</strong> celda central, se obtiene <strong>de</strong> aplicar xor a los vecinos<br />

superior izquierdo (NW) y superior <strong>de</strong>recho (NE), esto <strong>para</strong> lograr que <strong>la</strong> nueva<br />

<strong>con</strong>figuración <strong>de</strong>l autómata sea en <strong>la</strong> línea <strong>de</strong> abajo, <strong>la</strong> que <strong>con</strong>tiene ceros. El<br />

valor central siempre se coloca en el p<strong>la</strong>no 1 <strong>para</strong> mantener <strong>la</strong> <strong>con</strong>figuración <strong>de</strong>l<br />

AC. En <strong>la</strong> figura 5 <strong>de</strong>l capítulo 2, se observa el AC <strong>con</strong> <strong>la</strong> paleta <strong>de</strong> B<strong>la</strong>nco y<br />

Negro.<br />

5.8.4 Reg<strong>la</strong> “Anneal”<br />

<strong>Un</strong>a reg<strong>la</strong> interesante, que utiliza el <strong>con</strong>cepto <strong>de</strong> votación, se le l<strong>la</strong>ma “anneal”.<br />

Las reg<strong>la</strong>s <strong>de</strong> votación son aquel<strong>la</strong>s en que se cuentan los vecinos por estado, y el<br />

que mayor cantidad <strong>de</strong> celdas tenga, será el nuevo estado <strong>de</strong> <strong>la</strong> celda central.<br />

Esta reg<strong>la</strong> en ACF se pue<strong>de</strong> escribir:<br />

: vec C N S E W NE NW SE SW ;<br />

: 9sum C N S E W NE NW SE SW + + + + + + + + ;<br />

rules<br />

: C >P1<br />

9sum case { 0 0 0 0 1 0 1 1 1 1 } >P0 ;<br />

Se utilizan dos p<strong>la</strong>nos. El p<strong>la</strong>no 0 es don<strong>de</strong> ocurre <strong>la</strong> acción, y el p<strong>la</strong>no 1 sólo lo<br />

utilizaremos <strong>para</strong> ver cuándo una celda cambió <strong>de</strong> 0 a 1 ó <strong>de</strong> 1 a 0. Sin embargo<br />

en esta reg<strong>la</strong> hay un caso particu<strong>la</strong>r. Cuando <strong>la</strong>s votaciones están en el límite,<br />

más bien tien<strong>de</strong>n a favorecer al otro grupo, es <strong>de</strong>cir cuando hay 5 ceros, se<br />

cambia a 1, y cuando hay cinco 1 se cambia a cero. Esto hace <strong>la</strong> actividad más<br />

interesante. Comenzando <strong>con</strong> un inicio aleatorio, en poco tiempo se comienzan a<br />

formar <strong>la</strong>s is<strong>la</strong>s redon<strong>de</strong>adas <strong>de</strong> ceros y unos don<strong>de</strong> toda <strong>la</strong> actividad está<br />

ocurriendo (Figura 38)<br />

103


Figura 38 Reg<strong>la</strong> “anneal”. a) iniciando <strong>con</strong> 50% <strong>de</strong> celdas en estado 1 y<br />

50% en estado 0, <strong>de</strong>spués <strong>de</strong> 100 generaciones. b) Muestra una<br />

mgnificación <strong>de</strong>l cuadro b<strong>la</strong>nco en a). Los límites don<strong>de</strong> ocurre <strong>la</strong> acción<br />

son azules y rojos (cambian <strong>de</strong> 0 → 1 y <strong>de</strong> 1 → 0 respectivamente).<br />

5.9 Comentario Final<br />

EL programa ACFw, permite gran cantidad <strong>de</strong> opciones que facilitan <strong>la</strong><br />

especificación <strong>de</strong> AC, <strong>la</strong> experimentación <strong>con</strong> diferentes <strong>con</strong>diciones iniciales, y el<br />

análisis posterior <strong>de</strong> los patrones generados por el AC. Estas características <strong>de</strong><br />

ACFw permiten que un investigador <strong>de</strong>sarrolle mo<strong>de</strong>los <strong>de</strong> forma rápida y pueda<br />

realizar diferentes tratamientos experimentales mediante <strong>la</strong> manipu<strong>la</strong>ción <strong>de</strong><br />

<strong>con</strong>diciones iniciales o cambios el <strong>la</strong> especificación <strong>de</strong> <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong>l AC.<br />

El programa ACFw, es una aplicación fácil <strong>de</strong> utilizar y que permite que un usuario<br />

<strong>con</strong> <strong>con</strong>ocimientos básicos pueda manejar <strong>la</strong> interfaz. El lenguaje ACF, es sencillo<br />

y una persona <strong>con</strong> nociones <strong>de</strong> programación pue<strong>de</strong> fácilmente adaptarse al<br />

lenguaje y generar gran cantidad <strong>de</strong> AC.<br />

104


6 Aplicaciones Biológicas<br />

6.1 Introducción<br />

Los AC han aparecido esporádicamente como versiones simplificadas <strong>de</strong><br />

diferentes situaciones biológicas comunes. La mayoría <strong>de</strong> estos mo<strong>de</strong>los son<br />

abstracciones <strong>de</strong> ecuaciones diferenciales parciales que mo<strong>de</strong><strong>la</strong>n <strong>la</strong> dinámica en<br />

espacio y tiempo, <strong>de</strong> un fenómeno <strong>de</strong>terminado [Ermentrout, 1993].<br />

Hay que <strong>de</strong>stacar que muchas <strong>de</strong> <strong>la</strong>s aplicaciones <strong>de</strong> AC a fenómenos biológicos<br />

guardan estrecha correspon<strong>de</strong>ncia <strong>con</strong> mo<strong>de</strong>los <strong>de</strong> ecuaciones diferenciales, <strong>con</strong><br />

<strong>la</strong> ventaja <strong>de</strong> que <strong>la</strong> interacción local y el estado <strong>de</strong> cada individuo es<br />

<strong>con</strong>si<strong>de</strong>rado. <strong>Un</strong> ejemplo <strong>de</strong> una aplicación interesante <strong>de</strong> AC a ecología lo<br />

representa el AC l<strong>la</strong>mado WATOR [Dewdney, 1984]. WATOR (Wa- “water” y TOR<br />

“torus”) es un mundo que trata <strong>de</strong> imitar <strong>la</strong> interacción predador presa. Para ello<br />

utiliza dos tipos <strong>de</strong> celdas: Tiburones y Peces. Este mo<strong>de</strong>lo utiliza variables como<br />

edad y hambre <strong>para</strong> establecer <strong>la</strong> dinámica ecológica, y a<strong>de</strong>más muestra una<br />

correspon<strong>de</strong>ncia entre <strong>la</strong>s soluciones <strong>de</strong>l sistema <strong>de</strong> ecuaciones <strong>de</strong> Lotka-Volterra<br />

<strong>para</strong> mo<strong>de</strong><strong>la</strong>r <strong>la</strong> interacción <strong>de</strong> dos especies (ver ejemplo <strong>de</strong> crecimiento <strong>de</strong><br />

pob<strong>la</strong>ciones <strong>con</strong> limitaciones <strong>de</strong> recursos en este capítulo). Otro ejemplo <strong>de</strong><br />

aplicaciónes ecológicas, es el AC que mo<strong>de</strong><strong>la</strong> <strong>la</strong> interacción <strong>para</strong>sitoi<strong>de</strong> –<br />

hospe<strong>de</strong>ro [Hassel, 1991]. En estos mo<strong>de</strong>los se incorpora el cambio en el estado<br />

infeccioso <strong>de</strong>l hospe<strong>de</strong>ro y el movimiento <strong>de</strong> frentes infecciosos en una pob<strong>la</strong>ción<br />

hospe<strong>de</strong>ra.<br />

El trabajo <strong>de</strong> Nijhout et al [Nijhout, 1986], es un AC que permite <strong>la</strong> morfogénesis 78 ,<br />

siguiendo especificaciones <strong>de</strong> <strong>con</strong>centración <strong>de</strong> morfógenos 79 y <strong>de</strong> vecindario, que<br />

guardan estrecha re<strong>la</strong>ción <strong>con</strong> el proceso <strong>de</strong> <strong>de</strong>sarrollo <strong>de</strong> una mosca a partir <strong>de</strong>l<br />

cigoto 80 . Inclusive en este AC se <strong>de</strong>scribe todo el árbol filógenetico <strong>de</strong> individuos<br />

creados a partir <strong>de</strong> mutaciones simples. Las variables <strong>de</strong> este sistema son<br />

tomadas <strong>de</strong> mediciones reales.<br />

Algunas otras aplicaciones biológicas [Silvertown, 1992; Cocho, 1987; Inghe,<br />

1989] son más triviales y aunque generan resultados interesantes, no representan<br />

un hal<strong>la</strong>zgo importante en términos teóricos y sus resultados pue<strong>de</strong>n ser algo<br />

artefactuales.<br />

Los ejemplos que aquí se presentan intentan mostrar <strong>la</strong> utilización <strong>de</strong> AC en<br />

diferentes campos <strong>de</strong> <strong>la</strong> biología y algunas propieda<strong>de</strong>s fundamentales <strong>de</strong> su<br />

comportamiento. En cada ejemplo se dan antece<strong>de</strong>ntes, se <strong>de</strong>scribe <strong>la</strong> reg<strong>la</strong> y se<br />

78<br />

El estudio <strong>de</strong> <strong>la</strong> generación <strong>de</strong> forma a partir sustancias químicas, producto <strong>de</strong> <strong>la</strong> expresión <strong>de</strong><br />

los genes.<br />

79<br />

Sustancias químicas que originan los patrones <strong>de</strong> <strong>de</strong>sarrollo.<br />

80<br />

Huevo fecundado.<br />

105


ealiza un pequeño experimento <strong>con</strong> el AC <strong>de</strong>scribiendo sus resultados y anotando<br />

<strong>la</strong>s implicaciones.<br />

6.2 Crecimiento <strong>de</strong> Cáncer<br />

6.2.1 Antece<strong>de</strong>ntes<br />

El estudio in vivo 81 <strong>de</strong>l crecimiento <strong>de</strong> célu<strong>la</strong>s cancerosas presenta varias<br />

limitaciones técnicas y no refleja <strong>la</strong> situación real <strong>de</strong> su <strong>de</strong>sarrollo en seres vivos<br />

[Smolle, 1993]. En estudios <strong>de</strong> crecimiento <strong>de</strong> tumores cancerosos, se ha<br />

<strong>de</strong>mostrado que <strong>la</strong> dinámica está gobernada por interacciones locales como:<br />

proliferación <strong>de</strong> célu<strong>la</strong>s cancerosas (división o invasión), <strong>la</strong> presencia <strong>de</strong><br />

nutrientes, <strong>la</strong> acción <strong>de</strong>l sistema inmune <strong>con</strong>tra el cáncer, el escape o disolución<br />

<strong>de</strong> célu<strong>la</strong>s cancerosas muertas, <strong>la</strong> presión mecánica en el interior <strong>de</strong>l tumor, etc.<br />

Este ejemplo es una <strong>con</strong>strucción <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> AC propuesto por Qi et al [Qi,<br />

1993] quienes muestran como los resultados <strong>de</strong>l AC tienen estrecha re<strong>la</strong>ción <strong>con</strong><br />

<strong>la</strong> ecuación diferencial <strong>de</strong> Gompertz 82 que <strong>de</strong>scribe el crecimiento <strong>de</strong>l cáncer en<br />

términos macroscópicos. Aquí nos interesa <strong>la</strong> <strong>con</strong>strucción <strong>de</strong>l autómata y<br />

algunos aspectos generales <strong>de</strong>l resultado.<br />

6.2.2 Reg<strong>la</strong>s <strong>de</strong>l Autómata Celu<strong>la</strong>r<br />

El AC utiliza 8 estados <strong>con</strong> 5 vecinos en un arreglo <strong>de</strong> 200x200. Los estados son:<br />

(0) Célu<strong>la</strong> normal, (1) célu<strong>la</strong> cancerosa, (2 ó 6) complejo producido por <strong>la</strong><br />

citotoxina 83 , (3) célu<strong>la</strong> cancerosa muerta, (4) citotoxina 84 , (5) Cáncer + citotoxina y<br />

(7) célu<strong>la</strong> cancerosa muerta + citotoxina.<br />

Las reg<strong>la</strong>s <strong>de</strong> transición son <strong>la</strong>s siguientes:<br />

1. 0 →1 <strong>con</strong> probabilidad k1, si tiene una o más celdas 1 a su alre<strong>de</strong>dor. Esta es<br />

<strong>la</strong> reproducción <strong>de</strong> célu<strong>la</strong>s cancerosas<br />

2. 5 →2 <strong>con</strong> probabilidad k2. Esto quiere <strong>de</strong>cir que una célu<strong>la</strong> cancerosa en<br />

presencia <strong>de</strong> una citotoxina, forma un complejo.<br />

3. 2 →7 <strong>con</strong> probabilidad k3. <strong>Un</strong> complejo resulta en <strong>la</strong> muerte <strong>de</strong> <strong>la</strong> célu<strong>la</strong><br />

cancerosa y que <strong>la</strong> citotoxina vuelva a su estado normal.<br />

4. 7 →4, <strong>con</strong> probabilidad k4. Si una célu<strong>la</strong> cancerosa muerta se disuelve,<br />

quedando nuevamente <strong>la</strong> célu<strong>la</strong> normal junto <strong>con</strong> <strong>la</strong> citotoxina. Esta operación<br />

representa <strong>la</strong> infiltración <strong>de</strong> tejido normal en tejido canceroso.<br />

81 Con célu<strong>la</strong>s vivas en <strong>con</strong>diciones <strong>con</strong>tro<strong>la</strong>das <strong>de</strong> <strong>la</strong>boratorio<br />

82<br />

V<br />

t<br />

0<br />

A − Bt<br />

( 1−e<br />

)<br />

B<br />

= V e Vt es el volumen <strong>de</strong>l cáncer, V0 es el volumen inicial, A y B son parámetros y t<br />

es el tiempo. [Steel, 1977]<br />

83 <strong>Un</strong> complejo es el producto <strong>de</strong> <strong>la</strong> reacción <strong>de</strong> una célu<strong>la</strong> cancerosa y <strong>la</strong> citotoxina.<br />

84 Citotoxina es una sustancia tóxica <strong>para</strong> un célu<strong>la</strong><br />

106


El programa en ACF se <strong>con</strong>struye utilizando 3 p<strong>la</strong>nos <strong>para</strong> lograr 8 estados. El<br />

p<strong>la</strong>no 2 indica <strong>la</strong> presencia <strong>de</strong> citotoxinas (estado 4), el resto <strong>de</strong> p<strong>la</strong>nos se utlizan<br />

<strong>para</strong> representar cada uno <strong>de</strong> los 8 estados mencionados.<br />

: vec C N S E W C1 N1 S1 E1 W1 C2 ;<br />

:btoi 2 int ;<br />

:iscancer N1 N btoi 1 =<br />

S1 S btoi 1 =<br />

E1 E btoi 1 =<br />

W1 W btoi 1 =<br />

or or or ;<br />

:complex C2 1 = if 2 else 1 then 1 5 pcase;<br />

:duplicate iscancer case { 0 1 } 13 50 pcase;<br />

:disolveE 7 1 5 pcase;<br />

:disolveD 4 1 10 pcase;<br />

rules<br />

: C1 C btoi case { duplicate complex disolveE disolveD } >PA<br />

C2 >P2 ;<br />

Note que el vecindario ocupa los 5 vecinos <strong>de</strong>l p<strong>la</strong>no 0 y 1, y so<strong>la</strong>mente <strong>la</strong> celda<br />

central <strong>de</strong>l p<strong>la</strong>no2, esto porque <strong>la</strong> única reg<strong>la</strong> que <strong>de</strong>pen<strong>de</strong> <strong>de</strong>l vecindario es <strong>la</strong><br />

primera, en don<strong>de</strong> es necesario saber si hay un vecino <strong>con</strong> cáncer, <strong>para</strong> lo cual se<br />

utilizan los dos primeros p<strong>la</strong>nos como se ve en <strong>la</strong> función iscancer. La función<br />

duplicate, ocurre cuando hay una célu<strong>la</strong> normal o <strong>con</strong> citotoxina (0 ó 4) ésta utiliza<br />

iscancer, <strong>la</strong> cual <strong>de</strong>termina si hay vecinos <strong>con</strong> cáncer, si los hay entonces <strong>la</strong> celda<br />

pasa a 1 <strong>con</strong> probabilidad 13 <strong>de</strong> 50 (k1=0.26). La función complex genera <strong>la</strong><br />

formación <strong>de</strong> complejos si hay una célu<strong>la</strong> cancerosa y una citotoxina en el mismo<br />

sitio, <strong>con</strong> probabilidad <strong>de</strong> 1 <strong>de</strong> 5 (k2=0.2). disolveE, disuelve una célu<strong>la</strong> <strong>de</strong> cáncer<br />

<strong>con</strong> probabilidad 1 <strong>de</strong> 5 (k3=0.2); y disolveD disuelve <strong>la</strong> célu<strong>la</strong> muerta <strong>con</strong><br />

probabilidad <strong>de</strong> 1 <strong>de</strong> 10 (k4=0.1). Los valores <strong>de</strong> <strong>la</strong>s probabilidad son <strong>la</strong>s sugeridas<br />

por Qi et al.<br />

La <strong>con</strong>figuración inicial sugerida por Qi et al <strong>con</strong>siste en cinco célu<strong>la</strong>s cancerosas<br />

colocadas en el centro <strong>de</strong>l AC (dispuestas en el vecindario <strong>de</strong> von Neumann), en<br />

un medio <strong>de</strong> célu<strong>la</strong>s normales <strong>con</strong> citotoxina.<br />

107


6.2.3 Resultados<br />

La simu<strong>la</strong>ción <strong>de</strong> célu<strong>la</strong>s cancerosas, <strong>de</strong>spués <strong>de</strong> 200 generaciones, se pue<strong>de</strong><br />

apreciar en <strong>la</strong> Figura 39. La citotoxina evita que <strong>la</strong> propagación <strong>de</strong> célu<strong>la</strong>s<br />

cancerosas forme un tejido <strong>con</strong>tinuo, quedando un tejido menos <strong>de</strong>nso y<br />

ramificado. Si se <strong>de</strong>ja evolucionar el AC suficiente (1000 generaciones), <strong>la</strong>s<br />

célu<strong>la</strong>s cancerosas habrán ocupado todo el espacio celu<strong>la</strong>r, sin embargo, en el<br />

don<strong>de</strong> hay citotoxina, <strong>la</strong>s célu<strong>la</strong>s cancerosas entran en una dinámica don<strong>de</strong> <strong>la</strong><br />

cantidad <strong>de</strong> célu<strong>la</strong>s cancerosas fluctúa alre<strong>de</strong>dor <strong>de</strong> un máximo, incluso en<br />

números menores que célu<strong>la</strong>s normales. (Figura 40).<br />

Figura 39 Crecimiento <strong>de</strong> célu<strong>la</strong>s cancerosas en un arreglo <strong>de</strong> 200x200,<br />

<strong>de</strong>súés <strong>de</strong> 200 generaciones. a) Las célu<strong>la</strong>s crecen sin presencia <strong>de</strong><br />

citotoxinas. b) Las citotoxinas ocultas en <strong>la</strong>s célu<strong>la</strong>s normales hace que<br />

se forme un complejo <strong>con</strong> célu<strong>la</strong>s cancerosas que culmina eliminando <strong>la</strong>s<br />

célu<strong>la</strong>s <strong>de</strong> cancer formando un tejido menos compacto y ramificado.<br />

La entropía en el caso <strong>de</strong> crecimiento sin citotoxina muestra un comportamiento<br />

interesante (Figura 41). Al aumentar el tamaño <strong>de</strong>l cáncer, comienza un aumento<br />

<strong>de</strong> entropía dado a que se irrumpe el or<strong>de</strong>n <strong>de</strong> un tejido <strong>con</strong>tinuo <strong>de</strong> célu<strong>la</strong>s<br />

normales. Al llegar a un punto <strong>de</strong> entropía máximo, <strong>la</strong> cantidad <strong>de</strong> célu<strong>la</strong>s<br />

cancerosas a ocupado un 50% <strong>de</strong>l espacio. Luego al aumentar <strong>la</strong> cantidad <strong>de</strong><br />

célu<strong>la</strong>s cancerosas <strong>la</strong> entropía disminuye nuevamente dado que el espacio se va<br />

transformando en sólo célu<strong>la</strong>s cancerosas.<br />

108


a)<br />

b)<br />

Número <strong>de</strong> célu<strong>la</strong>s<br />

Número <strong>de</strong> célu<strong>la</strong>s<br />

45000<br />

40000<br />

35000<br />

30000<br />

25000<br />

20000<br />

15000<br />

10000<br />

5000<br />

0<br />

45000<br />

40000<br />

35000<br />

30000<br />

25000<br />

20000<br />

15000<br />

10000<br />

5000<br />

N<br />

0 200 400 600<br />

t<br />

800 1000 1200<br />

0<br />

0 200 400 600<br />

t<br />

800 1000 1200<br />

Figura 40 Número <strong>de</strong> célu<strong>la</strong>s cancerosas (C) y normales (N) <strong>de</strong>spués <strong>de</strong><br />

1000 generaciones (t). a) No hay citotoxinas. b) hay citotoxinas<br />

109<br />

C<br />

N<br />

C


a)<br />

b)<br />

S<br />

S<br />

0.12<br />

0.1<br />

0.08<br />

0.06<br />

0.04<br />

0.02<br />

0.25<br />

0.15<br />

0.05<br />

0<br />

0 200 400 600<br />

t<br />

800 1000 1200<br />

0.2<br />

0.1<br />

0<br />

0 200 400 600<br />

t<br />

800 1000 1200<br />

Figura 41 Entropía espacial (S) <strong>de</strong>l crecimiento <strong>de</strong> célu<strong>la</strong>s cancerosas<br />

<strong>de</strong>spués <strong>de</strong> 1000 generaciones. a)Las célu<strong>la</strong>s cancerosas no son<br />

afectadas por citotoxinas y su crecimiento genera un tejido <strong>con</strong>tinuo. b)<br />

Las célu<strong>la</strong>s normales tienen citotoxina que induce <strong>la</strong> muerte <strong>de</strong> célu<strong>la</strong>s<br />

cancerosas generando mayor <strong>de</strong>sor<strong>de</strong>n. Note <strong>la</strong> diferencia en el valor <strong>de</strong><br />

máxima entropía alcanzada por ambos casos a) S=0.11 y b) S=0.23 .<br />

110


6.2.4 Implicaciones<br />

Las curvas <strong>de</strong> crecimiento generadas por mo<strong>de</strong>los <strong>de</strong> AC coinci<strong>de</strong>n <strong>con</strong> <strong>la</strong>s curvas<br />

hasta ahora estudiadas in vivo en el <strong>la</strong>boratorio. El objetivo fundamental <strong>de</strong> este<br />

tipo <strong>de</strong> mo<strong>de</strong>los es una interpretación funcional <strong>de</strong> patrones biológicos [Smolle,<br />

1993]. En patología una evaluación <strong>de</strong>l patrón <strong>de</strong>l tumor (o silueta <strong>de</strong>l tumor)<br />

provee criterios importante <strong>para</strong> el diagnóstico y prognosis <strong>de</strong> sistemas<br />

cancerosos.<br />

Existen algunas limitaciones en <strong>la</strong> simplificación <strong>de</strong> estos sistemas y en <strong>la</strong><br />

limitación <strong>de</strong> 2 dimensiones. Sin embargo los estudios <strong>con</strong> AC sirven <strong>para</strong><br />

<strong>de</strong>terminar cómo <strong>la</strong> dinámica local (si está bien <strong>con</strong>struida una reg<strong>la</strong>) genera <strong>la</strong>s<br />

propieda<strong>de</strong>s emergentes propias <strong>de</strong> un sistema <strong>de</strong> célu<strong>la</strong>s cancerosas.<br />

6.3 Crecimiento <strong>de</strong> pob<strong>la</strong>ciones <strong>con</strong> limitación <strong>de</strong> recursos<br />

6.3.1 Antece<strong>de</strong>ntes<br />

Los organismos pue<strong>de</strong>n ser vistos como simples sistemas <strong>de</strong> entradas y salidas<br />

[Pianka, 1988]. Los organismos buscan su alimento <strong>para</strong> obtener los materiales<br />

<strong>de</strong> entrada y energía los cuales son transformados en una salida que <strong>con</strong>siste en<br />

su progenie 85 . Ahora bien, los recursos se encuentran en forma limitada y esto<br />

hace que el tamaño <strong>de</strong> una pob<strong>la</strong>ción esté <strong>de</strong>terminada por <strong>la</strong> cantidad <strong>de</strong><br />

recursos y viceversa.<br />

La i<strong>de</strong>a es <strong>con</strong>struir un sistema don<strong>de</strong> los organismos tengan que buscar un<br />

recurso <strong>para</strong> permitir su reproducción. Simu<strong>la</strong>remos mediante un AC dos casos:<br />

1) Los recursos no son renovables y son <strong>con</strong>sumidos por los organismos hasta<br />

agotarlos.<br />

2) Los recursos son renovables. Su recuperación se <strong>de</strong>be a <strong>la</strong> aparición aleatoria<br />

<strong>de</strong> nuevas fuentes <strong>de</strong> recursos. En este caso el recurso tiene capacidad <strong>de</strong><br />

reproducción y <strong>de</strong> dispersión aleatoria.<br />

Se <strong>con</strong>struyó un AC <strong>para</strong> cada caso. El primero <strong>de</strong>terminístico y el segundo<br />

probabilístico <strong>para</strong> incorporar <strong>la</strong> aparición aleatoria <strong>de</strong> recursos.<br />

85 Descendientes<br />

111


6.3.2 Reg<strong>la</strong>s <strong>de</strong>l AC<br />

Se utiliza un vecindario <strong>de</strong> 9 vecinos. Son necesarios dos p<strong>la</strong>nos, <strong>para</strong> establecer<br />

los siguientes estados: Organismo vivo (1), Recurso (2) y Rastro (3). <strong>Un</strong><br />

organismo se reproduce en un medio rico en recursos y se mueve en dirección <strong>de</strong><br />

recursos o <strong>de</strong> rastros, <strong>de</strong>jando a su vez un rastro <strong>para</strong> que otros organismos lo<br />

puedan seguir. Si un organismo no <strong>con</strong>sigue recursos, este morirá. Las reg<strong>la</strong>s<br />

son <strong>la</strong> siguientes:<br />

1) 0 →1 si hay tres y sólo tres organismos alre<strong>de</strong>dor. Reproducción.<br />

2) 1 →3 siempre. <strong>Un</strong> organismo se mueve y al moverse <strong>de</strong>ja el rastro.<br />

3) 2 →1 si hay uno y solo un organismo alre<strong>de</strong>dor. Se permite el movimiento <strong>de</strong><br />

cualquier organismo en el medio.<br />

El código en ACF es el siguiente:<br />

: vec C C1 N S E W NE NW SE SW ;<br />

: 8sum N S E W NE NW SE SW + + + + + + + ;<br />

: move 8sum case { 2 1 2 2 2 2 2 2 2 2 } ;<br />

: reprod 8sum case { 0 0 0 1 0 0 0 0 0 0 } ;<br />

rules<br />

: C1 C 2 int case { reprod 3 move 0 } >PA ;<br />

Se utilizan tres funciones que permiten <strong>la</strong> acciones <strong>de</strong>scritas. 8sum, simplemente<br />

da el número <strong>de</strong> organismos alre<strong>de</strong>dor <strong>de</strong>l vecindario. Reprod que correspon<strong>de</strong> a<br />

<strong>la</strong> reg<strong>la</strong> 1 y move que permite el movimiento (reg<strong>la</strong> 3).<br />

En el caso <strong>de</strong> recurso renovable se agrega una reg<strong>la</strong>, <strong>para</strong> cuando no hay ni<br />

recurso ni organismo en una celda. Como se ve en el siguiente código, al estar<br />

una celda totalmente vacía aparecerá recurso y habrá movimiento <strong>con</strong><br />

probabilidad 1 <strong>de</strong> 100 (0.01):<br />

: vec C C1 N S E W NE NW SE SW ;<br />

: 8sum N S E W NE NW SE SW + + + + + + + ;<br />

: move 8sum case { 2 1 2 2 2 2 2 2 2 2 } ;<br />

: reprod 8sum case { 0 0 0 1 0 0 0 0 0 0 } ;<br />

rules<br />

: C 0 = C1 0 = and if move >P0 1 >P1 1 100 pcase<br />

else C1 C 2 int case { rerpod 3 move 0 } >PA<br />

then;<br />

112


6.3.3 Resultados<br />

Los resultados <strong>de</strong> ambos casos, <strong>con</strong> un arreglo <strong>de</strong> 150x150 se observan en <strong>la</strong><br />

Figura 42. En ambos casos se inicia <strong>con</strong> una <strong>con</strong>figuración particu<strong>la</strong>r <strong>de</strong> recursos<br />

y cinco organismos en el centro. Note como los organismos buscan el recurso,<br />

<strong>con</strong>sumiéndolo y reproduciéndose.<br />

Figura 42 Dinámica <strong>de</strong> <strong>con</strong>sumidor - recurso. a) A partir <strong>de</strong> una cantidad<br />

<strong>de</strong> recursos en una distribución especial, los organismos <strong>con</strong>sumen el<br />

recurso y el recurso no es renovable llevando a <strong>la</strong> <strong>de</strong>saparición <strong>de</strong> los<br />

<strong>de</strong>predadores. b) El recurso es renovable (se reproduce) llevando a una<br />

fluctuación entre <strong>la</strong> cantidad <strong>de</strong> recursos y <strong>la</strong> cantidad <strong>de</strong> organismos.<br />

Al observar <strong>la</strong> dinámica <strong>de</strong> pob<strong>la</strong>ción en el caso <strong>de</strong>l recurso no-renovable, <strong>la</strong><br />

pob<strong>la</strong>ción <strong>de</strong> organismos <strong>con</strong>sumidores se extingue rápidamente al <strong>con</strong>sumir el<br />

recurso (Figura 43), iniciando en or<strong>de</strong>n (entropía baja) los organismos van<br />

buscando aleatoriamente (aumento en entropía) el recurso hasta agotarlo<br />

(disminuye nuevamente <strong>la</strong> entropía). En cambio <strong>la</strong> pob<strong>la</strong>ción <strong>con</strong> recurso<br />

renovable muestra una dinámica interesante. Hay un aumento <strong>con</strong>si<strong>de</strong>rable en el<br />

recurso lo que impulsa un aumento en los organismos <strong>con</strong>sumidores, al llegar a<br />

cierto punto los <strong>con</strong>sumidores comienzan a agotar el recurso y su pob<strong>la</strong>ción se ve<br />

forzada a disminuir, permitiendo nuevamente un aumento en <strong>la</strong> cantidad <strong>de</strong><br />

recursos. Con respecto a <strong>la</strong> entropía en este sistema, se ven <strong>la</strong>s fluctuación <strong>de</strong><br />

esta dinámica <strong>de</strong>bido a períodos or<strong>de</strong>nados, don<strong>de</strong> hay un “<strong>con</strong>tinuo” <strong>de</strong> recursos<br />

y se generan frentes <strong>de</strong> <strong>con</strong>sumidores que avanzan y <strong>de</strong>sor<strong>de</strong>nados, don<strong>de</strong> hay<br />

dis<strong>con</strong>tinuida<strong>de</strong>s y <strong>la</strong>s pob<strong>la</strong>ciones <strong>de</strong> <strong>con</strong>sumidores no están organizadas.<br />

113


Recursos<br />

Número <strong>de</strong> Individuos<br />

12000<br />

10000<br />

8000<br />

6000<br />

4000<br />

2000<br />

1000<br />

800<br />

600<br />

400<br />

R<br />

N<br />

R<br />

a)<br />

200<br />

N<br />

0<br />

0 200 400 600 800 1000<br />

t<br />

0<br />

0<br />

0 100 200 300 400 500<br />

t<br />

350<br />

0.3<br />

c) d)<br />

300<br />

250<br />

200<br />

150<br />

100<br />

50<br />

S<br />

Organismos<br />

Figura 43 Dinámica <strong>con</strong>sumidor (N) –recurso (R) en el tiempo (t). a)<br />

cantidad <strong>de</strong> <strong>con</strong>sumidores y <strong>de</strong> recurso a lo <strong>la</strong>rgo <strong>de</strong> <strong>la</strong>s generaciones en<br />

un mo<strong>de</strong>lo <strong>con</strong> recurso no-renovable. b) entropía (S) <strong>de</strong>l sistema <strong>con</strong><br />

recursos no renovables. c) fluctuaciones <strong>de</strong> <strong>con</strong>sumidor – recurso en un<br />

sistema <strong>con</strong> recursos renovables. d) entropía en el sistema <strong>con</strong> recursos<br />

renovables.<br />

114<br />

0.07<br />

0.06<br />

0.05<br />

0.04<br />

0.03<br />

0.02<br />

0.01<br />

0<br />

0 200 400 600 800 1000<br />

t<br />

S<br />

R<br />

N<br />

0.25<br />

0.2<br />

0.15<br />

0.1<br />

0.05<br />

R<br />

N<br />

b)<br />

0<br />

0 100 200 300 400 500<br />

t


6.3.4 Implicaciones<br />

El mo<strong>de</strong>lo <strong>con</strong>struido es un ejemplo <strong>de</strong> fenómenos ecológicos importantes<br />

re<strong>la</strong>cionados <strong>con</strong> <strong>la</strong> dinámica <strong>de</strong> pob<strong>la</strong>ciones. Normalmente este tipo <strong>de</strong><br />

interacción (<strong>con</strong>sumidor – recurso o <strong>de</strong>predador –presa) entre dos especies, ha<br />

sido estudiado teóricamente mediante un sistema <strong>de</strong> ecuaciones diferenciales<br />

propuesto por Lotka y Volterra [Volterra, 1926]. La sencillez <strong>de</strong> <strong>con</strong>strucción <strong>de</strong><br />

este AC y su capacidad <strong>de</strong> simu<strong>la</strong>r fenómenos ecológicos, don<strong>de</strong> cada partícu<strong>la</strong><br />

en el espacio es <strong>con</strong>si<strong>de</strong>rada y don<strong>de</strong> se pue<strong>de</strong>n <strong>con</strong>struir ambientes<br />

heterogéneos, hacen <strong>de</strong> los AC una herramienta útil <strong>para</strong> el estudio <strong>de</strong> fenómenos<br />

ecológicos.<br />

6.4 Cooperación <strong>de</strong> individuos <strong>de</strong> una especie<br />

6.4.1 Antece<strong>de</strong>ntes<br />

La competencia y cooperación <strong>de</strong> individuos <strong>de</strong> una misma especie, es un<br />

fenómeno importante que permite <strong>la</strong> organización <strong>de</strong> grupos <strong>de</strong> individuos <strong>de</strong> una<br />

misma especie formando parches discretos. Este tipo <strong>de</strong> fenómeno también<br />

pue<strong>de</strong> ser estudiado mediante <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> un AC sencillo.<br />

Basado en el trabajo <strong>de</strong> Wilson [Wilson, 1997], <strong>con</strong>struimos un AC que permita<br />

mo<strong>de</strong><strong>la</strong>r <strong>la</strong> interacción <strong>de</strong> individuos sésiles 86 <strong>de</strong> una misma especie incorporando<br />

competencia por espacio y dos formas <strong>de</strong> cooperación: mejoramiento 87 <strong>de</strong> hábitat<br />

y reclutamiento 88 .<br />

6.4.2 Reg<strong>la</strong>s <strong>de</strong>l AC<br />

Se utilizarán so<strong>la</strong>mente dos estados y un vecindario <strong>de</strong> 5 vecinos, <strong>para</strong> mo<strong>de</strong><strong>la</strong>r:<br />

1) reclutamiento abierto: un sitio es ocupado <strong>de</strong> forma espontánea 89 .<br />

2) mortalidad individual: un individuo pue<strong>de</strong> morir en cualquier momento por<br />

razones que no <strong>de</strong>pen<strong>de</strong>n <strong>de</strong> <strong>la</strong> <strong>de</strong>nsidad <strong>de</strong> vecinos 90 .<br />

86<br />

Organismo que vive sobre un sustrato fijo (se<strong>de</strong>ntario).<br />

87<br />

“Ameliaration”<br />

88<br />

Incorporación <strong>de</strong> nuevos individuos a <strong>la</strong> pob<strong>la</strong>ción.<br />

89<br />

En términos biológicos significa que hay un banco <strong>de</strong> semil<strong>la</strong>s oculto que permite el surgimiento<br />

<strong>de</strong> nuevos individuos en cualquier parte <strong>de</strong>l espacio.<br />

90<br />

Edad, enfermedad, etc.<br />

115


3) pob<strong>la</strong>miento: un sitio es ocupado <strong>de</strong>pendiendo <strong>de</strong> <strong>la</strong> <strong>de</strong>nsidad <strong>de</strong> vecinos.<br />

4) cooperación: a<strong>de</strong>más <strong>de</strong> <strong>la</strong> mortalidad propia <strong>de</strong>l individuo, un sitio es más<br />

seguro evitando mortalidad por otras causas si está ro<strong>de</strong>ado por <strong>la</strong> mayor<br />

cantidad <strong>de</strong> individuos.<br />

Los estado son: sitio vacío (0) y sitio ocupado (1). Establecemos <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong>l AC<br />

en dos grupos, <strong>para</strong> diferenciar <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong>pendientes <strong>de</strong> <strong>de</strong>nsidad y <strong>la</strong>s<br />

in<strong>de</strong>pendientes:<br />

In<strong>de</strong>pendientes <strong>de</strong> <strong>de</strong>nsidad (p1):<br />

1. 0 →1. <strong>con</strong> probabilidad k1. Mortalidad <strong>de</strong> un individuo.<br />

2. 1 →0. <strong>con</strong> probabilidad k2. Reclutamiento.<br />

Dependientes <strong>de</strong> <strong>de</strong>nsidad (p2):<br />

1. 0 →1. Si V es el número <strong>de</strong> sitios vecinos ocupados, el evento ocurre <strong>con</strong><br />

probabilidad 3 4<br />

V k = . Mortalidad <strong>de</strong>nso-<strong>de</strong>npendiente.<br />

2. 1 →0. Esto ocurre <strong>con</strong> probabilidad ⎟ 2 ⎛ V ⎞<br />

k = ⎜ 4 1 − . z es <strong>la</strong> variable que<br />

⎝ z ⎠<br />

modificamos <strong>para</strong> <strong>de</strong>terminar mayor o menor cooperación.<br />

Nótese que cada grupo <strong>de</strong> reg<strong>la</strong>s ocurre <strong>con</strong> probabilidad p, y por tanto los casos<br />

ocurren <strong>con</strong> probabilidad (p * k) Así, por ejemplo <strong>la</strong> reg<strong>la</strong> 2 <strong>de</strong>nso <strong>de</strong>pendiente<br />

ocurre <strong>con</strong> probabilidad (p2 * k4)<br />

El código en ACF es el siguiente:<br />

: vec C N S E W ;<br />

: 4sum N S E W + + + ;<br />

rules<br />

: 20 prob C 0 = if<br />

1 1 100000 pcase<br />

else<br />

0 1 5 pcase<br />

then >P0 ;<br />

: 80 prob C 0 = if<br />

1 4sum 4 pcase<br />

else<br />

0 16 4sum dup * - 16 pcase<br />

then >P0 ;<br />

116


La función 4sum, suma los cuatro vecinos ortogonales. Este AC es probabilístico<br />

no-homogéneo (ver capítulo 2), es <strong>de</strong>cir en cada sitio pue<strong>de</strong> ocurrir una reg<strong>la</strong><br />

diferente <strong>con</strong> diferentes probabilida<strong>de</strong>s. La primera reg<strong>la</strong> (que el código ocurre<br />

<strong>con</strong> probabilidad 20 <strong>de</strong> 100), <strong>de</strong>termina <strong>la</strong>s mortalida<strong>de</strong>s in<strong>de</strong>pendientes <strong>de</strong> <strong>la</strong><br />

<strong>de</strong>nsidad 91 . En el caso <strong>de</strong> <strong>la</strong> segunda reg<strong>la</strong> (80 <strong>de</strong> 100) ocurre <strong>la</strong> mortalidad<br />

<strong>de</strong>nso- <strong>de</strong>pendiente y pob<strong>la</strong>miento.<br />

6.4.3 Resultados<br />

La simu<strong>la</strong>ción se corre utilizando diferentes valores <strong>de</strong> z. <strong>Un</strong> menor valor <strong>de</strong> z<br />

indica que el efecto <strong>de</strong> <strong>la</strong> cooperación es menor, y el caso <strong>con</strong>trario <strong>para</strong> un valor<br />

alto <strong>de</strong> z. Es <strong>de</strong>cir, cuando el sistema tiene un valor alto <strong>de</strong> z, entonces existe una<br />

alta influencia <strong>de</strong> <strong>la</strong> cooperación <strong>para</strong> evitar <strong>la</strong> mortalidad. Los resultados <strong>de</strong><br />

simu<strong>la</strong>r un arreglo <strong>de</strong> 150x150 <strong>con</strong> 5% <strong>de</strong> celdas 1 inicialmente y bor<strong>de</strong>s cerrados<br />

se muestran en <strong>la</strong> Figura 44.<br />

Figura 44 Crecimiento <strong>de</strong> <strong>la</strong> pob<strong>la</strong>ción <strong>con</strong> diferentes valores <strong>de</strong><br />

cooperación. Al aumentar z aumenta <strong>la</strong> probabilidad <strong>de</strong> cooperación<br />

cuando hay vecinos.<br />

91 Note como <strong>la</strong> función 4sum no es invocada. Esta función es <strong>la</strong> que <strong>de</strong>termina el efecto <strong>de</strong> los<br />

vecinos.<br />

N<br />

20000<br />

15000<br />

10000<br />

5000<br />

z =32<br />

z =28<br />

z =24<br />

z =16<br />

0<br />

0 20 40 60 80 100<br />

117<br />

t


Como se pue<strong>de</strong> observar en <strong>la</strong> Figura 45, se forman parches <strong>de</strong> celdas 1. Estos<br />

parches dan <strong>con</strong>diciones <strong>de</strong> seguridad a <strong>la</strong>s celdas <strong>con</strong> mayor número <strong>de</strong> vecinos.<br />

6.4.4 Implicaciones<br />

Figura 45 Evolución <strong>de</strong> 100 generaciones. a) inicio <strong>con</strong> 5% <strong>de</strong> celdas en<br />

estado 1. b) <strong>de</strong>spués <strong>de</strong> 100 generaciones, se observan parches <strong>de</strong><br />

organismos.<br />

Las <strong>con</strong>diciones <strong>de</strong> mortalidad in<strong>de</strong>pendientes <strong>de</strong> <strong>la</strong> <strong>de</strong>nsidad así como <strong>la</strong>s<br />

<strong>de</strong>pendientes, bajo ciertos parámetros, favorecerán los comportamientos<br />

cooperativos. En este caso son favorable situaciones don<strong>de</strong> por cooperación hay<br />

un aumento en el tamaño <strong>de</strong> <strong>la</strong> pob<strong>la</strong>ción en <strong>con</strong>diciones i<strong>de</strong>ales. Aunque es un<br />

ejemplo sencillo, es <strong>con</strong>vincente en términos <strong>de</strong> <strong>la</strong>s ventajas <strong>de</strong> <strong>la</strong> cooperación<br />

dadas ciertas <strong>con</strong>diciones.<br />

En términos <strong>de</strong> <strong>la</strong> simu<strong>la</strong>ción, se hizo una experimentación mediante el cambio en<br />

<strong>la</strong>s probabilida<strong>de</strong>s <strong>de</strong> cooperación, manteniendo el resto <strong>de</strong> variables <strong>con</strong>stantes.<br />

Este principio <strong>de</strong> simu<strong>la</strong>ción es importante y sólo pue<strong>de</strong> ser llevado a cabo<br />

mediante mo<strong>de</strong>los teóricos.<br />

118


6.5 Comentario Final<br />

Los ejemplo presentados, muestran el potencial <strong>de</strong> los AC <strong>para</strong> mo<strong>de</strong><strong>la</strong>r <strong>la</strong><br />

dinámica <strong>de</strong> sistemas biológicos. Su sencil<strong>la</strong> y natural 92 <strong>con</strong>strucción y lo gráfico<br />

<strong>de</strong> sus resultados le da ventajas sobre otros métodos <strong>de</strong> simu<strong>la</strong>ción.<br />

Este tipo <strong>de</strong> mo<strong>de</strong>los facilitaría que un biólogo, <strong>con</strong> <strong>con</strong>ocimientos básicos en<br />

matemáticas, pueda e<strong>la</strong>borar reg<strong>la</strong>s complejas que le permitan simu<strong>la</strong>r<br />

comportamientos reales observados en el campo. Tal vez al utilizar mo<strong>de</strong>los<br />

como este sea posible en<strong>con</strong>trar los comportamientos comunes <strong>de</strong> los diferentes<br />

niveles estructurales <strong>de</strong> <strong>la</strong>s ciencias biológicas.<br />

92<br />

No se requiere más que <strong>la</strong> <strong>de</strong>ducción <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong>l sistema que se <strong>de</strong>sea mo<strong>de</strong><strong>la</strong>r, sin<br />

ningún tipo <strong>de</strong> formalismo matemático.<br />

119


7 Conclusiones<br />

7.1 ¿Por qué autómatas celu<strong>la</strong>res?<br />

La respuesta es c<strong>la</strong>ra: un AC es un sistema matemático que permite mo<strong>de</strong><strong>la</strong>r<br />

sistemas dinámicos complejos a partir <strong>de</strong> <strong>la</strong> especificación <strong>de</strong> <strong>la</strong> dinámica local <strong>de</strong><br />

sus componentes. Es sencillo especificar reg<strong>la</strong>s <strong>de</strong> AC y los resultados gráficos<br />

<strong>de</strong>l AC hacen fácil <strong>la</strong> interpretación en términos <strong>de</strong>l sistema bajo estudio.<br />

En general es más sencillo enten<strong>de</strong>r un AC y especificar <strong>la</strong>s reg<strong>la</strong>s <strong>de</strong> éste, que<br />

<strong>de</strong>sarrol<strong>la</strong>r una ecuación diferencial parcial <strong>para</strong> <strong>de</strong>scribir <strong>la</strong> dinámica <strong>de</strong> un<br />

sistema integrado por muchos componentes <strong>con</strong> gran cantidad <strong>de</strong> variables<br />

involucradas. A<strong>de</strong>más, todos los procesos <strong>de</strong> experimentación <strong>de</strong> un biólogo<br />

pue<strong>de</strong>n ser realizados en el AC. El AC es un medio artificial <strong>de</strong> experimentación.<br />

Esta experimentación permite realizar pruebas <strong>de</strong> sistemas <strong>de</strong> gran esca<strong>la</strong> <strong>de</strong><br />

espacio y tiempo que <strong>de</strong> forma natural son imposibles <strong>de</strong> realizar. Por ejemplo, si<br />

se utiliza un AC <strong>para</strong> mo<strong>de</strong><strong>la</strong>r <strong>la</strong> dinámica <strong>de</strong> un bosque tropical bajo manejo<br />

forestal, sería posible establecer todas <strong>la</strong>s variantes <strong>de</strong> manejo y <strong>de</strong>terminar cuál<br />

es el impacto en <strong>la</strong> distribución espacial y temporal <strong>de</strong> especies; este experimento<br />

no se pue<strong>de</strong> realizar en <strong>la</strong> realidad, por implicaciones éticas y porque <strong>la</strong> esca<strong>la</strong><br />

temporal <strong>de</strong>l experimento va más allá <strong>de</strong> nuestro tiempo <strong>de</strong> vida.<br />

Si bien un AC requiere cierto po<strong>de</strong>r <strong>de</strong> procesamiento, hoy en día cualquier<br />

computadora personal tiene <strong>la</strong> capacidad <strong>para</strong> trabajar <strong>con</strong> AC, por lo que<br />

cualquier investigador <strong>con</strong> su computador pue<strong>de</strong> experimentar <strong>con</strong> AC, sentado en<br />

su escritorio.<br />

7.2 ¿Que importancia tiene el <strong>con</strong>cepto <strong>de</strong> entida<strong>de</strong>s biológicas?<br />

La posibilidad <strong>de</strong> hacer <strong>de</strong> <strong>la</strong>s ciencias biológicas una ciencia estructurada, don<strong>de</strong><br />

existen leyes que pue<strong>de</strong>n ser utilizadas <strong>para</strong> <strong>la</strong> <strong>con</strong>strucción y <strong>con</strong>trol <strong>de</strong> sistemas<br />

biológicos, <strong>de</strong>pen<strong>de</strong> <strong>de</strong> nuestra capacidad <strong>de</strong> proponer una biología unificada,<br />

don<strong>de</strong> se <strong>con</strong>ocen principios y leyes que aplican a <strong>la</strong>s entida<strong>de</strong>s biológicas. El<br />

<strong>con</strong>cepto <strong>de</strong> entida<strong>de</strong>s biológicas propone <strong>la</strong> i<strong>de</strong>a <strong>de</strong> que toda ley biológica<br />

universal <strong>de</strong>be aplicarse a todas <strong>la</strong>s entida<strong>de</strong>s biológicas. <strong>Un</strong>a entidad biológica<br />

es un individuo, una pob<strong>la</strong>ción, un ecosistema o GAIA. Las entida<strong>de</strong>s biológicas<br />

son sistemas cuya dinámica en espacio y tiempo cumplen <strong>con</strong> principios<br />

biológicos.<br />

120


7.3 ¿Son los autómatas celu<strong>la</strong>res un mo<strong>de</strong>lo universal <strong>de</strong> entida<strong>de</strong>s<br />

biológicas?<br />

La gran mayoría <strong>de</strong> estudios <strong>con</strong> AC han sido realizados <strong>para</strong> mo<strong>de</strong>los <strong>de</strong><br />

sistemas físicos. Producto <strong>de</strong> estas investigaciones ha sido posible <strong>de</strong>terminar <strong>de</strong><br />

forma c<strong>la</strong>ra cuáles son <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> estos sistemas matemáticos y cómo,<br />

a<strong>de</strong>más <strong>de</strong> ser buenos mo<strong>de</strong>los son representaciones casi exactas <strong>de</strong> fenómenos<br />

físicos. En términos <strong>de</strong> sistemas biológicos pareciera que <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> AC<br />

son suficientes <strong>para</strong> mo<strong>de</strong><strong>la</strong>r <strong>la</strong> dinámica <strong>de</strong> entida<strong>de</strong>s biológicas. Las<br />

propieda<strong>de</strong>s <strong>de</strong> AC <strong>de</strong> auto-organización, auto-replicación, computación universal<br />

y complejidad son importantes en el <strong>de</strong>sarrollo <strong>de</strong> leyes <strong>para</strong> entida<strong>de</strong>s biológicas.<br />

Si toda dinámica <strong>de</strong> entida<strong>de</strong>s biológicas pue<strong>de</strong> ser mo<strong>de</strong><strong>la</strong>da <strong>con</strong> ecuaciones<br />

diferenciales, entonces también un AC pue<strong>de</strong> hacerlo. La naturaleza discreta <strong>de</strong><br />

los AC hace que sea simple pasar <strong>de</strong> datos biológicos experimentales, que<br />

representan muestras discretas <strong>de</strong> una entidad biológica, a reg<strong>la</strong>s <strong>de</strong> AC.<br />

Como <strong>con</strong>clusión podríamos <strong>con</strong>jeturar que toda ley biológica universal pue<strong>de</strong><br />

mo<strong>de</strong><strong>la</strong>rse <strong>con</strong> un AC.<br />

7.4 ¿Por qué un lenguaje <strong>para</strong> especificar autómatas celu<strong>la</strong>res?<br />

Muchos <strong>de</strong> los trabajos <strong>de</strong> AC han sido realizados programando AC específicos y<br />

no utilizando un <strong>con</strong>structor universal <strong>de</strong> AC. Aunque algunos programas útiles<br />

existen (Mathematica, CAM-PC, CellLab), no son accesibles <strong>para</strong> un biólogo<br />

investigador. Al diseñar un lenguaje que <strong>de</strong> forma simple permite <strong>con</strong>struir<br />

cualquier AC, es posible acercar a los investigadores a estos mo<strong>de</strong>los. Como<br />

resultado <strong>de</strong>l diseño se obtuvo un lenguaje simple y compacto, que permite<br />

mo<strong>de</strong><strong>la</strong>r sistemas <strong>de</strong> complejidad arbitraria.<br />

A<strong>de</strong>más se <strong>de</strong>scribe el lenguaje tanto sintácticamente como semánticamente, lo<br />

cual facilita que investigadores <strong>con</strong>struyan sus propios procesadores <strong>de</strong>l mismo<br />

lenguaje y puedan exten<strong>de</strong>r sus posibilida<strong>de</strong>s.<br />

7.5 ¿Es ACFw capaz <strong>de</strong> mo<strong>de</strong><strong>la</strong>r cualquier autómata celu<strong>la</strong>r?<br />

Todos los AC clásicos 93 presentados en este trabajo, fueron <strong>con</strong>struidos <strong>con</strong> el<br />

leguaje diseñado (ACF) y el programa creado (ACFw). En principio cualquier AC<br />

pue<strong>de</strong> ser <strong>con</strong>struido <strong>con</strong> ACFw, sin embargo no se da ninguna prueba formal <strong>de</strong><br />

esta afirmación. ACFw es una primera versión, queda el camino abierto <strong>para</strong><br />

exten<strong>de</strong>r <strong>la</strong>s posibilida<strong>de</strong>s <strong>de</strong>l programa<br />

93 Referimos como clásicos, a todos aquellos AC que han representado un avance <strong>con</strong>si<strong>de</strong>rable en<br />

el entendimiento <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s <strong>de</strong> estos sistemas.<br />

121


7.6 ¿Es ACFw un mo<strong>de</strong>lo i<strong>de</strong>al <strong>para</strong> aplicaciones biológicas?<br />

Con <strong>la</strong>s aplicaciones biológicas <strong>con</strong>struidas <strong>para</strong> estudiar <strong>la</strong>s posibilida<strong>de</strong>s <strong>de</strong><br />

ACFw, pareciera sencillo <strong>con</strong>struir cualquier mo<strong>de</strong>lo biológico; quedará en <strong>la</strong>s<br />

manos <strong>de</strong> los investigadores realizar experimentos más formales que puedan<br />

<strong>de</strong>terminar el potencial <strong>de</strong>l programa.<br />

Las herramientas <strong>de</strong> investigación programadas en ACFw, permiten trabajar <strong>con</strong><br />

los AC como un ambiente <strong>de</strong> experimentación. Con ACFw es posible medir <strong>la</strong>s<br />

mismas variables que forman parte <strong>de</strong> cualquier proceso <strong>de</strong> investigación<br />

biológica en tiempo y espacio.<br />

7.7 Alcances <strong>de</strong> <strong>la</strong> tesis<br />

1) Es importante acercar <strong>la</strong>s investigaciones <strong>de</strong> <strong>la</strong>s ciencias <strong>de</strong> <strong>la</strong> computación<br />

<strong>con</strong> ciencias naturales como <strong>la</strong> biología. Este trabajo es un intento <strong>de</strong> acercar<br />

ambos mundos.<br />

2) La informalidad <strong>de</strong> muchas investigaciones biológicas, se <strong>de</strong>be a <strong>la</strong> poca<br />

disponibilidad <strong>de</strong> sistemas simples <strong>para</strong> mo<strong>de</strong><strong>la</strong>r. ACFw es un programa al<br />

alcance <strong>de</strong> todos los investigadores.<br />

3) La enseñanza <strong>de</strong> <strong>la</strong> biología utilizando AC, pue<strong>de</strong> tomar nuevas dimensiones.<br />

<strong>Un</strong> programa como ACFw, permitiría <strong>de</strong>mostrar cómo es posible mo<strong>de</strong><strong>la</strong>r y<br />

formalizar <strong>la</strong> dinámica <strong>de</strong> los sistemas biológicos, cómo enten<strong>de</strong>r <strong>la</strong>s entida<strong>de</strong>s<br />

biológicas en espacio y tiempo, y el papel <strong>de</strong> sistemas formales en el<br />

entendimiento y formalización <strong>de</strong> <strong>la</strong> biología.<br />

4) Experimentos <strong>de</strong> gran esca<strong>la</strong> pue<strong>de</strong>n ser llevados a cabo en un AC como<br />

ambiente <strong>con</strong>tro<strong>la</strong>do. En ACFw se proveen herramientas <strong>para</strong> <strong>la</strong><br />

experimentación que facilitan <strong>la</strong> <strong>la</strong>bor <strong>de</strong>l investigador.<br />

5) Al <strong>con</strong>struir reg<strong>la</strong>s <strong>de</strong> AC basados en datos experimentales, se hace una<br />

abstracción <strong>de</strong>l comportamiento fundamental <strong>de</strong> <strong>la</strong>s unida<strong>de</strong>s <strong>de</strong> un sistema.<br />

Si el mo<strong>de</strong>lo funciona e imita bien el sistema real, <strong>la</strong>s reg<strong>la</strong>s p<strong>la</strong>nteadas<br />

representan teoremas <strong>de</strong> funcionamiento <strong>de</strong> este sistema. Este trabajo<br />

ejemplifica <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> AC biológicos y muestra cómo se pue<strong>de</strong>n<br />

realizar tanto trabajos experimentales como teóricos utilizando AC.<br />

6) El documento <strong>de</strong> tesis, pue<strong>de</strong> ser una guía <strong>para</strong> que biólogos y otros<br />

investigadores experimenten <strong>con</strong> este tipo <strong>de</strong> mo<strong>de</strong>los. dado a que<br />

practicamente todo el material sobre AC se encuantra en inglés, esta tesis es<br />

una buena referencia en español <strong>de</strong> <strong>la</strong>s propieda<strong>de</strong>s y particu<strong>la</strong>rida<strong>de</strong>s <strong>de</strong> los<br />

AC.<br />

122


7) Es importante fomentar <strong>la</strong> integración <strong>de</strong> diferentes ramas <strong>de</strong> <strong>la</strong> ciencia <strong>para</strong><br />

<strong>de</strong>sarrol<strong>la</strong>r teorías interesantes. Este trabajo mezc<strong>la</strong> aspectos <strong>de</strong> computación<br />

y biología. Para el autor esta experiencia fue estimu<strong>la</strong>nte y espera po<strong>de</strong>r<br />

trasmitir<strong>la</strong> a otros investigadores.<br />

7.8 Comentario Final<br />

Aunque no se ha resuelto ningún aspecto fundamental <strong>de</strong> <strong>la</strong> biología, se han<br />

p<strong>la</strong>nteado algunas i<strong>de</strong>as que buscan una biología unificada. Las nociones<br />

abstractas <strong>de</strong> <strong>la</strong>s ciencias <strong>de</strong> <strong>la</strong> computación, son puentes <strong>para</strong> <strong>la</strong> <strong>con</strong>strucción <strong>de</strong><br />

teorías sólidas en otras ciencias como <strong>la</strong> biología. A través <strong>de</strong> los autómatas<br />

celu<strong>la</strong>res hemos visto que sistemas exactos, don<strong>de</strong> todas <strong>la</strong>s reg<strong>la</strong>s son <strong>de</strong>finidas<br />

<strong>de</strong> forma <strong>de</strong>terminística, pue<strong>de</strong>n generar resultados impre<strong>de</strong>cibles, y <strong>la</strong><br />

organización propia <strong>de</strong> sistemas complejos. Los comportamientos complejos <strong>de</strong><br />

los sistemas biológicos son impre<strong>de</strong>cibles, y los autómatas celu<strong>la</strong>res sugieren <strong>la</strong><br />

posibilidad <strong>de</strong> que <strong>la</strong>s reg<strong>la</strong>s mismas <strong>de</strong>l funcionamiento biológico son exactas y<br />

<strong>de</strong>terminísticas. Sin embargo queda una duda respecto a esta afirmación.<br />

Muchos <strong>de</strong> los fenómenos biológicos son irreversibles. Al ser sistemas disipativos,<br />

don<strong>de</strong> <strong>la</strong> energía y <strong>la</strong> materia se mueven hacia otros sub-sistemas, los cambios <strong>de</strong><br />

estado no permiten que se pueda <strong>de</strong>terminar el origen exacto <strong>de</strong> una situación<br />

presente. Si <strong>con</strong>struyéramos en un autómata celu<strong>la</strong>r un mo<strong>de</strong>lo <strong>de</strong> una situación<br />

biológica particu<strong>la</strong>r, no estamos seguros si <strong>la</strong> reg<strong>la</strong> es <strong>la</strong> única que pue<strong>de</strong> originar<br />

el resultado final <strong>de</strong>l sistema, o existe un <strong>con</strong>junto <strong>de</strong> reg<strong>la</strong>s que pue<strong>de</strong>n generar el<br />

mismo comportamiento. Lo que sí nos queda c<strong>la</strong>ro es que un número gran<strong>de</strong> <strong>de</strong><br />

situaciones iniciales, llevan a un <strong>con</strong>junto reducido <strong>de</strong> <strong>con</strong>figuraciones finales, lo<br />

que es <strong>con</strong>gruente <strong>con</strong> <strong>la</strong> estabilidad propia <strong>de</strong> sistemas biológicos.<br />

Son muchos los cuestionamientos que pue<strong>de</strong>n surgir a partir <strong>de</strong> <strong>la</strong>s nociones <strong>de</strong><br />

ciencias puras como <strong>la</strong> computación, aplicadas a ciencias nuevas como <strong>la</strong><br />

biología. El esfuerzo <strong>de</strong> integrar ambas ciencias no es irrelevante, dado que <strong>la</strong><br />

biología no pue<strong>de</strong> pre<strong>de</strong>cir los cambios si no es <strong>con</strong> herramientas formales que le<br />

permitan mo<strong>de</strong><strong>la</strong>rlos. Actualmente es necesario, no sólo resolver aspectos<br />

teóricos <strong>de</strong>l comportamiento <strong>de</strong> los sistemas naturales, sino <strong>la</strong> búsqueda <strong>de</strong><br />

soluciones aplicables a nuestra realidad. El manejo <strong>de</strong> recursos no tiene futuro, si<br />

no <strong>con</strong>struimos mo<strong>de</strong>los que permitan simu<strong>la</strong>r los cambios a los cuales estamos<br />

sometiendo a <strong>la</strong>s regiones bajo manejo. Algunas <strong>de</strong> estas respuestas urgentes,<br />

pue<strong>de</strong>n ser <strong>con</strong>struidas <strong>con</strong> autómatas celu<strong>la</strong>res, y su fácil interpretación los<br />

hacen <strong>la</strong> herramienta más accesible <strong>para</strong> que investigadores en ciencias aplicadas<br />

encuentren soluciones a sus problemas<br />

La herramienta y el lenguaje <strong>de</strong>sarrol<strong>la</strong>dos, son un primer paso en <strong>la</strong> búsqueda <strong>de</strong>l<br />

nuevo or<strong>de</strong>n biológico, y abren <strong>la</strong> puerta <strong>para</strong> que investigadores y estudiantes<br />

puedan experimentar y simu<strong>la</strong>r sistemas, y puedan <strong>con</strong>struir soluciones a<br />

problemas teóricos o prácticos.<br />

123


8 Bibliografía<br />

[Ahson, 1985] Ahson, S.; Lamba, S. “The use of forth <strong>la</strong>nguage in process<br />

<strong>con</strong>trol”. Computer Languages. 10 (3/4), 179-187, 1985.<br />

[Al<strong>la</strong>by, 1989] Al<strong>la</strong>by, M. A Gui<strong>de</strong> to GAIA. A survey of the new science of our<br />

living earth. New York: E.P. Dutton, 1989.<br />

[Ans-Forth, 1993] Draft Proposed American National Standard for Information<br />

Systems – Programming Languages- Forth. American National<br />

Standards Institute, Inc. June 30, 1993.<br />

[Aspray, 1990] Aspray, W. “The origins of John von Newmann’s theory of<br />

automata”. Proceedings of Symposia in Pure Mathematics, 50,<br />

289-324, 1990.<br />

[Bak, 1989] Bak, P.; et al. “Self-organized criticality in the Game of Life”.<br />

Nature, 342, 780-782, December 1989.<br />

[Bak, 1991] Bak, P.; Chen, K. “Criticalidad auto-organizada”. Investigación y<br />

Ciencia, 18-25, 1991.<br />

[Berry, 1995] Berry, S. “Entropy, Irreversibility and Evolution”. Journal of<br />

Theoretical Biology, 175, 197-202, 1995.<br />

[Bo<strong>de</strong>n,1996] Bo<strong>de</strong>n,M. “The Intelectual Context of Artificial Life”. En The<br />

Philosophy of Artificial Life. Editor: Bo<strong>de</strong>n M. Eng<strong>la</strong>nd: Oxford<br />

<strong>Un</strong>iversity Press, 1996.<br />

[Bor<strong>la</strong>nd, 1997] Bor<strong>la</strong>nd. Delphi 3 for Windows 95 & Windows NT: User’s<br />

Gui<strong>de</strong>. USA: Bor<strong>la</strong>nd International, 1997.<br />

[Brown, 1995] Brown, J. Macroecology. London: The <strong>Un</strong>iversity of Chicago<br />

Press.,1995.<br />

[Burian, 1990] Burian, R. M. and Richardson, R. C. “Form and or<strong>de</strong>r in<br />

evolutionary biology”, 1990. En The Philosophy of Artificial Life.<br />

Editor Bo<strong>de</strong>n, M. London: Oxford <strong>Un</strong>iversity Press. 1996.<br />

[Burks, 1970] Burks, A.W. Essays on Cellu<strong>la</strong>r Automata. USA: university of<br />

Illinois Press. 1970.<br />

[Byl, 1989] Byl, J. “Self-Reproduction in Small Cellu<strong>la</strong>r Automata”. Physica<br />

D, 34, 295-299, 1989.<br />

[Carnap, 1969] Carnap, R. Fundamentación lógica <strong>de</strong> <strong>la</strong> física. Barcelona:<br />

Ediciones Orbis, S.A., 1969.<br />

124


[Cocho, 1987] Cocho, G, et al. “Discrete Systems, Cell-Cell Interactions and<br />

color Pattern of Animals II. Clonal Theory and Cellu<strong>la</strong>r<br />

Automata”. Journal of Theoretical Biology, 125, 437-447, 1987.<br />

[Culik, 1990] Culik, K.; et al. “Computation theoritic aspects of cellu<strong>la</strong>r<br />

automata”. Physica D, 45, 357-378, 1990.<br />

[Chaté, 1990] Chaté, H.; Manneville, P. “Criticality in cellu<strong>la</strong>r automata”.<br />

Physica D, 45, 122-135, 1990.<br />

[Davis, 1986] Davis, P.J. and Hersh, R. Descartes’ Dream. The world<br />

according to mathematics. London: Penguin Books, 1986.<br />

[Dennett, 1996] Dennett, D. “Artificial Life as Philosophy”, 1996. En Artificial<br />

Live an Overview. Editor Langton, C. London: The MIT Press.<br />

1997.<br />

[Dewdney, 1984] Dewdney, A. K. “Computer Recreations. Sharks and fish wage<br />

an ecological war on the toroidal p<strong>la</strong>net Wa-Tor”. Scientific<br />

American, 14-22, December, 1984.<br />

[Dewdney, 1985] Dewdney, A. “Computer Recreations: Building computers in<br />

one dimension sheds light on irreducibly complicated<br />

phenomena. Scientific American, 252 (5), 10-16, May 1985.<br />

[Dewdney, 1990] Dewdney, B. “Computer Recreations: The cellu<strong>la</strong>r automata<br />

programs that create wireworld, rugworld and other diversions”.<br />

Scientific American, 262 (1), 136-139, January 1990.<br />

[Dewdney, 1993] Dewdney, A. The (new) Turing omnibus: 66 Excursions in<br />

computer science. USA: Computer Science Press, 1993.<br />

[Eigen, 1981] Eigen, M. et al. “The Origin of Genetic Information”. Scientific<br />

American, 244(4), 88-118, 1981.<br />

[Eisele, 1991] Eisele, M. “Long-range corre<strong>la</strong>tions in chaotic cellu<strong>la</strong>r<br />

automata”. Physica D, 48, 295-310, 1991.<br />

[Ermentrout, 1993] Ermentrout, G.; E<strong>de</strong>lstein-Keshet, L. “Cellu<strong>la</strong>r Automata<br />

Appoaches to Biological Mo<strong>de</strong>ling”. Journal of Theoretical<br />

Biology, 160, 97-133, 1993.<br />

[Fredkin, 1990] Fredkin, E. “Digital mechanics”. Physica D, 45, 254-270, 1990<br />

[Gardner, 1970] Gardner, M. “Mathematical Games: The Fantastic<br />

Combinations of John Conway’s New Solitaire Game ‘Life’ ”.<br />

Scientific American, 223, 120-123, April 1970.<br />

125


[Gardner, 1971] Gardner, M. “Mathematical Games: On cellu<strong>la</strong>r automata, selfreproduction<br />

the Gar<strong>de</strong>n of E<strong>de</strong>n an the game life”. Scientific<br />

American, 224, 112-117, February 1971.<br />

[Gerhardt, 1990] Gerhardt, M.; et al. “A Cellu<strong>la</strong>r Automation Mo<strong>de</strong>l of Excitalbe<br />

Media Including Curvature and Dispersion”. Science, 247,<br />

1563-1566, March 1990.<br />

[Greenberg, 1978] Greenberg, J.; Hastings, S. “Spatial Patterns for Discrete<br />

Mo<strong>de</strong>ls of Diffusion in Excitable Media”. SIAM Journal of<br />

Applied Mathematics. 34 (3), 515-523, May 1978.<br />

[Gunji, 1990] Gunji, Y. “The Algebraic Properties of Finite Cellu<strong>la</strong>r Automata”.<br />

Physica D, 41, 282-294, 1990.<br />

[Gutowitz, 1990] Gutowitz, H. “A hierarchical c<strong>la</strong>ssification of cellu<strong>la</strong>r automata”.<br />

Physica D, 45, 136-156, 1990.<br />

[Haeseler, 1995] Haeseler, F. “Global anallysis of self-simi<strong>la</strong>rity features of<br />

cellu<strong>la</strong>r automata: selected examples”. Physica D, 86, 64-80,<br />

1995.<br />

[Hassell, 1991] Hassell, M.; Comins, H. and May, R. “Spatial structure and<br />

chaos in insect popu<strong>la</strong>tion dynamics”. Nature, 353, 255-258,<br />

1991.<br />

[Hayes, 1984] Hayes, B. “Computer Recreations: The cellu<strong>la</strong>r automaton<br />

offers a mo<strong>de</strong>l of the world and a world unto itself”. Scientific<br />

American. 250 (3), 10-16, 1984.<br />

[Hillman, 1991] Hillman, D. “The structure of reversible one-dimensional cellu<strong>la</strong>r<br />

automata”. Physica D, 52, 277-292, 1991.<br />

[Holmes, 1994] Holmes, E. et al. “Partial Differential Equations in Ecology:<br />

Spatial Interactions and Popu<strong>la</strong>tion Dynamics”. Ecology, 75(1),<br />

17-29, 1994.<br />

[Hopcroft, 1979] Hopcroft, J.; Ullman, J. Introduction to automata theory,<br />

<strong>la</strong>nguages, and computation. USA: Addison Wesley, 1979.<br />

[Hutchinson, 1957] Hutchinson, G. “Concluding Remarks”. Popu<strong>la</strong>tion Studies:<br />

Animal Ecology and Demography. Cold Spring Harbor.<br />

Symposia on Quantitativ Biology, 22, 415-427, 1957.<br />

[Inghe, 1989] Inghe, O. “Genet and Ramet Survivorship un<strong>de</strong>r Different<br />

Mortality Regimes – A Cellu<strong>la</strong>r Automata Mo<strong>de</strong>l”. Journal of<br />

Theoretical Biology, 138, 257-270, 1989.<br />

126


[Jacob, 1973] Jacob, F. “The Logic of Life: A History of Heredity. New York:<br />

Pantheon. 1973.<br />

[Jeffers, 1991] Jeffers, J. Mo<strong>de</strong>los en ecología. Barcelona: oikos-tau, S.A.,<br />

1991.<br />

[Jen, 1990] Jen, E. “Aperiodicity in one-dimensional cellu<strong>la</strong>r automata”.<br />

Physica D, 45, 3-18, 1990.<br />

[Jordan, 1990] Jordan, J.C. “Evolution Towards increasing Entropy according<br />

to the Boltzmann mo<strong>de</strong>l. Evolution Theory. 9: 225-277. 1990.<br />

[Kauffman, 1984] Kauffman, S. “Emergent properties in random complex<br />

automata”. Physica D, 10, 145-156, 1984.<br />

[Kauffman, 1987] Kauffman, S.; Simon, L. “Towards a General Theory of<br />

Adaptive Walks on rugged <strong>la</strong>ndscapes”. Journal of Theoretical<br />

Biology, 128,11-45, 1987.<br />

[Knuth, 1969] Knuth, D. E. The art of computer programming. Volume 2 /<br />

Seminumerical algorithms. USA: Addison-Wesley, 1969.<br />

[Koza, 1992] Koza, J. “Artificial life: Spontaneous emergence of selfreplicating<br />

and evolutionary self-improving computer programs”.<br />

En Artificial Live III, Editor Langton, C. USA: Addison Wesley,<br />

1992.<br />

[Langton, 1984] Langton, C. “Self-Reproduction in Cellu<strong>la</strong>r Automata”. Physica<br />

D, 10, 135-144, 1984.<br />

[Langton, 1986] Langton, C. “Studying Artificial Life with Cellu<strong>la</strong>r Automata”.<br />

Physica D, 22, 120-149, 1986.<br />

[Langton, 1989] Langton, C. “Artifical Life”. En The Philosophy of Artificial Life.<br />

Editor: Bo<strong>de</strong>n M. Eng<strong>la</strong>nd: Oxford <strong>Un</strong>iversity Press, 1996.<br />

[Langton, 1990] Langton, C. “Computation at the edge of chaos: phase<br />

transitions and emergent computation”. Physica D, 42, 12-37,<br />

1990.<br />

[Levy, 1992] Levy, S. Artificial Life: A report from the frontier where<br />

computers meet biology. USA: Vintage Books, 1992.<br />

[Li, 1990] Li, W.; et al. “Transition phenomena in cellu<strong>la</strong>r automata rule<br />

space”. Physica D, 45, 77-94, 1990.<br />

[Madore, 1983] Madore, B.; Freedman, W. “Computer Simu<strong>la</strong>tions of the<br />

Belousov-Zhabotinsky Reation”. Science, 222, 615-616, 1983.<br />

127


[Margolus, 1984] Margolus, N. “Physics-like Mo<strong>de</strong>ls of Computation”. Physica D,<br />

10: 81-95, 1984.<br />

[Markus, 1990] Markus, M.; Hess, B. “Isotropic Cellu<strong>la</strong>r Automaton for<br />

Mo<strong>de</strong>lling Excitable Media”. Nature, 347,56-58, September<br />

1990.<br />

[Maurer, 1987] Maurer, B. “Scaling of Biological Community Structure: A<br />

Systems Approach to Community Complexity”. Journal of<br />

Theoretical Biology, 127, 97-110, 1987.<br />

[May, 1974] May, R. “Biological popu<strong>la</strong>tion with non over<strong>la</strong>pping<br />

Generations: Stable points, stable cycles and chaos. Science,<br />

186, 645-647, 1974.<br />

[May, 1975] May, R.M. “Group selection”. Nature, 254, 485, 1975.<br />

[May, 1976a] May, R. M. Theoretical Ecology. Principles and Applications.<br />

USA: Sinauer Associates, Inc.,1976.<br />

[May, 1976b] May, R.M. “Simple mathematical mo<strong>de</strong>ls with very complicated<br />

dynamics”. Nature, 261, 459-467, 1976.<br />

[Maydwell, 1999] Maydwell, G. “Animation-reduction cellu<strong>la</strong>r automata”.<br />

http://www.bayarea.net/~maydwell/ca/ARCA.html, 1999.<br />

[Mayr, 1997] Mayr, E. This is biology. The science of the living world.<br />

London: The Belknap Press of Harvard <strong>Un</strong>iversity Press, 1997.<br />

[McIntosh, 1990] McIntosh, H. “Wolfram’s c<strong>la</strong>ss IV automata and a good life”.<br />

Physica D, 45, 105-121, 1990.<br />

[McIntosh, 1992] McIntosh, H. The CAM/PC exerciser CAMEX. México:<br />

Departamento <strong>de</strong> Aplicación <strong>de</strong> Microcomputadoras, Instituto<br />

<strong>de</strong> Cincias. <strong>Un</strong>iversidad Autónoma <strong>de</strong> Pueb<strong>la</strong>. 1992.<br />

[Moore, 1970] Moore, E.F. “Machine Mo<strong>de</strong>ls of Self-reproduction”. 1970. En<br />

Essays on Cellu<strong>la</strong>r Automata editado por Burks, A.W.. USA:<br />

university of Illinois Press. 1970.<br />

[Moreno, 1994] Moreno, A.; Umerez, J. y Fernán<strong>de</strong>z, J. “Definition of life and<br />

the research program in artificial life”. Ludus Vitalis. Revista <strong>de</strong><br />

filosofía <strong>de</strong> <strong>la</strong>s ciencias <strong>de</strong> <strong>la</strong> vida, 2(3)15-32, 1994.<br />

[Nijhout, 1986] Nijhout, F. et al. “Ontogeny, phylogeny and evolution of form:<br />

an algorithmic approach”. Systematic Zoology, 35(4), 455-457,<br />

1986.<br />

128


[Omohundro, 1984] Omohundro, S. “Mo<strong>de</strong>lling Cellu<strong>la</strong>r Automata with Partial<br />

Differential Equations”. Physica D, 10:128-134, 1984.<br />

[Pattee, 1989] Pattee, H. “Simu<strong>la</strong>tions, realizations, and theories of life”. En<br />

The Philosophy of Artificial Life. Editor: Bo<strong>de</strong>n M. Eng<strong>la</strong>nd:<br />

Oxford <strong>Un</strong>iversity Press, 1996.<br />

[Perrier, 1996] Perrier, J.; et al. “Toward a viable, self-reproducing universal<br />

computer”. Physica D, 97, 335-352, 1996.<br />

[Pianka, 1988] Pianka, E. R. “Evolutionary Ecology”. London. Harper & Row.<br />

1988.<br />

[Press, 1992] Press, W. et al. Numerical Recipes in FORTRAN: The Art of<br />

Scientific Computing. London: Cambridge <strong>Un</strong>iversity Press.<br />

1992.<br />

[Qi, 1993] Qui, A.; et al. “A Cellu<strong>la</strong>r Automaton Mo<strong>de</strong>l of Cancerous<br />

Growth”. Journal of Theoretical Biology, 161, 1-12, 1993.<br />

[Ray, 1992] Ray, T.S. “An Approach to the Synthesis of Life”, 1992. En The<br />

Philosophy of Artificial Life. Editor Bo<strong>de</strong>n, M. London: Oxford<br />

<strong>Un</strong>iversity Press. 1996.<br />

[Ray, 1995] Ray, T. S. “An evolutionary approach to synthetic biology: Zen<br />

and the art of creating life”. 1995. En Artificial Live an Overview.<br />

Editor Langton, C. London: The MIT Press. 1997.<br />

[Reichle, 1980] Reichle, D.E.; O’Neill, R.V. y Harris, W.F. “Principios <strong>de</strong><br />

intercambio <strong>de</strong> energía y <strong>de</strong> materia en los ecosistemas”. En<br />

Conceptos unificadores en ecología. Editores: van Dobben, W.<br />

y Lowe-McConnell, R.H. Barcelona: Editorial Blume, 1980.<br />

[Resnick, 1994] Resnick, M. Turtles, termites, and traffic jams: Explorations in<br />

massively <strong>para</strong>llel microworlds. Eng<strong>la</strong>nd: The MIT Press, 1994.<br />

[Rietman, 1993] Rietman, E. “Creating Artificial Life: Self-Organization” New<br />

York. Windcrest /McGraw-Hill. 1993.<br />

[Rucker, 1999] Rucker, R. “Cellu<strong>la</strong>r Automata <strong>la</strong>boratory”.<br />

http//www.mathcs.sjsu.edu/faculty/rucker. 1999<br />

[Ruelle, 1991] Ruelle, D. Azar y Caos. Madrid: Alianza Editorial, 1991.<br />

129


[Ryszkowski, 1980] Ryszkowski, L. “E<strong>con</strong>omía <strong>de</strong> <strong>la</strong> energía y <strong>de</strong> <strong>la</strong> materia en los<br />

ecosistemas”. En Conceptos unificadores en ecología.<br />

Editores: van Dobben, W. y Lowe-McConnell, R.H. Barcelona:<br />

Editorial Blume, 1980.<br />

[Schrandt, 1970] Schrandt, R.G; U<strong>la</strong>m, S.M. “On recursively Defined<br />

Geometrical Objects and Patterns of Growth”. 1970. En<br />

Essays on Cellu<strong>la</strong>r Automata editado por Burks, A.W. USA:<br />

university of Illinois Press. 1970.<br />

[Schrodinger, 1944] Schrodinger, E. What is Life?. UK: Cambridge <strong>Un</strong>iversity Press<br />

reprint. 1992.<br />

[Silvertown, 1992] Silvertown, J. et al. “Cellu<strong>la</strong>r automaton mo<strong>de</strong>ls of interspecific<br />

competition for space – the effect of pattern on process”.<br />

Journal of Ecology, 80, 527-534, 1992.<br />

[Smith, 1971] Smith, A. “Simple Coputation-<strong>Un</strong>iversal Cellu<strong>la</strong>r Spaces”.<br />

Journal of the Association for Computing Machinery, 18 (3),<br />

339-353, July 1971.<br />

[Smith, 1991] Smith, A. “Simple nontrivial self-reproducing machines”. En<br />

Artificial Live II, Ed. Langton, C. USA: Addison Wesley, 1991.<br />

[Smolle, 1993] Smolle, J.; Stettner, H. “Computer Simu<strong>la</strong>tion of Tumour Cell<br />

Invasion by a Stochastic Growth Mo<strong>de</strong>l”. Journal of Theoretical<br />

Biology, 160, 63-72, 1993.<br />

[Sober, 1992] Sober, E. “Learning from functionalism-prospect for strong<br />

artificial life”, 1992. En The Philosophy of Artificial Life. Editor<br />

Bo<strong>de</strong>n, M. London: Oxford <strong>Un</strong>iversity Press. 1996.<br />

[Spezzano, 1996] Spezzano, G.; et al. “A <strong>para</strong>llel cellu<strong>la</strong>r tool for interactive<br />

mo<strong>de</strong>ling an simu<strong>la</strong>tion”. IEEE Computational Science &<br />

Engineering. 33-43, 1996.<br />

[Steel, 1977] Steel, G. Growth Kinetics of Tumors. Oxford: C<strong>la</strong>rendon Press.<br />

1977.<br />

[Taylor, 1997] Taylor, C. and Jefferson, D. “Artificial Life as a Tool for<br />

Biological Inquiry”, 1997. En Artificial Live an Overview. Editor<br />

Langton, C. London: The MIT Press. 1997.<br />

[Toffoli, 1984a] Toffoli, T. “Cam: A high-performance cellu<strong>la</strong>r-automaton<br />

machine”. Physica D, 10, 195-204, 1984.<br />

130


[Toffoli, 1984b] Toffolim T. “Cellu<strong>la</strong>r Automata as an Alternative to (Rather than<br />

an approximation of Differential equations in mo<strong>de</strong>ling physics”.<br />

Physica D, 10, 117-127, 1984.<br />

[Toffoli, 1987] Toffoli, T.; Margolus, N. Cellu<strong>la</strong>r automata machines: A new<br />

environment for mo<strong>de</strong>ling. Eng<strong>la</strong>nd: The MIT Press, 1986.<br />

[Toffoli, 1991] Toffoli, T; Margolus, N. “Cellu<strong>la</strong>r Automata Machines: A New<br />

Environment for Mo<strong>de</strong>ling”. London. MIT press. 1991.<br />

[U<strong>la</strong>m, 1962] U<strong>la</strong>m, S.M. “On Some Mathematical Problems Connected with<br />

Patterns of Growth of Figures”. 1962. En Essays on Cellu<strong>la</strong>r<br />

Automata editado por Burks, A.W. USA: university of Illinois<br />

Press. 1970.<br />

[Urías, 1991] Urías, J. “An Algebraic Measure of Complexity”. Physica D, 47,<br />

498-508, 1991.<br />

[Vichniac, 1984] Vichniar, G. “Simu<strong>la</strong>ting Physics with cellu<strong>la</strong>r automata”.<br />

Physica D, 10, 96-116, 1984.<br />

[Volterra, 1926] Volterra, V. “Fluctuations in the Abundance of a Species<br />

<strong>con</strong>si<strong>de</strong>red Mathematically”. Nature, 118, 558-560, 1926.<br />

[von Neumann, 1948] Von Newmann, J. “The general an logical theory of automata”<br />

en John von Newmann Collected Works. Volumen V . Eng<strong>la</strong>nd:<br />

Pergamon Press. 1976.<br />

[von Neumann, 1956] Von Neumann, J. “Probabilistic logics and the synthesis of<br />

reliable organisms from unreliable components” en John von<br />

Newmann Collected Works. Volumen V . Eng<strong>la</strong>nd: Pergamon<br />

Press. 1976.<br />

[von Newmann, 1941] von Neumann, et al. “The Mean Square Successive<br />

Difference”. En von Neumann, Collected Works, edited by A. H.<br />

Taub, 5, 442.<br />

[Weisstein, 1996] Weisstein, E. “The CRC Concise Encyclopedia of<br />

Mathematics”. USA. CRC press. 1996.<br />

[Wesley, 1974] Wesley, J.P. “Ecophysics: The Application of Physics to<br />

Ecology”. Springfield. C.C. Thomas. 1974.<br />

[Wilson, 1997] Wilson, W.; Nisbet, R. “Cooperation and Competition along<br />

Smooth Environmental Gradients”. Ecology, 78 (7), 2004-2017,<br />

1997.<br />

131


[Willson, 1984] Willson, S. “Growth rates and fractional dimensions in cellu<strong>la</strong>r<br />

automata”. Physica D, 10, 69-74, 1984.<br />

[Willson, 1987a] Willson, S. “Computing fractal dimensions for additive cellu<strong>la</strong>r<br />

automata”. Physica D, 24, 190-206, 1987.<br />

[Willson, 1987b] Willson, S. “The equality of tractional dimensions for certain<br />

cellu<strong>la</strong>r automata”. Physica D 24, 179-189, 1987.<br />

[Wolfram, 1983a] Wolfram, S. “Statistical Mechanics of cellu<strong>la</strong>r automata”.<br />

Reviews of Mo<strong>de</strong>rn Physics, 55, 601-644, July 1983.<br />

[Wolfram, 1983b] Wolfram, S. “Cellu<strong>la</strong>r automata”. Los A<strong>la</strong>mos Science, 9, 2-21,<br />

1983.<br />

[Wolfram, 1984a] Wolfram, S.; et al. “Algebraic properties of cellu<strong>la</strong>r automata”.<br />

Communications in Mathematical Physics, 93, 219-258, March<br />

1984.<br />

[Wolfram, 1984b] Wolfram, S. “<strong>Un</strong>iversality and complexity in cellu<strong>la</strong>r automata”.<br />

Physica D, 10, 1-35, January 1984.<br />

[Wolfram, 1984c] Wolfram, S. “Geometry of binomial coefficients”. American<br />

Mathematical Monthly, 9, 566-571, 1984.<br />

[Wolfram, 1984d] Wolfram, S. “Cellu<strong>la</strong>r Automata as Mo<strong>de</strong>ls of Complexity”.<br />

Nature, 311, 419-424, October 1984.<br />

[Wolfram, 1984e] Wolfram, S. “Computer Software in Science and Mathematics”.<br />

Scientific American, 251(3), 140-151, 1984.<br />

[Wolfram, 1985a] Wolfram, S.; Packard, N. “Two-dimensional cellu<strong>la</strong>r automata”.<br />

Journal of Statistical Physics, 38, 901-946, March 1985.<br />

[Wolfram, 1985b] Wolfram, S. “Twenty problems in the theory of cellu<strong>la</strong>r<br />

automata”. Physica Scripta, T9, 170-183, 1985.<br />

[Wolfram, 1986] Wolfram, S. “Approaches to Complexity Engineering”. Physica<br />

D, 22, 385-399, October 1986.<br />

[Wolfran, 1991] Wolfran, S. Mathematica: A system for doing mathematics by<br />

computer. USA: Addison Wesley, 1991.<br />

[Wuketits, 1995] Wuketits, F. M. “The History of the <strong>con</strong>cept of Life: A Game of<br />

Mind”. Ludus Vitalis. Revista <strong>de</strong> filosofía <strong>de</strong> <strong>la</strong>s ciencias <strong>de</strong> <strong>la</strong><br />

vida, 3(4), 39-50, 1995.<br />

[Zar, 1984] Zar, J. Biostatistical Analysis. USA: Prentice-Hall, 1984.<br />

132


Hensel, 1995] Hensel, A. “A brief Illustrated Glossary of Terms in Conway’s<br />

Game of Life”. http//www.cs.jhu.edu. 1995<br />

9 Bibliografía <strong>con</strong>sultada<br />

Aho, A. Currents in the theory of computing. USA: Prentice-<br />

Hall, 1973.<br />

Aho, A.; et al. Compilers: Principles, techniques, and tools.<br />

USA: Addison-Wesley Publishing Company, 1987.<br />

Boolos, G. S. and Jeffrey, R. C. Computability and Logic.<br />

London: Cambridge <strong>Un</strong>iversity Press, 1995.<br />

Boolos, G.; Jeffrey, R. Computability and logic. Eng<strong>la</strong>nd:<br />

Cambridge <strong>Un</strong>iversity Press, 1989.<br />

Dale, N.; Lilly, C. Pascal y estructuras <strong>de</strong> datos. México:<br />

MacGraw-Hill, 1992.<br />

Ha<strong>de</strong>ler, K. Matemáticas <strong>para</strong> biólogos. España. Editorial<br />

Reverté, S.A., 1982.<br />

Hennessy, M. The semantics of programming <strong>la</strong>nguages. An<br />

elementary introduction using structural operational semantics.<br />

Eng<strong>la</strong>nd: John Wiley & Sons Ltd., 1990.<br />

Lipschutz, S. Teoría <strong>de</strong> <strong>con</strong>juntos y temas afines. México:<br />

McGraw-Hill, 1991.<br />

Nielson, H.; Nielson, F. Semantics with applications. A formal<br />

introduction. Eng<strong>la</strong>nd: John Wiley & Sons Ltd., 1992.<br />

Oliver, D. Fractal vision: Put fractals to work for you. USA:<br />

SAMS Publishing, 1992.<br />

Rietman, E. Creating artificial life. Self-organization. USA:<br />

Windrest/McGraw-Hill, 1993.<br />

Spain, J. Basic microcomputer mo<strong>de</strong>ls in biology. Eng<strong>la</strong>nd:<br />

Addison-Wesley Publishing Company, 1982.<br />

Winskel, G. The formal semantics of programming <strong>la</strong>nguages.<br />

An introduction. Eng<strong>la</strong>nd: The MIT Press, 1996.<br />

133


ANEXO A: FORTH<br />

FORTH es un lenguaje <strong>de</strong> programación que se utiliza en procesos <strong>de</strong> <strong>con</strong>trol<br />

[Ahson, 1985]. Este lenguaje fue diseñado <strong>para</strong> facilitar <strong>la</strong> comunicación entre<br />

máquinas y seres humanos, utilizando un lenguaje natural orientado al manejo <strong>de</strong><br />

máquinas [ANS-FORTH, 1993]. Este lenguaje tiene características <strong>de</strong> lenguaje <strong>de</strong><br />

alto nivel como PASCAL y BASIC, pero permite una estrecha re<strong>la</strong>ción a bajo nivel<br />

<strong>con</strong> <strong>la</strong> máquina.<br />

FORTH fue <strong>de</strong>sarrol<strong>la</strong>do por C.H. Moore en los años 70. FORTH es un lenguaje<br />

orientado a pi<strong>la</strong>s. La mayoría <strong>de</strong> comandos utilizan el valor en el tope <strong>de</strong> una pi<strong>la</strong><br />

<strong>de</strong> datos y <strong>de</strong>jan algún resultado en <strong>la</strong> misma pi<strong>la</strong>. Por esta razón Forth utiliza<br />

notación posfija 94 ya que los parámetros <strong>de</strong>ben estar en <strong>la</strong> pi<strong>la</strong> antes <strong>de</strong> realizar<br />

una operación sobre ellos. Este tipo <strong>de</strong> notación permite <strong>con</strong>struir expresiones <strong>de</strong><br />

profundidad arbitraria sin recurrir al uso <strong>de</strong> paréntesis [Toffoli, 1991]<br />

FORTH es un programa interactivo, es <strong>de</strong>cir, cada expresión es analizada,<br />

compi<strong>la</strong>da y ejecutada; y el resultado <strong>de</strong> <strong>la</strong> expresión es reportado. Todas <strong>la</strong>s<br />

pa<strong>la</strong>bras reservadas <strong>de</strong>l lenguaje forman parte <strong>de</strong> un diccionario, el cual se pue<strong>de</strong><br />

exten<strong>de</strong>r incorporando nuevas pa<strong>la</strong>bras que no estén o dar nuevo significado a<br />

<strong>la</strong>s pa<strong>la</strong>bras existentes.<br />

Los aspectos más notorios <strong>de</strong> este lenguaje son su diccionario, <strong>la</strong> pi<strong>la</strong> y el<br />

compi<strong>la</strong>dor.<br />

Diccionario<br />

Las pa<strong>la</strong>bras <strong>de</strong> FORTH se estructuran en un diccionario. Este diccionario <strong>con</strong>sta<br />

<strong>de</strong> tres partes lógicas: nombre, código, dato. Es <strong>de</strong>cir cada pa<strong>la</strong>bra propia <strong>de</strong>l<br />

diccionario o extendida por el usuario, cuenta <strong>con</strong> un nombre que i<strong>de</strong>ntifica <strong>la</strong><br />

pa<strong>la</strong>bra, un código que <strong>de</strong>temina qué hace <strong>la</strong> pa<strong>la</strong>bra y <strong>la</strong> estructura necesaria<br />

<strong>para</strong> almacenar datos.<br />

Pi<strong>la</strong><br />

FORTH es un lenguaje que permite tener gran po<strong>de</strong>r <strong>de</strong> expresión y eficiencia en<br />

un código muy compacto. El gran po<strong>de</strong>r expresivo radica en <strong>la</strong> utilización <strong>de</strong> una<br />

pi<strong>la</strong>. La pi<strong>la</strong> es una secuencia <strong>de</strong> celdas <strong>de</strong> 32bits cada una que almacena valores<br />

enteros, booleanos o reales <strong>de</strong> forma indiferente. La pi<strong>la</strong> es <strong>de</strong> tipo LIFO es <strong>de</strong>cir<br />

el primero que entra es el último que sale.<br />

Compi<strong>la</strong>dor<br />

94 Los operandos se colocan antes <strong>de</strong> los operadores p.e. (1 + 2), se escribe (1 2 +)<br />

134


Las entradas <strong>de</strong>l diccionario se <strong>de</strong>nominan “pa<strong>la</strong>bras”. Para programar en<br />

FORTH, se agregan secuencialmente nuevas pa<strong>la</strong>bras al diccionario (se <strong>de</strong>finen<br />

nuevas a partir <strong>de</strong> <strong>la</strong>s existentes), <strong>de</strong> esta forma se extien<strong>de</strong> el <strong>con</strong>ocimiento <strong>de</strong>l<br />

intérprete y el po<strong>de</strong>r <strong>de</strong> expresión. Cuando el intérprete encuentra el símbolo “:”<br />

se abre una nueva entrada en el diccionario <strong>con</strong> el nombre inmediato <strong>de</strong> este<br />

símbolo, y se almacena el código <strong>con</strong>tenido en esta nueva entrada.<br />

El compi<strong>la</strong>dor lee <strong>de</strong> izquierda a <strong>de</strong>recha, es <strong>de</strong>cir, si el compi<strong>la</strong>dor encuentra <strong>la</strong><br />

siguiente secuencia A B C, ejecutará primero A, luego B y finalmente C <strong>con</strong> los<br />

valores disponibles en <strong>la</strong> pi<strong>la</strong>.<br />

Características adicionales<br />

Características <strong>de</strong> lenguajes estructurados como Pascal, también están<br />

disponibles en FORTH. Tiene <strong>la</strong>s estructuras normales <strong>de</strong> <strong>con</strong>trol:<br />

1. IF... THEN<br />

2. IF... ELSE ... THEN<br />

3. BEGIN ... WHILE ...REPEAT<br />

4. BEGIN ... UNTIL<br />

5. BEGIN...AGAIN<br />

6. DO...LOOP<br />

Es posible inicializar <strong>la</strong>s variables en <strong>la</strong> <strong>de</strong>c<strong>la</strong>ración. También se pue<strong>de</strong>n hacer<br />

<strong>con</strong>strucciones recursivas, <strong>para</strong> <strong>de</strong>finir arreglos y otras estructuras que no están<br />

pre<strong>de</strong>finidas en el lenguaje.<br />

En FORTH es posible mover datos entre <strong>la</strong> pi<strong>la</strong> y <strong>la</strong> memoria o <strong>de</strong> memoria a<br />

memoria. A<strong>de</strong>más se pue<strong>de</strong>n manipu<strong>la</strong>r los datos almacenados en <strong>la</strong> pi<strong>la</strong> <strong>con</strong> los<br />

comandos como DUP, DROP, SWAP, etc.<br />

La implementación <strong>de</strong> un intérprete <strong>de</strong> FORTH es bastante sencil<strong>la</strong>, y es posible<br />

<strong>con</strong>seguir el documento <strong>de</strong> ANS-FORTH don<strong>de</strong> se <strong>de</strong>finen los estándares <strong>para</strong> <strong>la</strong><br />

implementación <strong>de</strong> interpretes <strong>de</strong>l lenguaje [ANS-FORTH, 1993].<br />

135


ANEXO B. CAM (Cellu<strong>la</strong>r Automata Machines)<br />

CAM fue <strong>de</strong>sarrol<strong>la</strong>do por Tommaso Toffoli en 1984 [Toffoli, 1984a], <strong>con</strong> el fin <strong>de</strong><br />

tener una herramienta eficiente capaz <strong>de</strong> llevar a cabo <strong>la</strong>s tareas computacionales<br />

involucradas en <strong>la</strong> <strong>con</strong>strucción <strong>de</strong> autómatas celu<strong>la</strong>res (AC). Lo que se quería<br />

era un sistema tan simple como escoger una reg<strong>la</strong>, una <strong>con</strong>figuración inicial y listo.<br />

Físicamente CAM <strong>con</strong>siste en una tarjeta que se <strong>con</strong>ecta a un PC (en ambiente<br />

DOS). EL <strong>con</strong>trol <strong>de</strong> <strong>la</strong> tarjeta se adquiere mediante el lenguaje FORTH, y al<br />

ejecutar usa <strong>la</strong> memoria <strong>de</strong> <strong>la</strong> PC.<br />

El espacio celu<strong>la</strong>r<br />

CAM es un sistema <strong>con</strong> un procesador <strong>para</strong>lelo <strong>para</strong> <strong>la</strong> simu<strong>la</strong>ción <strong>de</strong> AC y otros<br />

sistemas discretos. El universo <strong>de</strong> CAM <strong>con</strong>siste en 65536 celdas en un arreglo<br />

<strong>de</strong> 256x256. Cada celda pue<strong>de</strong> <strong>con</strong>tener hasta 8 bits <strong>de</strong> información que<br />

correspon<strong>de</strong>n a 256 estados.<br />

La dinámica<br />

La dinámica <strong>de</strong>l sistema es especificada por una función <strong>de</strong> transición, codificada<br />

en una tab<strong>la</strong> RAM. Normalmente se envían los argumentos <strong>de</strong> estados <strong>de</strong> los<br />

vecinos y se obtiene el nuevo estado <strong>de</strong> <strong>la</strong> función <strong>de</strong> transición. El sistema no es<br />

totalmente <strong>para</strong>lelo y por ello <strong>de</strong>be crear una copia <strong>de</strong>l arreglo <strong>para</strong> almacenar los<br />

nuevos estados <strong>de</strong>l AC.<br />

Despliegue<br />

En este sistema el <strong>de</strong>spliegue es actualizado al mismo tiempo que <strong>la</strong> actualización<br />

<strong>de</strong>l arreglo. A<strong>de</strong>más es posible modificar cualquier aspecto <strong>de</strong>l <strong>de</strong>spliegue<br />

modificando un función <strong>de</strong> <strong>de</strong>spliegue que ocurre <strong>de</strong> forma simultánea que <strong>la</strong><br />

función <strong>de</strong> transición.<br />

136


ANEXO C. Maquinas <strong>de</strong> Turing y AC<br />

<strong>Un</strong>a <strong>de</strong> <strong>la</strong>s formas <strong>para</strong> <strong>de</strong>mostrar <strong>la</strong> capacidad <strong>de</strong> computación universal <strong>de</strong> un<br />

AC, es tratando <strong>de</strong> simu<strong>la</strong>r una máquina <strong>de</strong> Turing (MT) que opere <strong>de</strong>ntro <strong>de</strong> un<br />

AC. <strong>Un</strong>a MT es un mecanismo <strong>con</strong>ceptualmente simple que <strong>con</strong>siste en una cinta<br />

<strong>de</strong> 1-dimensión dividida en cuadros iguales, y una cabeza que lee y escribe en un<br />

cuadro en <strong>la</strong> cinta y se mueve en dos direcciones se supone que <strong>la</strong> cinta es <strong>de</strong><br />

extensión infinita y que los cuadros están inicialmente en b<strong>la</strong>nco. Smith [Smith,<br />

1990, 1971] propone el siguiente teorema <strong>para</strong> <strong>con</strong>struir un AC equivalente a una<br />

máquina <strong>de</strong> Turing.<br />

Teorema: Para una máquina <strong>de</strong> Turing T <strong>con</strong> m símbolos y n estados existe un AC<br />

A <strong>de</strong> 1-dimensión <strong>con</strong> r=1 (3 vecinos) y <strong>con</strong> m+2n estados que pue<strong>de</strong>n simu<strong>la</strong>rlo.<br />

Demostración: Sea T una máquina <strong>de</strong> Turing <strong>con</strong> M={x1,x2,...,xm} símbolos y<br />

Q={q1,q2,...,qn} estados. El movimiento <strong>de</strong> <strong>la</strong> cabeza H es <strong>de</strong>scrito por un <strong>con</strong>junto<br />

<strong>de</strong> quíntuples <strong>de</strong> <strong>la</strong> forma qixjxkLql ó qixjxkRql . qi representa el estado interno <strong>de</strong> T,<br />

xj el símbolo que se está leyendo <strong>de</strong> <strong>la</strong> cinta, xk el símbolo que se <strong>de</strong>be escribir en<br />

<strong>la</strong> cinta , L ó R el movimiento <strong>de</strong> H y ql el nuevo estado interno <strong>de</strong> T.<br />

Construyamos un AC A <strong>de</strong> 1-dimensión cuyas celdas a <strong>con</strong>si<strong>de</strong>ran so<strong>la</strong>mente los<br />

vecinos inmediatos izquierdo (a-) y <strong>de</strong>recho (a+). El arreglo lineal <strong>de</strong> celdas<br />

representa <strong>la</strong> cinta <strong>de</strong> una MT y cada celda pue<strong>de</strong> estar en cualquiera <strong>de</strong> los<br />

siguientes m+2n estados: Los primeros m estados Q M = { x1,<br />

x2<br />

, , xm}<br />

representan<br />

los m símbolos <strong>de</strong> T. Los estados <strong>de</strong> T <strong>de</strong>ben representarse en A <strong>de</strong> tal forma <strong>de</strong><br />

que a<strong>de</strong>más <strong>de</strong> los n estados, se especifique el equivalente al movimiento <strong>de</strong> H,<br />

que en A son los n estados mirando hacia L ó R, es <strong>de</strong>cir Q = q , , q } y<br />

137<br />

NL<br />

{ 1L nL<br />

Q NR = { q1R<br />

, , qnR}<br />

por tanto QNL ∪ QNR<br />

= 2n<br />

estados. La celda quiescente<br />

representa el espacio b<strong>la</strong>nco en <strong>la</strong> cinta <strong>de</strong> T.<br />

Dado que el cambio <strong>de</strong> estado en A ocurre en cada celda <strong>de</strong> forma simultánea,<br />

por cada reg<strong>la</strong> <strong>de</strong> transición <strong>de</strong> T es necesario especificar en A:<br />

Transición en T<br />

qixjxkRql<br />

qixjxkLql<br />

#<br />

t<br />

a− Transición en A<br />

t t<br />

a<br />

a +<br />

t+<br />

1<br />

a<br />

1 a ... qiR xj xk<br />

1 b qiR xj ... qlR<br />

2 a xz qiR xj qiL<br />

2 b qiR xj ... xk<br />

2 c ... xz qiL qlR<br />

2 d xz qiL xz<br />

Cinta sin H 5 ... xj ... xj


(...) representa cualquier estado <strong>de</strong>l <strong>con</strong>junto QM y qiR,qiL,qlR ∈ QN y xi,xk,xz ∈ QM.<br />

Los movimientos en A hacia <strong>la</strong> <strong>de</strong>recha (#1a y 1b <strong>de</strong> <strong>la</strong> tab<strong>la</strong> anterior) ocurren en<br />

un paso: t<br />

→ x1x 2q<br />

R x3x<br />

4<br />

+ 1<br />

→ t<br />

x1x 2 x3q<br />

R x4<br />

′ ′ mientras que los movimientos a <strong>la</strong><br />

izquierda ocurren en dos pasos (#2 a,2 b,2 c y 2 d): t<br />

→<br />

x1x 2q<br />

R<br />

x<br />

3<br />

x<br />

4<br />

+ 1<br />

→ t<br />

x x qL<br />

x x ′ ′<br />

1<br />

2<br />

3<br />

4<br />

+ 2<br />

→ t<br />

x q′<br />

R x x′<br />

x<br />

1<br />

El número <strong>de</strong> estados <strong>de</strong> A es QM ∪ QNR<br />

∪ QNL<br />

= m+2n . De lo anterior entonces<br />

es posible <strong>con</strong>struir un AC <strong>con</strong> m+2n estados capaz <strong>de</strong> simu<strong>la</strong>r a una máquina <strong>de</strong><br />

Turing. Q.E.D.<br />

La figura C.1 muestra un ejemplo sencillo <strong>de</strong> una máquina <strong>de</strong> Turing que suma<br />

dos números unarios 95 . Utilizando el teorema <strong>de</strong>scrito, el código en ACF es el<br />

siguiente:<br />

vec C C1 C2 E E1 E2 W W1 W2;<br />

: S0 W2 W1 W 3 int case { 0 0 2 4 0 0 0 0 0 };<br />

: S1 W2 W1 W 3 int case { 1 1 3 3 1 0 0 0 0 };<br />

rules<br />

: C2 C1 C 3 int case { S0 S1 0 1 1 0 0 0 0 } >PA;<br />

Se utilizan 3 p<strong>la</strong>nos <strong>para</strong> po<strong>de</strong>r tener disponibles 8 estados, y se <strong>con</strong>si<strong>de</strong>ran<br />

so<strong>la</strong>mente los vecinos inmediatos izquierdo y <strong>de</strong>recho, a<strong>de</strong>más <strong>de</strong>l central (línea 1<br />

<strong>de</strong>l código). El resultado <strong>de</strong> correr este AC se observa en <strong>la</strong> figura C.2.<br />

0,0,R 1,1,R<br />

1,0,R<br />

q0<br />

q2<br />

95 <strong>Un</strong> número u en representación unaria esta <strong>con</strong>struido por una secuencia u <strong>de</strong> 1 <strong>con</strong>secutivos<br />

138<br />

2<br />

3<br />

0,1,R<br />

Figura C.1. Diagrama <strong>de</strong> transiciones en una máquina <strong>de</strong> Turing (MT) que<br />

ejecuta sumas <strong>de</strong> números unarios (1s) se<strong>para</strong>dos por un espacio en b<strong>la</strong>nco<br />

(0). Los nodos representan los estado internos <strong>de</strong> MT (el doble círculo el<br />

estado final) y <strong>la</strong>s aristas <strong>la</strong>s transiciones s,s’,M;don<strong>de</strong> s es el simbolo leído, s’<br />

es el simbolo que se <strong>de</strong>be escribir y M es el movimiento (R o L).<br />

4<br />

q1


t t+1 t+2 t+3<br />

2 + 3 5<br />

q0<br />

q1<br />

q2<br />

1<br />

Figura C.2. AC lineal que simu<strong>la</strong> una máquina <strong>de</strong> Turing (MT) que suma números<br />

unarios. Cada cuadro representa una celda <strong>de</strong>l AC. Tres estados (rojo, amarillo<br />

y ver<strong>de</strong>) simu<strong>la</strong>n los estados internos <strong>de</strong> <strong>la</strong> MT y el estado azul el símbolo <strong>de</strong> MT<br />

En realidad se necesitan so<strong>la</strong>mente 4 estados en el AC <strong>para</strong> simu<strong>la</strong>r <strong>la</strong> MT <strong>de</strong>l<br />

ejemplo, esto <strong>de</strong>bido a que los movimientos en <strong>la</strong> MT sólo son en una dirección, y<br />

por tanto <strong>con</strong> m+n estados en AC es suficiente .<br />

Coro<strong>la</strong>rio : Para una máquina <strong>de</strong> Turing T <strong>con</strong> m símbolos y n estados, que realiza<br />

movimientos sólo en una dirección (L ó R); existe un AC A <strong>de</strong> 1-dimensión <strong>con</strong> r=1<br />

(3 vecinos) y <strong>con</strong> m+n estados que pue<strong>de</strong>n simu<strong>la</strong>rlo.<br />

Demostración : <strong>de</strong>l teorema anterior tenemos que el número total <strong>de</strong> estados <strong>de</strong> A<br />

es QM ∪ QNR<br />

∪ QNL<br />

= m+2n. dado que T realiza movimientos sólo en una dirección,<br />

digamos L entonces en A , Q NR = ∅ y por tanto QM ∪ QNL<br />

= m+n. Del mismo<br />

modo si los movimientos son sólo en R.<br />

Si es posible <strong>con</strong>struir un autómata celu<strong>la</strong>r que simule una MT entonces cualquier<br />

procedimiento Turing-computable lo será también en un AC.<br />

139


ANEXO D: Generador <strong>de</strong> números aleatorios<br />

Los números aleatorios son necesarios <strong>para</strong> una amplia variedad <strong>de</strong> propósitos:<br />

muestreos, análisis numéricos, programación, toma <strong>de</strong> <strong>de</strong>cisiones, etc. Aunque<br />

es difícil que un sistema totalmente <strong>de</strong>terminístico como un computadora genere<br />

números realmente aleatorios 96 , cualquier secuencia numérica generada por un<br />

programa don<strong>de</strong> no se puedan re<strong>con</strong>ocer patrones y no se puedan hacer<br />

predicciones se <strong>con</strong>si<strong>de</strong>ra una secuencia <strong>de</strong> números aleatorios.<br />

En general <strong>para</strong> generar un secuencia <strong>de</strong> números aleatorios, se comienza <strong>con</strong><br />

una simple semil<strong>la</strong> inicial (un valor inicial cualquiera), y luego <strong>de</strong> forma iterativa se<br />

aplica algún tipo <strong>de</strong> transformación a este número. El método más común <strong>de</strong><br />

generación <strong>de</strong> números aleatorios es el <strong>de</strong> <strong>con</strong>gruencia lineal, don<strong>de</strong> <strong>la</strong> secuencia<br />

se genera mediante <strong>la</strong> siguiente función:<br />

xt + 1 = ( axt<br />

+ c)<br />

mod m<br />

Este método no genera números aleatorios <strong>para</strong> cualquier valor <strong>de</strong> a, c y m, sino<br />

que ha <strong>de</strong>mostrado ser buenos <strong>con</strong> ciertos valores <strong>de</strong> a y m, en particu<strong>la</strong>r a=7 5 y<br />

m=2 31 -1 [Press, 1992].<br />

Para efectos <strong>de</strong> ACFw se implementó un generador <strong>de</strong> números aleatorios basado<br />

en AC elementales propuesto por Wolfram. Para <strong>de</strong>terminar <strong>la</strong> capacidad <strong>de</strong><br />

aleatoriedad <strong>de</strong>l generador, se aplicaron dos <strong>de</strong> <strong>la</strong>s pruebas sugeridas por Knuth<br />

[Knuth, 1969], a<strong>de</strong>más <strong>de</strong> <strong>la</strong> <strong>de</strong> <strong>la</strong> prueba <strong>de</strong> corre<strong>la</strong>ción seriada propuesta por von<br />

Neumann [von Neumann, 1941; Zar, 1984].<br />

El generador <strong>de</strong> números aleatorios<br />

El comportamiento <strong>de</strong> <strong>la</strong> reg<strong>la</strong>30 (según <strong>la</strong> codificación <strong>de</strong> Wolfram), parece<br />

generar secuencias suficientemente aleatorias <strong>para</strong> <strong>con</strong>struir un generador a partir<br />

<strong>de</strong> esta reg<strong>la</strong> <strong>de</strong> autómata celu<strong>la</strong>r. La reg<strong>la</strong> 30 es <strong>la</strong> siguiente:<br />

a ′ i = ai<br />

−1<br />

xor ( ai<br />

or ai<br />

+ 1)<br />

don<strong>de</strong> ai es el estado <strong>de</strong> <strong>la</strong> celda en posición i <strong>de</strong> un arreglo unidimensional. En <strong>la</strong><br />

figura D.1, se pue<strong>de</strong> observar el comportamiento <strong>de</strong> este AC elemental, <strong>de</strong>spués<br />

<strong>de</strong> 1000 generaciones iniciando <strong>con</strong> un 1 en el centro <strong>de</strong>l arreglo.<br />

96 En general se les l<strong>la</strong>ma números pseudo - aleatorios<br />

140


Implemetación<br />

Figura D.1 Reg<strong>la</strong> 30 <strong>de</strong> Wolfram <strong>de</strong>spupés <strong>de</strong> 100 generaciones. El<br />

tiempo se representa en el eje vertical.<br />

Para implementar el generador se utilizó un entero A <strong>de</strong> 64 bits (en realidad dos<br />

enteros <strong>de</strong> 32bits juntos), en forma <strong>de</strong> anillo 97 . Cada bit representa una celda <strong>de</strong>l<br />

AC, <strong>con</strong> dos posibles estados {0,1}. Comenzando <strong>con</strong> un semil<strong>la</strong> inicial 98 , <strong>para</strong><br />

actualizar en <strong>para</strong>lelo cada celda, se crean tres copias <strong>de</strong>l entero que l<strong>la</strong>maremos<br />

AL y AR . La copia AL se rota un bit a <strong>la</strong> izquierda y AR un bit a <strong>la</strong> <strong>de</strong>recha como lo<br />

muestra <strong>la</strong> figura D.2. Luego se aplica <strong>de</strong> forma directa <strong>la</strong> operación<br />

A ′ = AL<br />

xor ( A or AR<br />

) , esto actualiza en <strong>para</strong>lelo cada una <strong>de</strong> los 64 bits. Para<br />

A<br />

obtener un número real en el intervalo [0,1] se reliza <strong>la</strong> operación . 64<br />

2<br />

97<br />

El extremo izquierdo se une <strong>con</strong> el <strong>de</strong>recho.<br />

98<br />

Tomando <strong>la</strong> fecha y hora <strong>de</strong>l reloj y aplicando un generador <strong>de</strong> <strong>con</strong>gruencia lineal <strong>para</strong> generar<br />

<strong>la</strong> semil<strong>la</strong>.<br />

141


A<br />

AR<br />

AL<br />

Figura D.2 Rotaciones realizadas al arreglo <strong>de</strong> 64bits <strong>para</strong> ejecutar <strong>la</strong><br />

reg<strong>la</strong> 30 en <strong>para</strong>lelo.<br />

Pruebas <strong>de</strong> Aleatoridad<br />

1<br />

..<br />

0<br />

0 1<br />

or<br />

1 0<br />

xor<br />

1 ..<br />

A′<br />

Se aplicaron <strong>la</strong>s siguientes pruebas <strong>de</strong> aleatoriedad a 100000 números generados<br />

<strong>con</strong> el AC elemental <strong>de</strong> <strong>la</strong> reg<strong>la</strong> 30:<br />

A. Frecuencia <strong>de</strong> bloques: Cada una <strong>de</strong> <strong>la</strong>s 2 n bloques <strong>de</strong> tamaño n <strong>de</strong>ben ocurrir<br />

<strong>con</strong> igual frecuencia (se utilizó n=8).<br />

B. Permutación <strong>de</strong> distribución <strong>de</strong> frecuencias: Los valores <strong>de</strong> q n-bloques<br />

sucesivos <strong>de</strong>ben ocurrir en todas <strong>la</strong>s q! or<strong>de</strong>naciones <strong>con</strong> igual frecuencia.<br />

(n=8, q=5).<br />

C. Corre<strong>la</strong>ción seriada: Calcu<strong>la</strong> <strong>la</strong> distancia euclidiana entre dos valores sucesivos<br />

y se calcu<strong>la</strong> <strong>la</strong> re<strong>la</strong>ción <strong>con</strong> <strong>la</strong> <strong>de</strong>sviación estándar .<br />

Con una tolerancia <strong>de</strong>l 95%, los valores <strong>de</strong> P entre 0.05 y 0.95 se <strong>con</strong>si<strong>de</strong>ran<br />

suficientemente aleatorios, valores cercanos a 0 ó 1 tien<strong>de</strong>n a <strong>de</strong>sviarse <strong>de</strong> <strong>la</strong><br />

aleatoriedad. Los resultados <strong>para</strong> cada prueba fueron A. P=0.3391, B. P=0.3852 y<br />

C. P=0.1494. Por tanto se <strong>con</strong>cluye que el generador <strong>de</strong> números aleatorios<br />

genera secuencias suficientemente aleatorias.<br />

142

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!