Sistemas Complejos como Modelos
de Computación
Genaro Juárez Martı́nez, Héctor Zenil,
Christopher Rhodes Stephens Stevens
Editores
Sistemas Complejos como Modelos de Computación
(Complex Systems as Computing Models)
Luniver Press
2011
Published by Luniver Press
Frome BA11 3EY United Kingdom
British Library Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Library
Sistemas Complejos como Modelos de Computación
Complex Systems as Computing Models
c Luniver Press 2011
Copyright �
All rights reserved. This book, or parts thereof, may not be reproduced in any
form or by any means, electronic or mechanical, including photocopying, recor-
ding or by any information storage and retrieval system, without permission in
writing from the copyright holder.
ISBN-10: 1-905986-35-1
ISBN-13: 978-1-905986-35-4
While every attempt is made to ensure that the information in this publication is
correct, no liability can be accepted by the authors or publishers for loss, damage
or injury caused by any errors in, or omission from, the information given.
Comité cientı́fico
Carlos Gershenson Garcı́a
Instituto de Investigaciones en Matemáticas Aplicadas y Sistemas, Centro de
Ciencias de la Complejidad, UNAM, México.
Christopher Rhodes Stephens Stevens (co-organizador)
Instituto de Ciencias Nucleares, Centro de Ciencias de la Complejidad, UNAM,
México.
Genaro Juárez Martı́nez (co-organizador)
Instituto de Ciencias Nucleares, Centro de Ciencias de la Complejidad, UNAM,
México. International Center of Unconventional Computing, University of the
West of England, Bristol, UK.
Harold V. McIntosh
Departamento de Aplicación de Microcomputadoras, UAP, Puebla, México.
Héctor Zenil (co-organizador)
Department of Computer Science, University of Sheffield, Sheffield, UK. Spe-
cial Projects Department, Wolfram Research, IL, USA. Centro de Ciencias de la
Complejidad, UNAM, México.
Juan Carlos Seck Tuoh Mora
Instituto de Cencias Básicas e Ingenierı́a, UAEH, Hidalgo, México.
Juan Gonzalo Barajas Ramı́rez
Divisón de Matemáticas Aplicadas, Instituto Potosino de Investigación Cientı́fi-
ca y Tecnológica, San Luis Potosı́, México.
Pedro P. B. de Oliveira
Universidade Presbiteriana Mackenzie, São Paulo, Brazil
Salvador Elı́as Venegas Andraca
Grupo de Procesamiento Cuántico de la Información, Tecnológico de Monterrey
Campus Estado de México, México.
Sergio Vı́ctor Chapa Vergara
Departamento de Computación, CINVESTAV-IPN, México.
Comité organizador
Adriana de la Paz Sánchez Moreno
Escuela Superior de Cómputo, IPN, México.
Alejandra Reyes Mancilla
Instituto de Ciencias Nucleares, UNAM, México.
Alejandro Frank Hoeflich
Instituto de Ciencias Nucleares, UNAM, México.
Kahorik González Flores
Centro de Ciencias de la Complejidad, UNAM, México.
Jeanett López Garcı́a
Facultad de Acatlán, UNAM, México.
Liliana Jiménez Barrón
Instituto de Ciencias Nucleares, UNAM, México.
Marı́a Concepción Garcı́a Aguirre
Centro de Ciencias de la Complejidad, UNAM, México.
Principales patrocinadores de WCSCM2011
Instituto de Ciencias Nucleares (ICN)
Universidad Nacional Autónoma de México, México.
http://www.nucleares.unam.mx/
Centro de Ciencias de la Complejidad (C3)
Universidad Nacional Autónoma de México, México.
http://c3.fisica.unam.mx/
International Center of Unconventional Computing (ICUC)
University of the West of England, Bristol, United Kingdom.
http://uncomp.uwe.ac.uk/
Laboratorio de Ciencias de la Computación (LCCOMP)
Universidad Nacional Autónoma de México, México.
http://uncomp.uwe.ac.uk/LCCOMP/
Laboratoire de Recherche Scientifique (LABORES)
Maison des Associations, Paris, France.
http://labores.eu/
Lista de participantes
Andrés Anzo Hernández
Instituto Potosino de Investigación Cientı́fica y Tecnológica, San Luis Potosı́,
México.
Andrew Wuensche
Discrete Dynamics Lab. International Center of Unconventional Computing,
University of the West of England, Bristol, UK.
Carlos Adrián Jaramillo Hernández
Centro de Investigación Avanzada en Ingenierı́a Industrial, Universidad Autóno-
ma del Estado de Hidalgo, Hidalgo, México.
Elena Villarreal Zapata
Universidad Politécnica de San Luis Potosı́, San Luis Potosı́, México
Emmanuel Garcés Medina
Laboratorio de Ciencias de la Computación, Laboratorio de Dinámica No Lineal,
Facultad de Ciencias, UNAM. México.
Enrique Zeleny Vazquez
Wolfram Research, Inc., USA.
Francisco Cruz Ordaz Salazar
Universidad Politécnica de San Luis Potosı́, San Luis Potosı́, México
Héctor Zenil
Department of Computer Science, University of Sheffield, Sheffield, UK. Spe-
cial Projects Department, Wolfram Research, IL, USA. Centro de Ciencias de la
Complejidad, Laboratorio de Ciencias de la Computación, UNAM, México.
José Manuel Sausedo Solorio
Laboratorio de Fı́sica Avanzada, Universidad Autónoma del Estado de Hidalgo,
Hidalgo, México.
Joselito Medina Marı́n
Centro de Investigación Avanzada en Ingenierı́a Industrial, Universidad Autóno-
ma del Estado de Hidalgo, Hidalgo, México.
Juan Carlos Seck Tuoh Mora
Instituto de Cencias Básicas e Ingenierı́a, Universidad Autónoma del Estado de
Hidalgo, Hidalgo, México.
viii
Juan Gonzalo Barajas Ramı́rez
Instituto Potosino de Investigación Cientı́fica y Tecnológica, San Luis Potosı́,
México.
Kenichi Morita
Hiroshima University, Higashi-Hiroshima, Japan
Luis Alvarez-Icaza
Instituto de Ingenierı́a, Universidad Nacional Autónoma de México, México.
Marı́a Elena Lárraga Ramı́rez
Instituto de Ingenierı́a, Universidad Nacional Autónoma de México, México.
Paulina Anaid León Hernández
Centro de Investigación y de Estudios Avanzados, Instituto Politécnico Nacio-
nal, México
Rogelio Basurto Flores
Centro de Investigación y de Estudios Avanzados, Instituto Politécnico Nacio-
nal, México
Salvador Elı́as Venegas Andraca
Grupo de Procesamiento Cuántico de la Información, Tecnológico de Monterrey
Campus Estado de México, México.
Todd Rowland
Wolfram Research, Inc., IL, USA.
Índice general
Reversible computing and cellular automata as complex systems . . . . . . . . 1
Kenichi Morita
Sistemas dinámicos complejos y caóticos, conjuntos de atractores,
memoria y redes discretas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Andrew Wuensche
Áreas de oportunidad en el estudio de autómatas celulares reversibles . . . . 23
Juan Carlos Seck Tuoh Mora
Introducción a la computación cuántica: definiciones, tendencias y
caminatas cuánticas como caso de estudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Salvador Elı́as Venegas Andraca
Hacia una descripción realista del tráfico vehicular basada en autómatas
celulares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Marı́a Elena Lárraga Ramı́rez, Luis Alvarez-Icaza
Estudio de la dinámica y análisis de complejidad de la regla espiral . . . . . . 83
Paulina Anaid León Hernández, Rogelio Basurto Flores
Algebraic relations for computations with Rule 110 cellular automaton . . . 109
José Manuel Sausedo Solorio
Modelando la evolución de una red compleja con autómatas celulares . . . . 121
Andrés Anzo Hernández, Juan Gonzalo Barajas Ramı́rez
Buscando complejidad y computación en el espacio de polinomios . . . . . . . 129
Todd Rowland
Un método estable para la evaluación de la complejidad algorı́tmica de
cadenas cortas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Héctor Zenil, Jean-Paul Delahaye
Una nueva familia de sistemas tipo Collatz . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Enrique Zeleny Vazquez
Un algoritmo de encriptación basado en la composición de las reglas 30
y 86 del autómata celular elemental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Emmanuel Garcés Medina
Autómatas celulares elementales aplicados a la encriptación de datos . . . . 181
Elena Villarreal Zapata, Francisco Cruz Ordaz Salazar
x
Modelación de una red de Petri mediante un autómata celular . . . . . . . . . . 189
Carlos Adrián Jaramillo Hernández, Juan Carlos Seck Tuoh Mora,
Joselito Medina Marı́n
xi
Prefacio
El estudio de sistemas complejos, y el manejo de información juegan actualmente
un papel fundamental en el entendimiento de fenómenos no-lineales a cualquier
escala. En esta dirección, indudablemente, la teorı́a de la computación juega
un rol indispensable para describir, a través de un procedimiento efectivo, un
fenómeno en particular. La manera de procesar dicha información y la comple-
jidad derivada de ello son objetos de estudio, y también lo es ahora la forma en
que hemos cambiado la manera de ver los sistemas complejos para considerarlos
como modelos de computación por sı́ mismos.
En otras palabras, el estudio de la complejidad resulta bidireccional: Por un
lado, el estudio de la complejidad de un modelo de computación como objeto
de estudio y, por el otro, el estudio de un sistema complejo como modelo de
computación. Nos hemos convertido de observadores a programadores de siste-
mas complejos, haciéndolos procesar información.
Destacados investigadores contribuyen en ambas direcciones con artı́culos
que presentan resultados relevantes en varias lı́neas de investigación: desde as-
pectos teóricos, prácticos y aplicaciones, hasta temas especializados. De igual
forma, se ofrecen excelentes introducciones para estudiantes y académicos que
deseen estudiar la complejidad de sistemas de computación y explorar sistemas
complejos como modelos de computación.
Editores.
Genaro J. Martı́nez
Héctor Zenil
Christopher R. Stephens
Reversible computing and cellular automata as
complex systems
Kenichi Morita
Hiroshima University
Higashi-Hiroshima 739-8527, Japan
[email protected]
Resumen Reversible computing is a paradigm of computation where
every computational configuration of the system has at most one prede-
cessor. Hence, it can be regarded as a “backward deterministic”system.
Though its definition is thus rather simple, it has a close connection to
physically reversible systems such as classical mechanical systems wit-
hout friction, quantum mechanical systems, and others. In this talk we
discuss how reversible computing systems can be designed and construc-
ted from simple reversible primitives. We shall see that such systems
have good abilities of computing and information processing even when
they are composed of very simple reversible primitives, and thus show
complex behaviors. In particular, we consider reversible logic circuits
and reversible cellular automata as models of reversible systems, and in-
vestigate how computation-universality, and life-like phenomena such as
self-reproduction can emerge in these systems.
Referencias
[1] Morita, K. (2008). Reversible computing and cellular automata — A survey, Theo-
ret. Comput. Sci., 395, 101–131.
[2] Morita, K. (2010). Constructing a reversible Turing machine by a rotary element,
a reversible logic element with memory, Hiroshima University Institutional Repo-
sitory, http://ir.lib.hiroshima-u.ac.jp/00029224.
[3] Morita, K. (2011). Universal reversible cellular automata in which counter machines
are concisely embedded, Hiroshima University Institutional Repository, http://
ir.lib.hiroshima-u.ac.jp/00031367.
[4] Morita, K., Imai, K. (2011). Self-reproduction in two- and three-dimensional re-
versible cellular automata, Hiroshima University Institutional Repository, http:
//ir.lib.hiroshima-u.ac.jp/00031368.
[5] Morita, K. (2011). Simulating reversible Turing machines and cyclic tag systems
by one-dimensional reversible cellular automata, Theoret. Comput. Sci., 412, 3856–
3865.
Sistemas dinámicos complejos y caóticos,
conjuntos de atractores, memoria y redes
discretas
Andrew Wuensche
Discrete Dynamics Lab, United Kingdom.
http://www.ddlab.org/**
Resumen El comportamiento emergente de estructuras y su interac-
ción en autómata celular, se encuentran fuertemente relacionados con
las nociones de orden, complejidad y caos, que dependen, en buena me-
dida del grado en el que convergen sus atractores. Dicha información
puede encontrarse encriptada y además oculta dentro de sus trayectorias
caóticas. En el caso de las redes “aleatorias”, la memoria de contenido
direccionable se encuentra afectada aparentemente desde sus conjuntos
de atractores y la estructuras de sus subárboles, el concepto de memoria
y aprendizaje en su más básico nivel. El presente artı́culo es una revisión
de estas ideas, resultados y aplicaciones, además ilustradas con varias
imágenes creadas con el sistemas DDLab.
Palabras clave: conjuntos de atracción, atómata celular, redes boolea-
nas aleatorias, caos, complejidad, ancestros, algoritmos reversibles, auto
organización, memoria, aprendizaje, redes genéticas reguladas.
1. Introducción
El libro “The Global Dynamics of Cellular Automata” (Dinámica Global en
Autómata Celular) [11], publicado en 1992, presentó un algoritmo invertible para
calcular ancestros (o pre-imágenes) de estados para cualquier autómata celular
(CA) binario en una dimensión (1D) con propiedades a la frontera. Esto ayudó a
comprender la topologı́a de los “conjuntos de atracción” – gráficas de estados de
transición – los estados se encuentran conectados en la raı́z de los árboles como
ciclos atractores y éstos pueden ser calculados automáticamente (ver Fig. 1).
Posteriormente, un nuevo algoritmo invertible fue inventado para calcular
los ancestros, pero ahora, en redes booleanas aleatorias (RBN) y sus conjuntos
de atracción pueden ser igualmente graficados (ver Fig. 15). De hecho, fueron
**
Original publication, January 11, 2010. Artı́culo presentado en el Summer Solstice
2009 International Conference on Discrete Models of Complex Systems, Gdansk, Po-
lonia, junio 22-24 de 2009. La versión original de este artı́culo fue publicada en inglés
[21]. La presente versión en español (traducida por Genaro J. Martı́nez) aparece con
el permiso de publicación del ACTA PYSICA POLONICA B. Cualquier comentario
enviarlo por favor a
[email protected]. Traducción al español, 6 de octubre de 2011.
4
(a)
(b)
Figura 1. En (a) se ilustra el campo de conjuntos de atracción de un CA binario
en 1D para n = 16 (n es la longitud del anillo, configuración inicial o tamaño
del sistema). Los 216 estados en el tiempo, se encuentran conectados dentro
de 89 conjuntos de atracción, pero en este caso únicamente se ilustran los 11
conjuntos no equivalentes, con simetrı́as caracterı́sticas del CA [11]. El flujo va
hacia adentro del atractor en el sentido de las agujas del reloj (alrededor del
ciclo atractor). (b) El segundo conjuto de atracción es amplicado de manera que
podemos ver todos los detalles del atractor, aquı́ se ilustran los patrones de 4×4
bits.
5
graficados para la portada del libro de Stuart Kauffman in 1993 “The Origins
of Order” (Los Orı́genes del Orden) (ver Fig. 2). El algoritmo desarrollado para
las RBN se encuentra ahora mejorado, más versátil y generalizado, ahora como
las “redes dinámicas discretas” (DDN). Estos algoritmos calculan ancestros di-
rectamente, realizadon una muy eficiente búsqueda en el espacio y tiempo, y se
encuentran implementados en el software DDLab [19].
(a) (b)
Figura 2. Ilustramos las portadas de los libros de: (a) Wuensche y Lesser (1992)
“The Global Dynamics of Cellular Automata” [11] y (b) el de Kauffman (1993)
“The Origins of Order” [5]. Podemos ver un conjunto de atracción de un CA y
un campo de conjuntos de atracción en un RBN, ambos fueron calculados con
el precursor de DDLab.
Un DDN es un conjunto finito de n elementos con estados o valores discre-
tos. Los elementos están conectados a través de aristas dirigidas – el esquema
de conexión. Entonces, cada elemento actualiza su propio valor de manera sin-
cronizada, de acuerdo a una regla lógica que es aplicada en sus k entradas –
el sistema se actualiza en tiempos y pasos discretos. Los CA son mucho más
restringuidos (que los RBN y DDN) porque ellos tienen una regla universal y un
arreglo regular con condiciones a la frontera, creado por la conexión homogénea
de “células” determinando vecindades locales, mientras que los RBN y DDN
no tienen estas restricciones. Langton [2] describió los CA como “un universo
6
artificial discretizado con su propia fı́sica local”. Obviamente existen inconta-
bles variaciones y arquitecturas intermedias entre DDN y CA – RBN clásicos
[4] tienen valores binarios {0,1} y k homogéneos, aunque todos estos sistemas
reorganizan su espacio en conjuntos de atracción de la misma manera.
Ejecutando o simulando un CA, RBN o DDN hacia atrás en el tiempo y
construyendo todas sus posibles ramificaciones calculando sus ancestros, abre
una nueva perspectiva en el estudio de sus dinámicas. Una trayectoria empe-
zando desde algún estado inicial puede estar situado en el contexto del flujo del
espacio conduciendo a los atractores, análogo al conocido “estado fase” de Poin-
caré en dinámica continua, pero aplicados en sistemas donde el tiempo y espacio
son discretos (como en la naturaleza). Estas implicaciones fueron discutidas por
Langton en su prefacio [11]. Los sistemas dinámicos contı́nuos y discretos com-
parten conceptos análogos, como son: puntos fijos, cı́clos lı́mite, caos, sensibles
a condiciones iniciales y atractores caóticos. La frontera entre sus conjuntos de
atracción tienen algunas afinidades en los estados (hojas) inalcanzables (cono-
cidos como Jardı́n del Edén, “Garden of Eden”). La extensión de una conexión
local de transiciones medido por el exponente de Liapunov, tiene su analogı́a
en el grado de convergencia dada la densidad de los subárboles – el grado de
profundidad de un estado, establecido por el parámetro Z [11, 17].
En este punto podemos indentificar ciertas analogı́as y discrepancias (con me-
recimiento para el desarrollo de una tesis) en tres importantes comportamientos
de ciertos fenómenos, revisando este artı́culo podrı́amos situar algunos aspectos
en dinámicas discretas como opuestas en la dinámica continua: complejidad por
la interacción de estructuras – en el entendimiento de la auto organización; in-
formación oculta en caos – con aplicaciones a la criptografı́a; y el concepto de
memoria y aprendizaje en su más básico nivel – para modelar redes neuronales
y genéticas.
2. Complejidad derivada por la interacción de estructuras
En algunos CA raros, la interacción dada por estructuras estáticas y móviles
o partı́culas – gliders y glider guns, emergen y dominan la dinámica del sistema.
Algunos ejemplos particulares son el Juego de la Vida, la regla 110 y la reciente-
mente descubierta regla espiral [10] (Fig.7), donde ellos son estudiados a través
del choque de sus partı́culas para modelar computación lógica o universal (Fig.8)
[8, 7].
Desde otra perspectiva, éstos son sistemas extremadamente simples y com-
pletamente bien definidos, que también son capaces de auto organizarse y com-
ponerse en estructuras aún más complejas. El comportamiento emergente parece
ser impredecible, de duración indefinida y limitada únicamente por el tamaño
del espacio de evoluciones. Como sucede en la naturaleza estos CA complejos
pueden ser descritos en un nivel ascendente – desde la “fı́sica” esencial, en la
observación de las “leyes” de choques de partı́culas, en la descripción de inter-
acciones complejas que resulta cada vez más importante – argumentado – en el
7
(a) (b)
(c)
Figura 3. Ilustramos tres conjutos de atracción en CA elemental (ECA) con
topologı́as opuestas, para las reglas (a) 250, (b) 110 y (c) 30 con n = 15 y k = 3.
Un conjunto completo de árboles equivalentes se presenta en cada caso, junto
con sus estados (hojas o nodos) inalcanzables. La topologı́a varı́a en los tres
conjuntos con una alta densidad de ramificación – escasa ramificación, dado por
el número de nodos concentrados con algunas medidas, como son la densidad de
hojas, la longitud de las transiciones y la distribución de profundidad (ancestros
a un estado) pronósticada por el parámetro Z.
8
1D space
rule 250
rule 110
time
steps
rule 30
Figura 4. Aquı́ presentamos la producción de patrones espacio y tiempo en ECA
de 1D para reglas de orden k = 3, desde la Fig. 3, se ilustran los comportamientos
globales que presentan: orden, complejidad y caos, respectivamente. El tamaño
del sistema es n = 100 con condiciones a la frontera. La misma condición ini-
cial aleatoria es utilizada para las tres reglas. Un patrón espacio y tiempo es
precisamente una ruta desde algún nodo seleccionado en el conjuto de atracción.
“posible contiguo” de Kauffman [6]. Desde esta perspectiva, la complejidad de
un sistema es el número descriptivo de sus niveles existenciales [12].
De esta manera surge la pregunta: ¿qué es la auto organización? Es gene-
ralmente aceptado que las reglas complejas son raras y ocurren en reglas de
transición que se encuentran entre el orden y el caos [2] (Fig.10) – aunque para
encontrarlas no es tan claro y simple. Una amplia variedad de reglas complejas
se encuentran probablemente fuertemente relacionadas al descubrimiento de los
principios generales de la auto organización. Podemos encontrar innumerables
ejemplos de reglas complejas, utilizando como entrada su entropı́a para clasificar-
las automáticamente en reglas con orden, complejas y caóticas [17, 10]. Las Figs.
5 y 6 ilustran el método (implementado en DDLab) que señala la entropı́a de
Shannon dada la frecuencia de reglas entrantes, generando patrones en el espacio
de evoluciones y la entropı́a variable1 produciendo los siguientes resultados,
1
La variabilidad es establecida como la desviación estándar o alternativamente, como
el intervalo máximo entre un mı́nimo seguido de un máximo de entropı́a.
9
(a) (b)
Figura 5. (a) Patrones espacio y tiempo en CA complejo de 1D con n = 150
evolucionando en 200 generaciones. (b) Ilustra una parte del histograma de fre-
cuencias especificado en una ventana que representa 10 pasos de la evolución
(gráfica izquierda). La gráfica central muestra el histograma calculando la en-
tropı́a cambiante, su variabilidad otorga una posible medida para descriminar
entre funciones con comportamientos globales ordenados, complejos y caóticos
automáticamente. Una alta variabilidad relaciona fuertemente la presencia de
dinámicas complejas.
ordenado complejo caos
entropı́a media bajo medio alto
entropy variable bajo alto bajo
Las reglas que son únicamente complejas tienen una alta entropı́a variable y
pueden ser separadas – la entropı́a media separa el orden y el caos (Fig.6). La alta
variabilidad relaciona la interacción de estructuras a gran escala, frecuentemente
producidas por el choque de partı́culas porque los choques crean caos local que
nos da la entropı́a misma, donde las partı́culas vuelven a emerger regulando la
entropı́a.
La dinámica de partı́culas puede ser visto desde la perspectiva de un conjun-
to de atracción. Los estados desordenados, antes de que emergan las partı́culas,
están compuestos por las hojas con trayectorias cortas mientras que las trayec-
torias largas inducen la existencia de partı́culas que encuentran interactuando.
Finalmente, las partı́culas finales o que sobreviven se encuentran en el atractor
mismo.
3. Información oculta en sistemas caóticos
El estado y espacio, por definición, incluye cada posible pieza de la informa-
ción codificada en el tamaño del arreglo celular de un CA – incluyendo sonetos
10
Figura 6. La presente gráfica de dispersión es calculada para 15,800 reglas de CA
hexagonal, con parámetros (v = 3, k = 6), graficando la entropı́a media contra
su entropı́a variable, que nos da como resultado la clasificación de reglas con
comportamiento ordenado, complejo y caótico. La ordenada vertical representa
la frecuencia de las reglas – la mayorı́a son caóticas. La gráfica de dispersión
clasifica las reglas de evolución automaticamente.
de Shakespeare, copias de La Mona Lisa, la copia del pulgar, pero principalmen-
te desordenado. Un CA organiza los estados tiempo en conjuntos de atracción
donde cada estado tiene su lugar especı́fico y donde los estados en la misma
trayectoria están conectados por los estados del tiempo hacia adelante, de esta
manera, el enunciado “el estado tiempo B = A + x” es plenamente justificado.
Aunque su inversa, A = B − x generalmente no lo es porque sus trayectorias
viajan de regreso y deberá por lo tanto seleccionar correctamente la ramificación
que debe de ser. Un punto importante son los estados que representan las hojas
del atractor (estados globales sin ancestros), ya que para estos estados “−x” el
tiempo hacia atrás no existe.
En grados, la convergencia del flujo dinámico puede ser inferido desde la regla
del mismo CA, a través del parámetro Z, la probabilidad de la siguiente célula
desconocida, para un ancestro, es obtenida sin ambigüedad por su algoritmo CA
11
Figura 7. Presentamos un estado global del CA hexagonal 2D con tres estados,
conocido como la regla espiral (spiral rule) [10], con parámetros n = 88 × 88, k =
7. Esta regla presenta, particularmente, una interesante diversidad de estruc-
turas complejas estáticas y con desplazamientos, emergiendo en su espacio de
evoluciones, entre ellas tenemos: glider guns espirales, glider guns movibles, auto
reproducción a través de choques de gliders. Los gliders se mueven orientados
por la posición de la célula en color rojo.
inverso [11, 12, 17]. Esto es procesado en dos direcciones, con Zizquierdo y Zderecho
para altos valores de Z. Ya que Z es llevada desde 0 hasta 1 con un cambio de
dinámicas desde lo ordenado hasta los caóticos (Fig.10), con la densidad de sus
hojas se obtiene una buena medida de su convergencia (decrementando) (Fig.3).
Si el tamaño del sistema se incrementa entonces éste converge a reglas con orden
y en un radio inferior converge a las reglas complejas, el restante es para las reglas
caóticas que componen mucho del espacio de las reglas de evolución (Fig.11).
Sin embargo, existe una clase de máximo caos, reglas de “cadena”, donde
Zizquierdo XOR Zderecho es igual a 1. La convergencia y densidad de hojas decrece
con el tamaño de n (Fig.11). Cuando n se incrementa en grados ≥ 2 llega a ser
menos probable y además decrece la densidad de hojas – en el lı́mite (de un
tamaño muy grande) ambas medidas se aproximan a cero (Fig.9). Para valores
12
1111110
0000001
Figura 8. Una compuerta not es implementada en el 2D CA complejo, la regla
espiral. Inspirado desde las construcciones en el Juego de la Vida, aquı́ se ilustra
una condición inicial diseñada para producir una cadena binaria como entrada
1111110, ésta es tranformada a través de una negación y produce continuamen-
te la cadena de bits 0000001. Todas estas operaciones son realizadas desde la
producción de partı́culas en glider gun, choques de gliders y sincronización. La
simulación fue implementada en DDLab y diseñada por Genaro J. Martı́nez (21
de abril de 2008) http://www.youtube.com/watch?v=_bC5ucq_sKc.
grandes de n y usos prácticos, las trayectorias están compuestas de largas cadenas
de estados sin ramas (Fig.12), y esto es posible gracias a la unión de dos estados
tanto hacia adelante como hacia atrás.
Supongamos que B es un estado con información y puede ser encriptado
(Fig.12) iterando hacia atrás dada la función A = B − x con el algoritmo inverso
de un CA, que es especialmente eficiente para las reglas de cadena. Entonces
A puede ser decodificado (Fig.13) ejecutando hacia adelante x pasos la regla
adecuada, es decir, con la llave de encriptación. Acerca de la raı́z cuadrada del
espacio de reglas binarias, ésta es compuesta de reglas de cadena, que pueden ser
contruidas aleatoriamente para demostrar un gran número de llaves de encripta-
ción. La Fig.13 ilustra la información transformada, el estado inicial contiene la
información sin transformar mientras que los demás estados, antes y después son
13
Figura 9. Mostramos el subárbol para un CA de 1D (regla de cadena) con
n = 400. La raı́z del árbol (el ojo) es ilustrado en 2D (20 × 20). Los iteraciones
hacia atrás se detienen hasta los 500 pasos (como en la Fig. 12). El subárbol
tiene 4,270 estados y la densidad tanto de las hojas como las ramificaciones es
muy bajo (cerca de 0.03) – donde la máxima rama es igual a 2.
caóticos. Esto hace que el sistema salga y entre en caos, limitado únicamente por
la “velocidad de la luz” de un 1D CA. Los métodos [20] están implementados en
DDLab.
4. Memoria y aprendizaje
El campo de conjuntos de atracción (Fig.15) revela que el contendio de la
memoria de contenido direccionable está presente en las redes dinámicas discre-
tas y además muestra su composición exacta, donde la raı́z de cada subárbol
(también de cada atractor) clasifica todos los estados que fluyen dentro de él y
si el estado raı́z es un disparador a algún otro sistema, todos los estados en el
subárbol podrı́an, en principio, ser reconocidos como corresponde a una entidad
conceptual particular. Esta noción de memoria alejada del equilibrio [13, 14], es
una extensión del trabajo de Hopfield [1] y otros conceptos clásicos de memoria
en redes neuronales artificiales, que depende exclusivamente de los atractores.
Viendo la dinámica desde dentro de un atractor, ésta se encuentra precisa-
mente de forma descendente y abre toda una jerarquı́a de subcategorı́as. Apren-
diendo en este contexto, es un proceso de adaptación de las reglas y las cone-
xiones en la red, para modificar subcategorı́as en el comportamiento requerido
– modificando la fina estructura de subárboles y conjuntos de atracción.
Los CA clásicos no son sistemas ideales para implementar estos delicados
cambios, porque se encuentran limitados a una regla universal y vecindad local,
un requisito para el surgimiento de estructuras emergentes, y que limita seria-
mente su flexibilidad para establecer categorı́as. Por otra parte, la dinámica en
CA tiene simetrı́as y jerarquı́as producto de sus condiciones a la frontera [11]. Sin
embargo, los CA tienen un grado de estabilidad en su comportamiento cuando se
mutan algunos bits en su regla – donde algunos bits son más sensibles que otros.
La regla puede ser observada como el genotipo y su comportamiento (patrones
14
0 Z-parameter 1
max convergence min
Figura 10. Una vista general del espacio de reglas (después de Langton[2],
ya que Langton desconocı́a la existencia de las reglas de cadena). Ajustada al
parámetro Z, de 0 a 1 cambia la dinámica desde la convergencia máxima hasta
la mı́nima, desde orden hasta caos, atravesando la fase de transición donde se
ubica la complejidad. Las reglas de cadenas, a la derecha, ilustran la región con
máximo caos y muestran la mı́nima convergencia, decrementando con el tamaño
del sistema y haciendo ellos ideales para la encriptación dinámica.
espacio tiempo o conjuntos de atracción) como el fenotipo [11]. La Fig.14 ilustra
la mutación de algunos CA campos de atracción.
Con las RBN y DDN existe más libertad para modificar sus reglas y co-
nexiones que con los CA. Los algoritmos para el aprendizaje y la perdida de
aprendizaje fueron inventados e implementados en DDLab [13, 14, 15]. Los méto-
dos designan ancestros a un estado objetivo para corregir una unión mal hecha
entre el objetivo y el estado actual, cambiando bits en la reglas o cambiando
conexiones. En los sitios afectados la generalización es evidente y los árboles de
transiciones algunas veces son transplantados con la reasignación de ancestros.
4.1. Modelando redes neuronales
Ahora podemos establecer algunas conjeturas y especulaciones ¿Cuáles son
las implicaciones de la memoria en el cerebro de los animales? La primera con-
jetura, quizás no tan contraversial, es que el cerebro es un sistema dinámico (no
una computadora o una máquina de Turing), compuesto de la interacción de
subredes. Segunda, el código neuronal es basado en patrones distribuidos y ac-
tivados en subredes neuronales (no es la frecuencia de disparo de una neurona),
donde cada disparo es sincronizado por muchos mecanismos posibles: fijación de
la fase, inter neuronas, uniones gap, nanotubos de la membrana, interacciones
efáticas.
15
Figura 11. La densidad de las hojas (configuraciones Jardı́n del Edén) están
graficadas con respecto al tamaño de n, para cuatro reglas tı́picas de CA, ilus-
trando la convergencia que es predicha por el parámetro Z. Únicamente, las
reglas de cadena fuertemente caóticas muestran un decremento. Las medidas
son realizadas desde los campos de conjuntos de atracción y consecuentemente
para el espacio de evoluciones completo, parámetros k = 5, n = 10 hasta n = 20.
El comportamiento aprendido y la memoria trabajan por patrones de acti-
vación en subredes, siguido automáticamente con las subredes de los conjuntos
de atracción. El reconocimiento es fácil porque el estado inicial es conocido. El
hecho de recordar es lo realmente complicado, porque una asociación debe ser
evocada para iniciar el flujo en el subárbol correcto.
En un nivel muy básico nos podemos preguntar. ¿Cómo podrı́amos hacer de
un modelo DDN un remedio semiautónomo de neuronas en el cerebro cuya activi-
dad es sincronizada? Esto serı́a un modelo basado en conexión de redes, donde un
subconjunto de neuronas conectadas se conectarı́a entonces a una neurona dada.
Entonces la regla lógica en una red elemental, que podrı́a ser reemplazada por un
circuito (como árbol) combinatorial equivalente, modela la lógica ejecutada por
el micro circuito sináptico de un árbol de nueronas dendrı́ticas, determinando
si o no deberı́a de disparar en el siguiente tiempo. Esto es más complejo que el
umbral de la función en redes neuronales artificiales. El aprendizaje evoluciona
cambios en el árbol dendrı́tico, o más radicamente, los axones pueden alcanzar
a conectar (o desconectar) neuronas fuera del subconjunto actual.
4.2. Modelando redes regulatorias genéticas
Los diversos tipos de células en organismos multicelulares, como los músculos,
cerebro, piel, hı́gado y demás (cerca de 210 organismos dentro de los humanos),
16
Figura 12. Mostramos un subárbol de un CA en 1D con k = 7 encriptando
desde la raı́z a un “alien,” aqui se muestra la construcción del patrón en 1D a
2D (n = 1600, 40 × 40) y que puede ser representado además en ASCII o algún
otro formato de información. Las iteraciones hacia atrás se detienen hasta los 19
pasos.
tienen el mismo ADN y el mismo conjunto de genes. Los diferentes tipos se
derivan desde diferentes patrones dada las expresiones de los genes. Por lo que
surge la pregunta ¿Cómo hacer que los patrones conserven su identidad? ¿Cómo
hacer que la célula recuerde qué es lo que contenı́a?
Es bien conocido en biologı́a, que existe una red regulatoria genética donde
los genes regulan cualquier otra actividad con proteı́nas regulatorias [9]. Un tipo
de célula depende de su subconjunto particular de genes activos, donde cada
patrón derivado de la expresión del gen necesita ser estable y además adaptable.
Algunos biólogos celulares que no se encuentran familiarizados con los sistemas
complejos, encuentran las ideas de Kauffman contraversiales [4, 5], donde una
red regulatoria genética es un sistema dinámico donde los tipos de células son
atractores, y que además él modeló con RBN. Aunque esta aproximación tiene
17
Figura 13. Para descifrarlo, empezamos desde el estado en que se quedó encrip-
tado en la Fig. 12 y ejecutamos la misma regla hacia adelante 19 pasos. Esta
figura ilustra las −3 hasta +6 iteraciones del espacio celular, donde podemos ver
como la cara del “alien” se pierde antes y después del tiempo 0.
un tremendo poder explicativo y difı́cil de verlo como una alternativa plausible
[16].
Un gen es regulado por proteı́nas desde otros genes, que además debe incluir
al mismo gen. En un nivel molecular, una combinación de proteı́nas regulatorias
vincula a una secuencia promotora, que cambia el estado del gen en on (encen-
dido) y off (apagado). En un nivel macro, éste determina el radio en que el
gen transcribe ARN para producir su proteı́na especı́fica, que puede ser medida
a través de un análisis de micro arreglos.
En el modelo de Kauffman basado en RBN, un estado del gen está encen-
dido o apagado y sus conexiones son los conjuntos de genes que conservan sus
proteı́nas regulatorias. Su regla (función booleana) representa como las proteı́nas
se combinan en el sitio de enlace para determinar el estado del gen. Kauffman
trabajó su modelo desde numerosos estados iniciales para identificar los principa-
les atractores – la longitud de la trayectoria y el volumen del conjunto pueden ser
determinados estadı́sticamente, un método además implementado en DDLab y
útil para largos sistemas ordenados.2 Los resultados demostraron que el número
de entradas, k, fueron una clave variable para el número de atractores [5]. Esta
aproximación enfatiza el balance de las dinámicas orden/caos, que dependen de
k o alternativamente canalizando entradas, en una diagonal para valores mayo-
res que k inducen orden [3]. Las medidas para orden/caos incluyen: la gráfica de
Derrida, extensión de daños, genes congelados y distribución de atractores. La
localidad de conexiones aleatorias reduciendo la extensión de conexiones cuando
2
Los atractores caóticos son difı́ciles de encontrar con este método porque las trayec-
torias y los atractores llegan a ser muy largos para ser identificados.
18
Figura 14. Mutaciones de conjuntos de atracción para v = 2, k = 3, ECA
regla 60 (n = 8). En la partre superior izquierda se ilustra la regla original,
donde todos los estados caen en un conjunto regular base. Entonces la regla
es transformada, primero, por su regla equivalente k = 5 (f00ff00f en notación
hexadecimal), con 32 bits en su tabla. Todas las 32 mutaciones son calculadas.
Si la regla es el genotipo entonces el conjunto de atracción puede ser visto como
el fenotipo.
la red es presentada en un arreglo regular, además induce orden [15]. El nue-
vo método procesa conjuntos de atracción de RBN con todos los detalles [13],
otorgando más profundidad al modelo [9, 3].
En un tipo de célula, el patrón derivado de la expresión del gen, pueden ser
vistos como patrones (patrones en el espacio y tiempo), un gen en particular
puede pasar por algunos largos intervalos de su tiempo apagado (congelado)
o repentinamente alterado. Pero si varios genes están cambiando rápidamente
(dinámica caótica) entonces la célula deberá estar inestable. Inversamente, si
varios genes están congelados entonces la célula deberá estar demasiado esta-
ble para su comportamiento adaptativo. Las células necesitan constantemente
adaptarse a sus patrones de expresión de genes, como una respuesta a factores
de crecimiento/diferenciación, inter celulares y otras señales luego reviertan a su
dinámica usual. Un tipo de célula es probablemente un conjunto de patrón de
expresión de gen, estrechamente vı́nculado y no solo en los atractores, sino que
cambia en su entorno con el conjunto de atracción, permitiendo de esta manera
una medida esencial de flexibilidad en su comportamiento. Aunque también, de-
masiada flexibilidad debe permitir una perturbación para mover la dinámica a
un conjunto de atracción diferente, desde una célula del hueso hasta una célula
de la grasa o en alguna célula extraña – una célula cancerosa.
El modelo indica que la evolución a alcanzado a un delicado balance entre or-
den y caos – aunque con inclinación hacia una convergencia creciente y ordenada
19
(a)
(b)
Figura 15. En (a) se ilustra el campo del conjunto de atracción de una red boo-
leana aleatoria (RBN), k = 3, n = 13. Los 213 = 8, 192 estados están organizados
en 15 conjuntos con periodos de atracción que van de 1 a 7 y con un volumen
entre 68 y 2,724. En (b) se presenta en detalle un conjunto de atracción, como
configuraciones de bits (flecha de arriba indicada en (a)) con 604 estados de los
cuales 523 son hojas y el atractor es de periodo igual a 7. La dirección del tiempo
es hacia dentro del atractor y con orientación al sentido de las manecillas del
reloj.
20
[3]. La estabilidad de los atractores a perturbaciones pueden ser analizadas por
la gráfica de salto (jump-graph) (Fig.16), que permite ilustrar la probabilidad
de saltar entre conjuntos de bits perdidos (bit-flips) a los estados atractores [18].
Estos métodos están implementados in DDLab y generalizados para los DDN,
donde los valores de v pueden ser mayores que 2 (binario) y un gen puede ser
fracionado como un simple estado on/off.
Figura 16. La gráfica de salto (jump-graph) (de la RBN de la Fig. 15) muestra
la probabilidad de cambiar entre conjuntos de atracción, cambiando una célula
en el estado desde 0 a 1 o de 1 a 0. Los nodos representan los conjuntos que están
representados a escala de acuerdo al número de estados en el conjunto (volumen
del conjunto). Las aristas están a escala de acuerdo a dos conjuntos: el volumen y
la probabilidad de salto. De esta manera, las flechas indican la dirección del salto
y las flechas cortas representan una auto conexión (self-jumps); los saltos que
regresan al conjunto padre indican el grado de estabilidad, es decir, donde existe
más estabilidad por casualidad. El conjunto de atracción relevante es dibujado
dentro de cada nodo.
Un cambio reciente en el modelo del problema inverso, es la inferencia de
una arquitectura basada en redes desde la información de patrones en el espacio
21
de evoluciones. Esto es aplicado a la inferencia de redes regulatorias genéticas
reales, desde la dinámica observada en la expresión de genes [3].
5. Conclusiones
El artı́culo presenta una revisión acerca de una variedad de redes dinámicas
discretas, donde el conocimiento desde sus conjuntos de atracción nos ofrece un
novedoso entendimiento y algunas aplicaciones: en la dinámica de partı́culas de
CA complejo y en la auto organización; en CA más caótico (reglas de cadena)
donde la información puede encontrarse oculta y recuperada desde un umbral de
caos; y en el caso de las redes booleanas aleatorias y redes multi-valor aleatorias,
que son aplicadas a modelos de redes naturales y genéticas en biologı́a. Sin em-
bargo, varias lı́neas de investigación permanecen abiertas (en sistemas dinámicos
discretos), debemos ver el mérito que es pensar acerca de ellos en la perspectiva
de los conjuntos de atracción.
6. Manual y software para DDLab
Los resultados obtenidos y graficados en el presente artı́culo, ası́ como las si-
mulaciones y experimentos descritos, fueron realizados con el software (de código
abierto) “Discrete Dynamics Laboratory” (DDLab)[19]. La reciente versión de
DDLab y la reciente edición del manual “Exploring Discrete Dynamics” [22] se
encuentran disponibles desde http://www.ddlab.org/.
Referencias
[Note] Referencias y más publicaciones de A. Wuensche, se encuentran disponibles en
http://www.cogs.susx.ac.uk/users/andywu/publications.html.
[1] Hopield, J.J. (1982) Neural networks and physical systems with emergent collec-
tive abilities, Proceeding of the National Academy of Sciences 79 2554–2558.
[2] Langton, C.G. (1990) Computation at the edge of chaos: Phase transitions and
emergent computation, Physica D 42 12–37.
[3] Harris, S.E., Sawhill, B.K., Wuensche, A., & Kauffman S.A. (2002) A Model of
Transcriptional Regulatory Networks Based on Biases in the Observed Regulation
Rules, Complexity 7(4) 23–40.
[4] Kauffman, S.A. (1969) Metabolic Stability and Epigenesis in Randomly Cons-
tructed Genetic Nets, Theoretical Biology 22(3) 439–467.
[5] Kauffman, S.A. (1993) The Origins of Order, Oxford University Press.
[6] Kauffman, S.A. (2000) Investigations, Oxford University Press.
[7] Martı́nez, G.J., Adamatzky, A., Seck-Tuoh-Mora, J.C., & Alonso-Sanz, R. (2010)
How to make dull cellular automata complex by adding memory: Rule 126 case
study, Complexity 15(6) 34–49.
[8] Martı́nez, G.J., Adamatzky, A., Stephens, C.R., & Frank, A. (2011) Cellular auto-
maton supercolliders, International Journal of Modern Physics C 22(4) 419–439.
[9] Somogyi, R. & Sniegoski. C.A. (1996) Modeling the complexity of genetic net-
works: understanding multigene and pleiotropic regulation, Complexity 1 45–63.
22
[10] Wuensche, A. & Adamatzky, A. (2006) On spiral glider-guns in hexagonal cellular
automata: activator-inhibitor paradigm, International Journal of Modern Physics
C 17(7) 1009–1026.
[11] Wuensche, A. & Lesser, M.J. (1992) The Global Dynamics of Cellular Automata;
An Atlas of Basin of Attraction Fields of One-Dimensional Cellular Automa-
ta, Santa Fe Institute Studies in the Sciences of Complexity, Addison-Wesley,
Reading, MA.
[12] Wuensche, A. (1994) Complexity in 1D cellular automata; Gliders, basins of at-
traction and the Z parameter, Santa Fe Institute Working Paper 94-04-025.
[13] Wuensche, A. (1994) The ghost in the machine: Basin of attraction fields of
random Boolean networks. In: Artificial Life III, Langton, C.G. (ed.), Addison-
Wesley, Reading, MA, 496–501.
[14] Wuensche, A. (1996) The Emergence of Memory: Categorisation Far From Equi-
librium, In: Towards a Science of Consciousness: The First Tuscon Discussions
and Debates, Hameroff, S.R., Kaszniak, A.W., & Scott, A.C. (eds.), MIT Press,
Cambridge, MA, 383–392.
[15] Wuensche, A. (1997) “Attractor basins of discrete networks: Implications on self-
organisation and memory,” Cognitive Science Research Paper 461, DPhil Thesis,
University of Sussex.
[16] Wuensche, A. (1998) Genomic Regulation Modeled as a Network with Basins of
Attraction, Proceedings of the 1998 Pacific Symposium on Biocomputing, World
Scientific, Singapore.
[17] Wuensche, A. (1999) Classifying cellular automata automatically; finding gliders,
filtering, and relating space-time patterns, attractor basins, and the Z parameter,
Complexity 4(3) 47–66.
[18] Wuensche, A. (2004) Basins of Attraction in Network Dynamics: A Conceptual
Framework for Biomolecular Networks, In Modularity in Development and Evo-
lution, G. Schlosser & G.P. Wagner (eds.), Chicago University Press, chapter 13,
288–311.
[19] Wuensche, A., “Discrete Dynamics Lab” (DDLab), software for investigating dis-
crete dynamical networks, http://www.ddlab.org/, 1993–2009.
[20] Wuensche, A. (2009) Cellular Automata Encryption: The Reverse Algorithm, Z-
Parameter and Chain Rules, Parallel Processing Letters 19(2) 283–297.
[21] Wuensche, A. (2010) Complex and Chaotic Dynamics, Basins of Attraction, and
Memory in Discrete Networks”, Acta Pysica Polonica B 3(2) 463–478.
[22] Wuensche, A. (2011) Exploring Discrete Dynamics; The DDLab Manual, Luniver
Press, UK.
Áreas de oportunidad en el estudio de
autómatas celulares reversibles
Juan Carlos Seck Tuoh Mora
Centro de Investigación Avanzada en Ingenierı́a Industrial
Universidad Autónoma del Estado de Hidalgo
Carr. Pachuca Tulancingo Km 4.5, Pachuca 42184 Hidalgo, México
[email protected] Resumen Este manuscrito presenta una visión general de los resultados
más relevantes en la investigación que se ha desarrollado en los últimos
40 años en autómatas celulares reversibles en una dimensión, ası́ como
la exposición de cuatro áreas de oportunidad que son factibles de desa-
rrollar con los resultados actuales, para el análisis de dichos sistemas.
Estas áreas incluyen: Caracterización de la máxima longitud de la mı́ni-
ma vecindad inversa usando herramientas de dinámica simbólica, conteo
de autómatas celulares reversibles construyendo solamente especı́menes
válidos, obtención del periodo de una configuración finita sin evolucio-
nar el autómata y la caracterización del comportamiento reversible en
autómatas celulares con memoria.
1. Introducción
La investigación de los autómatas celulares ha tenido como puntos de interés
primero explorar sus posibilidades para simular sistemas reales. En este sentido,
la disponibilidad de equipos computacionales cada vez más rápidos ha permitido
experimentar y aplicar los autómatas celulares para este fin. La segunda razón
tiene sus orı́genes tanto en los trabajos elaborados por Post y Turing entre otros,
que establecen las condiciones y restricciones de un dispositivo para realizar
procesos computables. Un ejemplo de esto es el mo- delo del sistema nervioso
de McCulloch y Pitts , el cual está basado en interacciones locales de unidades
elementales o neuronas, dicho modelo muestra que las interacciones locales de
unidades simples son capaces de generar un comportamiento global complejo .
Ası́, otra lı́nea de investigación es entender como en un autómata celular , las
interacciones locales de sus partes inducen un comportamiento global capaz de
realizar comportamientos dinámicos interesantes.
Un tipo de autómata celular ampliamente estudiado es aquel cuyo compor-
tamiento global es invertible , en otras palabras, cada uno de estos autómatas
puede regresar a todos los estados globales que anteriormente habı́a generado.
Los autómatas celulares con estas caracterı́sticas son llamados reversibles y su
estudio matemático resulta relevante por la convergencia que tienen diversos
24
campos de investigación: como computación concurrente, procesos que preser-
van información, computación cuántica, modelado de sistemas granulares, co-
dificación y cifrado de datos entre otros [47], [50], [21], [26].
Por mucho tiempo, los autómatas celulares reversibles parecı́an ser muy ra-
ros y lo que se sabı́a de ellos era fácilmente resumido. Sin embargo, esta falta
de interés desaparece en 1962, cuando Moore [28] examina autómatas celulares
con estados globales sin ancestros. Este trabajo es enriquecido por Myhill [31].
El tema de reversibilidad es directamente abordado hasta 1972 por los artı́culos
de Richardson [36] y Amoroso y Patt [6], que presentan un procedimiento sis-
temático para decidir si un autómata celular unidimensional es reversible o no.
Pero parte de los resultados de estos artı́culos ya habı́an sido anticipados en un
contexto matemático más abstracto por Hedlund [17].
En 1977, Toffoli prueba la existencia de autómatas reversibles que también
son constructores universales; independientemente, Fredkin analiza recurrencias
invertibles por medio de primitivas booleanas [15]. Tomando como base el trabajo
de Hedlund , Nasu define propiedades fundamentales de los autómatas reversibles
usando herramientas gráficas [32], [33] y [34].
Después de finales de los 80’s, aparecen trabajos muy interesantes acerca
de los autómatas celulares unidimensionales reversibles. Usando la técnica de
estados particionados, Morita prueba la existencia de autómatas reversibles que
hacen computación universal y que son autorreproductivos [29] y [30]. Hillman
[18] y Moraal [27] presentan nuevos algoritmos para detectar autómatas celulares
unidimensionales reversibles; Boykett da un esquema algebraico para construirlos
[9] y Seck et al. utilizan herramientas matriciales para el mismo fin, detectando
autómatas reversibles con diferentes tamaños en su vecindad inversa [39].
Aunque los diagramas de de Bruijn habı́an sido utilizados por Nasu, estos se
vuelven populares para analizar el comportamiento local de los autómatas celu-
lares unidimensionales reversibles gracias a los artı́culos de Jen quien los utiliza
para calcular los ancestros de una secuencia de estados [19]. Otras aplicaciones
incluyen las desarrolladas por Voorhees para obtener propiedades de autómatas
reversibles y sobreyectivos [48], por Sutner para definir una cota máxima del
comportamiento inverso de un autómata reversible [45] y [46]; por Seck et al.
para encontrar la regla inversa de una clase particular de dichos sistemas [40],
[41] y por McIntosh , quien los aplica para establecer procedimietos para verificar
si un autómata celular es reversible [26].
Un artı́culo fundamental que presenta una caracterización determinı́stica ba-
sada en permutaciones en bloque y corrimientos del comportamiento local para
autómatas reversibles es desarrollado por Kari [20], en donde se explica como se
conserva la información inicial de un autómata durante su evolución.
Por otra parte, el estudio en dinámica simbólica está en relación estrecha
con entender el comportamiento a largo plazo de los autómatas celulares. En
dinámica simbólica, los autómatas reversibles son mapeos invertibles entre siste-
mas de corrimiento. En 1973, Williams establece resultados matriciales impor-
tantes para comparar sistemas de corrimiento, incluyendo mapeos que coinciden
con autómatas celulares unidimensionales reversibles [49]. Esta investigación con
25
base en matrices continúa con el trabajo de Boyle [10]. Excelentes referencias
sobre este tema se encuentran en los libros de Lind y Marcus [24] y Kitchens
[23]. Estos trabajos han inspirado estudios más detallados que presentan resulta-
dos importantes sobre la dinámica topológica de autómatas reversibles [35], [7],
[12], [13], [11], [38], [42]; y que analizan la decibilidad de problemas dinámicos
fundamentales en estos sistemas [8], [22], [25].
Los párrafos anteriores son solo una pequeña muestra del rico desarrollo que
han tenido los autómatas celulares tanto en su estudio como en su aplicación; sin
embargo, esto no significa que su investigación ya esté completa o terminada.
Ası́, este manuscrito presenta varias propuestas de estudio para desarrollarse
con base en los resultados descritos anteriormente. Por supuesto, este listado
no es único ni excluyente, pero corresponde con los trabajos que el autor ha
desarrollado, ası́ como con los avances que se han obtenido recientemente en el
estudio de autómatas celulares. Estas propuestas incluyen:
Caracterización de la máxima longitud de la mı́nima vecindad inversa usando
herramientas de dinámica simbólica.
Conteo de autómatas celulares reversibles construyendo solamente ejempla-
res válidos.
Obtener el periodo de una configuración finita sin evolucionar el autómata.
Caracterizar el comportemiento reversible en autómatas celulares con me-
moria.
2. Conceptos básicos
En este trabajo estamos interesados en autómatas celulares con un número
finito de células y condiciones periódicas de frontera, por lo que las definiciones
que se den, serán dentro de este contexto.
Un autómata celular unidimensional consiste de un conjunto S de estados,
cuya cardinalidad es s; un arreglo finito de células c = x1 . . . xm con m ∈ Z+ ,
donde cada célula toma un valor del conjunto S. Cada arreglo con una asigna-
ción de estados es una configuración del autómata; por lo tanto, el conjunto de
configuraciones se define como C = S m .
Para cada configuración c, cada célula evoluciona a partir de su estado ac-
tual y el de sus r vecinos a cada lado, de esta forma la evolución depende de
una vecindad determinada por cada célula y sus 2r vecinos. Ası́, el mapeo del
conjunto S 2r+1 al conjunto S es una regla de evolución ϕ : S 2r+1 → S.
A cada célula de xti de una configuración ct se le aplica la regla de evolución
ϕ(xti−r . . . xti . . . xti+r ) = xt+1
i , donde el superı́ndice significa tiempo, y esto se
hace para cada xi ∈ ct .
El resultado es una nueva configuración ct+1 en donde los estados de cada
célula son actualizados simultaneamente por la regla de evolución. De esta ma-
nera, el mapeo local de la regla de evolución induce un mapeo global φ : C → C
entre configuraciones. Si consideramos una conguración inicial c1 , aplicando este
proceso obtendremos la configuración c2 , y esto continúa de forma consecutiva
para tiempos subsecuentes.
26
Cada vecindad forma un estado aplicando la regla de evolución ϕ; ası́, en
general, cualquier ancestro de w ∈ S n tiene n + 2r estados. Un ancestro de
una secuencia de 2r estados tendrá 4r estados. Entonces, cada ancestro puede
particionarse en dos secuencias disjuntas de 2r estados cada una. Con esto,
se puede definir un nuevo conjunto de estados con cardinalidad s2r , en donde
se representa cada secuencia de S 2r con un único estado . Sobre este nuevo
conjunto de estados, se define una nueva regla de evolución que simula a la
regla original ϕ. Esta regla mapea elementos de S 4r a S 2r . Esta transformación
demuestra que todo autómata celular unidimensional puede simularse por otro
con s2r estados y radio de vecindad 1/2. Con esto, una propiedad particular en
autómatas celulares con radio de vecindad 1/2, se cumple también para todo el
conjunto de autómatas celulares. Por lo anterior, en lo que sigue de este trabajo,
se tratará con autómatas celulares de s estados y radio de vecindad 1/2.
Un autómata celular es reversible si su mapeo global es invertible por la
acción de una regla de evolución inversa a la original. El conjunto de estados
del autómata permanece sin cambio, pero el tamaño de la vecindad en la regla
inversa puede ser diferente al tamaño de la vecindad en la regla original.
La parte interesante de este comportamiento reversible es que cada regla de
evolución mapea una vecindad de varias células a una sola; es decir, el compor-
tamiento local no es reversible ya que el número de vecindades es mayor que el
número de estados, sin embargo, este comportamiento local define un compor-
tamiento global reversible . Ası́, primero se debe caracterizar el comportamiento
local para entender la reversibilidad global. Relativo a lo anterior, Hedlund en
[17] obtiene resultados fundamentales para la caracterización de los autómatas
celulares unidimensionales reversibles, que se puede resumir con las siguientes
propiedades para autómatas con tamaño de vecindad 1/2:
Cada secuencia finita de estados tiene s ancestros.
Para una longitud dada, los ancestros de cada secuencia tienen L estados
izquierdos distintos, una secuencia central única y R estados derechos dis-
tintos, cumpliendo con LR = s.
Ası́, en un autómata celular unidimensional reversible , cada secuencia de
estados tiene el mismo número de ancestros que todas las demás, sin importar
su longitud o los estados que la conformen. Para una longitud dada, los ancestros
de cada secuencia tienen una parte central común y sus diferencias aparecen en
los extremos. De lo anterior se desprende que los ancestros definen una única
forma en la cual una secuencia puede regresar en la evolución del autómata.
A continuación se proponen algunas áreas de investigación a desarrollar en
el estudio de autómatas celulares reversibles.
3. Cota máxima para la mı́nima vecindad inversa
Éste es un problema clásico en el estudio de reversibilidad , y de manera
simple se puede formular como cuál es la mı́nima información necesaria para
27
regresar en la evolución de un autómata; es decir, cuál es el mı́nimo número de
células que se requieren para definir una regla de evolución inversa.
Este problema en una dimensión fue resuelto por Sutner [45] dando una cota
cuadrática respecto al número de estados del autómata, y después este resultado
fue mejorado por Czeisler y Kari [14] probando una cota lineal con base en la
representación del problema con conceptos de algebra lineal.
En este sentido, se propone investigar el desarrollo de otra demostración
basada en herramientas gráficas y de dinámica simbólica que sea más cercana al
funcionamiento de un autómata reversible; en particular usando diagramas de
de Bruijn , diagramas de Welch y amalgamaciones de estados .
Para autómatas con radio de vecindad 1/2; su representación por diagramas
de de Bruijn es una gráfica completa de s nodos donde cada uno es un estado
y cada arco dirigido es la evolución de los nodos adyacentes [43], [26]. De esta
gráfica, se desprenden otras dos, los diagramas de Welch [32], [40]; cuyos nodos
representan los diferentes conjuntos de Welch, cada uno formado por L estados
si es el diagrama izquierdo, o cada uno formado por R estados si es el diagrama
derecho. Los arcos dirigidos en los diagramas de Welch se obtienen agrupando las
conexiones del diagrama de de Bruijn, tomando todas las evoluciones idénticas
que surgen de un nodo del diagrama de Welch y que por las propiedades de estos
sistemas, mapean a otro conjunto de Welch dentro del mismo diagrama.
En términos de dinámica simbólica, dado que un autómata reversible puede
generar toda posible secuencia de sı́mbolos, su diagrama de de Bruijn asociado
es isomorfo al corrimiento completo, y por lo tanto se puede convertir en éste por
medio de amalgamaciones. Esto ya se ha hecho para autómatas con un ı́ndice
de Welch unitario [43], sin embargo, para los demás casos, la formalización de
este proceso está abierta ya que los mapeos en el diagrama de de Bruijn no se
comportan como función.
La propuesta consiste en usar diagramas de Welch los cuales son siempre
determinı́sticos, para demostrar que después de s − 1 amalgamaciones, todos los
ancestros de una determinada secuencia empiezan en un nodo de Welch izquierdo
, terminan en un nodo de Welch derecho y tienen un único estado o secuencia
interna en común.
4. Conteo de autómatas celulares reversibles
Otra lı́nea de investigación en autómatas reversibles es el conteo de los
autómatas reversibles; en este aspecto los primeros trabajos fueron desarrollados
por Amoroso y Patt [6] encontrando pocos especı́menes para 2 estados y diver-
sos tamaños de vecindad. De este trabajo original han surgido otros avances de
mayor envergadura utilizando diversas herramientas tanto gráficas, matriciales
y de teorı́a de grupos como los desarrollados por Hillman [18], Mooraal [27],
Boykett [9] y Seck et al. [39]. En estos trabajos, una constante es la generación
rápida de reglas candidatas a ser reversibles, las cuales luego son verificadas con
algún proceso más pesado computacionalmente para revisar si realmente tienen
esta caracterı́stica.
28
En este sentido, un área de oportunidad se encuentra en la generación directa
de reversibles; es decir, no generar reglas candidatas sino comprender cuáles son
las propiedades distintivas que conforman una regla de evolución reversible y
con base en dichas propiedades, generar solo reglas válidas.
Un paso más sencillo de abordar es tratar este problema para autómatas con
un ı́ndice de Welch unitario , ya que en este caso la representación matricial de
una regla está conformada por permutaciones de S. De esta manera, el proceso
para contar solamente permutaciones válidas puede ofrecer una solución para
este caso. Generalizar este proceso para autómatas reversibles con ı́ndices de
Welch diferentes de 1 es otro problema que permanece abierto.
5. Periodo de órbitas
El entender y predecir el comportamiento dinámico de un autómata celular es
un problema clásico, y el caso reversible no es la excepción. Resultados recientes
de Kari y Lukkarila [22], [25] demuestran que el problema de encontrar el ciclo
lı́mite de un autómata reversible es indecidible para configuraciones infinitas.
Sin embargo, para el caso finito, un problema que puede tratarse es conocer el
periodo de las órbitas de un autómata reversible; esto es, dada una configuración
inicial, en cuantos pasos del autómata regresará a la misma condición inicial .
Una propuesta de solución para este problema es utilizar representaciones del
autómata por medio de redes de Petri , y utilizar sus propiedades algebraicas
para calcular el número de pasos requerido para que el sistema regrese a la
condición inicial.
La relación entre redes de Petri y autómatas celulares ha sido poco explorada
[44] [16], [37], y hasta el conocimiento del autor, no existen trabajos que traten
el tema de reversibilidad usando ambos conceptos.
La propuesta consiste en construir una red de Petri que represente la dinámi-
ca de un autómata celular, una vez probando que los marcados de dicha red
reflejen de manera exacta el comportamiento dinámico del autómata correspon-
diente; se propone aplicar la ecuación de estado asociada a dicha red para resolver
un sistema de ecuaciones que represente tanto los disparos de transiciones de la
red, como las evoluciones a nivel local que tienen lugar en el autómata. De esta
manera, la solución del sistema de ecuaciones representará el número de pasos
para llegar de una configuración inicial a otra deseada; si ambas son la misma,
entonces la solución deberá mostrar el periodo de dicha configuración.
6. Reversibilidad y memoria
Una variante del modelo clásico de autómatas celulares es aquel en donde se
hace uso de memoria para complementar la regla de evolución; es decir, cada
célula toma en cuenta sus estados anteriores para formar una célula temporal,
ası́ se forma una nueva configuración temporal a la cual se le aplica regla de
evolución para definir la nueva configuración del autómata.
29
Autómatas celulares con memoria se han estudiado para producir compor-
tamientos periódicos y complejos a partir de autómatas clásicos con comporta-
miento caótico ; como se muestra en el gran número de resultados obtenidos por
Ramon Alonso-Sanz [4] y Alonso-Sanz y Bull [3], [5].
El fenómeno de reversibilidad ha sido constantemente estudiado en autóma-
tas celulares con memoria, sin embargo solo para tratar casos particulares y
expander comportamientos reversibles desde autómatas clásicos [1], [2].
En este sentido, un área de oportunidad es generalizar las propiedades de los
autómatas celulares unidimensionales reversibles en un ambiente con memoria.
El objetivo es caracterizar el tipo de memoria que se requiere para conservar la
reversibilidad desde autómatas celulares clásicos, o que tipo de memoria resulta
adecuada para obtener comportamientos reversibles desde autómatas celulares
clásicos que no lo son.
7. Observaciones finales
Si bien el tema de autómatas celulares reversibles ha sido ampliamente es-
tudiado y se han obtenido un número importante de resultados relevantes, so-
bre todo en su caracterización local por medio de herramientas combinatorias,
matriciales y de algebra lineal, ası́ como de problemas indecidibles en su com-
portamiento global tomando configuraciones infinitas; todavı́a quedan muchos
aspectos por investigar para el caso finito, sobre todo en la aplicación de he-
rramientas combinatorias y de dinámica simbólica, en su relación con otro tipo
de herramientas para sistemas discretos, y en el análisis y caracterización del
comportamiento reversible para variantes del modelo clásico.
Los problemas anteriormente descritos conllevan la definición de algoritmos
que funcionen de manera adecuada para configuraciones con un número pe-
queño de células (decenas o cientos), lo cual aún es conveniente para aplicaciones
computacionales donde el número de bits no necesite ser demasiado grande; por
ejemplo, para problemas de cifrado de datos, problemas de búsqueda, de optimi-
zación o de modelado de sistemas que por lo regular no son muy extensos, como
lo son buena parte de los sistemas de ingenierı́a.
Referencias
[1] Alonso-Sanz, R. (2003). Reversible cellular automata with memory: Patterns star-
ting with a single site seed. Physica D, 175(1-2), 1-30.
[2] Alonso-Sanz, R. (2007). Reversible structurally dynamic cellular automata with
memory: A simple example. Journal of Cellular Automata, 2(3), 197-201.
[3] Alonso-Sanz, R., & Bull, L. (2008). Random number generation by cellular auto-
mata with memory. International Journal of Modern Physics C, 19(2), 351-375.
[4] Alonso-Sanz, R. (2009). Cellular automata with memory. Old City Publishing.
[5] Alonso-Sanz, R., & Bull, L. (2010). One-dimensional coupled cellular automata
with memory: Initial investigations. Journal of Cellular Automata, 5(1-2), 29-49.
30
[6] Amoroso, S., & Patt, Y. (1972). Decision procedures for surjectivity and injecti-
vity of parallel maps for tessellation structures. Journal of Computer and System
Sciences, 6, 448-464.
[7] Blanchard, F., Kurka, P., & Maass, A. (1997). Topological and measure theoretic
properties of one-dimensional cellular automata. Physica D, 103, 86-99.
[8] Blanchard, F., & Tisseur, P. (2000). Some properties of cellular automata with
equicontinuity points. Annales de l’Institut Henri Poincare (B) Probability and
Statistics, 36(5), 569-582.
[9] Boykett, T. (1994). Combinatorial construction of one-dimensional reversible ce-
llular automata. Contributions to General Algebra, 9, 81-90.
[10] Boyle Mike. (1993). Symbolic dynamics and matrices. Combinatorial and GraphT-
heoretical Problems in Linear Algebra, 50, 1-38.
[11] Boyle, M., & Maass, A. (2000). Expansive invertible onesided cellular automata.
Journal of the Mathematical Society of Japan, 52(4), 725-740.
[12] Cattaneo, G., & Margara, L. (1998). Topological definitions of chaos applied to ce-
llular automata dynamics. Mathematical Foundations of Computer Science, 1450,
816-824.
[13] Cattaneo, G., Formenti, E., Margara, L., & Mauri, G. (1999). On the dynamical
behavior of chaotic cellular automata. Theoretical Computer Science, 217, 31-51.
[14] Czeizler, E., & Kari, J. (2005). A tight linear bound on the neighborhood of inverse
cellular automata. In L. Caires, G. F. Italiano, L. Monteiro & M. Yung (Eds.),
Automata, Languages and Programming: Proceedings of the 32nd International
Colloquium (ICALP 2005) (pp. 410-420). Lecture Notes in Computer Science,
3580.
[15] Fredkin, E. (1991). Digital mechanics, an informational process based on reversible
universal cellular automata. In H. A. Gutowitz (Ed.), Cellular Automata, Theory
and Experiment (pp. 254-270). MIT/North-Holland.
[16] Gronewold, A., & Sonnenschein, M. (1998). Event-based modelling of ecological
systems with asynchronous cellular automata. Ecological Modelling, 108(1-3), 37-
52.
[17] Hedlund, G. A. (1969). Endomorphisms and automorphisms of the shift dynamical
system. Mathematical Systems Theory, 3, 320-375.
[18] Hillman, D. (1991). The structure of reversible one-dimensional cellular automata.
Physica D, 52, 277-292.
[19] Jen, E. (1989). Enumeration of preimages in cellular automata. Complex Systems,
3(5), 421-456.
[20] Kari, J. (1996). Representation of reversible cellular automata with block permu-
tations. Mathematical Systems Theory, 29, 47-61.
[21] Kari, J. (2005). Theory of Cellular Automata: A survey. Theoretical Computer
Science, 334, 3-33.
[22] Kari, J., & Lukkarila, V. (2009). Some undecidable dynamical properties for one-
dimensional reversible cellular automata. Algorithmic Bioprocesses, Natural Com-
puting Series, Part 9, 639-660.
[23] Kitchens, B. P. (1998). Symbolic dynamics: One-sided, two-sided and countable
Markov shifts. Springer-Verlag.
[24] Lind, D., & Marcus, B. (1995). An introduction to symbolic dynamics and coding.
Cambridge University Press.
[25] Lukkarila, V. (2010). Sensitivity and topological mixing are undecidable for re-
versible one-dimensional cellular automata. Journal of Cellular Automata, 5(3),
241-272.
31
[26] McIntosh, H. V. (2009). One Dimensional Cellular Automata. Luniver Press.
[27] Moraal, H. (2000). Graph-theoretical characterization of invertible cellular auto-
mata. Physica D, 141, 1-18.
[28] Moore, E. F. (1970). Machine models of self-reproduction. In A. W. Burks (Ed.),
Essays on Cellular Automata (pp. 187-203). University of Illinois Press.
[29] Morita, K. (1992). Computation-universality of one-dimensional one-way reversi-
ble cellular automata. Information Processing Letters, 42(6), 325-329.
[30] Morita, K. (1995). Reversible simulation of one-dimensional irreversible cellular
automata. Theoretical Computer Science, 148(1), 157-163.
[31] Myhill, J. (1963). The converse of Moore’s Garden-of-Eden Theorem. Proceedings
of the American Mathematical Society, 14, 685-686.
[32] Nasu, M. (1978). Local maps inducing surjective global maps of one dimensional
tesellation automata. Mathematical Systems Theory, 11, 327-351.
[33] Nasu, M. (1979). Indecomposable local maps of tessellation automata. Mathema-
tical Systems Theory, 13, 81-93.
[34] Nasu, M. (1980). An interconnection of local maps inducing onto global maps.
Discrete Applied Mathematics, 2, 125-150.
[35] Nasu, M. (1995). Textile systems for endomorphisms and automorphisms of the
shift. Memoirs of the American Mathematical Society, 546, American Mathema-
tical Society.
[36] Richardson, D. (1972). Tessellations with local transformations. Journal of Com-
puter and System Sciences, 6, 373-388.
[37] Schaller, M., & Svozil, K. (2009). Scale-invariant cellular automata and self-similar
Petri nets. The European Physical Journal B, 69(2), 297-311.
[38] Seck-Tuoh-Mora, J. C., González-Hernández, M., & Pérez-Lechuga, G. (2005).
An algorithm for analyzing the transitive behavior of reversible one-dimensional
cellular automata with both Welch indices different. International Journal of Un-
conventional Computing, 1(2), 101-121.
[39] Seck-Tuoh-Mora, J. C., Chapa-Vergara, S. V., Martı́nez, G. J., & Mcintosh, H. V.
(2005). Procedures for calculating reversible one-dimensional cellular automata.
Physica D, 202, 134-141.
[40] Seck-Tuoh-Mora, J. C., Martı́nez, G. J., & Mcintosh, H. V. (2006). The inverse
behavior of a reversible one-dimensional cellular automaton obtained by a single
Welch diagram. Journal of Cellular Automata, 1(1), 25-39.
[41] Seck-Tuoh-Mora, J. C., González-Hernández, M., & Chapa-Vergara, S. V. (2008).
Pair diagram and cyclic properties characterizing the inverse of reversible auto-
mata. Journal of Cellular Automata, 3(3), 205-218.
[42] Seck-Tuoh-Mora, J. C., González-Hernández, M., Martı́nez, G. J., Chapa-Vergara,
S. V., & Mcintosh, H. V. (2005). Unconventional invertible behaviors in reversi-
ble one-dimensional cellular automata. International Journal of Bifurcation and
Chaos, 18(12), 3625-3632.
[43] Seck-Tuoh-Mora, J. C., González-Hernández, M., Mcintosh, H. V., & Chapa-
Vergara, S. V. (2009). Construction of reversible cellular automata by amalga-
mations and permutations of states. Journal of Cellular Automata 4(4), 311-322.
[44] Shen, H. C., Chau, H. L., & Wong, K. K. (1996). An extended cellular automaton
model for flexible manufacturing systems. The International Journal of Advanced
Manufacturing Technology, 11(4), 258-266.
[45] Sutner, K. (1999). Linear cellular automata and de Bruijn automata. In M. De-
lorme & J. Mazayer (Eds.), Cellular automata: A parallel Model (pp. 303-320).
Kluwer Academic Publishers.
32
[46] Sutner, K. (1999). The size of power automata. Theoretical Computer Science,
295(1-3), 371-386.
[47] Toffoli, T., & Margolus, N. (1987). Cellular automata Machines: A New Environ-
ment For Modeling. MIT Press.
[48] Voorhees, B. H. (1996). Computational analysis of one-dimensional cellular auto-
mata. World Scientific.
[49] Williams, R. F. (1973). Classification of subshifts of finite type. Annals of Mat-
hematics, 98(2), 120-153. With errata ibid., (1974), 99, 380-381.
[50] Wolfram, S. (2002). A New Kind of Science. Wolfram Media.
Introducción a la computación cuántica:
definiciones, tendencias y caminatas cuánticas
como caso de estudio
Salvador Elı́as Venegas Andraca
Grupo de Procesamiento Cuántico de la Información
Tecnológico de Monterrey Campus Estado de México
[email protected],
[email protected] Resumen La computación cuántica, rama multidisciplinaria de la cien-
cia que nace de una combinación ecléctica de la ciencia computacional
y la mecánica cuántica, tiene por objetivo utilizar las teorı́as de las que
nace para incrementar sustancialmente la capacidad de los ordenadores
para procesar información y resolver problemas. El cómputo cuántico no
sólo adopta modelos matemáticos para la creación de algoritmos, tam-
bién usa las propiedades de la materia con la que se procesa información.
Este artı́culo presenta una introducción concisa a la computación cuánti-
ca mediante tres elementos: breve introducción a la historia de las ideas
en eta área, presentación rigurosa de algunas ideas fundamentales del
cómputo cuántico y un caso de estudio: caminatas cuánticas.
1. Historia de las ideas en computación cuántica
La ciencia computacional es una disciplina que ha permeado y transformado
todos los aspectos de la vida moderna. Por este motivo y por la necesidad de
tener computadoras más poderosas, en esta rama del conocimiento se hace in-
vestigación de frontera en el diseño de nuevos modelos teóricos de computación,
el desarrollo de nuevos algoritmos para reducción de complejidad computacional
y la creación de nuevas arquitecturas, entre muchos otros temas.
En su forma tradicional, la teorı́a de la computación tiene una propiedad que
es virtud y, posiblemente, también defecto: es una estructura construida exclu-
sivamente sobre la base de la matemática. Dicho de otra manera, las teorı́as de
autómatas, de la computabilidad y de la complejidad no toman en cuenta las
propiedades fı́sicas de los dispositivos sobre los cuales, al final de cuentas, se eje-
cutan los algoritmos (matizando, es posible encontrar textos en los que se toque
tangencialmente este tema, más como un guiño hacia la ingenierı́a electrónica
que como componente sustancial de un curso en computación teórica).
La caracterı́stica enunciada en el párrafo anterior es una virtud por el rigor
que define al pensamiento matemático , el cual es, en muy buena medida, res-
ponsable del descomunal éxito de la computación. Sin embargo, no tomar en
cuenta las propiedades fı́sicas de los sistemas sobre los que se ejecuta un algorit-
mo podrı́a convertirse en un daño autoinfligido, debido a que dichas propiedades
34
fı́sicas podrı́an ser empleadas en la formulación de algoritmos más eficientes.
Pongo un ejemplo para provocar la discusión: la simulación del plegado de pro-
teı́nas es un problema NP-duro [27] mas el cuerpo humano es capaz de plegar
proteı́nas en milisegundos. ¿Cómo explicar esta diferencia abismal en tiempo de
ejecución? Si nos atreviésemos a mirar al cuerpo humano como una máquina de
procesamiento de datos, ¿podrı́amos aprender a construir mejores computado-
ras? ¿Encontrarı́amos propiedades fı́sico-quı́micas, minimalistas o emergentes
[53], necesarias para aumentar la velocidad de procesamiento, propiedades que
no tenemos en la máquina universal de Turing?
Lo anterior invita a preguntarnos si tiene sentido replantear la relación entre
la teorı́a de la computación y otras disciplinas pues, posiblemente, la inclusión
de paradigmas nuevos permita encontrar nuevas respuestas a problemas añejos
y abiertos. Para apalancar la pertinencia de esta propuesta, observemos que
la llegada de la computación a todas las ramas de la ciencia y la ingenierı́a,
ası́ como el empleo de ideas provenientes de la fı́sica, la quı́mica y la biologı́a
para la creación de nuevas computadoras y algoritmos, ha coadyuvado en la
construcción de puentes interdisciplinarios, logrando con esto la fertilización de
la ciencia computacional con nuevas ideas y aplicaciones (ver, por ejemplo, las
ideas sobre modelos emergentes de computación publicados en [56]).
Como resultado de la polinización referida en el párrafo anterior, una de las
fronteras de la investigación en ciencia computacional consiste en (re)construir
las nociones de información y computación sobre principios emanados de la fı́sica.
Entre las ramas de la fı́sica que se han empleado en este propósito, la mecánica
cuántica ocupa un lugar de privilegio.
La mecánica cuántica es una teorı́a sobre el comportamiento de la masa y
la luz, en particular a escala atómica y subatómica [26, 14]. La historia de la
mecánica cuántica (1900 - circa 1930) incluye un conjunto de resultados expe-
rimentales que pusieron en tela de juicio las ideas que sobre la Naturaleza se
tuvieron hasta el principio del siglo XX [22, 32, 64]. Gracias al trabajo de va-
rias generaciones de cientı́ficos, la mecánica cuántica es hoy una teorı́a cientı́fica
robusta, utilizada diariamente en la labor teórica y experimental.
Computación cuántica es el nombre del multidisciplinario campo de la ciencia
que reformula la teorı́a de la computación y construye nuevo hardware emplean-
do la mecánica cuántica. El propósito de la Computación Cuántica es utilizar
las teorı́as de las que nace para incrementar sustancialmente la capacidad de los
ordenadores para procesar información y resolver problemas. Esta nueva capaci-
dad se traduce en aumentar la rapidez con la que se ejecuta un algoritmo o bien
en añadir elementos de seguridad a transmisiones de datos. El cómputo cuántico
no sólo adopta modelos matemáticos para la creación de algoritmos, también
usa las propiedades de la materia con la que se procesa información.
El estudio formal de la computación cuántica comenzó con las preguntas que
Richard Feynman planteó sobre dos temas: 1) la posibilidad de simular sistemas
cuánticos, y 2) las leyes de la fı́sica que caracterizan al proceso de calcular [24, 25].
Tomando como punto de partida el trabajo de Feynman, me permito dividir la
historia de la computación cuántica en dos etapas:
35
1. La primera consiste en el empleo de la estructura matemática de la mecánica
cuántica para la creación de nuevos algoritmos, con el propósito de encon-
trar nuevas y/o más eficientes soluciones a problemas nacidos en la ciencia
computacional. Entre los descubrimientos teóricos y conjeturas promisorias
de esta época se encuentran: la definición formal de la estructura de una
computadora cuántica [17], la definición de las propiedades que debe obser-
var una computadora cuántica de propósito general [20] el algoritmo de Shor
[69] (capaz de factorizar números enteros muy largos en tiempo polinomial
utilizando una computadora cuántica), el algoritmo de Grover [29] (capaz de
encontrar elementos en conjuntos desordenados de forma más eficiente que
cualquier algoritmo posible ejecutado en computadoras convencionales) y el
algoritmo de Childs et al [12], que permite cruzar un grafo creado a partir
de árboles balanceados en tiempo probabilı́stico-polinomial .
Más aún, en este periodo se construyó una teorı́a y práctica de la criptografı́a
usando las propiedades de la fı́sica cuántica [7] que ha dado lugar a la creación
de tecnologı́a cuántica robusta, lista para ser comercializada (http://www.
idquantique.com/).
Como transición entre esta primera parte y la historia reciente de la compu-
tación cuántica, encontramos el deseo de usar el conocimiento ya generado
en áreas de aplicación distintas de la matemática pura y de lo que en inglés se
llama theoretical computer science . Ejemplos de estas aplicaciones se encuen-
tran, por ejemplo, en la Inteligencia Artificial, el Reconocimiento de Patrones
[5, 70, 71, 72, 18, 76, 75, 31, 47, 48, 8] y la Bioinformática [80, 78, 33, 15].
2. La segunda y más reciente parte de la historia de la computación cuánti-
ca, además de continuar en la búsqueda y descrubrimiento de nuevos y más
eficientes algoritmos provenientes de diversas áreas de la ciencia computacio-
nal, comprende el incremento de actividades cientı́ficas en dos áreas:
a) Simulación de procesos naturales en computadoras cuánticas. Los resulta-
dos en esta área incluyen la modelación del transporte de energı́a en procesos
fotosintéticos (e.g. [54, 34, 10]), modelación de procesos biológicos varios (e.g.
[63, 3, 28, 45]) y de diversos sistemas cuánticos (e.g. [57, 38]).
b) Simulación de algoritmos cuánticos en plataformas computacionales clási-
cas (tanto stand-alone como distribuidas). La simulación de algoritmos cuánti-
cos empleando plataformas clásicas stand-alone y masivas/distribuidas (e.g.
supercómputo, grids, nubes, GPUs) es crucial, a efecto de desarrollar nuestra
intuición respecto del comportamiento de los dispositivos fı́sicos empleados
en la construcción de sistemas de procesamiento de datos basados en la
mecánica cuántica.
Los primeros trabajos en esta área, presentados por Ömer en [61], Bettelli et
al en [6], Viamontes et al en [77] y Bañuls et al en [4] entre otros, introduje-
ron la idea de implementar simuladores de algoritmos cuánticos combinando
lenguajes computacionales clásicos (e.g. C++) con la estructura matemáti-
ca de la mecánica cuántica. Como siguientes pasos, Nyman propuso emplear
lenguajes simbólicos para computadoras clásicas a efecto de simular algo-
36
ritmos cuánticos [60], en tanto que Ömer presentó el uso de de estructuras
semánticas abstractas para modelar algoritmos cuánticos [62] y Altenkirch et
al construyeron un lenguaje de simulación de algoritmos cuánticos basado en
programación funcional [1]. A la par de los esfuerzos ya reseñados, la comu-
nidad cientı́fica ha desarrollado diversos paquetes de simulación en diferentes
arquitecturas y plataformas (el repositorio http://www.quantiki.org/ tie-
ne una lista bastante completa de paquetes disponibles). Recientemente, la
facilidad de acceso a sistemas distribuidos masivos como grids, nubes y GPUs
ha llamado la atención de grupos de investigación interesados en explotar
de manera óptima los vastos recursos computacionales paralelos hoy dispo-
nibles; algunos resultados en esta área han sido elaborados por De Raedt et
al [65], Caraiman et al [9] y Dı́az-Pier et al [21], entre otros.
Si el lector está interesado en obtener un panorama más detallado de las
ideas fundamentales y avances más importantes en computación cuántico, las
siguientes fuentes serán de utilidad: [59, 30, 7, 41, 35, 51, 46, 13].
El resto de este artı́culo se compone de la siguiente manera: en la sección
2 presento una introducción concisa a la estructura matemática de la mecánica
cuántica, a efecto de tener los elementos necesarios para revisar el caso de estudio
que presento en la sección 3: caminatas cuánticas.
2. Introducción concisa a la computación cuántica
En esta sección presentamos las definiciones y estructuras matemáticas fun-
damentales de la mecánica cuántica, listas para ser empleadas en la elaboración
de algoritmos cuánticos. Comenzamos estas lı́neas con algunos preliminares ma-
temáticos esenciales para el resto de este artı́culo.
Definition 2.1. Espacio de Hilbert (versión computación cuántica).
- Un espacio de Hilbert H es cualquier espacio vectorial completo con producto
interno.
- Dos espacios de Hilbert H1 , H2 son isomórficos si los espacios vectoriales
asociados son isomórficos a su vez y dicho isomorfismo preserva el producto
interno.
- En particular, cuando solamente se trata con espacios vectoriales complejos
de dimensión finita, un espacio de Hilbert se define como un espacio vectorial
con producto interno (el requerimiento de completitud es eliminado). Este es el
tipo de espacios de Hilbert con los que generalmente se trabaja en computación
cuántica.
Observación. De acuerdo a lo establecido en la Def. (2.1), el espacio de
Hilbert con el que trabajaremos en computación cuántica es Cn (C), donde n es
generalmente un múltiplo de 2.
Definition 2.2. Operador lineal. Sean V y W espacios vectoriales . Un ope-
rador lineal
T̂ : V → W
37
es una función que asigna a cada vector |ψ� ∈ V un único vector T̂ |ψ� ∈ W tal
que ∀ |ψ�, |φ� ∈ V y ∀ α ∈ F (el campo usado en la definición de V y W), se
cumple que:
T̂ (|ψ� + |φ�) = T̂ |ψ� + T̂ |φ�
T̂ (α|ψ�) = αT̂ |u�
Para cada |ψ� ∈ V, T̂ |ψ� se llama imagen de |ψ�. La imagen del dominio V,
T̂ (V), es el recorrido de T̂ .
Definition 2.3. Notación de Dirac. Sea H un espacio de Hilbert ⇒
- Un vector ψ ∈ H se denota con el sı́mbolo |ψ� y recibe el nombre de ket.
- El funcional correspondiente f|ψ� recibe el nombre de bra y se denota con el
sı́mbolo �ψ|.
- �·| puede ser visto como una función (operador) que mapea un estado arbitrario
|ψ� en el funcional �ψ| tal que f|ψ� (|φ�) = (|ψ�, |φ�) = �ψ|φ�.
- Luego, la notación �·|·� será utilizada, en el resto de este artı́culo, para referirse
al producto interno de dos vectores en un espacio de Hilbert. Más aún, dicha
notación es un standard en la formulación y escritura de la mecánica cuántica.
- Por último, definimos |ψ�† ≡ �ψ|.
Definition 2.4. Representación de kets y bras en vectores columna y
renglón. Sea H un espacio de Hilbert, dimH = n y B una base de H ⇒
- Cualquier |ψ� ∈ H se puede representar, usando la base B, como un vec-
tor columna con n componentes, i.e. |ψ� = (ψ1 , ψ2 , . . . , ψn )t , donde ψi ∈ C,
i ∈ {1, 2, . . . , n}.
-Más aún, el bra �ψ| ∈ H∗ se puede representar como un vector renglón también
de n componentes, i.e. �ψ| = (ψ1∗ , ψ2∗ , . . . , ψn∗ ), donde los ψ ∗ son los conjugados
de ψi , i ∈ {1, 2, . . . , n}
- En consecuencia, si deseamos calcular el producto interno �ψ|φ�, donde |ψ�, |φ� ∈
H, y para ello queremos usar las representaciones �ψ| = (ψ1∗ , ψ2∗ , . . . , ψn∗ ) y
|φ� = (φ1 , φ2 , . . . , φn )t obtenidas mediante el uso de una base B de H ⇒
n
�
�ψ|φ� = (ψ1∗ φ1 + ψ2∗ φ2 + . . . + ψn∗ φn )1/2 = ( ψi∗ φi )1/2
i=1
Suponga que  : V → V es un operador lineal. Por una parte, sabemos que
∀ |ψ� ∈ V ⇒ Â|ψ� ∈ V y que, para cada ket |ψ� en V, existe un único bra �ψ| en
el espacio dual V∗ . Por extensión, si Â|ψ� = |ψ � � es un elemento de V entonces
el bra �ψ � | es un elemento de V∗ .
Dados estos elementos, procedemos a definir a † , el operador adjunto de Â,
como el operador capaz de generar al bra �ψ � | a partir del bra �ψ|, esto es,
Â|ψ � � = |ψ � � ⇔ �ψ � | = �ψ|†
Ahora bien, suponga que  es un operador lineal y A una de sus repre-
sentaciones matriciales. Entonces, la representación matricial de † , basada en
la matriz A, es la matriz (A∗ )t , esto es, la matriz que representa a † es la
transpuesta de la matriz conjugada de A.
38
Definition 2.5. Operador hermitiano. Sea H un espacio de Hilbert de di-
mensión finita y  : H → H un operador lineal. Si  = † entonces  es un
operador hermitiano. La definición se extiende de forma natural a cualquier
representación matricial de Â.
Definition 2.6. Operador unitario. Sea H un espacio de Hilbert y Û : H →
H un operador lineal. Û es un operador unitario si Û Û † = I, ˆ donde Iˆ es el
operador identidad. Como en el caso de los operadores hermitianos, la definición
de matrices unitarias es una extensión natural de la definición de un operador
unitario.
Los operadores unitarios son muy importantes en mecánica cuántica porque
preservan el valor del producto interno: sean |α� = Û |a� y |β� = Û |b� ⇒ �α|β� =
ˆ = �a|b�.
�a|Û † |Û |b� = �a|I|b�
El operador de Hadamard es un operador lineal ampliamente usado en
computación cuántica:
1
Ĥ = √ (|0��0| + |0��1| + |1��0| − |1��1|) (1)
2
� �
1 1 1
H=√ (2)
2 1 −1
Los conceptos matemáticos revisados hasta el momento serán utilizados pa-
ra el análisis de sistemas cuánticos individuales. En este apartado presentamos
al lector un formalismo matemático usado para representar sistemas cuánticos
multipartitas .
Definition 2.7. Producto tensorial. Sean V(F) y W(F) espacios vectoriales
de dimension m y n respectivamente. Definimos a X como el producto tensorial
de V y W, i.e. X = V ⊗ W.
- Los elementos de X son combinaciones lineales de vectores |a� ⊗ |b�, donde
|a� ∈ V and |b� ∈ W.
- En particular, si {|i�} y {|j�} son bases ortonormales de V y W entonces
{|i� ⊗ |j�} es una base 1 para X.
Sean ahora Â, B̂ operadores lineales en V y W respectivamente ⇒ ∀ |a�1 , |a�2 ∈
V, |b�1 , |b�2 ∈ W, α ∈ F se cumple que
1) α(|a�1 ⊗ |b�1 ) = (α|a�1 ) ⊗ |b�1 = |a�1 ⊗ (α|b�1 )
2) (|a�1 + |a�2 ) ⊗ |b�1 ) = |a�1 ⊗ |b�1 + |a�2 ⊗ |b�1
3) |a�1 ⊗ (|b�1 + |b�2 ) = |a�1 ⊗ |b�1 + |a�1 ⊗ |b�2
1
Un ejemplo concreto: sea {|0�, |1�} una base ortonormal de un espacio de Hilbert
bidimensional H2 . Entonces, una base para H4 = H2 ⊗H2 es {|0�⊗|0�, |0�⊗|1�, |1�⊗
|0�, |1� ⊗ |1�}.
39
4) Â ⊗ B̂(|a�1 ⊗ |b�1 ) = Â|a�1 ⊗ B̂|b�1 � �
5) Sean |a�i ∈ V, |b�i ∈ W y αi ∈ F ⇒ Â ⊗ B̂( i αi |a�i ⊗ |b�i ) = i αi Â|a�i ⊗
B̂|b�i
El producto tensorial |a� ⊗ |b�también se puede escribir |ab� o |a, b�. Por otra
parte, el producto tensorial de |a� consigo mismo n veces |a� ⊗ |a� ⊗ . . . ⊗ |a� se
puede escribir como |a�⊗n .
El producto de Kronecker es una representación matricial del producto tenso-
rial. Sean A = (aij ), B = (bij ) dos matrices de orden m×n y p×q respectivament.
Entonces A ⊗ B se calcula de la siguiente manera:
A11 B A12 B . . . A1n B
A21 B A22 B . . . A2n B
A⊗B = . .. .. .. .
. . . . .
Am1 B Am2 B . . . Amn B
A ⊗ B es de orden mp × nq.
En el resto de esta sección nos concentraremos en el estudio de los postulados
de la mecánica cuántica, siguiendo la formulación que de los mismos se hace en
[59]. Además, revisaremos varios resultados presentados en las obras [7], [14],
[19], [26], [30] y [59]. Entre muchas obras y artı́culos, se recomienda al lector
interesado en profundizar en los temas aquı́ expuestos que consulte [66, 46].
2.1. Espacio de estados
Este primer postulado consiste en la descripción matemática de sistemas fı́si-
cos aislados, esto es, aquellos que no están en contacto con ningún otro sistema
fı́sico.
Postulado 1. A cada sistema fı́sico aislado asociaremos un espacio de Hilbert
H, el cual recibe el nombre de espacio de estados.
La descripción total y absoluta de las caracterı́sticas que nos interesan del
sistema fı́sico en cuestión se encuentra contenida en su vector de estado, el cual
es un vector unitario |ψ� ∈ H. La dimensión del espacio de estados H depende
del número de grados de libertad de la propiedad fı́sica en consideración.
Este primer postulado tiene una implicación muy importante: una combina-
ción lineal de vectores de estado es también un vector de estado [14]. Este es
el principio de superposición y es una caracterı́stica fundamental de la des-
cripción cuántica de sistemas fı́sicos. En particular, observe que cualquier vector
de estado |ψ� se puede expresar como una� superposición de vectores de estado
pertenecientes a una base de H, i.e. |ψ� = i ci |ei �, ci ∈ C.
El qubit En la teorı́a de la computación clásica la unidad fundamental de alma-
cenamiento y manipulación de información es el bit, cuya estructura matemática
es bastante simple: basta con definir dos valores tradicionalmente etiquetados
40
como {0, 1} y con relacionar dichas etiquetas con dos resultados posibles genera-
dos a través de una medición clásica. Un ejemplo de este procedimiento es tomar
un transistor TTL como el sistema fı́sico a medir y hacer la siguiente asignación:
- Si la diferencia de potencial entre colector y emisor se encuentra en el conjunto
[0, 0,5]V entonces hemos leı́do un ’0’ lógico.
- Si la diferencia de potencial entre colector y emisor se encuentra en el conjunto
[4,5, 5]V entonces hemos leı́do un ’1’ lógico.
Ası́ pues, es evidente que la descripción matemática de un bit clásico es un
elemento de un espacio escalar.
En computación cuántica, la unidad básica de almacenamiento, manipula-
ción y medición de información es el qubit. Un qubit es un sistema fı́sico cuyo
comportamiento se describe a través de las leyes de la mecánica cuántica y que
se puede representar matemáticamente como un vector unitario en un espacio
de Hilbert bidimensional, esto es
|ψ� = α|p� + β|q� (3)
donde α, β ∈ C, |α|2 + |β|2 = 1 y {|p�, |q�} es una base cualquiera de H2 . Es
común que la base de elección sea {|0�, |1�}, la llamada base computacional o
canónica de H2 .
Como se puede observar de la Ec. (3), un qubit |ψ� es una superposición de
los estados base |p� y |q�, la cual se puede preparar en un número infinito de
formas sólo con modificar los valores de los coeficientes α, β ∈ C, siempre sujetos
a la restricción de normalización.
La Ec. (3) también se puede escribir de la siguiente manera:
θ θ
|ψ� = eiγ (cos |0� + eiϕ sin |1�) (4)
2 2
donde γ, θ, ϕ ∈ R. Puesto que eiγ no tiene efectos experimentales [59], podemos
prescindir de este factor. En consecuencia,
θ θ
|ψ� = cos |0� + eiϕ sin |1� (5)
2 2
Los números θ y ϕ definen un punto en la esfera unitaria conocida como la
esfera de Bloch (Fig. (1)).
2.2. Evolución de un sistema cuántico aislado
En este apartado estudiaremos la evolución de un sistema cuántico, esto es, el
formalismo matemático que describe el comportamiento temporal de un sistema
fı́sico aislado, de acuerdo a las leyes de la mecánica cuántica.
Postulado 2 (versión operador unitario).
Sea |Ψ � el vector de estado de un sistema cuántico aislado. La evolución de
|Ψ � se describe mediante un operador unitario Û (Def. (2.6)), también conocido
como operador de evolución . Luego, el estado del sistema en el tiempo t2 dado
el vector de estado del mismo sistema en el tiempo t1 es:
41
!0 !
z
!ψ!
y
"
x
!1 !
Figura 1. Un qubit como elemento de la esfera de Bloch |ψ� = cos θ2 |0� + eiφ sin θ2 |1�.
|Ψ (t2 )� = Û |Ψ (t1 )�. (6)
El postulado 2 sólo describe las caracterı́sticas matemáticas que debe cumplir
un operador de evolución cualquiera. Las propiedades particulares que debe tener
Û a fin de reflejar la naturaleza de la evolución de cierto sistema fı́sico dependen
de este mismo sistema.
El postulado 2 también se puede escribir en una forma más tradicional, usan-
do la famosa ecuación de Schrödinger .
Postulado 2 (versión operador hermitiano). La evolución de un sistema
cuántico aislado está dada por la ecuación de Schrödinger:
d|ψ�
i� = Ĥ|ψ� (7)
dt
donde � es la constante de Planck y Ĥ es un operador hermitiano (Eq. (2.5))
conocido como el hamiltoniano del sistema.
Cada sistema cuántico tiene un hamiltoniano asociado, el cual debe ser calcu-
lado. En general, la construcción de hamiltonianos es una tarea difı́cil (en cierto
sentido, tal y como es problemático construir algoritmos para resolver problemas
difı́ciles).
Nota aclaratoria. Tenga en mente que, a pesar de lo similar de la notación, Ĥ
y Ĥ representan dos cosas distintas: el primero es el hamiltoniano al que se hace
referencia en el postulado 2, en tanto que el último es el operador hadamard.
42
Veamos el efecto del operador Hadamard (Eq. (1)), usado como operador de
evolución, sobre un qubit.
1 1
Ĥ|0� = √ [|0��0| + |0��1| + |1��0| − |1��1|]|0� = √ (|0� + |1�)
2 2
1 1
Ĥ|1� = √ [|0��0| + |0��1| + |1��0| − |1��1|]|1� = √ (|0� − |1�)
2 2
2.3. Medición de un sistema cuántico
En la teorı́a de la mecánica cuántica, la medición de propiedades de sistemas
fı́sicos es un proceso alejado de la intuición debido a las siguientes razones:
1. La medición en mecánica cuántica es intrı́nsicamente probabilı́stica. Esto sig-
nifica que, sin importar el detalle y control que tengamos sobre un experimento,
la generación de los resultados obtenidos en la medición de una propiedad fı́sica
obedece una función de distribución (o función de densidad, según sea el caso).
2. Además, al momento de llevar a cabo una medición, el estado del sistema fı́si-
co en cuestión se altera, de forma inevitable, debido a la interacción que dicho
sistema tiene con el aparato de medición. Esto significa que, en general, el estado
cuántico que describe al sistema antes de la medición es distinto del estado que
describe a este mismo sistema después de ser medido.
Las siguientes lı́neas contienen la versión del postulado de medición más
frecuentemente usada en computación cuántica.
Postulado 3. Medición proyectiva. Una medición proyectiva es descrita
por un observable M̂ , el cual es un operador hermitiano definido en el espacio
de estados que se desea observar. El observable M̂ se puede escribir, gracias al
teorema de la descomposición espectral, de la siguiente manera:
�
M̂ = ri P̂ri
i
donde P̂ri es el proyector al eigenespacio E(ri ) definido por el eigenvalor ri .
Los resultados posibles de la medición corresponden a los eigenvalores ri del
observable.
Este postulado provee de medios para cuantificar la función de distribución
que determina las frecuencias relativas correspondientes a las funciones de dis-
tribución de resultados.
Sea |ψ� el vector de estado de un sistema cuántico inmediatamente antes
de la medición. Entonces, la probabilidad de obtener el resultado ri se calcula
usando la siguiente expresión:
p(ri ) = �ψ|P̂ri |ψ� (8)
Y el estado de post-medición asociado al resultado ri es:
43
P̂r |ψ�
|ψ�pm = � i (9)
p(ri )
Veamos un ejemplo. Suponga que tiene en su poder un fotón polarizado con
orientaciones de polarización vertical y horizontal. Simbolizamos a la polariza-
ción horizontal con el vector |0� y a la polarización vertical con |1�. Luego, la
polarización inicial de nuestro fotón se puede describir con la expresión
|ψ� = α|0� + β|1�
donde α, β ∈ C, |α|2 + |β|2 = 1 y {|0�, |1�} conforman la base computacional de
H2 .
Ahora construyamos dos operadores de proyección P̂a0 = |0��0| y P̂a1 =
|1��1|, los cuales corresponden a los resultados a0 , a1 . Entonces, el observable
utilizado en este experimento es
M̂ = a0 |0��0| + a1 |1��1|
Con esta información y de acuerdo al postulado 3, podemos decir lo siguiente:
1) Hay sólo dos resultados posibles en la medición de la polarización de nues-
tro fotón: a0 y a1 .
2) La probabilidad de obtener el resultado a0 es, de acuerdo a la Ec. (8):
p(a0 ) = �ψ|P̂a0 |ψ� = (�1|β ∗ + �0|α∗ )P̂a0 (α|0� + β|1�) = |α|2
3) Si la medición efectivamente arrojase el resultado a0 ⇒ el estado de post-
medición serı́a, de acuerdo a la Ec. (9):
P̂ |ψ� |0��0|(α|0� + β|1�)
�a0 = � = |0�
p(a0 ) |α|2
4) De forma análoga, la probabilidad de obtener el resultado a1 es, de acuerdo
a la Ec. (8):
p(a1 ) = �ψ|P̂a1 |ψ� = (�1|β ∗ + �0|α∗ )P̂a1 (α|0� + β|1�) = |β|2
5) Si la medición efectivamente arrojase el resultado a1 ⇒ el estado de post-
medición serı́a dado por la Ec. (9), esto es:
P̂ |ψ� |1��1|(α|0� + β|1�)
�a1 = � = |1�
p(a1 ) |β|2
44
2.4. Sistemas cuánticos multipartitas
Terminamos esta sección con la descripción matemática de un sistema cuánti-
co multipartita , i.e. un sistema que está compuesto por varios sistemas cuánticos
(e.g. un sistema cuántico de cinco fotones).
Postulado 4. El espacio de estados de un sistema cuántico compuesto es el
producto tensorial de los espacios de estados constituyentes.
- Si tenemos n sisteams cuánticos expresados como vectores de estado |ψ�1 , |ψ�2 , . . . , |ψ�n
entonces el estado del sistema total está dado por |ψ�T = |ψ�1 ⊗|ψ�2 ⊗. . .⊗|ψ�n .
Como un ejemplo de las operaciones que haremos en la siguiente sección,
muestro los detalles de aplicar un operador de evolución a un sistema cuántico
compuesto : sea Ĥ ⊗2 el producto tensorial del operador Hadamard (Eq. (1))
consigo mismo y sea |ψ� = |00�. Luego,
Ĥ ⊗2 |ψ� =
1
(|00��00| + |01��00| + |10��00| + |11��00| + |00��01| − |01��01| + |10��01| − |11��01|
2
+|00��10|+|01��10|−|10��10|−|11��10|+|00��11|−|01��11|−|10��11|+|11��11|)|00�
1
= (|00� + |01� + |10� + |11�) (10)
2
3. Caso de estudio: caminatas cuánticas
Un procedimiento que utiliza mecánica cuántica para hallar una solución
se llama algoritmo cuántico, en tanto que un algoritmo convencional (también
llamado clásico) es un procedimiento programado en una computadora como
las que usted y yo ocupamos a diario. Crear un algoritmo cuántico no es tarea
fácil, pues dicho algoritmo debe resolver el problema para el que fue diseñado
y, además, ser más rápido que cualquier algoritmo convencional pensado para
resolver el mismo problema. Entre las técnicas utilizadas para construir algo-
ritmos cuánticos están la Transformada Cuántica de Fourier y las Caminatas
Cuánticas. El objetivo principal de esta sección es presentar a usted los elemen-
tos fundamentales de las caminatas cuánticas y su empleo en el desarrollo de
algoritmos.
Comenzaremos nuestra exposición repasando de manera sucinta las tres com-
ponentes fundamentales de la teorı́a de la computación, además de un área de la
algorı́tmica esencial para nuestro análisis: los algoritmos estocásticos, esto es, los
procedimientos que emplean distribuciones de probabilidad en su ejecución. Es-
ta información servirá para presentar el concepto de caminata aleatoria y luego
extenderlo al mundo de la mecánica cuántica, y ası́ plantear los modelos discreto
y continuo de las caminatas cuánticas. La última parte de esta sección consiste
en la presentación de algunos algoritmos basados en caminatas cuánticas.
45
3.1. Modelos computacionales determinı́sticos y no-determinı́sticos
La teorı́a de la computación se divide en tres áreas de estudio, a saber:
Teorı́a de autómatas , cuyo objetivo es la creación de modelos matemáticos
de computadoras. Un ejemplo de estos modelos es la máquina de Turing.
Teorı́a de la computabilidad . Dado un problema P y el modelo matemático
M de una computadora, esta disciplina estudia si dicho problema P puede ser
resuelto, en principio, con el modelo M, siendo válido suponer que se cuenta
con una cantidad ilimitada de recursos (por ejemplo, tiempo o memoria).
Teorı́a de la complejidad . Suponga que tenemos un modelo computacional M
y un problema P que se puede resolver con un algoritmo A implantado en el
modelo M. La pregunta que debe responder esta rama de la computación es:
¿cuántos recursos hay que invertir para ejecutar A en M? En otras palabras,
la teorı́a de la complejidad cuantifica el costo (tiempo o energı́a, por ejemplo)
de ejecutar un algoritmo.
Existen varias formas de ejecutar algoritmos en modelos computacionales.
Uno de estos métodos, llamado cmputación determinı́stico, consiste en crear al-
goritmos que obedezcan la siguiente regla: para cualquier paso si de un algoritmo
A, siempre es posible determinar, con toda certeza, el paso si+1 . En otras pala-
bras, un algoritmo determinı́stico tiene un comportamiento predecible y exacto
(visto desde las matemáticas, la relación entre un nodo y sus hojas es siempre
una función, pues sólo hay una hoja por nodo).
Otro método, llamado computación no-determinı́stico, consiste en obedecer
la siguiente regla: para un paso arbitrario si del algoritmo A, existen varios pasos
siguientes sji+1 , donde j ∈ {1, 2, . . . , m} es un ı́ndice que corre sobre el conjunto
de los m pasos que siguen a si . En este caso, el nodo tiene una relación no
funcional con sus hojas, pues en general hay más de una hoja por nodo.
Estos tipos de cómputo se pueden visualizar como árboles al estilo de la Fig.
(2), en la que el método determinı́stico se representa con un árbol con una sola
derivación, en tanto que los procedimientos no-determinı́sticos permiten que, de
un nodo dado, aparezcan varias ramificaciones. Cada ramificación representa un
proceso computacional que se ejecuta al mismo tiempo que todos los demás.
De los dos métodos presentados, el cómputo determinı́stico se ajusta perfec-
tamente a la noción de disponibilidad de recursos, en tanto que en este mismo
rubro, el cómputo no-determinı́stico se antoja irreal. Luego, ¿por qué es este
método un tema de estudio en la ciencia computacional? La respuesta es que
el cómputo no-determinı́stico no escatima la cantidad de recursos disponibles
pues su objetivo es averiguar si es posible, al menos en principio, ejecutar un
algoritmo dado, aunque ello implique suponer el uso de una cantidad infinita
de recursos. No es lo mismo no poder resolver un problema que sólo tener que
invertir muchos recursos en lograrlo.
Entre los diversos modelos computacionales sobresalen las máquinas de Tu-
ring, consideradas como el modelo computacional más poderoso creado a la fecha
por las siguientes razones:
46
Figura 2. Computación determinı́stico y no-determinı́stico
Cualquier problema resuelto por un modelo computacional distinto de la
máquina de Turing (como los autómatas finitos) puede ser también resuelto
por una máquina de Turing.
En consecuencia, cualquier problema resuelto con una computadora cons-
truida al dı́a de hoy también puede ser resuelto por una máquina de Turing.
Existen versiones determinı́stica y no-determinı́stica de las máquinas de Tu-
ring. Estas versiones son equivalentes en su capacidad para ejecutar algoritmos,
pero difieren en el tiempo que tardan en hacerlo:
Aquellos algoritmos que al ejecutarse en una máquina determinı́stica de
Turing efectúen una cantidad de pasos acotada superiormente por� una fun-
i
ción polinomial en el número de datos de entrada, i.e. f (n) = i αi n ,
donde n es el número de datos de entrada del algoritmo, reciben el nombre
de algoritmos P.
Los algoritmos que al ejecutarse en una máquina no-determinı́stica de
Turing consumen una cantidad de pasos acotada por� una función polinomial
g(n) en el número de datos de entrada, i.e. g(n) = k βk nk , donde n es el
número de datos de entrada del algoritmo, reciben el nombre de problemas
NP.
Por último, un algoritmo L es NP-completo si y sólo si L es NP y se cumple
que, para todo problema Li en NP, es posible transformar al algoritmo Li
en el algoritmo L usando solamente una cantidad polinomial de pasos.
47
Los algoritmos P son vistos con muy buenos ojos por la comunidad de cientı́fi-
cos computacionales, pues utilizan una cantidad aceptable de tiempo en su eje-
cución. Para comprender mejor este concepto, analicemos el caso contrario, el
de los algoritmos: NP
Dada la disparidad de recursos disponibles entre los modelos determinı́stico y
no-determinı́stico, la ejecución de un algoritmo NP en una máquina determinı́sti-
ca de Turing requiere una cantidad de recursos que crece exponencialmente (o
factorialmente) en el número de datos de entrada (la excepción a esta regla es
que se descubra que el problema asociado al algoritmo NP encuentra también
solución con un algoritmo P. En este caso, el problema deja de pertenecer a la
esfera de los NP y se vuelve un problema P). La explicación de este fenómeno
radica en el hecho de que, para un problema NP y un NP-completo, el espa-
cio de soluciones posibles es muy grande, y explorarlo exhaustivamente requiere
muchos recursos.
3.2. Algoritmos estocásticos
Se han propuesto diversos caminos para hacer del cómputo no-determinı́stico
algo más cercano a lo que es posible llevar a cabo en una computadora real. En
uno de ellos, la computadora escoge aleatoriamente (i.e. usando una distribución
de probabilidad) una de las ramas del árbol no-determinı́stico y la ejecuta. Esto
es, si el algoritmo está en el paso si , entonces el siguiente y único paso si+1 se
escoge (usando una distribución de probabilidad) del conjunto de pasos {sji+1 |j ∈
{1, 2, . . . , m}}. Este proceso se conoce con el nombre de cómputo probabilı́stico
y, aunque no es precisamente equivalente al cómputo no-determinı́stico, su gran
ventaja es que es posible implantarlo en una computadora convencional (el único
problema práctico es que no es posible generar números totalmente aleatorios
en una computadora convencional, mas los números pseudo-aleatorios son, en
general, suficientemente buenos para muchas aplicaciones).
Estamos ya en posibilidad de definir un concepto crucial: un algoritmo es-
tocástico es un algoritmo cuya sucesión de pasos (i.e. cuya evolución en el
tiempo) se produce usando una distribución de probabilidad. Dicho de otra for-
ma, un algoritmo estocástico es un procedimiento ejecutado en una máquina
capaz de hacer cómputo probabilı́stico.
Los algoritmos estocásticos juegan un papel central en el estudio de los pro-
blemas NP-completos, pues gracias a ellos es posible encontrar soluciones, para
dichos problemas, que consumen menos pasos que los que requerirı́a un algorit-
mo de fuerza bruta , i.e. un algoritmo que explorase, exhaustivamente, el espacio
completo de posibles soluciones.
Un ejemplo de los problemas beneficiados por la existencia de algoritmos
estocásticos es el 3-SAT, definido de la siguiente manera:
Problema 3-SAT. Sea S = {x1 , x2 , . . . , xn , x̄1 , x̄2 , . . . , x̄n } un conjunto de
variables booleanas E = {xi } y sus negaciones Ē = {x̄i }. Construyamos ahora
� �3 �
la proposición lógica P , definida por P = i [( j=1 aj )] = i Ci , donde aj ∈ S,
i.e. P es una conjunción de cláusulas Ci definida sobre el conjunto S, y donde
cada cláusula se forma con la disyunción de tres variables booleanas.
48
La proposición P es una instancia del problema 3SAT y satisfacer la instancia
P del 3SAT significa encontrar valores concretos para cada una de las variables
booleanas (esto es, una cadena binaria) que componen a P , de tal suerte que
al sustituir dichos valores obtengamos P = 1. Un ejemplo concreto del nivel de
dificultad que acompaña satissfacer una instancia 3SAT se da a continuación.
Sea E = {x1 , x2 , x3 , x4 , x5 , x6 } un conjunto de variables binarias y considere
la siguiente instancia P :
P = (x¯1 ∨ x¯4 ∨ x¯5 ) ∧ (x¯2 ∨ x¯3 ∨ x¯4 ) ∧ (x1 ∨ x2 ∨ x¯5 ) ∧ (x3 ∨ x4 ∨ x5 )∧
(x4 ∨ x5 ∨ x¯6 ) ∧ (x¯1 ∨ x¯3 ∨ x¯5 ) ∧ (x1 ∨ x¯2 ∨ x¯5 ) ∧ (x2 ∨ x¯3 ∨ x¯6 )∧
(x¯1 ∨ x¯2 ∨ x¯6 ) ∧ (x3 ∨ x¯5 ∨ x¯6 ) ∧ (x¯1 ∨ x¯2 ∨ x¯4 ) ∧ (x2 ∨ x3 ∨ x¯4 )∧
(x2 ∨ x5 ∨ x¯6 ) ∧ (x2 ∨ x¯3 ∨ x¯5 ) ∧ (x¯2 ∨ x¯3 ∨ x¯4 ) ∧ (x2 ∨ x3 ∨ x6 )∧
(x¯1 ∨ x¯2 ∨ x¯3 ) ∧ (x¯1 ∨ x¯4 ∨ x¯5 ) ∧ (x¯3 ∨ x¯4 ∨ x¯6 ) ∧ (x¯4 ∨ x¯5 ∨ x6 )∧
(x¯2 ∨ x3 ∨ x¯6 ) ∧ (x2 ∨ x5 ∨ x6 ) ∧ (x3 ∨ x5 ∨ x¯6 ) ∧ (x¯1 ∨ x3 ∨ x¯6 )∧
(x3 ∨ x¯5 ∨ x6 ) ∧ (x4 ∨ x5 ∨ x6 ) ∧ (x1 ∨ x2 ∨ x¯3 )
Este ejemplo sugiere que, aún en el caso de instancias creadas con un número
limitado de variables booleanas, satisfacerlas puede convertirse en una tarea
difı́cil (en este caso, P tiene una sola solución: x1 = 0, x2 = 1, x3 = 0, x4 =
1, x5 = 0, x6 = 0).
El mejor algoritmo conocido a la fecha para la solución de 3-SAT fue pro-
puesto por U. Schöning en 1999 [67], el cual se construyó empleando un proceso
estocástico (i.e. cuya evolución es función de una distribución de probabilidad)
conocido bajo el nombre de caminata aleatoria. En [36] se presentó una mejo-
ra de [67], pero la idea fundamental es la misma: usar una caminata aleatoria
para construir el algoritmo. Para estar en condiciones de presentar las ideas fun-
damentales de las caminatas cuánticas, permı́tame mostrar en detalle las ideas
fundamentales de una caminata aleatoria.
3.3. Caminatas Aleatorias
El modelo básico de las caminatas aleatorias es el movimiento de una partı́cu-
la (llamado caminante) sobre puntos discretos distribuidos en una lı́nea sin res-
tricciones. El sentido del movimiento del caminante (izquierda o derecha) depen-
de de un sistema bivaluado (como una moneda) cuyos valores, para cada paso,
dependen de la probabilidad.
Para ejemplificar jocosamente el concepto anterior, suponga que tenemos a
la rana Froggy y una moneda, como se muestra en la Fig. (3) Froggy se despla-
zará sobre una lı́nea y su movimiento dependerá del resultado de tirar volados
(Froggy es una rana obediente). Si el resultado del volado es ‘sol’ entonces Froggy
da un brinco a la derecha (por ejemplo, si la rana está en ‘0’ antes del volado,
entonces se mueve al sitio marcado con ‘1’) y si el resultado es ‘águila’ entonces
Froggy se mueve a la izquierda (del sitio ‘0’ al sitio ‘−1’). Después de muchos
volados (digamos, un millón), uno puede hacer varias preguntas interesantes, por
ejemplo: ¿cuál es la probabilidad de que Froggy esté en el lugar ‘100’ ?
49
Figura 3. Cada paso de la caminata aleatoria consiste en que Froggy se mueva
a la izquierda o derecha. El sentido de este movimiento depende del resultado
del volado.
La ecuación que nos permite calcular la probabilidad de encontrar a nuestra
rana en el lugar k, suponiendo que el movimiento comenzó en la posición 0 y
que Froggy se ha movido n veces (esto es, que se han tirado n volados) está dada
por la distribución binomial [Fig. (4)]
� �
n n 1 1
Pok = 1 p 2 (k+n) q 2 (n−k)
2 (k + n)
Dos propiedades importantes de la caminata aleatoria sobre una lı́nea son:
1) la varianza de la distribución binomial es proporcional al número de pasos
ejecutados, i.e. σ 2 = O(n); 2) la forma de la distribución binomial no depende
del punto de partida. Lo que sucede al cambiar el punto de partida (por ejemplo,
poner a Froggy en 10 en vez de 0), es que la gráfica se desplazará a la izquierda
o derecha, pero la forma será la misma. Esta invariancia de la forma de la
distribución respecto del punto de partida es una caracterı́stica fundamental
de las cadenas de Markov, de las cuales las caminatas aleatorias son un caso
especial.
Naturalmente, las caminatas aleatorias se pueden extender de varias maneras.
Por ejemplo, es posible definir caminatas sobre lı́neas con barreras absorbentes
o reflejantes, sobre grafos y, además, con movimientos hechos en tiempos infi-
nitesimales (t ≥ 0), en vez de tiempos discretos. Para el lector interesado en la
formulación de procesos estocásticos en grafos y su aplicación en algoritmos, se
recomienda consultar [50, 55, 79, 73] y demás fuentes citadas en el capı́tulo III
de [73].
El éxito de varios algoritmos estocásticos en la solución de problemas NP,
en particular algoritmos que emplean caminatas aleatorias, ha sido una impor-
tante fuente de inspiración para desarrollar nuevos modelos de caminatas, ahora
bajo las leyes de la mecánica cuántica. En la siguiente sección exploraremos las
definiciones y caracterı́sticas principales de las caminatas cuánticas.
50
0.25
0.2
Probability of finding walker at position n
0.15
0.1
0.05
0
ï100 ï80 ï60 ï40 ï20 0 20 40 60 80 100
Position
Figura 4. Distribución binomial
3.4. Caminatas Cuánticas
La existencia de caminatas aleatorias discretas (cadenas de Markov) y conti-
nuas (procesos de Markov) ha llevado también a sugerir dos tipos de caminatas
cuánticas: discretas y continuas.
Antes de entrar en materia, subrayo que, a pesar de su aplicación común,
existe una diferencia primera y fundamental entre las caminatas aleatorias y
las cuánticas: las caminatas aleatorias son entes matemáticos que se utilizan
para modelar fenómenos fı́sicos, en tanto que las caminatas cuánticas son repre-
sentaciones matemáticas de procesos fı́sicos. Este origen fı́sico de las caminatas
cuánticas permite pensar en ellas no sólo como herramientas para la construcción
de algoritmos, sino también como elementos de prueba para determinar si una
computadora tiene, en efecto, propiedades cuánticas. Más aún, se ha demostrado
ya que las caminatas cuánticas, tanto discretas como continuas, conforman un
modelo universal de computación cuántica [11, 49]
Caminatas cuánticas discretas En este modelo participan dos elementos:
el caminante y la moneda (la misma idea que con la caminata aleatoria). Am-
bos elementos son sistemas fı́sicos cuyo comportamiento se modela y cuantifica
mediante los principios y leyes de la mecánica cuántica [52, 58].
El modelo más sencillo de este tipo de caminata se ejecuta sobre un espacio
discreto unidimensional (esto es, una recta con nodos). La evolución de esta
caminata se lleva a cabo aplicando un operador de evolución consistente en dos
51
operaciones cuánticas (dos operadores unitarios): la primer operación hace que
la moneda entre en un estado cuántico que asemeja un volado, y la segunda
operación hace que los componentes cuánticos de la moneda interactúen con
el caminante, de tal suerte que la probabilidad de encontrar al caminante en
distintos puntos de la lı́nea sea una función del tiempo. La aplicación de las
dos operaciones cuánticas es equivalente a un paso algorı́tmico, una operación
elemental.
La ecuación que define una caminata cuántica discreta es
|ψ�n = (Û )n |ψ�o (11)
Figura 5. Distribución de probabilidad (posición vs probabilidad de encontrar al ca-
minante en dicha posición) generada con |ψ�0 = |0�moneda ⊗ |0�caminante . El opera-
dor de evolución de esta caminata cuántica es [[ √12 (|0��0| + |0��1| + |1��0| − |1��1|)] ⊗
� �
1̂]moneda [|0�moneda �0| ⊗ i |i + 1�caminante �i| + |1�moneda �1| ⊗ i |i − 1�caminante �i|]
Donde |ψ�o es el sı́mbolo que representa el estado inicial total de la moneda y
el caminante, Û n representa n aplicaciones del operador de evolución Û (i.e. de
las dos operaciones cuánticas: volado más desplazamiento) y |ψ�n es el sı́mbo-
lo que representa el estado de la caminata cuántica (moneda más caminante)
después de n pasos. Un ejemplo del operador Û es: Û = [[ √12 (|0��0| + |0��1| +
�
|1��0|
� − |1��1|)] ⊗ 1̂]moneda [|0�moneda �0| ⊗ i |i + 1�caminante �i| + |1�moneda �1| ⊗
i |i − 1�caminante �i|], donde:
52
Figura 6. Distribución de probabilidad (posición vs probabilidad de encontrar al ca-
minante en dicha posición) generada con |ψ�0 = √12 (|0�moneda +i|1�moneda )⊗|0�caminante .
El operador de evolución de esta caminata cuántica es el mismo que el de la Fig. (5)
a) [[ √12 (|0��0| + |0��1| + |1��0| − |1��1|)] ⊗ 1̂]moneda es el operador Hadamard
que se aplicará a la moneda cuántica acompañado del operador identidad (para
dejar intacto al caminante durante el volado), y
� �
b) [|0�moneda �0| ⊗ i |i + 1�caminante �i| + |1�moneda �1| ⊗ i |i − 1�caminante �i|]
es el operador de desplazamiento, cuyo funcionamiento es: para las componentes
de la moneda en superposición que están en |0� el caminante se moverá un paso
a la izquierda, en tanto que las componentes de la moneda en superposición que
están en |1� el caminante se moverá un paso a la derecha.
La ejecución de varias caminatas cuánticas discretas con estados iniciales
idénticos y operaciones cuánticas iguales permite generar distribuciones de pro-
babilidad como las mostradas en las Figs. (5) y (6). Estas gráficas ejemplifican
algunas propiedades importantes de las caminatas cuánticas, a saber:
Las caminatas cuánticas discretas tienen una varianza que crece proporcio-
2
nalmente al cuadrado del número de pasos, i.e. σcc (n) = O(n2 ) [52, 58, 39,
74, 44]. Este hecho es importante por dos motivos: 1) la varianza de una
caminata aleatoria es proporcional sólo al número de pasos ejecutados (i.e.
2 2
σcc (n) > σca (n) ), y 2) esta diferencia entre las varianzas clásica y cuántica
puede ser utilizada para aumentar la velocidad de ejecución de un algoritmo
53
basado en caminatas cuánticas, respecto del correspondiente algoritmo clási-
co diseñado con una caminata aleatoria. Al respecto, hemos de subrayar que
la varianza proporcional al cuadrado del número de pasos puede ser también
propiedad de sistemas clásicos (e.g. interferencia de campos electromagéti-
cos clásicos [37], [42]), and [43], de ahı́ la necesidad de profundizar en las
ventajas que el uso de sistemas cuánticos traerı́a, unı́vocamente, a la ciencia
computacional.
La forma de la distribución de probabilidad generada con una caminata
cuántica depende del estado inicial. Este hecho es importante pues el estado
inicial del caminante y la moneda puede ser utilizado como un parámetro
computacional. De hecho, la interacción de la moneda con el medio ambiente
puede generar la distribución ‘top-hat’ [40], una gráfica cuasi uniforme muy
agradable a la vista de un cientı́fico computacional.
Caminatas cuánticas continuas Este tipo de caminatas requiere un solo
sistema fı́sico, el caminante. La partı́cula que hace las veces de la moneda no es
necesaria en este esquema.
En este modelo se aplica un hamiltoniano en cualquier momento, i.e. el tiem-
po de ejecución de la caminata es una variable real positiva, no más una variable
discreta. Comencemos con algunas definiciones preliminares: en [12], Childs et
al presentaron la siguiente formulación de una caminata aleatoria continua:
Definition 3.1. Sea G = (V, E) un grafo con |V | = n. Luego, una caminata
aleatoria continua en G se puede describir empleando una matriz generadora M
de orden n definida por:
−γ, a �= b, (a, b) ∈ G
Mab = 0, a �= b, (a, b) ∈
/G (12)
kγ, a = b y k es la valencia del vértice a
Siguiendo a [12] y [23], la probabilidad de estar en el vértice a en el tiempo
t es dada por:
dpa (t) �
=− Mab pb (t) (13)
dt
b
Ahora, definamos un hamiltoniano cuya estructura está basada en la ecuación
(12) [12, 23].
Definition 3.2. Sea Ĥ un hamiltoniano cuyas entradas matriciales son dadas
por:
−γ, a �= b, (a, b) ∈ G
�a|H|b� = kγ, a = b donde la valencia de a es k (14)
0, en cualquier otro caso
54
Podemos ahora emplear el hamiltoniano Ĥ dado por la ecuación (14), defi-
nido en un espacio de Hilbert H sobre la base vectorial {|1�, |2�, . . . , |n�}, para
construir la siguiente ecuación de Schrödinger:
d�a|ψ(t)� �
i =− �a|H|b��b|ψ(t)� (15)
dt
b
Finalmente, tomando las ecuaciones (14) y (15), el operador unitario Û
Û = exp(−iĤt) (16)
define una caminata cuántica continua en el grafo G. Esta definición la
emplearemos en la descripción del último problema de la sección 3.4.
Aleatoriedad de las caminatas cuánticas Posiblemente la primera pregunta
que surge en torno a las caminatas cuánticas es: ¿por qué se ha eliminado el
adjetivo aleatorias? La razón es que la evolución de un sistema cuántico cerrado
(esto es, que no interactúa con el medio ambiente) es un proceso determinı́stico.
Lo probabilı́stico llega cuando se intenta averiguar el lugar en el que se encuentra
el caminante (o la cara de la moneda), pues en la lógica de la mecánica cuántica,
conocer la posición del caminante es equivalente a medir una propiedad de la
partı́cula que hace las veces del caminante, y la medición en mecánica cuántica
es un proceso inherentemente probabilı́stico. El mismo argumento se aplica a la
moneda.
¿Qué significa que la medición en mecánica cuántica sea un proceso inheren-
temente probabilı́stico? Que los resultados posibles de una medición aparecerán
(serán revelados al cientı́fico) de acuerdo a una distribución de probabilidad, sin
importar lo cuidadoso que sea el investigador ni la precisión o calibración de los
instrumentos.
Esta naturaleza probabilı́stica de la mecánica cuántica dista mucho de ser una
propiedad intuitiva para el cientı́fico computacional o cualquier otro humano; de
hecho, ha sido motivo de controversia desde el nacimiento de la teorı́a cuántica
hasta nuestros dı́as (por ejemplo, revisar [22, 32, 59, 26]). Para un cientı́fico
computacional interesado en desarrollar algoritmos cuánticos, aprender estas
nuevas formas de razonar será parte fundamental de su proceso educativo.
Algunos algoritmos basados en caminatas cuánticas Diversos algoritmos
basados en caminatas cuánticas resuelven varias instancias y formulaciones de
un problema de búsqueda, que en forma abstracta se plantea ası́: dado un espacio
de estados traducible a un grafo G, encuentre un estado particular, el cual tiene
una marca distintiva, a través de la ejecución de una caminata cuántica en G.
El planteamiento se generaliza fácilmente para localizar un conjunto de estados
marcados, en vez de uno solo.
Por supuesto, con la lectura del párrafo anterior, una pregunta asalta la
mente: ¿es razonable suponer que el nodo buscado tendrá siempre una marca
distintiva? La respuesta se puede dar en dos planos distintos:
55
Para aplicaciones concretas de algoritmos de búsqueda, en común estar en
posibilidad de distinguir el nodo que buscamos del resto.
En algunos problemas cuya solución algorı́tmica está inspirada en procesos
fı́sicos, es posible garantizar que el nodo buscado está marcado por el valor
mı́nimo (o máximo) de la propiedad fı́sica incorporada en el algoritmo.
A efecto de caracterizar estos problemas en los que hay que buscar elementos
reconocibles (i.e. marcados), la ciencia computacional provee de una abstracción
llamada oráculo:
Un oráculo es una máquina abstracta utilizada para estudiar problemas de
decisión. Se puede pensar en esta máquina como una caja negra.
Los oráculos son elementos utilizados ampliamente en la construcción de
algoritmos basados en caminatas cuánticas. A continuación, se presentan algunos
algoritmos basados en caminatas cuánticas y que emplean oráculos.
Figura 7. Hipercubo con n = 3
1. Viaje a través de un hipercubo. Para estudiar este algoritmo, definimos
antes lo siguiente:
Un hipercubo es un grafo G con 2n nodos, donde cada nodo lleva por etiqueta
un número binario de bits. Dos nodos a, b del hipercubo están conectados
por una arista (a, b) si y sólo si las etiquetas de a y b difieren en un solo bit,
i.e. |a − b| = 1, donde |a − b| es la distancia de Hamming entre a y b.
Un ejemplo de hipercubo con n = 3 se muestra en la Fig. (7).
Pensemos ahora en el siguiente problema: dado un hipercubo, calcule el
tiempo (i.e. el número de pasos) que tardarı́a un algoritmo en cruzar la
56
distancia entre dos nodos arbitrarios (a, b). Este problema tiene solución
a través de un algoritmo clásico [12] y otro cuántico [68], en ambos casos
polinomiales (i.e. son algoritmos P). El algoritmo cuántico propuesto en [68]
emplea una caminata cuántica discreta y un oráculo.
Otro problema de búsqueda, propuesto y solucionado en [2] empleando una
caminata cuántica discreta, se define en el siguiente párrafo:
2. Elementos distintos (en inglés, element distinctness problem). Sea S una
lista de cadenas de caracteres (strings) definidos sobre el conjunto {0, 1}
separados entre sı́ por el sı́mbolo #, i.e. S = s1 #s2 #s3 # . . . donde s∈ {0, 1}∗ .
Determine si todos los strings son distintos entre sı́.
Figura 8. Árbol con uniones intermedias aleatorias.
3. Aceleramiento exponencial usando una caminata cuántica. Para ter-
minar esta sección, deseo presentar a usted un último algoritmo, éste basado
en una caminata cuántica continua y desarrollado en [12]. El problema a re-
solver se puede visualizar en la Fig. (8) y consiste en comenzar una caminata
en el nodo entrada para terminar en el nodo salida. Dada la estructura irre-
gular del centro de este grafo, formada por uniones aleatorias entre las hojas
de los árboles izquierdo y derecho, es posible demostrar dos cosas [12]: 1) no
es posible construir un algoritmo clásico que haga el recorrido solicitado en
tiempo polinomial, y 2) es posible construir un algoritmo cuántico, basado
en una caminata cuántica continua (sección 3.4) que, con alta probabilidad,
logre hacer el recorrido solicitado en tiempo polinomial.
57
4. Conclusiones
La computación cuántica es una disciplina llena de ideas y múltiples enfoques,
esto último debido a la plétora de profesiones e intereses cientı́ficos que habitan
su espacio. Además de ser tierra fértil para la elaboración de nuevas teorı́as
y estudios, el cómputo cuántico es tiene amplias oportunidades de desarrollo
profesional para cientı́ficos e ingenieros. Más aún, la computación cuántica es una
oportunidad para el crecimiento tecnológico y la generación de riqueza material,
a través de empresas de alta tecnologı́a que desarrollen productos de alto valor
agregado nacidos de la ingenierı́a cuántica [16].
Agradecimientos
Mi sincero agradecimiento para el Dr. Genaro Juárez Martı́nez y el Dr. Héctor
Zenil por su invitación, apoyo y paciencia en la elaboración de este manuscrito.
Agradezco también al Sistema Nacional de Investigadores (SNI) por la beca
(número de expediente 41594) con la que se pagó parte del tiempo que utilicé en
la elaboración de este documento.
Referencias
[1] Altenkirch, T. & Grattage, J. (2005). A functional quantum programming lan-
guage, Proceedings of the 20th Annual IEEE Symposium on Logic in Computer
Science, 249-258.
[2] Ambainis, A. (2004). Quantum walk algorithm for element distinctness, Procee-
dings of the 45th IEEE Symposium on Foundations of Computer Science, 22-31.
[3] Arndt, M., Juffmann, T. & Vedral, V. (2009). Quantum physics meets biology,
HFSP Journal, 3(6), 386-400.
[4] Banuls, M. C., Orús, R., Latorre, J. I., Pérez, A., & Ruiz-Femenı́a, P. (2006). Si-
mulation of many-qubit quantum computation with matrix product states, Phys.
Rev. A, 73, 022344.
[5] Benioff, P. A. (2002). Space searches with a quantum robot, In Quantum Compu-
tation and Quantum Information: A Millenium Volume AMS Contemporary Mat-
hematics Series, Amer. Math. Soc., Providence, RI, (J. S. J. Lomonaco & H. E.
Brandt (Eds.)), 1-12.
[6] Bettelli, S., Calarco, T., & Serafini, L. (2003). Toward an architecture for quantum
programming, The European Physical Journal D - Atomic, Molecular, Optical and
Plasma Physics, 25(2), 181-200.
[7] Bouwmeester, D., Ekert, A., & Zeilinger, A. (Eds.) (2010). The Physics of Quan-
tum Information, Springer Verlag.
[8] Caraiman, S. & Manta, V. I. (2009). New applications of quantum algorithms to
computer graphics: the quantum random sample consensus algorithm, Proceedings
of the 6th ACM conference on Computing frontiers, 81-88.
[9] Caraiman, S. &. Manta, V. (2010). Parallel simulation of quantum search, Inter-
national Journal of Computers, Communications and Control, V(5), 634-641.
[10] Caruso, F., Chin, A. W., Datta, A., Huelga, S. F., & Plenio, M. B. (2010). En-
tanglement and entangling power of the dynamics in light-harvesting complexes,
Physical Review A, 81, 062346 .
58
[11] Childs, A. M. (2010). Universal Computation by Quantum Walk, Physical Review
Letters, 102, 180501.
[12] Childs, A. M., Cleve, R., Deotto, E., Farhi, E., Gutmann, S., & Spielman, D.
A. (2003). Exponential algorithmic speedup by quantum walk, Proc. 35th ACM
Symposium on Theory of Computing, 56-68.
[13] Childs, A. & van Dam, W. (2010). Quantum algorithms for algebraic problems,
Review of Modern Physics, 82, 1-51.
[14] Cohen-Tannoudji, C., Diu, B., & Laloe, F. (1977). Quantum Mechanics, Vols. 1
& 2, Wiley-Interscience.
[15] Cooper, W. G. (2011). Accuracy in Biological Information Technology Involves
Enzymatic Quantum Processing and Entanglement of Decohered Isomers, Infor-
mation Journal, 2(1), 166-194.
[16] Corker, D., Ellsmore, P., Abdullah, F., & Howlett, I. (2005). Commercial Pros-
pects for Quantum Information Processing, Technical report, Saı̈d Business
School, The University of Oxford.
[17] Deutsch, D. (1985). Quantum Theory, the Church-Turing Principle and the
Universal Quantum Computer, Proceedings of the Royal Society of London A,
400(1818), 97-117.
[18] Diamantini, M. C. & Trugenberger, C. (2006). Quantum Pattern Retrieval by
Qubit Networks with Hebb Interactions, Physical Review Letters, 97, 130503.
[19] Dirac, P. A. M. (1930). The Principles of Quantum Mechanics, Oxford University
Press.
[20] DiVincenzo, D. P. (2000). The Physical Implementation of Quantum Compu-
tation, Fortschritte der Physik, 48, 771-784.
[21] Dı́az-Pier, S., Venegas-Andraca, S. E. & Gómez-Muñoz, J. L. (2011). Classical
Simulation of Quantum Adiabatic Algorithms using Mathematica on GPUs, In-
ternational Journal of Unconventional Computing, in press.
[22] Einstein, A. (1954). Ideas and Opinions, Wing Books.
[23] Farhi, E. & Gutmann, S. (1998). Quantum computation and decision trees, Phys.
Rev. A, 58, 915-928.
[24] Feynman, R. P. (1982) Simulating Physics with Computers, International Journal
of Theoretical Physics, 21(6-7), 467-488.
[25] Feynman, R. P. (1999). The Feynman Lectures on Computation, Penguin Books.
[26] Feynman, R. P., Leighton, R. B., & Sands, M. (1965). The Feynman Lectures on
Physics, vol. III, Addison-Wesley Publishing, Co..
[27] Fraenkel, A. S. (1993). Complexity of Protein Folding, Bulletin of Mathematical
Biology, 55(6), 1199-1210.
[28] Gauger, E. M., Rieper, E., Morton, J. L., Benjamin, S. C. & Vedral, V. (2011).
Sustained Quantum Coherence and Entanglement in the Avian Compass, Physical
Review Letters, 106, 040503.
[29] Grover, L. K. (1996). A fast quantum mechanical algorithm for database search,
Proc. 28th Annual ACM Symposium on the Theory of Computing, 212-219.
[30] Gruzka, J. (2000). Quantum Computation, McGraw Hill.
[31] Gupta, S. (2001). Quantum Neural Networks, Journal of Computer and System
Sciences, 63, 355-383.
[32] Heisenberg, W. (1962). Physics and Philosophy, Penguin Group.
[33] Hollenberg, L. C. L. (2000). Fast Quantum Search Algorithm in Protein Sequence
Comparison- Quantum Biocomputing, Physical Review E, 62, 7532-7535.
[34] Hoyer, S., Sarovar, M. & Whaley, K. B. (2010). Limits of quantum speedup in
photosynthetic light harvesting, New Journal of Physics, 12, 065041.
59
[35] Imre, S. & Balázs, F. (2005). Quantum Computing and Communications, John
Wiley and Sons.
[36] Iwama, K. & Tamaki, S. (2003). Improved upper bounds for 3-SAT, Electronic
Colloquium on Computational Complexity, 53, 328.
[37] Jeong, H., Paternostro, M. & Kim, M. S. (2004). Simulation of quantum random
walks using the interference of a classical field, Physical Review A, 69, 012310.
[38] Kassal, I., Whitfield, J. D., Perdomo-Ortiz, A., Yung, M. H., & Aspuru-Guzik,
A. (2011). Simulating Chemistry with Quantum Computers, Annual Review of
Physical Chemistry, 62, 185-207.
[39] Kempe, J. (2003. Quantum random walks - an introductory overview, Contempo-
rary Physics, 44(4), 307-327.
[40] Kendon, V. (2006). A random walk approach to quantum algorithms, Philosop-
hical Transactions of the Royal Society A, 364, 3407-3422.
[41] Kitaev, A. Y., Shen, A. H., & Vyalyi, M. N. (2002). Classical and Quantum
Computation, American Mathematical Society.
[42] Knight, P. L., Roldán, E. & Sipe, J. E. (2003). Quantum walk on the line as an
interference phenomenon, Physical Review A, 68, 020301.
[43] Knight, P. L., Roldán, E., & Sipe, J. E. (2004). Propagating quantum walks: the
origin of interference structures, Journal of Modern Optics, 51(12), 1761-1777.
[44] Konno, N. (2008). Quantum Walks, In On Quantum Potential Theory (Lecture
Notes in Mathematics), U. Franz & M. Schuermann (Eds.), Springer Verlag.
[45] Lanzagorta, M. (2011). Biologically Inspired Quantum Sensor for Magnetic Ano-
maly Detection in Anti-Submarine Warfare, Cuarta Reunión de la División de
Información Cuántica, Sociedad Mexicana de Fı́sica.
[46] Lanzagorta, M. & Ullman, J. (2009. Quantum Computer Science, Morgan and
Claypool Publishers.
[47] Le, P. Q., Doyng, F., & Hirota, K. (2010). A flexible representation of quantum
images for polynomial preparation, image compression, and processing operations,
Quantum Information Processing, 10(1), 63-84.
[48] Le, P. Q., Iliyasu, A. M., Doyng, F., & Hirota, K. (2011). Strategies for designing
geometric transformations on quantum images, Theoretical Computer Science,
412(15), 1046-1418.
[49] Lovett, N. B., Cooper, S., Everitt, M., Trevers, M., & Kendon, V. (2010). Universal
quantum computation using the discrete-time quantum walk, Physical Review A,
81, 042330.
[50] Lovász, L. (1996). Random Walks on Graphs: A Survey, Combinatorics, Paul
Erdös is Eighty, Vol. 2 (ed. D. Miklós, V. T. Sós, T. Szönyi), János Bolyai Mat-
hematical Society, Budapest, 353-398.
[51] Metodi, T. S. & Chong, F. T. (2006). Quantum Computing for Computer Archi-
tects, Morgan and Claypool Publishers.
[52] Meyer, D. A. (1996). From quantum cellular automata to quantum lattice gases,
Journal of Statistical Physics, 85, 551-574.
[53] Mitchell, M. (2009). Complexity: a guided tour, Oxford University Press.
[54] Mohseni, M., Rebentrost, P., Lloyd, S., & Aspuru-Guzik, A. (2008). Environment-
assisted quantum walks in photosynthetic energy transfer, Journal of Chemical
Physics, 129, 174106.
[55] Motwani, R. & Raghavan, P (1995). Randomized Algorithms, Cambridge Univer-
sity Press.
[56] Munakata, T. (2007). Beyond Silicon: New Computer Paradigms, Communica-
tions of the ACM, 50(9), 30-72.
60
[57] Murg, V., Legeza, Ö., Noack, R.M., & Verstraete F. (2010). Simulating Strongly
Correlated Quantum Systems with Tree Tensor Networks, Physical Review B, 82,
205105.
[58] Nayak, A. & Vishwanath, A. (2000). Quantum walk on the line, arXiv:quant-
ph/0010117v1.
[59] Nielsen, M. A. & Chuang, L. I. (2000). Quantum Computation and Quantum
Information, Cambridge University Peess.
[60] Nyman, P. (2009). A Symbolic Classical Computer Language for Simulation of
Quantum Algorithms, Lecture Notes in Computer Science, 5494, 158-173.
[61] Ömer, B. (2000). Quantum Programming in QCL, MSc Thesis, The Technical
University of Vienna.
[62] Ömer, B. (2005). Classical Concepts in Quantum Programming, International
Journal of Theoretical Physics, 44(7), 943-955.
[63] Perdomo, A., Truncik, C., Tubert-Brohman, I., Rose, G., & Aspuru-Guzik, A.
(2008). Construction of model Hamiltonians for adiabatic quantum computation
and its application to finding low-energy conformations of lattice protein models,
Physical Review A, 78, 012320–15.
[64] Preston, D. (2005). Before the Fall-out: From Marie Curie to Hiroshima, Double-
day.
[65] De Raedt, K., Michielsen, K., De Raedt, H., Trieu, B., Arnold, G., Richter, M.,
Lippert, Th., Watanabe, H., & Ito, N. (2007). Massively parallel quantum com-
puter simulator, Computer Physics Communications, 176(2), 121-136.
[66] Rieffel, E. & Polak, W. (2000). An introduction to quantum computing for non-
physicists, ACM Computing Surveys, 32(3), 300-335.
[67] Schöning, U. (1999). A probabilistic algorithm for k-sat and constraint satisfaction
problems, Proceedings of the 40th Annual Symposium on Foundations of Computer
Science (FOCS), IEEE, 410-414.
[68] Shenvi, N., Kempe, J., & Whaley, B. (2003). A Quantum Random Walk Search
Algorithm, Physical Review A, 67(5), 050237.
[69] Shor, P. (1994). Polynomial-Time Algorithms for Prime Factorization and Dis-
crete Algorithms on a Quantum Computer, Proc. 35th Annual Symposium on
Foundations of Computer Science, 124-134.
[70] Trugenberger, C. (2001). Probabilistic Quantum Memories, Physical Review Let-
ters, 87, 067901.
[71] Trugenberger, C. (2002). Phase Transitions in Quantum Pattern Recognition,
Physical Review Letters, 89, 277903.
[72] Trugenberger, C. (2002). Quantum Pattern Recognition, Quantum Information
Processing, 1(6), 471-493.
[73] Venegas-Andraca, S. E. (2006). Discrete Quantum Walks and Quantum Image
Processing, PhD Thesis, The University of Oxford.
[74] Venegas-Andraca, S. E. (2008). Quantum Walks for Computer Scientists, Morgan
and Claypool Publishers.
[75] Venegas-Andraca, S. E. & Ball, J. L. (2010). Processing Images in Entangled
Quantum Systems, Quantum Information Processing, 9(1), 1-11.
[76] Venegas-Andraca, S. E. & Bose, S. (2003). Storing, processing and retrieving an
image using Quantum Mechanics, Proc. SPIE Conference Quantum Information
and Computation, 137-147.
[77] Viamontes, G. F., Markov, I., & Hayes, J. P. (2003). Improving Gate-Level Simu-
lation of Quantum Circuits, Quantum Information Processing, 2(5), 347-380.
[78] Weinstein, Y. S., Hellberg, C. S., & Levy, J. (2004). Quantum-Dot Cluster-State
Computing with Encoded Qubits, Physical Review A, 72(2), 020304.
61
[79] Woess, W. (2000). Random walks on infinite graphs and groups, Cambridge Uni-
versity Press.
[80] Zhang, C. Y., Yeh, H. C., Kuroki, M. T., & Wang, T. H. (2005). Single Quantum-
Dot-Based DNA nanosensor, Nature Materials, 4, 826-831.
Hacia una descripción realista del tráfico
vehicular basada en autómatas celulares
Marı́a Elena Lárraga Ramı́rez, Luis Alvarez-Icaza
Instituto de Ingenierı́a
Universidad Nacional Autónoma de México, 04510, Coyoacán, México, D.F.
[email protected], [email protected]
Resumen Los modelos para tránsito vehicular basados en autómatas
celulares (AC) han llegado a ser un método bien establecido para mode-
lar, analizar y entender el tráfico vehicular real. Sin embargo, un defecto
común que todavı́a no se ha logrado rectificar es la desaceleración abrupta
cuando los vehı́culos se encuentran con obstáculos fijos o estancamientos
de tráfico. En la búsqueda de un modelo más acorde con el movimiento
vehicular en el mundo real, recientemente desarrollamos un modelo de
AC que toma en cuenta las polı́ticas de espaciamiento de los conducto-
res normales y prácticas de ingenierı́a de transporte para su definición
[18]. Las reglas del modelo toman en cuenta el espaciamiento vehicular y
las velocidades relativas entre dos vehı́culos e incorpora capacidades de
aceleración/desaceleración vehicular con un valor lı́mite que se establece
con base en el desempeño de los vehı́culos reales. Ası́, el modelo corrige
los desempeños de desaceleración irreales y puede reflejar más fielmen-
te el desempeño del conductor real. Además de mantener la simplicidad
computacional de los modelos de AC. Este trabajo describe en forma más
detallada tal modelo, con la finalidad de enfatizar sus caracterı́sticas que
lo hacen diferente de otros modelos basados en AC previos y presenta
algunos los resultados de simulación previamente publicados, que validan
su desempeño.
1. Introducción
En los paı́ses desarrollados, los sistemas de transporte se basan principal-
mente en el uso de vehı́culos automotores, lo que ha originado un incremento
continuo de la demanda vehicular y por lo tanto, que se sobrepase la capacidad
para la cual fueron diseñadas sus vı́as, calles o autopistas. Como consecuencia,
la contaminación ambiental y los congestionamientos vehiculares se incrementan
dı́a con dı́a, mientras que la seguridad vial se decrementa. Por lo que el tráfico
vehicular ha llegado a ser uno de los problemas sociales y económicos más im-
portantes de la vida diaria. Aunque la construcción de nuevas vı́as de transporte
o la modificación de las vı́as existentes pueden ser un método simple y efectivo
para disminuir las consecuencias inducidas por la alta demanda vehicular, debido
a diversas restricciones espaciales, sociales y económicas, no es fácil de imple-
mentar en la actualidad. La alternativa es buscar nuevas soluciones orientadas
64
a un uso más eficiente de las infraestructuras existentes, que permitan mejorar
el desempeño de las mismas. Sin embargo, probar los impactos de estas nuevas
soluciones en el mundo real antes de su implementación final puede ser muy cos-
toso y no factible. Esto ha motivado el desarrollo continuo de modelos de tráfico
vehicular orientados para el análisis y entendimiento del comportamiento del
tráfico vehicular y la valoración de las alternativas para mejorar su desempeño.
La modelación del tráfico vehicular tiene una historia muy amplia, se ha
desarrollado desde el punto de vista de la ingenierı́a, la fı́sica y las matemáti-
cas aplicadas [24, 5, 8, 26]. Las clases de modelos usados para su descripción
se pueden clasificar en dos grupos principales, los modelos microscópicos y los
modelos macroscópicos. Los modelos microscópicos representan a cada vehı́cu-
lo en forma separada, lo que permite considerar diferentes tipos de vehı́culos
o conductores con propiedades individuales. En los modelos macroscópicos, el
estado del sistema se describe a través de densidades, por ejemplo, la densidad
de masa derivada de las posiciones de los vehı́culos. A lo largo de los años se
han desarrollado diversas aproximaciones para modelación [5, 8]. Los modelos
hidrodinámicos ven el tráfico como un fluido compresible formado por varios
vehı́culos. Esta aproximación es macroscópica dado que se basa en densidades
más que distinguir entre vehı́culos. Los modelos de cinética de gas tratan de de-
rivar modelos macroscópicos a partir de ecuaciones microscópicas [24]. El tráfico
vehicular se trata como un gas de partı́culas que interactúan, que se describe por
una función de distribución con la evolución temporal dada por una ecuación de
Boltzmann. Por otra parte los modelos microscópicos se clasifican principalmen-
te en tres: los modelos de seguimiento del vehı́culo (car-following), los modelos
de velocidad óptima y los modelos basados en AC. Los modelos de seguimiento
del vehı́culo son aproximaciones microscópicas que usan ideas de la mecánica de
Newtoniana para describir el tráfico vehicular [3]. La aceleración se determina,
por ejemplo, por la diferencia de velocidad al vehı́culo precedente. Mientras que
en los modelos de velocidad óptima [1], los vehı́culos no tratan de adoptar la
velocidad de su predecesor, sino una velocidad óptima la cual depende del espa-
ciamiento existente. Por su parte, los modelos basados en autómatas celulares
(AC) son modelos microscópicos, en los cuales la dinámica vehicular depende de
un conjunto de reglas de evolución locales y simples, fáciles de entender, compu-
tacionalmente eficientes y suficientes para emular el desempeño que se observa
en el tránsito vehicular.
En los modelos para tráfico vehicular basados en AC, el espacio que se si-
mula, el tiempo y las variables de estado que se usan son discretas. Ası́, la
red de transporte se parte en una malla con una topologı́a ordenada, inducida
por la topologı́a real, que respeta las relaciones de conectividad y los sentidos
de circulación de la red original. El estado de los vehı́culos se caracteriza por
su posición y velocidad. La primera está determinada por su ubicación dentro
de la malla y la segunda surge de las relaciones que el vehı́culo bajo análisis
guarda con su entorno, determinado por los vehı́culos vecinos y la presencia de
elementos externos (intersecciones, semáforos, etc.). La dinámica vehicular de
los modelos de AC se basa usualmente en reglas intuitivas y locales, que permite
65
reproducir las decisiones que los conductores toman basados en su situación
actual, la relación con sus vecinos, su metas, etc. Este hecho es importante ya que
permite tomar en cuenta por ejemplo, aspectos psicológicos o de comportamiento
de los conductores en una forma natural y eficiente. Además, la interacción
local entre los vehı́culos permite capturar dinámicas a un nivel microscópico
y propagarlas a un nivel macroscópico. Por lo que los modelos para tránsito
vehicular basados en AC han llegado a ser un método bien establecido para
modelar, analizar, entender y aun para pronosticar el desempeño del tránsito
vehicular [22, contiene un resumen de modelos de AC]
El primer modelo que mostró las bondades de los AC para simular el tráfico
vehicular surgió al inicio de los años 90s, cuando los alemanes [23] propusieron
un modelo (referido como NaSch) para la simulación del tráfico vehicular de
carreteras. Aunque el modelo NaSch reproduce la estructura básica de la re-
lación densidad-flujo observada empı́ricamente y la formación espontáneas de
estancamientos vehiculares, no exhibe otras caracterı́sticas del tráfico vehicu-
lar como metaestabilidad, el flujo sincronizado, decaimiento de la capacidad
vehicular, etc. Por lo que desde su creación se han desarrollado un número con-
siderable de modificaciones ó extensiones del modelo NaSch (ver por ejemplo,
[6, 2, 9, 14, 17, 12, 19, 20, 11, 22, 10]).
Sin embargo, la mayorı́a de los modelos se han sido orientados a reproducir
los fenómenos que ocurren en el tráfico vehicular real y raramente han consi-
derado una velocidad de desaceleración con un valor lı́mite semejante al de los
vehı́culos reales. De hecho, la mayorı́a de los modelos existentes han considerado
explı́citamente criterios libres de colisión, mediante la imposición de desacele-
raciones arbitrariamente grandes (de 100 km/h a 0 en 1s) que se alejan de la
capacidad práctica de frenado en pavimento y las condiciones de los neumáti-
cos. Desde luego, que estas desaceleraciones abruptas exceden las capacidades
de desaceleración reales en condiciones normales.
Recientemente, en la búsqueda de nuevos modelos de AC que en su definición
tomen en cuenta los mecanismos que conllevan a los fenómenos que suceden en el
tráfico real y no solamente a su reproducción, desarrollamos un nuevo modelo de
AC para un solo carril [18]. El modelo (que aquı́ referiremos como modelo LAI)
trata de capturar las reacciones de los conductores a las condiciones de tráfico
vehicular, mientras se preserva la seguridad en las carreteras. De tal manera que
el desempeño humano se modela como la respuesta del conductor a las condi-
ciones de tráfico locales. Para este propósito, el modelo toma en cuenta para la
definición de la dinámica vehicular el espacio existente entre dos vehı́culos, su
velocidad relativa y las capacidades de aceleración/desaceleración con un valor
lı́mite acorde al de los vehı́culos reales. La determinación de las capacidades de
aceleración/desaceleración se derivan de principios de conducción segura para
los conductores normales y en acuerdo con las prácticas de transporte y las reac-
ciones humanas [7, 4]; tal que los vehı́culos no puedan cambiar las velocidades
abruptamente (como en la realidad). De tal manera. que el modelo LAI rectifica
la desaceleración irreal de los vehı́culos cuando se enfrentan a aun estancamiento
o incidente, como ocurre en la mayorı́a de los modelos de AC previos. Además,
66
el modelo es muy simple y computacionalmente eficiente. En este trabajo se des-
cribe en una forma forma más detallada el modelo LAI presentado en [18]. El
objetivo principal es enfatizar las caracterı́sticas del modelo que lo hacen diferen-
te de otros modelos basados en AC existentes en la literatura, ası́ como mostrar
algunos resultados de simulación previamente publicados, los cuales validan la
eficiencia del modelo para reproducir fenómenos que ocurren en el tráfico real.
El resto de este trabajo está organizado de la siguiente manera. En la sección
2, se presenta una introducción al modelo NaSch y algunos modelos previos que
introducen el concepto de desaceleración con un valor lı́mite en su definición. En
la sección 3, se presenta una descripción del modelo desarrollado recientemente.
En la sección 4 se presentan resultados de simulación del modelo para un sistema
de un solo carril, con condiciones de frontera periódica. Finalmente, en la sección
5 se presentan las conclusiones de este trabajo.
2. El modelo de Nagel-Schreckenber (NaSch)
El modelo NaSch es un modelo de autómata celular probabilista para el tráfi-
co vehicular. La carretera se divide en celdas de igual tamaño, las cuales pueden
estar vacı́as u ocupadas por un vehı́culo con una velocidad v = 0, 1, . . . , vmax .
Los vehı́culos se mueve desde el extremo izquierdo al extremo derecho de la ca-
rretera. En cada paso de tiempo discreto t ← t + 1, la actualización del sistema
se desempeña en paralelo de acuerdo a las siguientes cuatro reglas:
R1 Aceleración: vn (t + 1/3) = min(vn (t) + 1, vm ax);
R2 Desaceleración : vn (t + 2/3) = min(vn (t + 1/3), dn (t));
R3 Frenado aleatorio: vn (t + 1) = max(vn (t + 2/3) − 1, 0) con probabilidad p;
R4 Cambio de posición: xn (t + 1) = xn (t) + vn (t + 1);
Aquı́, vn y xn denotan la velocidad y posición del vehı́culo n respectivamente;
vmax es la velocidad máxima y dn = xn+1 − xn − 1 denota el número de celdas
vacı́as en frente del vehı́culo n; p es la probabilidad de frenado aleatorio. Es
importante mencionar que un cambio en el orden las reglas de transición definidas
cambiarı́a las propiedades del modelo; en otras palabras, las reglas del modelo
NaSch no conmutan.
Todas la reglas tienen una interpretación simple. La regla R1 expresa el
deseo de los conductores para moverse tan rápido como sea posible. La regla
R2 refleja las interacciones entre vehı́culos consecutivos y garantiza la ausencia
de colisiones en el modelo. La velocidad del vehı́culo precedente no se toma en
cuenta. La regla R3 introduce una asimetrı́a entre aceleración y desaceleración e
incorpora fluctuaciones naturales inherentes al conductor. Finalmente, la regla
R4 mueve los vehı́culos hacia adelante con base en la velocidad adquirida como
resultado de la aplicación de las tres reglas previas. La longitud de una celda,
∆x, corresponde a 7.5 m en la realidad, entonces para vmax = 5 y p = 0,5.
Un paso de tiempo corresponde aproximadamente a 1 s en unidades de tiempo
reales y corresponde al tiempo de reacción de un conductor.
67
Aún tratándose de un modelo elemental (ya que quitándole cualquiera de
sus componentes, el modelo ya no reflejarı́a la realidad), el modelo NaSch úni-
camente sirve para modelar autopistas congestionadas, con vehı́culos uniformes
y en un único carril. Para modelar otros aspectos del tráfico, como variedad de
tipos de vehı́culos, múltiples carriles, u otros fenómenos como distintas formas
de interacción entre los vehı́culos, se requiere modificar este para captar otras
realidades que puedan modelarse. Por lo que a parir del modelo NaSch se han
propuesto diversas modificaciones o extensiones. Sin embargo, como la mencio-
namos previamente, la mayorı́a de estos modelos se han orientado a reproducir
los fenómenos que ocurren en el tráfico vehicular real y que no se pueden re-
producir con el modelo NaSch (como la metaestabilidad, el efecto de histéresis,
decaimiento de la capacidad, el flujo sincronizado, etc.). La idea de la desacelera-
ción con un valor limite se ha considerado raramente. En la siguiente subsección
se describen brevemente algunos modelos de AC que consideran en su definición
una desaceleración vehicular con un valor acotado.
2.1. Algunos modelos con desaceleración acotada
Uno de los primeros esfuerzo en introducir la capacidad de desaceleración
con un valor lı́mite en la modelación basada en autómatas celulares fue el mo-
delo propuesto por [15] (modelo KW). Ellos introdujeron el término llamado
velocidad segura a través del siguiente concepto.
v (saf e) τ (saf e) + Xd (v (saf e) ) ≤ gn + Xd (vl,n )
donde gn denota la brecha espacial.
α(α − 1)
Xd (u) = (u − bτ ) + (u − 2bτ ) + · · · + βbτ = bτ 2 (αβ + )
2
representa la distancia esperada de viaje, con la velocidad original u, el intervalo
de desaceleración b. Y el intervalo de tiempo seguro para los conductores, que es
determinado de la siguiente manera.
τ (saf e) = v (saf e) /b = αsaf e + βsaf e
La velocidad del vehı́culo precedente se representa por la siguiente ecuación
�
Xd (vl,n ) + gn 1 1
αsaf e = 2 − βsaf e
b 4 2
Además de la complejidad con la que el modelo simula la dinámica vehicular,
los resultados del modelo de Krauss mostraron claramente desaceleraciones que
exceden las correspondientes a la realidad.
Recientemente, [16] introdujeron además capacidades de aceleración (a) y
desaceleración (D) en su modelo y propusieron el siguiente criterio de seguridad
para el movimiento de los vehı́culos, que es muy similar al propuesto por Krauss
y Wagner.
68
t
τf (ct+1
n )
τl (vn+1 )
� �
xtn + ∆ + (ct+1
n − Di ) ≤ xtn+1 + t
(vn+1 − Di )
i=1 i=1
donde n (n+1) denota al vehı́culo seguidor (conductor). ct+1 n denota la velocidad
segura al tiempo t + 1. xtn+1 (vn+1 t
) denota la posición (velocidad) del vehı́cu-
lo conductor. xtn (vnt ) denotan la posición (velocidad) del vehı́culo seguidor al
tiempo t. τf (τl ), denota los pasos de tiempo requeridos por el vehı́culo seguidor
(conductor) para desacelerar hasta parar; i = 0, 1, . . . τf para el vehı́culo segui-
dor e i = 0, 1, . . . , τl para el vehı́culo conductor; D es la capacidad de frenado
máxima y ∆ es la distancia mı́nima con respecto al vehı́culo conductor.
Tanto el modelo KW como el modelo de Lee et al. antes mencionados, se esta-
blecen bajo la suposición que el vehı́culo siguiente siempre tendrá conocimiento
de la velocidad del vehı́culo que va adelante y ası́, mantendrá continuamente una
distancia adecuada para evitar colisiones en caso de que el vehı́culo precedente
desacelere a un paro total en el siguiente paso de tiempo. Sin embargo, la distan-
cia de seguimiento segura que un vehı́culo debe mantener respecto al vehı́culo
que le precede sigue siendo sobre-conservativa debido al uso de las velocidades
absolutas para su determinación. Además, con la idea de incorporar capacidades
de desaceleración limitadas, estos modelos más sofisticados utilizan un conjunto
de reglas complejo, con un número de parámetros muy grande en comparación
con el modelo original NaSch.
El modelo LAI
Recientemente, en la búsqueda de un modelo basado en AC para el tráfico
vehicular más acorde con el desempeño microscópico real, desarrollamos un nue-
vo modelo para tráfico vehicular basado en AC [18]. El modelo enfatiza el conflic-
to entre el desempeño humano, las polı́ticas espaciales del conductor normal y las
capacidades de aceleración y desaceleración de los vehı́culos, como origen de los
congestionamientos vehiculares. Como resultado, las reacciones de los conducto-
res se basan en un análisis de seguridad que determina la acción más apropiada
a tomar. El modelo introduce un conjunto de reglas nuevo para cambiar la velo-
cidad de los vehı́culos, mediante la incorporación de tres umbrales importantes
que determinan las distancias de seguimiento seguro que deben existir entre un
vehı́culo y su predecesor para acelerar (dacc ), desacelerar (ddec ) o mantener su
velocidad (dkeep ) en el siguiente paso de tiempo. Para la definición de estos um-
brales de seguridad, el modelo toma en cuenta el espaciamiento existente entre
dos vehı́culos, su velocidad relativa y capacidades de aceleración/desaceleración
con un valor lı́mite acorde al comportamiento de los vehı́culos en la realidad. La
definición de los mismos se explicará en forma detallada más adelante.
El modelo se define sobre un arreglo uni-dimensional de celdas de longitud L,
donde cada celda puede estar vacı́a u ocupada por un solo vehı́culo. La velocidad
de cada vehı́culo puede tomar uno de los (vmax+1 ) valores enteros permitidos,
v = 0, 1, . . . , vmax . Los vehı́culos pueden ocupar más de una celda. Debido a que
69
se considera solamente un carril, solamente un tipo de vehı́culo se considera en el
artı́culo y por lo tanto, se usa el mismo valor para la velocidad máxima de todos
los vehı́culos. Para reproducir los efectos estocásticos del desempeño del conduc-
tor individual, el modelo considera capacidades de aceleración y desaceleración
con base en los vehı́culos individuales.
Un paso de cambio del sistema consiste de los siguientes cuatro pasos, los
cuales se aplican en paralelo a todos los vehı́culos cada paso de tiempo.
S1 : Distancias seguras. Obtener el valor para ddecn = ddec (t, vn (t), vn+1 (t)),
daccn = dacc (t, vn (t), vn+1 (t)), y dkeepn = dkeep (t, vn (t), vn+1 (t))
S2 : Aceleración retardada. Obtener el parámetro de ruido estocástico Ra , ba-
sado en la velocidad del vehı́culo vn .
Ra = min(Rd , R0 + vn (t) · (Rd − R0 )/vs )
donde la velocidad vs es una constante ligeramente mayor a 0.
S3 : Sea ∆v que denota la máxima magnitud en celdas para acelerar/desacelerar
a un vehı́culo en una situación normal. La actualización de la velocidad de los
vehı́culos a lo largo de la carretera se lleva a cabo al actualizar simultánea-
mente todos los sitios del arreglo de acuerdo a las siguientes reglas:
S3a : Aceleración. Si dn (t) ≥ daccn , la velocidad del vehı́culo n es incremen-
tada aleatoriamente
� en ∆v con probabilidad (Ra ), i.e.,
min(vn (t) + ∆v, vmax ), si randf() ≤ (Ra )
vn (t + 1) =
vn (t), en otro caso
donde randf()∈ [0, 1] denota un número uniformemente aleatorio (es-
pecı́ficamente para el vehı́culo n al tiempo t)
S3b : Desaceleración aleatoria. Si daccn > dn (t) ≥ dkeepn , la velocidad del
vehı́culo n se�decrementa con probabilidad Rs , i.e.,
max(vn (t) − ∆v, 0), if randf() ≤ (Rs )
vn (t + 1) =
vn (t), en otro caso
S3c : Desaceleración. Si dkeepn > dn (t) ≥ ddecn and vn (t) > 0, la velocidad
del vehı́culo n se reduce en ∆v
vn (t + 1) → max(vn (t) − ∆v, 0)
S3d : Frenado de emergencia. Si vn (t) > 0 y dn (t) < ddecn (t), la velocidad
del vehı́culo n se reduce en M , dado que no disminuye a menos de 0:
vn (t + 1) → max(vn (t) − M, 0)
donde M es el máximo decremento de velocidad en un paso de tiempo
S4 : Movimiento de los vehı́culos. Cada vehı́culo se mueve hacia adelante de
acuerdo a su nueva velocidad determinada con las reglas S3a-S3d:
xn (t + 1) → xn (t) + vn (t + 1)
donde xn (t) y vn (t) respectivamente, denotan la posición y velocidad del vehı́cu-
lo n al paso de tiempo t (se asume que el vehı́culo n + 1 precede al vehı́culo
n). Entonces, el espacio al frente del vehı́culo n, es decir, la distancia desde la
defensa delantera del vehı́culo n a la defensa trasera del vehı́culo n + 1, se define
como dn (t) = xn+1 (t) − xn (t) − ls ; donde ls denota el tamaño del vehı́culo (en
celdas) y se asume que la posición de un vehı́culo es la celda que contiene su
70
defensa trasera. El parámetro M representa la máxima capacidad de desacele-
ración de un vehı́culo en un paso de tiempo. Los parámetros estocásticos Rs ,
R0 y Rd controlan las fluctuaciones de velocidad de los vehı́culos y se explicarán
posteriormente.
Finalmente, ∆v denota la magnitud para incrementar/decrementar la velo-
cidad de un vehı́culo en un paso de tiempo bajo situaciones normales y se fija a
un valor dado:
∆v = �2,5m/∆x�
donde ∆x denota el tamaño de la celda (en metros) que se utilizan para la
discretización del sistema, que en este modelo es ∆x = 2,5
Las reglas de S3a a S3d se diseñaron para actualizar la velocidad de los
vehı́culos; la regla S4 actualiza la posición. De acuerdo a estas reglas, la ac-
tualización del estado se divide en 2 etapas, primero la velocidad y segunda la
posición. En lo siguiente, se discute cada paso del modelo.
2.2. Entendiendo las reglas
S1: El punto inicial del modelo es el cálculo de las tres umbrales, que deter-
minan las distancias de seguimiento que un vehı́culo debe tener con respecto al
vehı́culo que le precede para acelerar, mantener su velocidad, o acelerar, en forma
segura. Las distancias de seguimiento se definen por las siguientes ecuaciones:
(vn (t)+∆v)divM (vn+1 (t)−M )divM
� �
dacc = max(0, [(vn (t)+∆v)−i∗M ]− [(vn+1 (t)−M )−i∗M ])
i=0 i=0
(1)
(vn )(t)divM (vn+1 (t)−M )divM
� �
dkeep = max(0, [vn (t) − i ∗ M ] − [(vn+1 (t) − M ) − i ∗ M ]) (2)
i=0 i=0
(vn (t)−∆v)divM (vn+1 (t)−M )divM
� �
ddec = max(0, [(vn (t)−∆v)−i∗M ]− [(vn+1 (t)−M )−i∗M ])
i=0 i=0
(3)
donde Xdiv Y denota la división entera, es decir, Xdiv Y = �X/Y �, donde “/”
denota la división normal y �z� es la función piso.
El primer término del lado derecho de las ecuaciones (1)-(3) determina la
distancia que el vehı́culo seguidor viajarı́a si éste acelera (vn (t+1) = vn (t)+∆v),
mantiene su velocidad (vn (t + 1) = vn (t))o desacelera (vn (t + 1) = vn (t) − ∆v),
respectivamente, en el paso de tiempo t + 1 y en el siguiente paso de tiempo
empieza a desacelerar abruptamente (con una capacidad de frenado máxima M )
71
hasta que este se detiene. Mientras que el segundo término de las ecuaciones (1)-
(3) se refiere a la distancia que viajarı́a el vehı́culo predecesor, si a partir del paso
de tiempo t + 1 empieza a desacelerar con la máxima velocidad de desaceleración
posible (frenado de emergencia) M , hasta parar. Ası́, este término cuenta las
desaceleraciones sucesivas del vehı́culo precedente durante los pasos de tiempo
i = 0, 1, . . . , (vn+1 (t) − M )div M , considerando que desacelerará abruptamente
con capacidad de frenado máxima, M .
Por lo tanto, la substracción de los dos términos del lado derecho de las ecua-
ciones (1)-(3) representa la distancia de seguimiento segura requerida para parar
un vehı́culo en una situación de emergencia sin colisionar con su vehı́culo pre-
cedente, considerando que acelerará, mantendrá su velocidad o desacelerará res-
pectivamente, en el paso de tiempo t + 1. Note que estas distancias siempre se
consideran positivas.
Es importante hacer notar que todos los cálculos involucrados en las ecua-
ciones (1)-(3) pueden ser desempeñados fuera de lı́nea. Después de que es-
tos cálculos se hayan realizado, es posible generar tres tablas fijas de tamaño
(vmax + 1) × (vmax + 1) que contendrán las distancias que requieren los vehı́cu-
los para acelerar, mantener su velocidad o desacelerar. Con el uso de tablas de
búsqueda, el costo computacional resultante de calcular las distancias de segui-
miento seguro es muy bajo.
S2: Este paso obtiene el valor correspondiente para el parámetro estocástico
Ra , el cual denota la probabilidad para acelerar, Ra , con base en la velocidad
actual del vehı́culo bajo consideración. El cálculo del valor correspondiente se
basa en suponer que un vehı́culo cuya velocidad sea menor que vs en el paso
de tiempo previo tiene una probabilidad menor de acelerar que el resto de los
vehı́culos con una velocidad mayor a vs . De esta manera los vehı́culos más len-
tos deben esperar más tiempo antes de continuar su jornada. Usando una idea
similar a la descrita en [16], el parámetro estocástico Ra (¡1) en S2 interpola
linealmente entre R0 y Rd (R0 < Rd ), si vn es menor que una velocidad dada vs .
Es importante hacer notar que para un valor dado para R0 , Rd y vs , el cálculo
que implica el paso S2 para la probabilidad de aceleración Ra también se puede
desempeñar fuera de lı́nea y el resultado almacenarse en una tabla fija de tamaño
1 × (vmax + 1), la cual relaciona el valor de Ra con la velocidad del vehı́culo vn .
En la práctica, ésto reduce el uso de tres parámetros, R0 , Rd y vs a sólo Ra .
S3a: Esta regla postula que todos los conductores intentan alcanzar la máxi-
ma velocidad siempre que le sea posible. Esto está en acuerdo con otras polı́ticas
de velocidad, como la polı́tica greedy. La regla S3a toma en cuenta la acelera-
ción de los vehı́culos no uniforme, debido a que los conductores actúan en forma
distinta. Por lo tanto, el proceso de aceleración introduce un elemento del com-
portamiento humano basado en el hecho que el desempeño del conductor puede
variar en función de la situación de tráfico local y las fluctuaciones del tráfico
resultantes del factor humano, en una forma estocástica. El factor estocástico
considerado en esta regla es a través del parámetro Ra , definido en el paso S2.
Es importante notar que la regla S3a sugiere alternativamente, que los vehı́cu-
los que salen de los frentes de los estancamiento aceleran gradualmente. ası́, el
72
desempeño de los vehı́culos que dejan un estancamiento es más en acuerdo con
el desempeño del tráfico real: un conductor necesita un instante de tiempo para
acelerar su vehı́culo.
S3b: Esta regla refleja el hecho que los conductores tratarán de mantener su
velocidad, si perciben la distancia al vehı́culo de enfrente como segura. Además
esta regla también introduce disturbios de tráfico que ocasionan que los conduc-
tores reduzcan su velocidad sin razón aparente. Esta desaceleración aleatoria,
controlada con el parámetro Rs , se aplica solamente a vehı́culos que están en
condiciones para mantener y no requieren desacelerar. Ası́, el frenado doble, el
cual caracteriza a los modelos de AC existentes, se evita. De tal manera que, un
vehı́culo desacelera en forma aleatoria siempre y cuando tenga condiciones para
mantener su velocidad.
S3c: Esta regla requiere que el conductor aplique frenado en forma moderada
cuando el espacio que separa su vehı́culo del vehı́culo de enfrente es pequeño.
Note que la desaceleración máxima que un conductor individual desea usar como
desaceleración confortable, en situaciones que no son de emergencia, está acotada
por ∆v (en unidades de AC). Ası́, las desaceleraciones extremas se evitan.
S3d: Esta regla enfatiza la aproximación tomada en el modelo: las decisiones
de los conductores más importantes se relacionan a la seguridad. Esta regla per-
mite a los conductores reaccionar ante un frenado de emergencia (debido a que
el vehı́culo precedente frena inesperadamente o el vehı́culo seguidor se aproxima
a un vehı́culo parado) del vehı́culo precedente, lo que genera perturbaciones en
las otras reglas. En este trabajo, el frenado de emergencia toma un valor de
−5,00 m/s (que se considera un valor aceptable para esta maniobra [4, 21] y
se alcanzaré en un paso de tiempo. Ası́, el parámetro M tomará valores iguales
a 5,00/∆x. Es importante enfatizar que los resultados que se presentan en este
trabajo corresponden a los obtenidos de considerar un solo tipo de vehı́culos, es
decir, vehı́culos con el mismo valor para la capacidad de frenado máxima M .
Sin embargo, el modelo permite que el parámetro M tome valores diferentes de
acuerdo al tipo de vehı́culo bajo consideración (automóvil, camioneta, autobús,
etc), sin necesidad de modificar el modelo. De tal manera que es posible consi-
derar distintos tipos de vehı́culos con capacidades de frenado diferentes, lo cual
será determinante en una forma implı́cita en la determinación de las distancias
requeridas por un vehı́culo para acelerar, mantener su velocidad o desacelerar:
Un valor de M más pequeño (una capacidad de frenado más baja) implica una
distancia de seguridad más grande para desacelerar, como ocurre en la realidad.
Ası́, una de las contribuciones principales de este nuevo modelo es el garantizar
que el desempeño vehicular microscópico sigue capacidades semejantes a la de
los vehı́culos reales.
Además, el modelo tiene dos ingredientes que lo hacen diferente de otros
modelos para tráfico vehicular basados en AC. Primeramente, en situaciones
normales los vehı́culos no pueden cambiar sus velocidades en forma instantánea,
en su lugar, los vehı́culos tratan de frenar con una desaceleración cuyo valor se
limita por ∆v (en unidades de celdas). Desaceleraciones con un valor mayor a ∆v
sólo son posibles en situaciones de emergencia, aunque el valor correspondiente
73
también se limita con base en los valores que usan los vehı́culos reales. Por otra
parte, los conductores sobrereaccionan a las condiciones de tráfico locales de
acuerdo a las tres distancias de seguimiento seguro, que toman en cuenta el hecho
que un vehı́culo acelerará, mantendrá su velocidad o desacelerará normalmente
en el siguiente paso de tiempo, considerando que el vehı́culo que le precede
empezará a desacelerar con la capacidad de desaceleración máxima M hasta
parar y las colisiones se evitan.
El valor más apropiado para ∆v se determinó con base en las referencias del
libro titulado The Traffic Engineering Handbook [27], que indican que el valor de
la aceleración (desaceleración) bajo condiciones normales es acerca de 2 − 3 m/2
(3.1 m/2 ). Como en el modelo se considera que un paso de tiempo corresponde
a 1 s, un valor aceptable para el tamaño máximo de una celda, el cual conduce a
un mejor acuerdo con una aceleración y desaceleración confortable es ∆x = 2,5
m. Es importante hacer notar que diferentes valores para ∆v de acuerdo al tipo
de vehı́culo bajo consideración (automóvil, camioneta, etc.), los cuales toman
en cuenta las longitudes de los vehı́culos podrı́an ser considerados por el model
(como sucede en la realidad). Además, no es necesario modificar ninguna de las
reglas del modelo para ello.
Los parámetros del modelo son los siguientes: la velocidad máxima, vmax , la
velocidad lenta vs , la longitud del vehı́culo ls (en celdas), el decremento de la
velocidad máximo en un paso de tiempo M , la probabilidad de desaceleración
aleatoria Rs y las probabilidades R0 y Rd . Sin embargo, tomando en cuenta la
consideración hecha para el parámetro Ra en el paso S2, en la práctica, el número
efectivo de parámetros necesarios para las simulaciones cada paso de tiempo es
cinco: vmax , ls , Rd , Ra y M . Los parámetros adicionales ls y M se requieren para
permitir la consideración de vehı́culos con diferentes longitudes y capacidades
de frenado. Además, mientras es claro que hay más parámetros para sintonizar
que en el modelo NaSch, existen herramientas estadı́sticas para automatizar esta
sintonización con base en datos de tráfico los cuales pueden simplificar el proceso
de sintonización; sin embargo, en este trabajo no lo hicimos ası́.
3. Resultados de simulación
En esta sección se presentan resultados de simulación del modelo LAI to-
mados de [18], los cuales se obtuvieron considerando una carretera circular con
condiciones de frontera periódicas. La simulaciones se realizaron sobre una ca-
rretera de L = 2 ∗ 104 celdas. cada vehı́culo tiene una longitud de 5.0 m y por
lo tanto, cada celda corresponde con una longitud de 2.5 m. La longitud del
vehı́culo se determinó con base en datos empı́ricos que indican que la densidad
de estancamiento máximo es acerca de 200 veh/km. El paso de tiempo t se toma
igual a 1 s, por lo tanto, las transiciones del tiempo son de t −→ t + 1. Este paso
de tiempo es del orden del tiempo de reacción humana [11], sin embargo, puede
modificarse fácilmente. Las velocidades se cambian de acuerdo a las reglas de
cambio S3a-S3d y entonces, todos los vehı́culos se mueven hacia adelante con
base en el paso S4.
74
Para cada simulación, inicialmente se distribuyen en forma aleatoria N vehı́cu-
los, con una velocidad que toma valores entre 0 y vmax . Debido a que el sistema
bajo consideración es cerrado, la densidad vehicular, ρ = N/L se mantiene cons-
tante en el tiempo. Los valores de los parámetros se establecieron de la siguiente
manera: ∆x = 2,5 m, Rd = 1,0, R0 = 0,8, Rs = 0,01, ls = 2, M = 2 y vs = 3.
Estos valores se establecieron debido a que conducen a un acuerdo óptimo con
datos empı́ricos. Note que considerar Rd = 1,0 significa que solamente los vehı́cu-
los cuya velocidad sea más pequeña que vs deben esperar más tiempo antes de
que puedan continuar su jornada (aceleración retardada). Cada simulación se
realizó para T = 5 ∗ 104 pasos de tiempo posteriores a un periodo de transición
de 10 ∗ 104 pasos de tiempo.
Actualmente se distinguen tres fases del tráfico vehicular distintas, el flujo
libre, flujo sincronizado y flujo estancado[25], aunque algunos puntos son con-
troversiales aún. En la fase de flujo libre la interacción entre los vehı́culos puede
despreciarse. Cada vehı́culo se puede mover con su velocidad deseada. Por lo
tanto, el flujo vehicular (cantidad de vehı́culos que pasan por un punto por uni-
dad de tiempo) se incrementa linealmente con la densidad vehicular (número de
vehı́culos por unidad de longitud). La fase de estancamientos amplios, donde los
estancamientos vehiculares se pueden formar de manera espontánea, es decir,
sin una razón externa obvia como un accidente o construcción de la carretera.
Los estancamientos amplios son regiones con una densidad vehicular muy al-
ta y flujo vehicular y velocidad promedio despreciables. Estos estancamiento se
mueven en dirección opuesta al flujo vehicular con una velocidad caracterı́stica
vjam ≈ 15km/h. La fase de flujo sincronizado se forma del tráfico congestionado,
el cual no puede clasificarse como estancamiento amplio. En esta fase, la velo-
cidad promedio es significativamente más baja que en flujo libre. Sin embargo,
el flujo vehicular es mucho más alto que en la fase correspondiente a estanca-
mientos amplios. la caracterı́stica principal de esta fase es la ausencia aparente
de un forma funcional de la relación flujo-densidad, es decir, los puntos de los
datos correspondientes se dispersan irregularmente sobre un área bidimensional
amplia.
En la figura 1 se muestra el flujo promedio de 1 min con respecto a la densidad
(conocido como diagrama fundamental) resultante del modelo LAI con condi-
ciones de frontera periódicas. El diagrama fundamental se obtuvo variando la
densidad global ρ entre 0 y 196 veh/km, con incremento de 2 veh/km. Para cada
una de las densidades consideradas se midió el flujo local J y la velocidad local
promedio, vloc , a través de detectores de medición virtuales sobre una localidad
especı́fica. Entonces, la densidad local espacial, ρloc , se obtuvo a través de la
relación hidrodinámica J = ρloc ∗ vloc ; por lo que cualquier densidad considerada
se relaciona diversos puntos en el diagrama fundamental. Como puede observar-
se de la Fig. 1, el modelo LAI reproduce las tres fases de tráfico existentes. La
lı́nea recta con pendiente positiva corresponde a la fase de flujo libre. La fase
sincronizada forma una región bidimensional en medio del diagrama fundamen-
tal. Mientras que la fase de estancamientos amplios produce puntos distribuidos
en la parte baja del diagrama fundamental. Es importante enfatizar que debido
75
0.8
0.6
flow (veh/time-step)
0.4
0.2
0.0
0.00 0.05 0.10 0.15 0.20 0.25
density (veh/cell)
Figura 1. Flujo promedio de 1 min. con respecto a la densidad resultante del
modelo propuesto para ∆x = 2,5m, Rd = 1,0, R0 = 0,8, Rs = 0,01, vs = 3,
M = 2, and ls = 2.
a que solamente se consideran vehı́culos moviéndose en la medición de los detec-
tores, la velocidad promedio local correspondiente a los estancamientos amplios
se sobreestima y ası́, la densidad se subestima. Además, las densidades resul-
tante de la simulación son menos distribuidas que aquellas correspondientes a
encuentros empı́ricos, debido a un artefacto de discretización de las velocidades,
las cuales determinan el lı́mite superior de las densidades detectables.
Aunque la reproducción del diagrama fundamental es importante para validar
el modelo, no es suficiente para identificar de manera aproximada las diferen-
tes fases del tráfico. En la Fig. 2 se muestran los diagramas espacio-tiempo de
las diferentes fases del flujo vehicular. Las figuras 2(a)-2(c) muestran las carac-
terı́sticas espacio temporales para las fases correspondiendo a flujo libre, flujo
sincronizado y estancamientos amplios, respectivamente. Cada columna vertical
de puntos representan las posiciones instantáneas de los vehı́culos moviéndose
hacia arriba; mientras que las columnas sucesivas de puntos representan las po-
siciones de los mismos vehı́culos en pasos de tiempo sucesivos. Los puntos negros
76
(a) (b)
(c) (d)
Figura 2. Diagrama espacio tiempo para diferentes fases del tráfico vehicular:
flujo libre (a), flujo sincronizado (b) y flujo estancado (c), para valores de densi-
dad de 14, 36, y 54 veh/km respectivamente (0.035, 0.090, and 0.135 veh/celda,
respectivamente). (d) Imagen ampliada del flujo sincronizado para una densidad
de 36 veh/km.
representan vehı́culos con velocidad cero. Como puede notarse de la Fig. 2(b) los
vehı́culos se mueven con una velocidad menor (tono de gris más oscuro) que la
correspondiente a la fase de flujo libre, pero no existen vehı́culos parados. Mien-
tras que en la Fig 2(c) correspondiente a la fase de estancamientos amplios, se
puede notar que la presencia de ondas denominadas stop-and-go y la presencia
de vehı́culos con velocidad cero. Con la finalidad de verificar la existencia de la
fase sincronizada en la Fig. 2(d) se presenta una imagen instantánea de una parte
de la carretera seleccionada e forma aleatoria, que es resultado de una densidad
inicial de 36 veh/km. En esta figura, los cı́rculos sólidos representan vehı́culos
moviéndose de la izquierda a la derecha. Nótese que la figura no corresponde a
un periodo de transición y exhibe una velocidad promedio intermedia. Ası́, los
puntos correspondientes al área de flujo sincronizado en el diagrama fundamen-
77
tal de la Fig. 1 no se atribuyen a los efectos promedio de las fluctuaciones fuertes,
sino que son consecuencia de la relación especial velocidad-espaciamiento.
Figura 3. Diagrama espacio-tiempo para una densidad inicial de 40 veh/km. El
eje horizontal representa el tiempo transcurrido en segundos (s), mientras que el
eje vertical representa las posiciones de los vehı́culos (celdas). El tráfico vehicular
inicia de un megaestancamiento, alineando todos los vehı́culos consecutivamente
al final de la carretera
Por otra parte, con la finalidad de mostrar que el modelo es capaz de re-
producir la velocidad de propagación de un congestionamiento, en la Fig. 3 se
muestra el diagrama espacio-tiempo resultante de alinear los vehı́culos al final
de la carretera, uno tras otro con velocidad cero, al inicio de la simulación. Con
base en este diagrama, la velocidad hacia atrás del frente del estancamiento es
aproximadamente 14.3 km/h, muy cercana a la observación de campo cuyo valor
es alrededor de 15 km/h [28, 13]. La reproducción de la velocidad hacia atrás
de los estancamiento, se debe al hecho que los vehı́culos que salen del frente de
un estancamiento en la dirección del flujo vehicular son obligados a esperar una
pequeña cantidad de tiempo, cuyo valor se determina como una función de su
velocidad actual, es decir, aceleran lentamente. Por lo que la inclusión de una
aceleración retardada en el modelo LAI permite además, reproducir la velocidad
hacia atrás de un estancamiento.
Finalmente, uno de los objetivos principales del modelo LAI es evitar los
desempeños de desaceleración irreales, de tal manera que el modelo debe ser
capaz de reproducir el desempeño del flujo vehicular a un nivel macroscópico,
con base en un desempeño vehicular microscópico aceptable. Para evidenciar
este desempeño, en la Fig. 4(a) se despliegan las gráficas ampliadas correspon-
78
Figura 4. (a) Trayectorias vehiculares cuando aproximan el frente aguas arriba
de un estancamiento vehicular (b) Variaciones de velocidad cuando los vehı́culos
alcanzan un estancamiento vehicular.
79
dientes a las trayectorias de los vehı́culos cuando se aproximan al frente aguas
arriba de un estancamiento vehicular, bajo las reglas de cambio del modelo LAI.
Como puede notarse de esta figura, el decaimiento de la velocidad es en una
forma gradual, debido a que los vehı́culos desaceleran de una manera oportuna,
semejante al desempeño de los conductores en el mundo real. Estas variaciones
de velocidad cuando los vehı́culos alcanzan el estancamiento vehicular pueden
apreciarse de una manera más clara en la Fig. 4(b), que corresponde a las va-
riaciones de velocidad de unos cuantos vehı́culos moviéndose consecutivamente.
Por lo tanto, el modelo LAI suaviza el desempeño de desaceleración abrupto e
irreal encontrado en la mayorı́a de los modelos para tráfico vehicular basados en
AC y refleja el desempeño el desempeño del conductor como en el mundo real,
donde los conductores decrementan sus velocidades de una forma suave bajo
condiciones de conducción normales.
4. Conclusiones y trabajo futuro
4.1. Conclusiones
En este trabajo se describió un modelo para tráfico vehicular basado en
AC que desarrollamos recientemente, el modelo LAI. El modelo introduce un
nuevo conjunto de reglas que incorpora la definición de tres umbrales importantes
requeridos por un vehı́culo seguidor para acelerar, desacelerar o mantener su
velocidad, en una forma segura. Estos umbrales permiten determinar la acción
más apropiada para un conductor con base en el estado del tráfico vehicular
actual. Además, el modelo introduce en la definición de su dinámica capacidades
de aceleración y desaceleración con un valor lı́mite, cuya definición se deriva
de principios de conducción segura y de acuerdo con prácticas de ingenierı́a
de transporte, las caracterı́sticas de los vehı́culos individuales y las reacciones
humanas.
El modelo además incluye un parámetro para determinar la capacidad de
frenado máximo que un vehı́culo puede aplicar en condiciones de emergencia, el
cual puede sintonizarse de acuerdo al tipo de vehı́culo bajo consideración (au-
tomóviles, camionetas, autobuses, etc), como en el mundo real y sin necesidad
de modificar el modelo actual. De tal manera que diferentes distancias de se-
guimiento seguro como una función de las caracterı́sticas fı́sicas de los vehı́culos
(tamaño, peso) son posibles: capacidades de desaceleración menores implican
distancias de seguimiento seguro mayores, como en la realidad. De tal manera
que un vehı́culo puede desacelerar sin colisionar, en forma segura.
Resultados de simulación del modelo obtenidos previamente de un sistema
con condiciones de frontera periódicas muestran que el modelo LAI puede sua-
vizar el decaimiento de la velocidad cuando los vehı́culos se aproximan al frente
aguas arriba de un estancamiento vehicular. Por lo tanto, el modelo evita el
desempeño de desaceleración abrupto e irreal encontrado en la mayorı́a de los
modelos de AC existentes en la literatura. Además, el modelo es también capaz
de reproducir diversos encuentros empı́ricos incluyendo las tres fase del tráfico
vehicular y la velocidad de propagación hacia atrás de un estancamiento. Cabe
80
mencionar que en [18], ya se mostró que el modelo también reproduce diferen-
tes patrones espaciales del tráfico congestionados inducidos por un sistema con
condiciones de frontera abierta con una rampa de entrada
Finalmente, el modelo presentado en este trabajo es muy simple. Con la
perspectiva de tablas de búsqueda, el costo computacional no se incrementa
substancialmente y el conjunto de reglas que definen la dinámica vehicular hace
posible el uso de cómputo paralelo en una forma simple. Ası́ esta caracterı́stica
de los modelos de AC se preserva.
4.2. Trabajo Futuro
Realizar la extensión del modelo para el estudio del tráfico vehicular de varios
carriles, considerando vehı́culos heterogéneos, de distinta longitud y capacida-
des de frenado, los cuales requieren diferentes distancias de seguimiento seguro.
Con el modelo extendido, se espera realizar una validación con datos de cam-
po. Ası́ como extender el modelo para simular tráfico vehicular de Sistemas de
Carretera Automatizados.
5. Agradecimientos
Este trabajo fue soportado parcialmente por DGAPA-UNAM bajo el proyec-
to IN107909.
Referencias
[1] Bando, M., Hasebe, K., Nakayama, A., Shibata, A., & Sugiyama, Y. (1995). Dy-
namical model of traffic congestion and numerical simulation, Physical Review E,
51, 1035-1042.
[2] Barlovic, R., Santen, L., Schadschneider, A., & Schreckenberg, M. (1998). Metas-
table states in cellular automata for traffic flow, The European Physical Journal
B - Condensed Matter and Complex Systems, 5(3), 793-800.
[3] Brackstone, M. & McDonald, M. (1999). Car-following: a historical review, Trans-
portation Research Part F: Traffic Psychology and Behaviour, 2(4), 181-196.
[4] Carbaugh, J., Godbole, D., & Sengupta, R. (1997). automata, Tools for safety
analysis of vehicle automation systems, In Proceedings of the American Control
Conference, 1997, 2041-2045.
[5] Chowdhury, D., Santen, L., & Schadschneider, A. (2000). Statistical physics of
vehicular traffic and some related systems, Physics Reports, 329(4-6), 199-329.
[6] Fukui, M. & Ishibashi, Y. (1996). Traffic flow in 1D cellular automaton model
including cars moving with high speed, Journal of the Physical Society of Japan,
65(6), 1868-1870.
[7] Godbole, D. N. & Lygeros, J. (1994). Longitudinal control of the lead car of
platoon, IEEE Transactions on Vehicular Technology, 43(4), 1125-1135.
[8] Helbing, D. (2001). Traffic and related self-driven many-particle systems, Reviews
of Modern Physics, 73(4), 1067-1141.
[9] Helbing, D. & Schreckenberg, M. (1999). Cellular automata simulating experi-
mental properties of traffic flow, Physical Review E, 59(3), R2505-R2508.
81
[10] Hsu, C. C., Lin, Z. S., Chiou, Y. C., & Lan, L. W. (2007). Dynamical model of
traffic congestion and numerical simulation, Journal of the Eastern Asia Society
for Transportation Studie, 7, 2502-2516.
[11] Jiang, R. & Wu, Q-S. (2005). First order phase transition from free flow to syn-
chronized flow in a cellular automata model, The European Physical Journal B -
Condensed Matter and Complex Systems, 46(4), 581-584.
[12] Kerner, B. S., Klenov, S. L., & Wolf, D. E (2002). Cellular automata approach
to three-phase traffic theory, Journal of Physics A: Mathematical and General,
35(47), 9971-10014.
[13] Kerner, B. S. & Rehborn, H. (1996). Experimental Features and Characteristics
of Traffic Jams, Physical Review E, 53(2), R1297-R1300.
[14] Knospe, W., Santen, L., Schadschneider, A. & Schreckenberg, M. (2000). Towards
a realistic microscopic description of highway traffic, Journal of Physics A: Mat-
hematical and General, 33(48), L477-L485.
[15] Krauss, S., Wagner, P., & Gawron, C. (1997). Metastable states in a microscopic
model of traffic flow, American Physical Society, 55(5), 5597-5602.
[16] Lee, H. K., Barlovic, R., Schreckenberg, M., & Kim, D. (2004). Mechanical res-
triction versus human overreaction triggering congested traffic states, Physical
Review Letters, 92, 238702-1–238702-4.
[17] Li, X. B., Wu, Q-S., & Jiang, R. (2001). Cellular automaton model considering
the velocity effect of a car on the successive car, Physical Review E, 64, 066128-
1–066128-4.
[18] Lárraga, M. E. & Álvarez-Icaza, L. (2010). Cellular automaton model for traffic
flow based on safe driving policies and human reactions, Physica A, 389(23), 5425-
5438.
[19] Lárraga, M. E., del Rı́o, J. A., & Schadschneider, A. (2004). New kind of phase
separation in a CA traffic model with anticipation, Journal of Physics A: Mathe-
matical and General, 37, 3769-3782.
[20] Lárraga, M. E., del Rı́o, & Álvarez-Icaza, L. (2005). Cellular automata for One-
Lane traffic flow modeling, Transportation Research Part C: Emergent Technolo-
gies, 13(1), 63-74.
[21] Álvarez-Icaza, L. & Horowitz, R. (1999). Safe Platooning in Automated Highway
Systems, Part I: Safety Regions Design, Vehicle System Dynamics, 32(1), 23-56.
[22] Maerivot, S. & De Moor, B. (2005). Cellular automata models of road traffic,
Physics Reports, 419, 1-64.
[23] Nagel, K. & Schreckenberg, M. (1992). A cellular automata model for traffic flow,
Journal of Physique I, 2, 2221-2229.
[24] Prigogine, I. & Herman, R. (1971). Kinetic Theory of Vehicular Traffic, American
Elsevier Pub. Co.
[25] Schadschneider, A. (2006). Cellular automata models of highway traffic, Physica
A: Statistical Mechanics and its Applications, 372, 142-150.
[26] Schadschneider, A., Pöschel, T., Kuhne, R., Schreckenberg, M. & Wolf, D. E.
(2007). Traffic and Granular Flow ’05, Springer Verlag.
[27] Pline, J. L. (1999). Traffic Engineering Handbook, 5th Edition, Institute of Trans-
portation Engineers.
[28] Treiterer, J. (1975). Investigation of traffic dynamics by aerial photogrammetry
techniques, Technical Report PB 246 094, Ohio State University.
Estudio de la dinámica y análisis de complejidad
de la regla espiral
Paulina Anaid León Hernández, Rogelio Basurto Flores
Centro de Investigación y de Estudios Avanzados
Instituto Politécnico Nacional, México.
{pleon,rbasurto}@computacion.cs.cinvestav.mx
Resumen La regla espiral de autómatas celulares hexagonales ha resal-
tado por sus similitudes con Life, dando paso a su estudio con resultados
alentadores. El objetivo de este documento es ahondar en dos de las
vertientes de estudio que se han venido dando: por un lado, un estudio
experimental llevado acabo con simulaciones computacionales que entre-
gue resultados sobre el comportamiento del sistema y las interacciones
existentes entre sus partı́culas; y por otro lado, un análisis exhaustivo de
la regla mediante los diagramas de de Bruijn para estudiar las interac-
ciones locales de sus células.
1. Introducción
La regla espiral pertenece a la familia de los autómatas celulares hexagona-
les totalı́sticos y fue introducida por Andrew Adamatzky y Andrew Wuensche
en 2005 [3]. Esta regla muestra un comportamiento complejo a través de una
dinámica con un alto grado de emergencia, produciendo partı́culas de especial
interés para la computación teórica, tales como gliders, glider-guns y still-lifes.
La dinámica de la regla ha probado ser capaz de realizar computaciones me-
diante la colisión de sus partı́culas [4] [5], de manera similar a como se realizó en
los años 80’s con la regla Life [7]; además, se ha mostrado que se puede crear una
lógica universal [9], lo que permite pensar en implementaciones más complejas,
por lo cual es conveniente un estudio más profundo de la regla.
Dado lo anterior, el estudio de la regla ha tomado dos vertientes, la primera
es la experimental, auxiliada por simuladores como el DDLab o Spiral simulator
[24] [8], en los cuales se configura el espacio de evolución con condiciones iniciales
aleatorias y propuestas, donde se espera encontrar comportamientos similares a
Life [7], ejemplo de ellos se pueden ver en [9] y [12]; y la segunda, es la analı́tica,
apoyada por herramientas matemáticas para el estudio de la interacción entre
células vecinas, como lo son los diagramas de de Bruijn.
El presente trabajo, habla sobre los resultados encontrados para ambos es-
tudios, por lo que el documento está dividido de la siguiente manera: la segunda
sección presenta el análisis de la regla mediante los diagramas de de Bruijn;
la tercera sección nos habla del estudio experimental y de las estructuras com-
plejas encontradas; para finalmente, en la cuarta sección presentar el uso de
dichas partı́culas para demostrar la existencia de una lógica universal mediante
compuertas lógicas básicas.
84
2. Diagramas de de Bruijn
La necesidad de entender el comportamiento general de un autómata celu-
lar ha dado paso al uso de teorı́as matemáticas, tales como la teorı́a de campo
promedio o la teorı́a de estructura local; sin embargo, para comprender el com-
portamiento de la interacción entre células, herramientas como los diagramas de
de Bruijn han mostrado ser de utilidad.
En los años 80’s Harold V. McIntosh utilizó los diagramas de de Bruijn para
analizar la familia de autómatas celulares de una dimensión [19], y posterior-
mente hizo el análisis para el autómata del juego de la vida en dos dimensiones
[17], [18].
En la presente sección se hablará del estudio realizado a la regla Espiral con
los diagramas de de Bruijn y los resultados obtenidos.
2.1. Notación básica
Los diagramas de de Bruijn son la representación mediante grafos dirigidos
de las secuencias de de Bruijn. Las secuencias de de Bruijn nacen a partir del
siguiente problema:
Problema 1. Dado m + 1 sı́mbolos y un entero positivo n, encontrar un algo-
ritmo para generar una secuencia de sı́mbolos que tenga una longitud mı́nima y
además, que cuando sean colocados en un cı́rculo contengan como subsecuencias
de sı́mbolos consecutivos todas las secuencias de sı́mbolos de longitud n.
Este problema ha sido resuelto en más de una ocasión desde 1894, cuando A.
de Rivière encontró una solución para m = 1; posteriormente con las contribu-
ciones de C. Flye Sainte-Marie y W. Mantel en la misma época, después en los
años 30 M. H. Martin demostrando la existencia de las secuencias para cualquier
m y n dando un algoritmo para la creación de tales secuencias, y finalmente de
Bruijn solucionó el problema mediante grafos para m = 1, dejando ver como
factible la extensión de su trabajo a cualquier m [21].
Definicón 1. Se define como una secuencia de de Bruijn a toda secuencia de
longitud (m + 1)n que permite generar (m + 1)n subsecuencias de longitud n − 1
al colocarse en una circunferencia.
Como se puede apreciar en la figura 1 los elementos de la secuencia están
ordenados de tal manera que no existe un inicio ni un fin, con lo cual se pue-
de obtener el número total de subsecuencias, mismas que están encerradas en
rectángulos rojos y verdes; las subsecuencias generadas que tengan una longitud
de (n + 1)n , se llamaran secuencias de de Bruijn. Los diagramas de de Bruijn
permiten dar una solución al problema 1.
Para generar un diagrama es necesario obtener todas las secuencias de lon-
gitud (m+1) posibles, con los (m+1) sı́mbolos; éstas secuencias se definen como:
85
Figura 1. Subsecuencias para la secuencia 221201100.
SA SB Subsecuencia
0000 000
0001 001
0110 010
0111 011
1000 100
1001 101
1110 110
1111 111
Cuadro 1. Tabla de subsecuencias formadas mediante la intersección para m =
1yn=3
Definicón 2. Un nodo es una subsecuencia de longitud n que representa un
número en base (m + 1). Existen en un diagrama de de Bruijn (m + 1)n nodos.
Por ejemplo, para m = 1 se tienen secuencias de longitud 2 con 2 sı́mbolos;
para ello se usa una numeración en base 2, de longitud 2, esto es: 00, 01, 10 y 11;
estas secuencias serán los nodos dentro del diagrama; y las aristas representarán
la forma de unir estas secuencias y son definidas como:
Definicón 3. La unión de dos nodos a través de un traslape de sı́mbolos de las
secuencias de nodos, forma una arista, es decir, que ambas secuencias compartan
un sı́mbolo para poder ser unidas y formar una subsecuencia de longitud n.
En la tabla 1 se muestran los diferentes traslapes que existen para el caso de
m = 1 y n = 3, donde en color gris se visualizan los sı́mbolos que comparten las
secuencias y que representan el traslape. Finalmente, en la figura 2 se representa
el diagrama de de Bruijn para el ejemplo de la tabla 1.
86
Figura 2. Diagrama de de Bruijn para m = 1 y n = 3.
El caso de m = 1 y n = 3 es de sumo interés debido a la relación existente
con los autómatas celulares lineales de 2 estados y radio de vecindad 1, dicha
relación se presenta en un autómata celular ya que son secuencias de células,
donde las células pueden tener algún estado y ası́ una célula forma parte de tres
vecindades al mismo tiempo, tanto de la vecindad en la que es central, como de
las que es vecino izquierdo o derecho, de tal manera se observa un traslape entre
células, mismo que en los diagramas de de Bruijn aparece y es por esto que son
utilizados para analizar el comportamiento del autómata de manera local.
2.2. Análisis de la regla espiral a través de de Bruijn
La regla espiral es una regla de AC de dos dimensiones donde cada célula
tiene forma de hexágono; además, cada célula tiene 6 vecinos inmediatos y puede
presentar uno de tres estados {0, 1, 2}; la vecindad es mostrada en la figura 3;
la regla espiral es totalı́stica, lo que quiere decir que para que una célula en un
tiempo t, evolucione al tiempo t + 1, dependerá de su propio estado ası́ como el
de sus vecinos.
j
01234567
001212222
10221222
2002122
i302212
40021
5002
600
70
Cuadro 2. Matriz de evolución de la regla espiral.
87
La matriz de transición, que se muestra en la tabla 2, está dada en función
del número de células en estado 1 y 2 dentro de la vecindad a evaluar; siendo
las columnas el número de células en estado 1 y las filas el número de células
en estado 2; por ejemplo, al tener una vecindad en un tiempo t con 3 células en
estado 1, y 2 células en estado 2, la célula central evolucionará y para el tiempo
t + 1, pasará a estado 1. El número de células en estado 0 se obtiene mediante
la operación n0 = 7 − (n1 + n2 ), donde n0 , n1 y n2 son el número de células en
estado 0, 1 y 2, respectivamente.
Figura 3. Vecindad para la regla espiral.
En los estudios que se han hecho a la regla anteriormente en [3], [4], [24],
[9], [12] se ha observado que existe una diversidad de partı́culas tanto estáticas
como movibles, que al interactuar muestran un comportamiento complejo.
La problemática radica en que las búsquedas que se han hecho de partı́cu-
las no han sido de manera sistemática, para ello en el presente documento se
realizará un análisis a través de diagramas de de Bruijn con el fin de conocer,
primero el tipo de interacción entre células y posteriormente entre los conjun-
tos de células para ası́ encontrar patrones bien definidos que formen partı́culas
concretas.
2.3. Diagrama de de Bruijn en 2D
Para poder realizar un diagrama de de Bruijn es importante conocer el núme-
ro de estados que tiene el autómata y el número de vecinos que tendrá la sub-
vecindad.
Una subvecindad se puede definir por sus caracterı́sticas:
Forma: Depende de la vecindad original, dado que al traslaparse al menos
una célula de la subvecindad con otra célula de otra subvecindad se forma
una vecindad completa.
Número de células: Es el número n de células que contiene la subvecindad,
cada célula tiene una etiqueta que corresponde a la posición que ocupa esa
célula en dicha subvecindad; esto es importante para que se pueda definir de
manera correcta las condiciones de traslape.
Número de células que traslapan: Son el número nt de células que al unirse
con otra subvecindad para formar una vecindad completa, ocupan “la misma
posición”; y debe cumplir la condición de nt ≥ 1.
88
Condición de traslape: Para que dos subvecindades se puedan traslapar, las
células que traslapan en A y las células que traslapan en B deben tener
el mismo estado, y una de las células que se traslapan deberá ser la célula
central.
Cabe mencionar que para cada subvecindad con sus diferentes número de
células traslapándose se formaran diagramas diferentes.
La vecindad de la regla espiral se compone de 7 células, figura 3, donde al
analizarla se observó que una de las subvecindades, posiblemente la única para
este caso en partı́cular, que cumple con las caracterı́sticas antes mencionadas es
mostrada en la figura 5 inciso 1; donde el número de células de la subvecindad
está dado por n = 4, el número de células que traslapan es nt = 1 y las condición
de traslape está dada por: C = B � .
Figura 4. Relaciones entre diagramas y secuencias con un autómata celular
hexagonal.
Análogamente a lo que se hizo para relacionar los diagramas de de Bruijn con
un autómata celular unidimensional, los nodos son subsecuencias de sı́mbolos,
los cuales representan, los estados 0, 1, 2, de longitud 4, mismos que en la figura
4 se observan como A, B, C y D; y se derivan de una secuencia de nodos, donde
el traslape entre dos nodos, da como resultado una vecindad.
Si se tienen dos nodos como los de la figura 5 incisos 1 y 2, entonces la condi-
ción de traslape se cumplirá cuando el sı́mbolo C del nodo A sea igual al sı́mbolo
B del nodo B. Esta relación se visualiza en una matriz de de Bruijn.
Definicón 4. Una matriz de de Bruijn es una matriz booleana que representa
las aristas, la existencia de un traslape entre dos nodos, de un diagrama de de
89
Figura 5. Subvecindades para la regla espiral. Los incisos 1) y 2) corresponden
a las subvecindades A) y B) respectivamente; el inciso 3) representa el traslape
de la célula central.
Secuencia de Dı́gito en
Sı́mbolos sistema base 3
00 0
01 1
02 2
10 3
11 4
12 5
20 6
21 7
22 8
Cuadro 3. Relación entre una secuencia de sı́mbolos y la numeración base 3.
Bruijn a través de la relación entre las filas con las columnas.
Donde las filas, o nodos A, y las columnas, o nodos B, se relacionan solamente
de A → B.
Con la finalidad de hacer más sencilla la manipulación de las subvecindades,
se utiliza un sistema base 3 para poder representar a las secuencias de las sub-
vecindades de una manera más compacta; para ello se tomaron 2 células, y sus
posibles combinaciones, lo cual, da como resultado un dı́gito en numeración base
3, para poder tener la representación de las 4 células que tiene la subvecindad,
se concatenaron dos dı́gitos que representan una cadena de sı́mbolos de una sub-
vecindad; la tabla 3 muestra la relación entre la secuencia de sı́mbolos y el dı́gito
del sistema base 3.
Para representar toda la cadena se divide en dos partes, las células A, B
y las C, D de esta manera, la secuencia 0221 se divide en 02 y 21, entonces
convirtiendo en decimal la numeración base 3, será: 27.
90
2.4. Trabajando con la matriz de de Bruijn
La matriz de de Bruijn muestra todas las posibles vecindades que pueden
generarse al traslapar dos subvecindades, por lo tanto se puede realizar una
evolución para conocer cual será el estado de la célula central, célula traslapada,
en un tiempo t + 1.
El comportamiento que muestra la célula central al evolucionar es represen-
tado mediante otra matriz de de Bruijn; a esta nueva matriz se le puede aplicar
“filtros” para que la información presentada sea más concreta y especı́fica. En
este sentido, los diferentes filtros que pueden aplicarse a la matriz ya evoluciona-
da pueden ser tan variados como lo que se desee encontrar; los filtros aplicados
a la regla espiral y que son de un interés general en los autómatas celulares son:
Permanencia, muestra todas las relaciones entre nodos donde, después de
aplicar la regla de evolución a las vecindades formadas, la célula central
continua en el estado que tenı́a antes de aplicar la regla.
Corrimiento, muestra todas las relaciones entre nodos donde, después de
aplicar la regla de evolución a las vecindades formadas, la célula central
presenta el estado que tenı́a un vecino antes de aplicar la regla de evolución.
Para el caso de la regla espiral las matrices de permanencia son 3, debido
a los tres diferentes estados que pueden “permanecer”; el corrimiento que se
presenta es a partir del vecino suroeste a la célula central, dicho de otra forma,
el estado de la célula central después de evolucionar deberá ser el mismo que el
de su vecino suroeste antes de la evolución.
Cabe aclarar que no todas las relaciones serán de interés debido a que no es
posible la formación de patrones concretos mediante secuencias de nodos, pero
si es notable un conjunto de posibilidades más reducido a estudiar; además, el
estudio realizado fue para una evolución, sin embargo, si se desea conocer para
n evoluciones, se deben formar vecindades que tengan un radio r = n.
Las relaciones que se pueden ver en la matriz de de Bruijn se dan por parejas,
no obstante, es posible realizar una secuencia de nodos, la cual se define como:
Definicón 5. Si s1 , s2 . . . sn es una secuencia donde si representa un nodo en-
tonces si , si+1 deberá cumplir con la condición de traslape.
De estas secuencias de nodos se pueden realizar los diagramas de de Bruijn.
Dado que el diagrama completo es muy amplio se recomienda hacer solo secciones
reducidas del mismo, sobre todo de aquellos nodos que pueden representar algo
importante dentro de la regla, como los estados activadores.
3. Dinámica compleja en la regla espiral
La regla espiral tiene un universo de partı́culas complejas que emergen de la
evolución de un estado inicial aleatorio en el espacio de evoluciones hexagonal.
En esta sección se presenta un número de nuevas estructuras en la regla espiral.
91
Eventualmente, dichas partı́culas llegan a ser útiles para el desarrollo de nuevas
configuraciones que permitan la computación.
3.1. Partı́culas movibles: gliders
La regla espiral tiene una gran diversidad de partı́culas que se desplazan en
el espacio de evolución; las cuales son conocidas como gliders, en la literatura
de los AC son descritos por un número de propiedades particulares, tales como:
masa, volumen, perı́odo, desplazamiento y velocidad.
Figura 6. Gliders en la regla espiral; el estado 2 es representado en negro, estado
1 en rojo y el estado 0 en blanco.
Actualmente se han encontrado 50 gliders con sus respectivas propiedades
[12]. La figura 6 muestra todos los gliders conocidos en la regla espiral, se enu-
92
meran de las formas básicas o primitivas, hasta los compuestos y con exten-
siones. Experimentalmente se ha observado que los gliders con mayor masa no
tienen alta probabilidad de emerger de alguna configuración inicial aleatoria, ni
de sobrevivir a muchas generaciones, debido a su alta sensibilidad a pequeñas
perturbaciones.
La tabla 4 muestra las propiedades generales de los gliders en la regla espiral;
donde la masa representa el número de células en estado 1 y 2 dentro del volumen
del glider, si el glider tiene más de una forma, se toma la forma más grande;
perı́odo es el número de evoluciones necesarias para que el glider regrese a su
forma original; desplazamiento es el número de células que avanza el glider por
perı́odo y finalmente la velocidad de las partı́culas es calculada como el perı́odo
entre desplazamiento.
glider masa periodo desplazamiento velocidad
g1 5 1 1 1
g2 5 2 2 1
g3 5 2 2 1
g4 5 2 2 1
g5 6 1 1 1
g6 8 1 1 1
g7 9 1 1 1
g8 10 1 1 1
g9 10 1 1 1
g10 10 4 4 1
g11 11 1 1 1
g12 11 4 4 1
g13 11 4 4 1
g14 11 4 4 1
g15 11 4 4 1
g16 11 4 4 1
g17 12 1 1 1
g18 12 2 2 1
g19 12 4 4 1
g20 14 2 2 1
g21 14 2 2 1
g22 14 2 2 1
g23 15 2 2 1
g24 16 2 2 1
g25 16 2 2 1
Cuadro 4. Las propiedades de los gliders (primera parte de dos tablas, continua
en la tabla 5).
93
glider masa periodo desplazamiento velocidad
g26 16 2 2 1
g27 17 2 2 1
g28 17 4 4 1
g29 17 4 4 1
g30 18 4 4 1
g31 18 4 4 1
g32 19 4 4 1
g33 19 8 8 1
g34 20 8 8 1
g35 22 4 4 1
g36 23 4 4 1
g37 24 4 4 1
g38 25 4 4 1
g39 25 8 8 1
g40 26 8 8 1
g41 29 4 4 1
g42 29 8 8 1
g43 31 4 1 4
g44 31 4 1 8
g45 32 4 1 4
g46 32 4 1 4
g47 33 8 1 4
g48 36 4 1 4
g49 43 4 1 4
g50 47 4 1 4
Cuadro 5. Propiedades de los gliders (parte final).
Con la diversidad de los gliders, se puede definir una clasificación por familias
o especies. De esta manera la tabla 6 presenta tres principales tipos de especies
de gliders en la regla espiral.
Especie glider
Primitivos o básicos g1 , g2 , g3 , g4 , g5 , g29
Compuestos g6 , g7 , g9 , g10 , g12 , g13 , g14 , g15 , g16 , g17 , g19 , g27 , g35
g8 , g11 , g18 , g20 , g21 , g22 , g23 , g24 , g25 , g26 , g28 , g30 ,
Con extensiones g31 , g32 , g33 , g34 , g36 , g37 , g38 , g39 , g40 , g41 , g42 , g43 ,
g44 , g45 , g46 , g47 , g48 , g49 , g50
Cuadro 6. Especies de gliders en la regla espiral.
94
(a) (b)
Figura 7. Configuraciones still life en la regal espiral.
(a)
(b)
(c)
(d)
(e)
Figura 8. Configuraciones de osciladores en la regla espiral.
95
3.2. Partı́culas estáticas: Still-life
La regla espiral tiene partı́culas estáticas primitivas conocidas como still life,
[18]. Dichas partı́culas pueden vivir en el espacio de evoluciones sin alteraciones.
La figura 7 muestra estas partı́culas.
El still life ‘e1’ (Fig. 7a) tiene una masa de 12 células; mientras que el segundo
still-life ‘e2’ (Fig. 7b) tiene una masa de 13. El segundo puede ser usado como
un contador binario para un dispositivo de memoria [2, 26], produciendo una
familia de configuraciones del still-life.
Una caracterı́stica importante es que ambas configuraciones de still-life tra-
bajan como “eaters”. Un eater es un tipo de still-life con la capacidad de eliminar
los glides no importando la dirección de donde provengan. Este tipo de partı́cula,
eventualmente llega a ser útil para el control de número de señales o valores en
un proceso especı́fico.
3.3. Partı́culas estáticas periódicas: Osciladores
Los osciladores son capaces de emerger en la regla espiral con facilidad; por
lo que es posible ver una interesante diversidad de partı́culas estáticas periódi-
cas. Estas son frecuentemente una composición de configuraciones de still life,
alternándose en on y off periódicamente.
La figura 8 presenta seis tipos de osciladores en la regla espiral. Estos son
compuestos por configuraciones fundamentales de still life; todos ellos oscilan y
cambian muy poco sus valores y sus estructuras.
oscillator mass period
o1 20 6
o2 20 6
o3 24 4
o4 24 4
o5 20 3
Cuadro 7. Propiedades de los osciladores: o1 (a), o2 (b), o3 (c), o4 (d), y o5
(e).
La tabla 7 muestra propiedades generales para cada oscilador de la figura
8. Además estos osciladores son capaces de trabajar como configuraciones de
eaters.
3.4. Glider guns
Una de las caracterı́sticas más notables en la regla espiral, es la diversidad
de glider gun que pueden aparecer en el espacio de evoluciones. Un glider gun
es una configuración que genera gliders periódicamente. En la literatura de los
96
Figura 9. Glider gun fijos en la regal espiral. Un número de guns no naturales
son presentados.
97
Figura 10. Glider Gun movibles en la regla espiral.
98
Figura 11. Glider gun movibles en la regla espiral.
99
autómatas celulares, la existencia de un glider gun representa la solución al
problema de crecimiento ilimitado [7].
La regla espiral tiene dos tipos de glider guns: fijos y en movimiento. Un
gun fijo no puede cambiar de posición dentro del espacio de evolución; mientras
un gun movible puede viajar a lo largo del espacio en una dirección generando
gliders.
La tabla 8 y Fig. 9 muestran las propiedades generales y la configuracón de
cada gun fijo en la regla espiral. Los guns producidos con mayor frecuencia en
la regla espiral con condiciones iniciales aleatorias son los gun6 y gun7. Estos
tienen una alta y baja frecuencia para generar gliders g2 y g1 respectivamente.
Mientras el gun6 produce seis g2 cada 6 generaciones, el gun7 emite seis g1 cada
22 generaciones (ver la tabla8).
gunproducción frecuencia periodo volumen gliders
emitidos
gun1 g1 1 6 15×15 1
gun2 g1 , g3 2 6 15×15 2
gun3 g1 , g2 , g3 3 6 14×15 3
gun4 3g1 , 2g2 5 12 16×17 3
gun5 5g1 5 12 19×17 3
gun6 6g2 6 6 8×9 6
gun7 6g1 6 22 12×12 6
gun8 3g1 , 4g2 7 12 14×14 4
gun9 3g1 , 2g2 , 2g4 7 12 15×17 4
gun10 5g1 , 2g5 7 12 15×15 4
gun11 13g1 , 4g5 17 30 15×17 4
Cuadro 8. Propiedades de los glider gun fijos en la regla espiral.
También la regla espiral tiene un número de glider guns movibles, general-
mente están formados por estructuras complejas. No obstante, los guns son muy
sensibles a cualquier perturbación, con su destrucción por consecuencia. Las fi-
guras 10 y 11 presentan la gran diversidad de glider gun movibles en la regla
espiral, existiendo 38 tipos diferentes.
4. Computación en la regla espiral
Mediante la manipulación de las partı́culas básicas que presenta la regla espi-
ral es posible implementar computación lógica universal, por medio de choques
de partı́culas, como se mostrará en la presente sección.
La caracterı́stica de los glider guns de este autómata que les permite lanzar
gliders en 6 direcciones puede llegar a ser una ventaja, pues se podrı́an procesar
6 señales al mismo tiempo, no obstante, por ahora sólo se considerará un solo
100
flujo; los flujos de gliders que no se utilicen serán eliminados mediante un eater
E1 . Un glider gun limitado en 5 de sus 6 flujos se puede apreciar en la figura 12.
Esto mismo se puede extender para el glider gun G2 .
Figura 12. Glider gun G1 con 5 flujos eliminados.
De la misma manera que en Life [7], en la regla espiral se representan unos
lógicos, ‘1’, con la presencia de gliders y ceros lógicos, ‘0’, con la ausencia de
los mismos. Ası́, utilizando el glider-gun G1 se puede representar una cadena
constante de información con 1’s. La manera de cambiar esta cadena y poder
hacerla más diversa es mediante el glider gun G2 . Al lanzar los gliders a una
frecuencia más baja es posible modificar el flujo de gliders del G1 para generar
cadenas de unos y ceros, un ejemplo de esto se muestra en la figura 13.
Figura 13. Flujo de gliders modificado.
101
La sincronización entre glider guns es una de las bases primordiales para
la creación de compuertas lógicas, no solo en la regla espiral, sino en cualquier
autómata, pues la computación está basada en las colisiones entre las partı́culas
y la reacción que estas colisiones producen [5], [15], [?], [13], otros expererimen-
tos recientes demuestran la implementacion de computaciones a través de la
interacción en la propagación de patrones [16], [15]. Después de observar la regla
espiral se notó una similitud entre las colisiones existentes entre gliders, dichas
colisiones se muestran en la figura 14. En la imágen se observan tres colisiones
diferentes, la colisión del inciso A tiene como reacción el cambiar de dirección
el glider proveniente del suroeste; en el inciso B se observa la aniquilación de
ambos gliders; el resultado de la colisión del inciso C es la eliminación de un solo
glider, mientras el otro sigue su curso normalmente. Estas y otras colisiones se
utilizan como función de procesamiento para la construcción de las compuertas
lógicas.
Otra caracterı́stica más a considerar son las partı́culas “excedentes”, es decir,
gliders que se generan y no son útiles para la computación propuesta, dichos gli-
ders son eliminados mediante eaters. Finalmente, para construir una compuerta
lógica y que su resultado sea fácilmente verificable es necesario construir un flujo
de entrada que contenga los bits requeridos para comprobar la tabla de verdad
de la compuerta implementada.
Dado que no es posible predecir el comportamiento general del autómata, se
realizaron una serie de pruebas empı́ricas para poder encontrar la implementa-
ción de las compuertas lógicas; ésto con ayuda de un simulador que permitı́a la
manipulación de los estados mediante una interfaz gráfica que fue desarrollado
para este fin.
Figura 14. Tipos de colisiones entre gliders.
Las compuertas implementadas mediante la regla espiral son: AND, OR y
NOT ası́, con estas compuertas la regla espiral posee una lógica universal. A lo
largo de la búsqueda se logró encontrar otras compuertas más, estas son: NOR,
XOR y XNOR.
102
AS
0 1
1 0
Cuadro 9. Tabla de verdad de la compuerta NOT.
[th]
Entradas Salidas
A B AND OR NOR XOR XNOR
0 0 0 0 1 0 1
0 1 0 1 0 1 0
1 0 0 1 0 1 0
1 1 1 1 0 0 1
Cuadro 10. Tablas de verdad para las compuertas AND, OR, NOR, XOR y
XNOR.
t
El orden cronológico de creación es el siguiente: NOT, AND, NOR y XNOR.
Debido a que se tenı́an las compuertas NOR y XNOR se hizo uso de la compuerta
NOT para de esta manera crear las compuertas OR y XOR. La interpretación
en el autómata celular de las compuertas lógicas se presenta a continuación:
La compuerta NOT está formada por dos glider-gun G1 y un glider-gun G2 ,
este último se utiliza para modificar la señal de entrada de la compuerta; se
observa la compuerta en la figura 15, donde A es el glider-gun que tiene el
flujo de entrada y S es el flujo de salida de la compuerta. La señal de entrada
es: 1100110; por lo que su flujo de salida es: 0011001.
En la compuerta AND, que se puede ver en la figura 16, se utiliza un glider-
gun G1 por cada señal de entrada, de igual manera, para modificar el flujo
de gliders se requiere un glider-gun G2 por cada flujo de entrada; el flujo A
es: 1111010; para la entrada B se utiliza: 1101100; el resultado de aplicar la
operación AND se muestra con la salida S y es: 1101000.
Para construir la compuerta OR se partio de la NOR, misma que requiere
tres glider-guns G1 , dos para las entradas A y B, y uno que forme parte del
proceso de transformación de los gliders para generar el resultado; también
se utilizan cuatro G2 para modificar los flujos de entrada, dos por cada flujo.
Las cadenas de bits que representan los flujo de los gliders de entrada son:
1100100 para la entrada A y 1101110 para la entrada B, siendo el resultado:
1101110; posteriormente se paso a utilizar la compuerta NOT, ası́ obteniendo
la compuerta OR. En la figura 17 se puede observar la compuerta OR.
103
Figura 15. Compuerta NOT en la regla espiral.
5. Conclusiones
A través de los diagramas de de Bruijn se realizó una búsqueda exhaustiva
de configuraciones resultantes de la interacción entre células, obteniendo como
resultado matrices de de Bruijn, las cuales muestran las interacciones locales de
las células en el autómata, para arrojar posibles partı́culas existentes.
Con lo anterior, se muestra que los diagramas de de Bruijn son una herra-
mienta muy eficaz en el análisis de una regla de autómata celular, no obstante,
la complejidad computacional que implica para obtener resultados es lo que deja
abierto el siguiente problema:
Considerando que los diagramas de de Bruijn muestran el comportamiento
local de la regla y con el fin de obtener resultados de mayor interés, es necesario
realizar traslapes de un mayor número de células, o hacia una evolución para
un tiempo n, lo que a su vez eleva exponencialmente el aspecto computacional,
ası́ como la generación y visualización de los diagramas.
Obteniendo resultados en este sentido, los diagramas de de Bruijn podrı́an
llegar a ser utilizados de manera eficiente para encontrar todas las configuracio-
104
Figura 16. Compuerta AND en la regla espiral.
105
Figura 17. Compuerta OR en la regla espiral.
106
nes tanto movibles como estáticas del autómata, siempre limitados al tamaño
de las subvecindades estudiadas.
Por otro lado, el análisis de la regla espiral de manera experimental ha en-
contrado una diversidad de partı́culas las cuales muestran que las colisiones
entre ellas, ası́ como sus reacciones, hacen posible implementar computación;
también, se ha demostrado la lógica universal de la regla al tener las tres com-
puertas lógicas básicas: AND, OR y NOT. Derivado de estas construcciones se
logró implementar otras compuertas que serı́an de ayuda en la búsqueda de cons-
trucciones más complejas. Por lo que un objetivo a futuro es la búsqueda de la
construcción de un medio sumador utilizando la compuerta XOR y AND que se
tienen actualmente. Incluso con la posibilidad de utilizarlas para construir dis-
positivos más complejos como simular una función computable completa; incluso
cualquier otro sistema no-lineal con dicha dinámica.
Los espacios de evolución utilizados durante las pruebas y construcciones
mostradas en el presente trabajo son de 160 × 160 y 240 × 240 células, lo que
hace pensar que al realizar construcciones derivadas de las actuales, serı́a ne-
cesario utilizar espacios de evoluciones más amplios, lo que conlleva un mayor
procesamiento y una visualización menos clara; es por eso, que se propone el
diseño de un simulador con herramientas de computación de alto rendimiento.
Referencias
[1] Adamatzky, A. (2002). Collision-Based Computing, Springer-Verlag. London.
[2] Adamatzky, A., Martı́nez, G. J., Zhang, L., & Wuensche, A. (2009). Operating
binary strings using gliders and eaters in reaction-diffusion cellular automaton,
Mathematical and Computer Modelling 52, 177-190.
[3] Adamatzky, A. & Wuensche, A. (2006). On spiral glider-guns in hexagonal cellular
automata: activator-inhibitor paradigm. International Journal of Modern Physics
C, 17(7), 1009-1026.
[4] Adamatzky, A. & Wuensche, A. (2006). Computing in Spiral Rule Reaction-
Diffusion Hexagonal Cellular Automaton, Complex Systems, 16(4), 277-297.
[5] Adamatzky, A., Wuensche, A., & Costello, B.De Lacy . (2006).Glider-based com-
puting in reaction-diffusion hexagonal cellular automata. Chaos, Solitons & Frac-
tals, 27(2), 287-295.
[6] Adamatzky, A. & Teuscher, C. (2006). From Utopian to Genuine Unconventional
Computers: Splendeurs et miseres du calcul peu usuel, Luniver Press.
[7] Berlekamp, E. R., Conway, J. H., & Guy, R. K. (1982). Winning Ways for your
Mathematical Plays, Academic Press, Volumen 4, capı́tulo 25, 927-961.
[8] Basurto, R. y León, P. A. (2009). Spiral Simulator, http://uncomp.uwe.ac.uk/
genaro/Papers/Thesis.html.
[9] Basurto, R. y León, P. A. (2009). Computación basada en reacción de partı́culas
en un autómata celular hexagonal, Tesis de Licenciatura, Escuela Superior de
Cómputo del Instituto Politécnico Nacional, México, D.F. http://uncomp.uwe.
ac.uk/genaro/Papers/Thesis.html.
[10] Gutowitz, H. (1991). Cellular Automata, Theory and Experiment, The MIT Press.
[11] Ilachinski, A. (2001). Cellular Automata: A Discrete Universe, World Scientific
Press, Singapore.
107
[12] León, P. A., Basurto, R., Martı́nez, G. J., & Seck-Tuoh-Mora, J. C. (2011). Com-
plex Dynamics in a Hexagonal Cellular Automaton, Proceedings of the 2011 In-
ternational Conference on High Performance Computing & Simulation (HPCS
2011), 750-756.
[13] Martı́nez, G. J., Adamatzky, A., & McIntosh, H. V. (2006). Phenomenology of
glider collisions in cellular automaton Rule 54 and associated logical gates. Chaos,
Fractals and Solitons, 28, 100-111.
[14] Martı́nez, G. J., McIntosh, H. V., Seck-Tuoh-Mora, J. C., & Vergara, S. V. C.
(2007). Rule 110 objects and other constructions based-collisions, Journal of Ce-
llular Automata, 2(3), 219-242.
[15] Martı́nez, G. J., Adamatzky, A., McIntosh, H. V., & Costello, B. D. L. (2008).
Computation by competing patterns: Life rule B2/S2345678. Automata 2008:
Theory and Applications of Cellular Automata, Luniver Press, 356-366.
[16] Martı́nez, G. J., Adamatzky, A., & Costello, B. D. L. (2008). On logical gates in
precipitating medium: cellular automaton model. Physics Letters A, 1(48), 1-5.
[17] McIntosh, H. V. (1988). A Zoo of Life Forms, http://delta.cs.cinvestav.mx/
~mcintosh/cellularautomata/Papers.html.
[18] McIntosh, H. V. (1998). Life’s Still Lifes, http://delta.cs.cinvestav.mx/
~mcintosh/cellularautomata/Papers.html.
[19] McIntosh, H. V. (2009). One Dimensional Cellular Automata, Luniver Press.
[20] Toffoli, T. & Margolus, N. (1987). Cellular Automata Machines, The MIT Press,
Cambridge, Massachusetts.
[21] Ralston, A. (1982). De Bruijn sequences-A Model Example of the Interaction
of Discrete Mathematics and Computer Science. Mathematics Magazine, 55(3),
131-143.
[22] von Neumann, J. (1966). Theory of self-reproducting automata, Urbana and Lon-
don, University of Illinois.
[23] Wuensche, A. (2005). Glider dynamics in 3-value hexagonal cellular automata:
the beehive rule. Int. J. of Unconventional Computing, 1(4), 375-398.
[24] Wuensche, A. (2011). Exploring Discrete Dynamics, Luniver Press. Software “Dis-
crete Dynamics Lab (DDLab)”, http://www.ddlab.org.
[25] Wolfram, S. (2002). A New Kind of Science, Champaign, Illinois, Wolfram Media
Inc.
[26] Zhang, L. (2010). The extended glider-eater machine in the Spiral rule, Lecture
Notes in Computer Science, 6079, 175-186.
Algebraic relations for computations with Rule
110 cellular automaton
José Manuel Sausedo Solorio
Laboratorio de Fı́sica Avanzada
Universidad Autónoma del Estado de Hidalgo, Hidalgo, México.
[email protected] Resumen This work1 deals with collisions of periodic structures (known
as gliders) generated by the evolution of the one-dimensional Rule 110
cellular automaton. A specific value associated with each glider and an
algebraic equation that describes the collision between two gliders are
shown. Because the products of the collision between two gliders may
result in no gliders or one, two or more gliders, that equation states that
the total sum of the associated values corresponding to colliding gliders
equals the sum of the values of the gliders which are products of the
collision. Moreover, an analogy is proposed between the glider collisions
and the collisions of physical particles with the equation corresponding
to colliding gliders being similar to the equation of energy conservation in
physics. In this scheme, even without carrying out the temporal evolution
for a collision, it can be determined if a possible combination of resulting
gliders accomplishes the equation corresponding to that collision.
1. Introduction
In recent years, cellular automata (CA) have gained attention by proving
their capacity for analyzing complex systems, generating new concepts, universal
computations, and even their application to physical systems. Hence the charac-
terization of these types of systems is very important, with specific examples of
CA applications as [1]: The characterization of complex dynamic systems based
on statistical properties, proving criteria for self-organization using statistical
complexity in models of excitable media and the behavior of physical systems
without taking into account small-scale details [2, 3]. Also, there have been
reports of particle-like objects that propagate in several spatially-extended dy-
namic systems and interact among them [10]. In particular, the one-dimensional
Rule 110 cellular automaton2 has been widely studied in the last decade becau-
se of its capacity to produce universal complex behaviors; however a cell takes
into account the actual state of just three neighborhoods and each cell has only
two states [5]. Moreover, it was first conjectured by Stephen Wolfram that this
1
Main results already have been published in: IJMPC Vol. 21 No. 7, 2010.
2
From here onwards, we will just use “Rule 110” to refer to Rule 110 cellular auto-
maton.
110
cellular automaton may be universal. This statement was proved by Matthew
Cook implementing a cyclic tag system using Rule 110 [10, 5].
A distinctive feature of the Rule 110 is the formation of a periodic background
in space and time which is called ether. In conjunction with this regular mosaic,
other periodic structures known as gliders are formed as time evolves. Such
gliders move with constant lateral displacement. However, such displacement
may be different between one glider and another, resulting in collisions between
them.
Collisions may yield other or even the same combinations of gliders also
called products here. This feature has been studied to both obtain a theoretical
understanding of this behavior and implement unconventional computer systems
[6, 7].
Most of the work of Rule 110 has been done from the perspective of Com-
puter Theory or from using Complex Systems analysis [8]. Moreover, there are
previous research findings for Rule 110 with a general scope, which have consi-
dered algebraic features of cellular automata to provide invariant attributes in
the sense of group theory [9, 10]. Collisions among gliders have been analyzed
by controlling their relative period as a way of producing them more easily [11].
However, to date there has been a lack of published research on the characteri-
zation of gliders in this cellular automaton, which considers them as interacting
objects.
In general according to Rule 110, gliders may be generated with specific initial
conditions or as products of collisions with other gliders [5, 12]. However in this
work, it is considered gliders which have been created from initial conditions
only. The aim of this work is to state a quantitative characterization of the
structures from the Rule 110 and to establish relations derived from collisions
among them. The result is stated as an algebraic system capable to elucidate
computations. The whole analysis is based on computational experimentation
by causing two gliders to collide and observing the products of the collision.
The remainder of the paper is organized as follows: Section 2 is devoted to
exposing the basic concepts of one-dimensional cellular automata. Section 3 ex-
plains how collisions among gliders are expressed in terms of algebraic equations.
Section 4 provides values for the found constants as well as their interpretation.
Section 5 states the conclusions reached about the utility of the constant asso-
ciated with each glider.
2. Theory
In general, cellular automata are defined by means of a tuple {Σ, r, φ, C},
where Σ is a finite set of allowed states for each cell, r ∈ Z+ is the number of
neighbors with respect to each side of a cell, φ : Σ 2r+1 → Σ is the evolution
rule determining the next state for every cell as a function of its own state and
the states of its 2r neighboring cells at current time, and C : Zm → Σ is the
initial configuration, Zm = {0, . . . , m − 1}, and m ∈ Z+ is the size of C. Hence,
C contains the initial state of every cell at the starting time of the evolution. In
111
this way, CA are dynamic systems, not only with discrete spatial domain, but
also with discrete temporal domain, where their spatial evolution is carried out
through interactions with their nearest neighbors.
Cuadro 1. Evolution for cellular automaton based on Rule 110.
Neighborhood Evolution Neighborhood Evolution
000 0 100 0
001 1 101 1
010 1 110 1
011 1 111 0
The particular case being analyzed is a cellular automaton whose rule of
evolution is the Rule 110 defined in Table 9. For this rule, the set of states is
Σ = {0, 1} and r = 1 (a single neighbor to each side of the cell), therefore an
initial configuration may be specified by a one-dimensional finite chain of 0’s and
1’s. A particular evolution can be seen in Fig. 1.
Figura 1. A typical glider (darker structure) moving through ether (light gray
color). Temporal evolution follows the downward direction. The detail shows
ether structure.
In this cellular automaton there are 14 known individual gliders represented
by the set M = {A, B, B̄, B̄ 8 , C 1 , C 2 , C 3 , D1 , D2 , E, Ē, F, G, H} plus a glider
called Gun, which produces several of the gliders of M as time evolves. So this
112
glider is not considered as individual structure [5, 6]. Here, we consider only
binary collisions among gliders belonging to M .
In order to generate ether as well as a specific glider, it is necessary to choose
the appropriate initial conditions for the beginning of the evolution. In particular,
the ether in Rule 110 is generated by a sequence consisting of 14 cells. In the
case of gliders, the length of the sequence is variable, for example, to generate
gliders A, C1 and E, the lengths of the ships are 6, 23, and 29 cells respectively.
It is possible to generate gliders with more than one set of initial conditions3 ; for
example, glider A can be generated with the following two sequences (phases)
of 6 cells: 111110, and 100011 [6].
Most of the possible combinations4 of binary collisions among gliders of M
have been studied and classified previously in atlases and catalogs [10, 5, 13].
However, up to now there has not been a collision-based analysis that provides
features useful for exploring the underlying quantitative properties from the
interaction among gliders.
3. Algebraic and production relations for collisions
A schematic representation of a binary collision is shown in Fig. 2, where
initial (two) gliders µi and µj collide to produce the gliders labeled as µ1 , µ2 ,
µ3 and so on, appearing at the bottom of the figure. A collision may generate
no gliders, one, or several gliders as its products.
Figura 2. Schematic representation for a binary collision between two gliders
µi and µj . The resulting products are labeled as µ1 , µ2 , and µ3 .
Equation (1) highlights the notation used to specify a collision between two
incident gliders. Labels on the left-hand side correspond to the colliding gliders,
3
In the terminology of cellular automata, it is called phase to each of those sequences.
4
Although, it is highlighted bellow some collisions that are not found in catalogs yet.
113
whereas labels on the right-hand side indicate the products. Here, this equation
is called a production relation.
µi ⊕ µj → µ1 + · · · + µn (1)
where µk ∈ M and k ∈ N. Symbol ⊕ indicates the interaction (collision) between
gliders µi and µj , while the plus sign ( + ) represents the collection5 of resulting
products labeled as µ1 , µ2 , . . . , µn .
With 14 gliders in M , there are 91 (14 × 13/2) possible results of binary
collisions. This is because for two gliders µ1 , µ2 ∈ M under this notation, the
result of µ1 ⊕ µ2 is the same as for µ2 ⊕ µ1 . Furthermore, some gliders have the
same horizontal speed, meaning that they travel in parallel, hence they will never
collide. The subsets of gliders that move in parallel are {C1 , C2 , C3 }, {B, B̄, B̄8 },
and {D1 , D2 }. Additionally, there are some soliton-like binary collisions, i.e.,
interactions in which at least one of the gliders remains without change after
collision. An example of this type of collision process is6 A ⊕ Ē → A + Ē.
Figura 3. The binary collision between gliders C 1 and B̄ with a productive
relation denoted by C 1 ⊕ B̄ → 2B + F . The corresponding algebraic equation
proposed is ξC 1 + ξB̄ = 2ξB + ξF .
5
Here, we use the sign of summation, instead of a comma as in the symbology of set
theory.
6
Hereafter the symbols corresponding to gliders on both sides of a production rela-
tion are written in alphabetical order, regardless of its position when a collision is
observed in the time evolution graph.
114
A typical example of a binary collision can be observed in Fig. 3, where
gliders C1 and B̄ collide, yielding as products two7 B gliders and one F glider
(B̄ ⊕ C1 → 2B + F ). In this work it is proposing constants ξX associated to
each glider and an algebraic equation corresponding to each production relation.
For the example in this paragraph, constants and relation can be written as
ξB̄ + ξC 1 = 2ξB + ξF .
After consideration, a total of 83 pairs of colliding gliders can be listed which
are represented as production relations in Table 2. In this table, the Φ symbol is
used to denote that no particle is obtained after a collision, being its associated
constant equal to zero (ξΦ = 0).
Cuadro 2. Production relations for the collisions between two gliders.
A⊕B → Φ A ⊕ B̄ → Φ A ⊕ B̄ 8 → C2 A ⊕ C1 → F
A ⊕ C2 → C1 A ⊕ C3 → C2 A ⊕ D1 → C2 A ⊕ D2 → D1
A ⊕ E → D1 A ⊕ Ē → A + Ē A ⊕ F → 4B + C2 A ⊕ G → Ē + C1
A ⊕ H → C2 B ⊕ C1 → C2 B ⊕ C2 → D1 B ⊕ C3 → E
B ⊕ D1 → E B ⊕ D2 → A + Ē B ⊕ E → E2 B ⊕ Ē → 2A + 3B + Ē
B ⊕ F → 2A + D1 B ⊕ G → G2 B ⊕ H → Ē B̄ ⊕ C1 → 2B + F
B̄ ⊕ C2 → 3A + Ē B̄ ⊕ C3 → 2A + Ē B̄ ⊕ D1 → E B̄ ⊕ D2 → A + Ē
B̄ ⊕ E → A + 4B + C 2 B̄ ⊕ Ē → 4A + 5B + Ē B̄ ⊕ F → A + 4A + Ē B̄ ⊕ G → 4B
B̄ ⊕ H → A + 2C2 + Ē B̄8 ⊕ C1 → A + 2Ē B̄8 ⊕ C2 → 2A + 3B + 2C2 B̄8 ⊕ C3 → 2A + 3B
B̄8 ⊕ D1 → A + B + B̄ B̄8 ⊕ D2 → 2A + 4B B̄8 ⊕ E → 2A + B + G B̄8 ⊕ Ē → 3A + 2Ē
B̄8 ⊕ F → 2A + 2B + C2 + B̄ + F B̄8 ⊕ G → 4A + 4B + Ē B̄8 ⊕ H → 2A + C2 + Ē C1 ⊕ D1 → 4A + 3B
C1 ⊕ D2 → 2A + 2B C1 ⊕ E → A + Ē + F C1 ⊕ Ē → C1 + Ē C1 ⊕ F → C1 + F
C1 ⊕ G → 3A + F C1 ⊕ H → 3A + 3B + 2C2 C2 ⊕ D1 → 2A + 2B C2 ⊕ D2 → A + 2B
C2 ⊕ E → A + 2B C2 ⊕ Ē → 3B C2 ⊕ F → C 1 + B̄ + F C2 ⊕ G → 3B + C 2
C2 ⊕ H → 3A + 2B + B̄ C3 ⊕ D1 → A + 2B C3 ⊕ D2 → A + 3B C3 ⊕ E → A + G
C3 ⊕ Ē → 2C1 C3 ⊕ F → C1 + C2 C3 ⊕ G → Ē C3 ⊕ H → 2B + B̄ + C3 + F
D1 ⊕ E → 2B D1 ⊕ Ē → 4B D1 ⊕ F → 2A D1 ⊕ G → Ē
D1 ⊕ H → A + D1 + E D2 ⊕ E → G D2 ⊕ Ē → 5B D2 ⊕ F → 2A + B
D2 ⊕ G → A + 3B + C2 + G D2 ⊕ H → C1 + Ē E ⊕ F → 4A + 3B E⊕G → F
E ⊕ H → 5A + 2Ē Ē ⊕ F → B Ē ⊕ G → 4A + Ē Ē ⊕ H → A + 3B + C1 + Ē
F ⊕ G → 3A + Ē F ⊕ H → F + D1 G ⊕ H → A + 2Ē + F
Most pairs of colliding particles can be found to collide in more than one
way. For example, the collision A ⊕ B̄8 → C2 listed in Table 2, it can also be
found as A ⊕ B̄8 → 4A + Ē. Thus, it is possible at times for collisions to result
in more than one combination of particles. For simplicity, in Table 2 only one
possibility of these combinations has been written for each pair, the rest can be
found elsewhere [13]. In order to get different results from the collision of a pair
of gliders, they must collide with a different contact point or relative phase. This
is achieved by generating the gliders with different initial conditions8 .
7
To verify that the structure labeled with 2B actually consists of two B particles,
there are two ways to proceed: One, by performing an amplification of the figure
and comparing with the corresponding tilling of glider B [13]. Two, by causing a
collision of a known particle (i.e. A) with this structure and observing that one of
the B particles is eliminated with A (according to the production: A ⊕ 2B → B),
while the remaining B glider continues its path without change.
8
The ways that a glider can be generated are called Periods, which are used to control
the spatial contact point at which gliders collide.
115
4. Results
In general, for the production relation in Eq. (1), the following corresponding
algebraic equation is proposed:
ξµi + ξµj = ξµ1 + · · · + ξµn (2)
where each ξµk is the unknown glider constant associated to glider µk . In both
sides of this equation, the plus sign means algebraic summation of the constants,
so for each production relation in Table 2, it is possible to write a corresponding
linear algebraic equation involving these unknowns ξµ . All of these algebraic
equations form a system of linear equations (a total of 83). Since the system has
more equations than variables, this is an over-determined system. The full solu-
tion was obtained by a trial-and-error procedure, assigning an arbitrary value9
to some ξµ ’s, and then obtaining the values for the rest of them. The resulting
values obtained for each unknown are shown in Table 3. For example, for the
collision in Fig. 3 ( ξC 1 + ξB̄ = 2ξB + ξF ), by replacing values from that table in
the corresponding algebraic equation ξC 1 + ξB̄ = 2ξB + ξF , we get 3+ (-2) on the
left side and 2(-2)+5 on the right side, ensuring equality. It must be emphasized
that the origin of each ξµ is geometric and it is related to a relative shift of the
ether pattern in both sides of the traveling glider.
Cuadro 3. Values of the unknowns found for each glider of the set M .
ξΦ = 0 ξA = 2 ξB = −2 ξB̄ = −2 ξB̄ 8 = −1
ξC 1 = 3 ξC 2 = 1 ξC 3 = −1 ξD1 = −1 ξD2 = −3
ξE = −3 ξĒ = −7 ξF = 5 ξG = −6 ξH = −1
As a new result, included in Table 2 is the collision B ⊕ F → 2A + D1 not
previously catalogued in any atlas for Rule 110 [13]. Also two structures are
not included in the set M : E2 and G2 (not catalogued as individual gliders),
appearing as collision products in B ⊕ E → E 2 and B ⊕ G → G2 . Moreover,
the values E2 = −5 and G2 = −8 have been found for these structures, both
consistent with the system of linear algebraic equations proposed.
Table 2 shows 83 collisions, for 80 of them it is possible to write an algebraic
equation in the form of Eq. (2). But for the remaining three (A ⊕ F → 4B + C2 ,
E ⊕ G → F , and Ē ⊕ G → 4A + Ē), no set of gliders has been found or reported
whose constants fulfill the corresponding algebraic equations. For those cases it
is proposed here a constant10 α = 14 to include in each equation in the following
form,
9
We start by considering the equation ξA + ξB = 0 corresponding to production
relation A ⊕ B → Φ, in order the numeric solution be self-consistent.
10
Here, it is considered α as a Structure Constant due to its origin from the ether
structure.
116
ξA + ξF = 4ξB + ξC2 + α
ξE + ξG = ξF − α (3)
ξĒ + ξG = 4ξA + ξĒ − α.
As a step in the process of solving this problem, we have determined that
the respective balance equations are fulfilled if such constant is added to or
subtracted according to these equations. In Eqs. (3), the value of α is equal
to the length of the sequence that generates ether. In fact, the whole algebraic
system has an infinite number of solutions, the shown in Table 3 is just one
particular solution.
Whenever a glider goes through ether, the ether pattern has a relative displa-
cement of one side of the glider with respect to the other side. Figure 4 shows the
way such a displacement can be detected. In this figure there are three reference
lines superimposed on the ether pattern. Two of the lines are vertical and one is
horizontal. In Fig. 4a, the two intersections of the line match the ether pattern
at the same relative point; whereas in Fig. 4b as glider C1 travels down through
the ether, there is a shift in the ether pattern. It can be seen as indicated by the
arrow, that the ether pattern to the right of the figure is no longer in the same
position as before, relative to the intersection of the corresponding lines. Such
displacement depends on each glider. Moreover, if the two gliders have the same
ξµ , the ether experiences the same shift.
Figura 4. Comparison of the displacement produced in ether by a traveling
glider. Intersections of horizontal and vertical lines serve as references to observe
the shift on ether. On the left, ether is depicted alone. On the right, glider
C1 travels in a downward motion. The arrow points to the intersection which
demonstrates the ether’s shift.
Table 4 shows the horizontal an vertical displacements (δx, δy) of each glider
µ, the ether displacement graph and the corresponding constant ξµ . The same
cell11 was taken as reference per Fig. 4a, and the displacement is counted by
the number of cells with the same signs as used in the Cartesian Coordinate
11
Indicated by a small white square.
117
System to specify distances. The column of constants ξµ taken from the set of
solutions already encountered by each glider 1, -1, 2, -2, 3, -3, 5, -6, -7 in Table
3. The gliders with the same value-ξ, displace the ether in the same magnitude
and direction and are found in the table on the same line. This table shows only
one of an infinite number of ether displacements. Because the ether pattern is
periodic, a displacement, as an example, (δx = +4, δy = +1), takes the reference
cell to the same location as with (δx = +2, δy = −3).
Cuadro 4. Displacement of the ether-pattern and values associated with each
glider.
Displacements behave in the same way as the components of a two dimen-
sional vector. As an example, from Table 4, for glider C1 (with ξC 1 = +3) the
cell of reference, undergoes a displacement of (δx1 = −1, δy1 = +1), and for D2
(with ξD2 = −3) the displacement is (δx2 = +1, δy2 = −1). If we cause C1 to
collide with D2 , the rule of production for this collision and the corresponding
algebraic equation are C1 ⊕ D2 → 2A + 2B, and ξC 1 + ξD2 = 2ξA + 2ξB . By
118
replacing the values of every ξ on the last equation, (+3)+(-3)=2(2)+2(-2), re-
sulting 0 ≡ 0. Observe that the summation of the displacements of the initial
gliders vanishes too [(+3)+(-3)=0]. Because values cancel on both sides of the
algebraic equation, it is expected ether does not suffer any displacement, this
can be seen in Fig. 5. Therefore displacements (δx, δy) behave in an arithmetical
manner consistent with the ξµ associated with glider-µ. This is the way in which
each displacement connects with its corresponding glider constant.
Figura 5. Collision between gliders C1 and D2 , the evolution is in accordance
with the rule of production: C1 ⊕ D2 → 2A + 2B as seen completely in the box.
In the enlarged part of the figure, with the help of the previously calibrated lines,
one can observe that the ether is not displaced.
Although previously mentioned that the origin of the constants associated
with each glider is of a geometric character, there is no metric discovered yet to
establish a formal relationship a displacement (δxµ , δyµ ) and the corresponding
ξµ in the form F (δxµ , δyµ ) ∼ f (ξµ ).
5. Concluding remarks
In this paper, we suggest that:
For each glider µ ∈ M , there is a quantity ξµ which fulfills a balanced
algebraic equation.
Each collision between two gliders corresponds to a balanced equation. This
is a linear algebraic relationship with the unknowns being the ξµ ’s. On the
left-hand side of the equation, the incident gliders are represented; on the
right, the resulting gliders.
119
The numeric quantity ξµ associated with each glider generated by Rule 110
represents a shift in the ether pattern.
Constants and algebraic relations can be useful for establish a systems ca-
pable to perform computations.
It is possible to use the value found for each glider and its related equations to
construct an algebraic system valid for collisions among gliders. It is noteworthy
that, with this tool and even without the temporal evolution, the manner in
which the ether is displaced can be established, merely by knowing the gliders
involved in the collision.
With respect to the balanced equations contained in Eq. (3), the addition
or subtraction of a constant should not affect the validity of the solution seen
in Table 3, because this is a particular solution. We consider the failure to find
such sets of gliders does not detract from the usefulness of these results. We
must wait for the necessary collisions to complete this scheme can be found.
Acknowledgments
The author wishes to express his gratitude to U.A.E.H. for the support given
to realize this work; to Genaro J. Martı́nez for his interest in this problem and
his many useful suggestions and a special thanks to J. C. Seck-Tuoh-Mora, for
discussing the results and reviewing the entire manuscript.
Referencias
[1] A. Shreim, P. Grassberger, W. Nadler, B. Samuelsson, J. E. S. Socolar, & M.
Paczuski, Phys. Rev. Lett. 98, 198701 (2007).
[2] C. R. Shalizi, K. L. Shalizi, & R. Haslinger, Phys. Rev. Lett. 93, 118701 (2004).
[3] N. Israeli & N. Goldenfeld, Phys. Rev. E 73, 026203 (2006).
[4] S. Wolfram, A New Kind of Science (Wolfram Media, Illinois, 2002).
[5] M. Cook, Complex Systems 15 (2004), p.1.
[6] G. J. Martı́nez, H. V. McIntosh, & J. C. Seck-Tuoh-Mora, Int. J. Unconv. Comp.
2 (2006).
[7] A. Adamatzky (Ed.), Collision-Based Computing (Springer, 2002).
[8] L. Landau & E. Lifshitz, Curso abreviado de fı́sica teórica, Ed. Mir (Vol. 1, Moscu
1971).
[9] M. Pivato, Nonlinearity 15 (2002) p. 1781.
[10] M. Pivato, Ergod. Th. and Dynam. Sys. 26 (2006), p. 1.
[11] G. J. Martı́nez, H. V. McIntosh, & J. C. Seck-Tuoh-Mora, Lect. Notes in Comp.
Sc., 2801 (2003) p. 175.
[12] X. B. Li, R. Jiang, & Q. S. Wu, Phys. Rev. E, 68 016117 (2003).
[13] G. J. Martı́nez & H. V. McIntosh (2001) ATLAS: Collisions of gliders as phases
of ether in rule 110, http://uncomp.uwe.ac.uk/genaro/Papers/Papers_on_CA_
files/ATLAS/bookcollisions.html.
Modelando la evolución de una red compleja con
autómatas celulares
Andrés Anzo Hernández, Juan Gonzalo Barajas Ramı́rez
IPICYT, División De Matemáticas Aplicadas
San Luis Potosı́, S. L. P., México. C.P. 78216.
{andres.anzo,jgbarajas}@ipicyt.edu.mx
Resumen Las redes del mundo real evolucionan: nodos y enlaces apa-
recen y desaparecen, los enlaces cambian su peso, dirección, etc. En este
trabajo proponemos un modelo de evolución en redes que consiste en
cambiar la conexión de los enlaces mediante reglas de Autómatas Celu-
lares (AC), unidimensionales con frontera periódica. La idea principal en
este modelo es asociar en cada paso del tiempo, el estado binario de las
celdas del AC y los enlaces de la red (presente/ausente). De esta forma se
establece un proceso de cambio estructural en la red en el cual, el estado
de cada enlace al tiempo t + 1, depende de su propio estado y el del sus
vecino al tiempo t.
1. Introducción
Una de las propiedades más importantes de las redes del mundo real es la
capacidad de cambiar su estructura. Estos cambios llamados evolución estructu-
ral, incluyen entre otros procesos el aumento y disminución de nodos y enlaces,
el ajuste en el peso y la dirección de sus enlaces, ası́ como procesos de recablea-
do. Todos estos mecanismos de evolución estructural pueden ocurrir de manera
simultánea lo que resulta complicado de describir en forma precisa. Es particular-
mente difı́cil determinar cuales son las condiciones necesarias para disparar estos
cambios estructurales en un tiempo especı́fico. Las modificaciones estructurales
a lo largo del tiempo permite a las redes complejas del mundo real evolucionar
hacia formas que beneficien alguna funcionalidad dada. Estudios empı́ricos de
redes del mundo real de diferentes naturalezas, como el Internet, WWW, las
redes de colaboraciones cientı́ficas, etc., han mostrado que independientemente
de su naturaleza, estas redes comparten caracterı́sticas estructurales tales como
los efectos de mundo pequeño [1] y de escala-libre [2]. Esto último sugiere, más
no demuestra, la existencia de mecanismos comunes que generan algunos de los
fenómenos observados en estas redes.
Para capturar los mecanismos esenciales que dan lugar a las propiedades
observadas en redes del mundo real se proponen modelos matemáticos que per-
miten estudiar teóricamente la evolución estructural de una red. Estos modelos
no tratan de emular con exactitud todos los procesos ocurridos durante su evolu-
ción, si no que, proponen mecanismos hipotéticos que al ser aplicados en forma
122
recursiva un cierto número de veces, se obtienen propiedades estructurales simi-
lares a las redes estudiadas. Cuando estos modelos simplificados capturan alguna
de las caracterı́sticas comunes de las redes del mundo real se obtiene una pista
sobre cuales son los mecanismos de cambio que rigen la evolución de las redes
complejas. Un modelo de evolución de redes particularmente importante es el
propuesto por Barabasi-Albert (BA) en 1999 [2]. El modelo BA inicia con un
número pequeño (m0 ) de nodos, y en cada paso de tiempo son aplicados los
siguientes mecanismos: crecimiento y enlace preferencial. El crecimiento consiste
en incrementar un nuevo nodo con m (≤ m0 ) enlaces que conectarón al nuevo
nodo con m nodos presentes en la red. El mecanismo de enlace preferencial esta-
blece que el nuevo nodo se conectará con una mayor probabilidad con aquellos
nodos que tengan un número grande de conexiones, es decir, la probabilidad de
conexión entre el nuevo nodo y el nodo i presente en la red, tienen una depen-
dencia lineal con el grado de nodo ki . Las simulaciones numéricas muestran que
al aplicar estos mecanismos de forma recursiva un número grande de pasos de
tiempo, la red evoluciona hasta alcanzar una estructura tal que, la distribución
de la probabilidad del grado de nodo sigue una ley de potencias con exponente
γ = 3. Las redes con esta estructura particular son llamadas redes de escala-libre
y se distinguen principalmente por la presencia de nodos concentradores (nodos
con un gran número de conexiones).
Un gran número de las redes estudiadas empı́ricamente son de escala-libre,
por lo que los mecanismo de crecimiento y enlace preferencial, propuestos en el
modelo BA, nos dan una pista sobre los procesos evolutivos en redes del mundo
real. Sin embargo, estos mecanismos no toman en cuenta los procesos dinámicos
internos para determinar como evoluciona la red, en cierto sentido, los mecanis-
mos del modelo BA pueden verse como reglas externas a la red. En contrasentido,
recientemente se han propuesto modelos de evolución de redes basados precisa-
mente en los procesos dinámicos internos. Un ejemplo es el modelo propuesto
por H. Sayama y C. Laramee en [4], en el cual la evolución es determinada por
mecanismos locales en términos de la dinámica de cada nodo en una vecindad.
En este modelo se establece un ciclo de retroalimentación entre la dinámica de
los nodos y los mecanismo de evolución estructural. A este tipo de modelos se
les ha dado el nombre de Redes Co-Evolutivas Adaptables (RCA) [3].
En un modelo RCA, la dinámica de un nodo depende del estado de sus veci-
nos, lo cual guarda una estrecha similitud con el concepto de autómata celular
(AC). En particular, [4] modela una red con una estructura dada mediante un
AC en el cual los nodos se representan como celdas, y las conexiones entre los
nodos describen las vecindades. En cada instante de tiempo, conforme se actua-
lizan los estados de los nodos, la co-evolución de la red se describe mediante
reglas locales que determinan cuando y como se activan mecanismos de cambio
estructural como el aumento o disminución de nodos, aparición y desaparición
de enlaces (realambrado), el aumento o disminución de la fuerza de conexión,
entre otros. Desde otra perspectiva, Smith et al en [5], propone un modelo donde
la co-evolución de la red se basa en las reglas de un AC. En el modelo propues-
to, para una red con un número fijo de nodos, el enlace que une al i-ésimo con
123
el j-ésimo nodo al tiempo t + 1 se conecta o no de acuerdo con una regla lo-
cal, por ejemplo, si la suma de los correspondientes grados de nodo al tiempo
t es mc , no se conectan, y en caso contrario se conectan. El autor llama a este
modelo Red Autómata (RA). Cabe mencionar que las reglas locales se pueden
definir en términos de propiedades de nodos (grado de nodo, centralidad, etc.)
o propiedades de enlaces (peso o dirección).
Figura 1. Regla 210 de un AC.
Inspirados en los trabajos discutidos arriba, en esta contribución proponemos
un modelo de evolución semejante al propuesto en [5], en el sentido de que reglas
locales son utilizadas para determinar la forma en que cambian los enlaces de
la red. En nuestro modelo sin embargo, optamos por utilizar reglas de evolución
tradicionalmente asociadas con AC de una dimensión, tales como las descritas
en la clasificación de Stephen Wolfram [7]. La idea principal de nuestro modelo
es asociar el estado binario de cada una de las celdas del AC con la presencia
o ausencia de los enlaces de la red. De esta forma, al evolucionar un AC uni-
dimensional binario, se determinan los cambios estructurales de la red en cada
instante de tiempo.
En este artı́culo hemos seleccionado la regla 210 (en código Wolfram) para
ejemplificar el funcionamiento de nuestro modelo. Después de aplicar recursi-
124
vamente esta regla un número grande de pasos de tiempo, se observa que la
estructura de la red cambia drásticamente durante pequeños periodos de tiem-
po, en los cuales el número de nodos y enlaces se incrementan, y la estructura de
la red es tal que la distancia geodésica entre los nodos es grande. Después de este
periodo, la red cambia nuevamente a una estructura donde hay pocos enlaces,
y en cada paso de tiempo ocurren pequeños cambios hasta llegar a un periodo
de tiempo donde nuevamente la red cambia su estructura en formas similares
a las descritas anteriormente. Este comportamiento de la red a lo largo de su
evolución es consecuencia de los patrones generados por la regla 210 del AC.
2. Descripción del modelo de evolución
Considere una red de N nodos que en el instante inicial, todos excepto un par
están aislados. Suponga también que los enlaces de la red son bidireccionales, no
tienen peso y no hay enlaces bucles. En este modelo, la evolución de la red se reali-
za en tiempos discretos y suponemos que todas las posibles conexiones son permi-
tidas, por lo que, el número máximo de enlaces de la red será N (N −1)/2. En cada
paso de tiempo un enlace dado puede aparecer o desaparecer de acuerdo a reglas
locales descritas en términos de su vecindad. Cuando el estado del enlace entre
los nodos i y j al tiempo t, que denotaremos con eij (t), sea 1, significará que estos
nodos están conectados, y cuando el estado de eij (t) sea cero, los nodos no están
conectados. Definamos la configuración del cableado de la red al tiempo t como
la N (N − 1)/2-tupla e(t) = (e1,2 (t), e1,3 (t), . . . , e1,N (t), e2,3 (t), . . . , eN −1,N (t)).
Construyamos un AC de una dimensión con frontera periódica y con N (N −
1)/2 celdas binarias. El estado binario de la n-ésima celda al tiempo t lo denotare-
mos con cn (t). En este trabajo consideraremos que la regla de AC φW (donde W
es el número de la regla en código Wolfram) de la n-ésima celda al tiempo t+1 es
función de cn (t) y del estado de las r = 1 celdas vecinas más cercanas a la izquier-
da y a la derecha al tiempo t, i.e. cn (t + 1) = φW (cn−1 (t), cn (t), cn+1 (t)). Por lo
3
tanto habrá 22 = 256 posibles reglas de AC [7]. Definamos la configuración de la
AC al tiempo t como la N (N − 1)/2-tupla c(t) = (c1 (t), c2 (t), . . . , cN (N −1)/2 (t)).
La idea principal en este modelo es asociar el estado de los elementos de la
tupla c(t) con los correspondientes estados (presente/ausente) de los enlaces en
la tupla e(t), de tal forma que si el estado de la n-ésima celda es uno, entonces el
n-ésimo enlace de e(t) estará presente en la red, y dicho enlace estará ausente en
caso contrario. Como primer paso se define el estado de las celdas al tiempo cero,
y mediante la asociación entre las tuplas c(t) y e(t) descrita con anterioridad, se
construye la correspondiente red inicial. Evolucionamos después el estado de la
celdas de acuerdo a la regla de AC seleccionada. En cada paso de tiempo t + 1
se establece la configuración del cableado de la red a partir de los estados de las
celdas en c(t).
125
(a) (b)
(c) (d)
(e) (f)
Figura 2. a) Estructura de la red en distintos pasos de tiempo de la evolución
de acuerdo a la regla 210 de la AC. En azul los nodos con almenos una conexión,
y en rojo los nodos sin conexión.
126
3. Resultados
Con el objetivo de ejemplificar el funcionamiento de este modelo, conside-
remos la regla 210 (código Wolfram) de una AC unidimensional con frontera
periódica, r = 1 vecinos y celdas binarias (figura (1)). Supongamos que el núme-
ro de nodos en la red es N = 100 por lo que el AC tendrá 4950 celdas. El estado
de las celdas al tiempo cero será uno para la celda c2475 y cero para el resto
de las celdas, por lo que de acuerdo con el modelo, a esta configuración inicial
de celdas le corresponde la red con sólo un enlace entre los nodos 30 y 41. A
continuación aplicamos la regla 210 en T = 7000 pasos de tiempo, actualizamos
el estado de las celdas y establecemos la correspondiente asociación entre c(t) y
e(t) para determinar la configuración del cableado de la red en cada instante de
tiempo de la evolución. En la figura (2) podemos observar la estructura de la
red en distintos pasos de tiempo.
(a) (b)
(c)
Figura 3. a) Estructura de la red en distintos pasos de tiempo de la evolución
de acuerdo a la regla 210 de la AC. a) Número de nodos conectados, b) Número
de enlaces c) Promedio de la longitud del camino geodésico.
127
En las figuras (3a) y (3b) podemos observar respectivamente, el valor del
número de nodos conectados y el número de enlaces presentes en la red. En
T = 7000 pasos de tiempo, el número de nodos conectados y el número total de
enlaces presentes en la red aumentan drásticamente durante breves periodos de
tiempo y se generan estructuras como las mostradas en la figura (2). En la figura
(3c) podemos observar que el valor del promedio de la longitud del camino más
corto es grande cuando el número de enlaces es también grande.
4. Discusiones
En este artı́culo hemos propuesto un modelo de evolución de redes en el cual,
las reglas locales determinan la forma en que cambian los enlaces. Dichas reglas
están asociadas con las reglas de evolución de AC unidimensionales, con celdas
binarias y con frontera periódica. De esta forma, la regla que define la presencia
de cada enlace en el tiempo t + 1 depende de la presencia o ausencia de dicho
enlace y de sus enlaces vecinos adyacentes a la derecha e izquierda en la tupla
e(t).
Para ejemplificar el funcionamiento de nuestro modelo, en este trabajo hemos
seleccionado la regla 210 (en código Wolfram) de un AC para simular compu-
tacionalmente la evolución de una red con un sólo enlace al tiempo cero. Los
resultados muestran que bajo esta regla, la evolución de la red es tal que su es-
tructura cambia en distintos periodos de tiempo, y oscila entre escenarios donde
el número de nodos conectados y de enlaces es muy pequeño, y escenarios donde
estos números se incrementan de manera contondente, generando estructuras
como las mostradas en las figuras (2), en las cuales, en su gran mayorı́a, todos
los nodos tienen muchas conexiones. Este comportamiento de la red a lo largo
de su evolución es consecuencia de los patrones generados por la regla 210 del
AC.
En este trabajo hemos utilizado como una primera aproximación, las reglas
tı́picas para la evolución de los AC unidimensionales con celdas binarias y con
frontera periódica. Sin embargo, este primer modelo puede ser extendido para
incluir situaciones en las que por ejemplo, un AC cambia el estado de sus celdas
de forma ası́ncrona, cada celda sigue una regla de cambio distinta, e inclusive,
una situación donde las celdas tienen más de dos estados, lo cual representa un
escenario donde los enlaces tienen distintos pesos. De igual forma, en este modelo
se establece la vecindad de cada enlace de acuerdo a su posición en la tupla
e(t), lo cual puede ser modificado para incluir una metodologı́a que nos permita
definir dicha vecindad. Consideramos importante señalar que varias avenidas de
investigación en torno al modelado de la evolución de las redes usando reglas de
AC’s, están siendo atendidas actualmente.
Referencias
[1] Watts, D. J. & Strogatz, S. H. (1998). Collective Dynamics of Small World
Networks, Nature, 393, 440-442.
128
[2] Barabási, A. L. & Albert, R. (1999). Emergence of scaling in random networks,
Science, 286, 509-512.
[3] Gross, T. & Blasius, B. (2008). Adaptive Coevolutionary Networks: A Review,
Journal of The Royal Society Interface, 5, 259-271.
[4] Sayama, H. & Laramee, C. (2009). Generative Network Automata: A Generalized
Framework for Modeling Adaptive Network Dynamics Using Graph Rewritings,
In. Adaptive Networks: Theory, Models and Applications (T. Gross & H. Sayama
(Eds.)), Springer, 311-330.
[5] Smith, D. M. D., Fricker, M., Johnson, N. F., Lee, C. F. & Onnela, J. P.
(2007). Network automata and the functional dynamic network framework, ar-
Xiv:0701.307v2.
[6] Wolfram, S. (2002) A New Kind of Science, Wolfram Media Inc.
Buscando complejidad y computación en el
espacio de polinomios
Todd Rowland
Wolfram Research, Inc.
Resumen Reconsideramos el comportamiento de los polinomios desde
la perspectiva de la metodologı́a de Wolfram y mostramos evidencia de
que podrı́an tener posibles usos computacionales del mismo modo que
otros sistemas de reglas simples lo tienen.
1. Introducción
En matemáticas, los polinomios tienen un larga historia en la que han sido
utilizados como computaciones, y hoy se pueden encontrar en muchos programas
modernos. Este trabajo busca, sin embargo, otras maneras en que los polino-
mios puedan considerarse como modelos de computación, del mismo modo en
que puede considerarse que un autómata celular calcula algo más (por ejemplo
una función) que su simple evolución [12]. Esto involucra buscar complejidad y
estructura en el espacio de polinomios.
Siguiendo la metodologı́a de Wolfram [12] estudiaremos el comportamiento
de polinomios como reglas simples. Desde la perspectiva de la aritmética, esto
es relativamente sencillo porque sólo hay dos tipos de primitivas: los números y
las variables; y dos tipos de operadores: la suma y la multiplicación. Se puede
argumentar que incluso éstas son algo complicadas debido a que sabemos que
con menos primitivas se puede alcanzar el umbral de Wolfram en donde el com-
portamiento interesante aparece. Debido a esto podrı́a haber alguna duda de
si los polinomios forman parte de la categorı́a de objetos que tiene demasiado
diseño como para ser capaces de desplegar máxima sofisticación o la capacidad
de computación universal.
Los polinomios han jugado un papel clave en los sistemas complejos. Los
mapas de polinomios iterados son objetos de estudio en dinámica compleja [4] y,
en particular, el conjunto de Mandelbrot [2, 9] consiste en iterar un polinomio,
e involucra sensibilidad a condiciones iniciales. Aquı́ estamos tratando de tener
un enfoque aún más elemental, y dado que estamos buscando computación, nos
interesa algo más que la sensibilidad a las condiciones iniciales.
Hay tres ideas principales sobre el trabajo de Wolfram [12] que motivan una
nueva búsqueda de los polinomios como modelo de cálculo. La primera es que
la noción de computación se extiende a todos los procesos, tanto los de la teorı́a
como los de la naturaleza, y esto implica la posibilidad de cálculos en curso. La
atención se centra más en lo que hacen que en lo que producen. En el caso de los
130
polinomios el reto es encontrar formas de visualizar y comprender sus cálculos
internos.
En segundo lugar estamos interesados en el espacio de polinomios, no en
cuanto a si tienen la estructura subyacente como espacio, sino en cuáles son
los cálculos que realizan y cual es el tipo de espacio computacional que pueden
sostener.
Luego está la metodologı́a de búsqueda de reglas que puedan ser utiles pa-
ra cálculos mediante el uso del filtro de Wolfram para distinguir los que son
interesantes de los que son triviales. En pocas palabras uno visualiza el com-
portamiento de una regla simple y si su evolución parece complicada entonces
probablemente esa regla tenga capacidad de computación universal (de acuerdo
al principio de equivalencia computational o PCE de Wolfram [12]), más aún
si se ven estructuras emergentes. De esta manera, este estudio se realiza en el
espı́ritu de la metodologı́a propuesta por Wolfram.
Otros han también investigado la matemática elemental a lo largo de lı́neas
similares, en particular Stedman Wilson en su proyecto de la Escuela de Verano
de NKS sobre la suma de senos [10]. Inspirados por Wolfram, han habido otros
enfoques sobre polinomios. Una idea ha sido buscar reglas simples que calculen
aritmética [5]. Johan Veerman ha también trabajado en autómatas celulares que
computan aritmética basados en partı́culas [6, 7, 8].
Otra idea anterior al trabajo de Wolfram parte de los fundamentos de las
matemáticas, donde la indecidibilidad se ha demostrado para la resolución de
ecuaciones diofantinas de la forma polinomio=0, donde el polinomio tiene coefi-
cientes enteros y las soluciones deben ser enteros positivos [1, 3].
Ha habido un considerable esfuerzo para la construcción de la ecuación más
simple que cumpla dichas condiciones, pero Wolfram tomó la dirección opuesta
y buscó a los candidatos que están por arriba de lo que llamamos el umbral de
Wolfram, la frontera entre la sofisticación de cálculo trivial y máxima. Investiga-
mos seis polinomios de su lista, uno sin soluciones, dos con pequeñas soluciones,
una de las soluciones de tamaño mediano, y dos cuya estado de solución se des-
conoce. Estos últimos son candidatos a ser la más pequeña ecuación diofantina
indecidible:
etiqueta polinomio ecuación diofantina solución
a x2 − y 2 − 1 x2 − y 2 − 1 = 0 None
b x2 − 2y 2 − 1 x2 − 2y 2 − 1 = 0 x = 3, y = 2
c x2 − y − y 5 − 3 x2 − y − y 5 − 3 = 0 x = 2537, y = 23
d x2 − 2y − y 5 − 3 x2 − 2y − y 5 − 3 = 0 ?
e x3 − xy + 1 x3 − xy + 1 = 0 x = 1, y = 1
f x3 + xy − y 4 + 1 x3 + xy − y 4 + 1 = 0 ?
131
Los polinomios d y f son los candidatos a ser las más pequeña ecuaciones
diofantinas con soluciones indecidibles. Naturalmente, si ambas son indecidibles,
serı́a una cuestión de convención denominar cual es en realidad la más simple.
Lo primero que observamos son los valores producidos (Fig. 1).
Figura 1. Estos gráficos no muestran nada interesante, lo cual no es sorpren-
dente ya que este es un método tradicional para la visualización de polinomios.
2. Computaciones parciales
A continuación vamos a ver los dı́gitos binarios que los polinomios producen
con sus valores. Si sólo nos interesan los primeros n dı́gitos que el polinomio
produce entonces sólo necesitamos los primeros n dı́gitos de sus argumentos
x y y. De esta manera, sólo hay un número finito de casos a considerar para
discusión.
Las imágenes a continuación son apiladas como las imágenes en ([12], p.249).
Se alimentan los dı́gitos de x y y en el polinomio p(x, y) y se determina si los
primeros n dı́gitos son iguales a cero. Si lo son entonces se colorea el cuadrado
en (x, y) (ver Fig. 2 y 3).
Esto muestra una cierta cantidad de complejidad. Pero si cambiamos la vi-
sualización también podemos ver que aparecen estructuras.
Hacemos esto mediante la inversión de los dı́gitos de x y y. Uno puede pensar
en esto motivado por la norma p-ádica donde los dı́gitos menos significativos
tienen la mayor importancia, pero también desde el punto de vista de la evolución
de los autómatas, que comienza con los dı́gitos menos significativos. Es sólo otro
aspecto de la computación polinómica.
132
Figura 2. Las celdas grises representan soluciones para dı́gitos inferiores y las
más oscuras son las de soluciones fijas. Para hasta los primeros 9 dı́gitos.
Figura 3. La imagen para base 3, con celdas grises para las soluciones, esta vez
hasta 6 dı́gitos.
133
Figura 4. Invierte dı́gitos binarios soluciones a n = 9.
Figura 5. Invierte dı́gitos ternarios soluciones a n = 6.
134
Estas imágenes (Fig. 4 y 5) tienen una estrecha relación con aquellas produ-
cidas por autómatas finitos, por ex. ([12], pp.608-609) y, sin embargo, parecen
comportarse de manera muy diferente, lo que justifica la afirmación de que los
polinomios pertenecen a las herramientas de los programas de computación sim-
ples y pueden considerarse modelos de computación.
3. Emulaciones algebraicas
Recordemos que un proceso computacional puede emular a otro. En el soft-
ware disenãdo por una persona, un programa comúnmente contiene muchos otros
programas. Aquı́ especulamos que algo similar ocurre con los polinomios.
Consideremos un enfoque ingenuo para encontrar soluciones a una ecuación
diofantina escribiendo las soluciones como raı́ces. Aquı́ tomamos la raı́z real del
candidato f.
� �
Solve 1 + x3 + xy − y 4 == 0, x [[1, 1, 2]]
� √ √ �1/3
(2)
1/3
y −9+9y 4 + 3 27+4y 3 −54y 4 +27y 8
−� √ √ 3 �1/3 + 21/3 32/3
−9+9y 4 + 3 27+4y 3 −54y 4 +27y 8
Esto equivale a resolver una ecuación cúbica (esta es la solución aportada
por Mathematica [11]).
Con el fin de obtener una solución entera estas raı́ces tiene que cancelarse
(lo cual es improbable si no imposible) o sus argumentos deben ser potencias
perfectas, en otras palabras, este enfoque ha dado lugar a nuevas ecuaciones
diofantinas. De esta manera el problema original genera nuevos problemas.
Es conocido que la solución por raı́ces de polinomios no funciona para ecua-
ciones de grado mayor a 4. Es posible que al considerar las raı́ces enésimas como
una solución a una ecuación diofantina en particular y extendiendo esto a una
clase un poco más general, estos cálculos podrı́an ser calculadoras universales
para polinomios, en analogı́a con la emulación cómputacional, apoyado por la
evidencia de la complejidad de las soluciones de estos polinomios.
4. Conclusión
Sólo le hemos echado una mirada a una pequeña muestra del espacio de po-
linomios pero aun ası́ podemos creer que comportamiento complejo es común.
Aún desde un punto de vista básico, polinomios hacen algo nuevo y entendido
poco. Esos comportamientos deben ser accesibles con la metodologı́a de Wol-
fram. En la última sección sugerimos que las emulaciones algebraicas de los
comportamientos de polinomios pueden dar una perspectiva nueva sobre emu-
lación computacional. Ası́ que hemos mostrado que los polinomios merecen un
lugar en el universo de programas simples.
135
5. Agradecimientos
Quiero expresar mi agradecimiento a Johan Veerman y Hector Zenil.
Referencias
[1] Chaitin, G., Foundations of Mathematics, arXiv:math.HO/0203002v2, 2002.
[2] Mandelbrot, B.B., The Fractal Geometry of Nature, New York: W. H. Freeman,
pp. 188-189, 1983.
[3] Matiyasevich, Yu., Hilbert’s 10th Problem, MIT Press, 1993.
[4] Milnor, J., Dynamics in One Complex Variable: Introductory Lectures, Friedrick
Vieweg & Son, 2000.
[5] Rowland, T., “Graphic Addition”, posting on forum.wolfram.science http://
forum.wolframscience.com/showthread.php?threadid=262, March 21, 2004.
[6] Veerman, J., “Two methods for finding cellular automata that perform simple
computations” NKS Midwest conference, Bloomington, 2005.
[7] Veerman, J., “Arithmetical Cellular Automata” NKS conference, Washington,
D.C., 2006.
[8] Veerman, J., “Further Results in Arithmetical Cellular Automata” NKS confe-
rence, Burlington, 2007.
[9] Weisstein, E., “Mandelbrot Set.” From MathWorld–A Wolfram Web Resource.
http://mathworld.wolfram.com/MandelbrotSet.html
[10] Wilson, S., “The Distribution of Zeros of Periodic and Aperiodic Sinusoidal Sums”
NKS conference, Burlington, 2007.
[11] Wolfram Research, Inc., Mathematica, Version 8.0, Champaign, IL, 2010.
[12] Wolfram, S., A New Kind of Science, Wolfram Media, 2002.
Un método estable para la evaluación de la
complejidad algorı́tmica de cadenas cortas
Héctor Zenil1 , Jean-Paul Delahaye2
1
Dept. of Computer Science, University of Sheffield, Reino Unido.
Centro de Ciencias de la Complejidad, UNAM, México.
[email protected] 2
Laboratoire d’Informatique Fondamentale de Lille (LIFL)
Université de Lille 1, Francia.
[email protected] Resumen Se discute y revisa un método numérico propuesto que, de
manera alternativa (y complementaria) al método tradicional de com-
presión, permite aproximar la complejidad algorı́tmica de cadenas, par-
ticularmente útil para cadenas cortas para las cuales los métodos tradi-
cionales de compresión no son efectivos y dependen de los algoritmos de
compresión. El método muestra ser estable ya que produce clasificacio-
nes razonables a partir de modelos de computación razonables, incluidos
sistemas de etiquetas de Post, autómatas celulares y máquinas de Tu-
ring. Además, permite la concepción (y comparación) de un modelo que
predice la distribución de patrones en un mundo algorı́tmico.3
Palabras clave: complejidad de Kolmogorov, probabilidad algorı́tmica
de Solomonoff, teorema de codificación de Chaitin-Levin, semimedida de
Levin, máquinas de Turing pequeñas, problema del castor atareado.
1. Introducción
En el estudio de sistemas complejos, es fundamental contar no sólo con defi-
niciones precisas sino también con herramientas para evaluar la complejidad de
sus objetos de estudio. El trabajo que hemos desarrollado y publicado en [7],
presenta una alternativa, confiable y estable [9], para evaluar la complejidad al-
gorı́tmica (o de Kolmogorov) de cadenas de caracteres, en particular de cadenas
cortas, para las cuales el método tradicional de compresión es, en la práctica,
inútil para aproximar su complejidad algorı́tmica. La complejidad algorı́tmica
de un objeto es la descripción más corta posible que regenera el objeto.
El método introducido en [8, 7] y recientemente difundido en la versión fran-
cesa de la revista Scientific American Pour La Science [9], provée un nuevo
método numérico y efectivo (hasta cierto punto) para la evaluación de la com-
plejidad algorı́tmica de cadenas. En este artı́culo lo describimos brevemente en
el contexto de su relevancia como herramienta en el estudio e investigación en el
3
Para WCSCM2011. El autor H. Zenil no actuó como editor activo para este artı́culo.
138
área de sistemas complejos con su amplia y diversa gama de posibles aplicaciones
debido a que, por primera vez, permite aproximar la complejidad de objetos que
generalmente se utilizan en aplicaciones prácticas, esto es, de objetos pequeños,
cadenas de longitud corta. Por ejemplo en la compresión de datos, algoritmos de
optimización, problemas de reconocimiento y clasificación, por mencionar algu-
nas. La mejor referencia introductoria al tema y aplicaciones es [14]
1.1. Pseudomedidas de complejidad
Algunos métodos atractivos para calcular la complejidad de cadenas cor-
tas son insuficientes porque no coinciden con la complejidad de Kolmogorov de
cadenas cuando aumenta la longitud que se requiere para que la medida sea
consistente. Por ejemplo, una medida largamente pero � erroneamente utilizada es
la entropı́a de Shannon [10] que se define como − pi log pi (donde pi es una
frecuencia). Con esta medida, la cadena 01010101010101010101 es la cadena con
mayor entropı́a de Shannon posible para una cadena de longitud 20 (ya que tiene
tantos “0”s como “1”s). Mientras que, la cadena 10010111010100001011, tam-
bién de longitud 20, tiene la misma entropı́a de Shannon pero nuestra intuición
nos dice que deberı́a ser más compleja.
La entropı́a de Shannon no hace mas que contar el número de “0”s y “1”s en
una cadena ya que nunca fue diseñada para medir la complejidad (o el “orden”)
de la información contenida en la cadena. Es una medida estadı́stica que ni
siquiera es capaz de considerar las repeticiones y que hereda los problemas de la
teorı́a clásica de probabilidades que, precisamente, la teorı́a de la complejidad
algorı́tmica (la complejidad de Kolmogorov) resuelve. De hecho, la entropı́a de
Shannon es simplemente un corolario de la complejidad de Kolmogorov: si un
objeto es más complejo su transmisión toma, potencialmente, más tiempo.
Otras medidas, como la complejidad por factores, por ejemplo, son erronea-
mente utilizadas cuando no hacen más que cuantificar el número de posibles
maneras de ordenar un sistema, son medidas probabilistas que en nada (o muy
poco) se relacionan con una medida de complejidad. Si los investigadores en sis-
temas complejos están interesados en una medida combinatoria (por ejemplo, el
número de capas, de elementos en interacción, etc.), con las limitaciones produc-
to de las bases probabilistas en las que se funda (como es el caso, por mencionar
otro ejemplo, del parámetro lambda de Langton [11]), los investigadores pueden
continuar utilizando medidas ad-hoc en el entendido de que no son una medida
de complejidad universal (es decir, una medida de complejidad general y objetiva
que pueda aplicarse en cualquier situación y a cualquier sistema).
Hoy en dı́a, una amplia variedad de conceptos, basados en medidas como
la entropı́a de Shannon (que Shannon diseño con el propósito de cuantificar el
ancho de banda necesario para un canal de comunicación) y otras falsas medidas
de complejidad, se emplean para calcular y comparar la complejidad de objetos
discretos bajo la falsa idea de que es el número de elementos o interacciones
en un sistema hacen que un sistema sea complejo (por ejemplo, en la teorı́a de
sistemas dinámicos, sistemas incluso muy simples resultan comportarse caóti-
camente, incluso en sistemas de computación deterministas y extremadamente
139
simples sin interacción con el medio, producen aleatoriedad aparente y impre-
dictabilidad [10]). Algunos autores podrı́an argumentar que hay otras medidas
de complejidad, pero medidas de complejidad como la profundidad lógica de
Bennett [2], están fundadas, o bien son variaciones de la complejidad de Kolmo-
gorov que toman en cuenta otros parámetros como el tiempo, la geometrı́a de la
evolución de un sistema o son versiones computables [14] (que asumen recursos
finitos) e interesantes de la complejidad de Kolmogorov, mientras que la mayorı́a
del resto de las pseudo medidas de complejidad están fundadas en distribucio-
nes de probabilidad o densidad, como la medida de Shannon o el parámetro de
Langton.
1.2. Complejidad algorı́tmica de Kolmogorov-Chaitin
Imaginemos que se nos proporcionan dos cadenas cortas y se nos pregunta
cuál de ellas parece ser el resultado de un proceso que genera cada sı́mbolo de
la cadena al azar. Digamos que las cadenas son binarias y cortas, por ejemplo
0101 y 1011. A simple vista, la primera cadena tiene un patrón, aunque se repita
sólo dos veces, y que podrı́a ser aprovechado para generar una descripción de
la cadena. En español, por ejemplo, la primera cadena podrı́a ser descrita como
“dos veces cero y uno” (aunque el lenguaje se presta a confusiones, ya que la
misma descripción puede interpretarse como 001 si no se conoce la longitud de
la cadena4 ). Por otro lado, la segunda cadena parece necesariamente requerir
una descripción ligeramente más larga. La primera podrı́a describirse también
como “cero seguido de uno seguido de cero seguido de uno”. Descripciones de
la segunda pueden incluir “uno y cero seguido de dos unos” o “uno, cero, uno,
uno”, que no parece ésta última una versión comprimida de la cadena, sino más
bien una traducción a una forma expandida del idioma. De hecho, pareciera
que cadenas con patrones permiten menos descripciones distintas (inténtese, por
ejemplo, con cadenas más largas).
Para resolver si alguna de las dos cadenas es, sin lugar a dudas, más sencilla
que la otra, o si la aparente repetición de la primera cadena puede realmente
aprovecharse a pesar de repetirse sólo dos veces, es necesario fijar un lenguaje
objetivo (y que no permita las ambigüedades del lenguaje coloquial). Para de-
terminar cuál de las cadenas parece más aleatoria que la otra bastarı́a, entonces,
comparar sus respectivos valores de complejidad. La complejidad algorı́tmica de
una cadena es el programa más corto, medido en número de bits, que produce
una cadena dada cuando se ejecuta en una máquina universal de Turing. Asu-
mimos que el lector está familiarizado con el concepto de máquina de Turing y
de máquina universal de Turing. Para una buena introducción véase [16].
4
En inglés, éste tipo de ambigüedades regularmente se pueden evitar con la introduc-
ción de una coma. Ası́ “zero, and one twice” y “zero and one twice”, engendran 011
y 0101 respectivamente. En español, la solución es “cero y uno dos veces” versus
“cero y uno, dos veces”, pero en general la gramática en español (y otros idiomas,
por ejemplo, francés) no permite comas antes de la conjunción ‘y’ lo que no permite
resolver todos los casos de ambigüedad de este tipo.
140
El concepto de complejidad, introducido por Andrei Kolmogorov y Gregory
Chaitin define la complejidad K(s) de un objeto s como el tamaño del programa
más corto de computadora que genera s. Formalmente,
KU (s) = mı́n{|p|, U (p) = s}
donde |p| es la longitud de p medido en bits. En otras palabras, el tamaño de un
archivo comprimido s es la complejidad de s. La complejidad de Kolmogorov (o
Kolmogorov-Chaitin, para ser justos) proporciona una medida de aleatoriedad.
La complejidad algorı́tmica es considerada la medida universal de compleji-
dad. Sin embargo, no existe algoritmo efectivo que, para una cadena, el algoritmo
produzca el entero que corresponda a la longitud del programa más corto (la me-
jor compresión posible) que genere la cadena como salida (el resultado se debe al
problema de la detención de las máquinas de Turing). Lo que significa que uno
no puede medir con absoluta certeza la complejidad algorı́tmica de una cadena.
El que sea no computable no significa, sin embargo, que no se le pueda utilizar
ya que en realidad a menudo se le puede aproximar de manera eficaz. El cálculo
del valor aproximado de la complejidad de Kolmogorov, gracias a algoritmos de
compresión sin pérdida, hacen del concepto una herramienta de gran utilidad
usado en diversas aplicaciones. De hecho existen aplicaciones de la teorı́a de la
complejidad algorı́timca que han resuelto problemas de clasificacón de todo tipo
de objetos [14, 22], para estudiar la similitud de ciertos idiomas, especies de
animales, para detectar fraudes (por ejemplo, plagios) y caracterizar imágenes
[24].
1.3. El problema de las cadenas cortas
La complejidad de Kolmogorov permite una caracterización matemática del
azar: una cadena aleatoria s de n bits de información es una cadena cuya comple-
jidad de Kolmogorov K(s) es cercana a n. Es decir, el programa que lo produce
es de más o menos el mismo tamaño en bits que la cadena original. Una cadena
aleatoria infinita es tal que ningún proceso de compresión puede comprimir por
más de una constante ningún segmento inicial de la cadena. Por ejemplo, la se-
cuencia infinita 01010101... no es aleatoria, porque uno puede definir de forma
concisa la “serie infinita de 01” y, sobre todo, escribir un programa muy corto
basado en un bucle que genere la secuencia infinita. La secuencia compuesta de
los dı́gitos de π tampoco son aleatorios: hay un programa más corto que genera
todos sus decimales.
La forma de abordar la complejidad algorı́tmica de una cadena es por medio
del uso de algoritmos de compresión sin pérdida. Sin pérdida significa que se
puede recuperar la cadena original a partir de la versión comprimida por medio
de un programa de descompresión. Entre más compresible se considera menos
compleja la cadena. Por el contrario, si no es compresible, se le considera a la
cadena como aleatoria o máximamente compleja. El resultado de un algoritmo de
compresión es una cota superior de su complejidad algorı́tmica, por lo que se dice
que la complejidad de Kolmogorov es computable por arriba. Esto quiere decir
141
que a pesar de que uno nunca puede decir cuando una cadena no es compresible,
si uno tiene éxito en la reducción de la longitud de una cadena se puede decir
que la complejidad algorı́tmica de esa cadena no puede ser mayor a la longitud
de la versión comprimida.
Para evitar hacer trampa y decir que uno puede comprimir cualquier cadena
con un algoritmo de compresión ad hoc (por ejemplo, codificando artificialmente
ciertas cadenas complicadas con programas cortos interpretados en una máquina
universal truqueada) la codificación de la máquina debe ser parte de la comple-
jidad de un objeto cuando es medida con respecto a esa máquina. Un algoritmo
de compresión transforma una cadena comprimida en dos partes: una parte es la
versión comprimida del objeto original, y la otra las instrucciones para descom-
primir la cadena. Ambas partes deben ser contabilizadas en el tamaño final de la
cadena comprimida, debido a que se requieren las instrucciones de decompresión
para obtener la cadena original sin necesidad de depender de la elección arbi-
traria del algoritmo (o de la máquina de Turing). En otras palabras, uno puede
considerar que agrega el algoritmo de descompresión a la cadena comprimida
de manera que la cadena comprimida sea autodescomprimible y venga con sus
propias instrucciones de descompresión5 . A la larga, un teorema [14] (llamado
de invarianza) garantiza que los valores de la complejidad convergen a pesar de
la elección arbitraria de lenguajes de programación o la utilización de máquinas
de Turing truqueadas (en otras palabras, uno no puede seguir engañando por
siempre).
El teorema de invarianza [19, 5] acota la diferencia entre evaluaciones de la
complejidad de Kolmogorov calculadas con diferentes máquinas de Turing. Si U
y U � son dos máquinas de Turing universales diferentes, el teorema estipula que si
KU (s) es la complejidad algorı́tmica de una cadena s medida con respecto a una
máquina universal U y KU � (s) es la complejidad algorı́tmica de la misma cadena
s medida con respecto a otra máquina universal U � entonces |KU (s)−KU � (s)| < c
donde c es una constante que no depende de s. En otras palabras, la diferencia
en las evaluaciones es a lo más la longitud finita de un compilador que pueda
escribirse entre U y U � .
Uno requiere la utilización de máquinas universales porque es la única manera
de garantizar que la máquina va a producir la cadena que elijamos evaluar y no
se esté restringido a poder preguntarse sobre la complejidad de un conjunto
limitado de cadenas (por ejemplo, cadenas producidas por lenguajes regulares).
El teorema de invarianza muestra que un sentido amplio la complejidad de
Kolmogorov es una medida objetiva y universal. Aunque el teorema de invarianza
le da estabilidad a la definición de complejidad de Kolmogorov, también hace
evidente que, para cadenas cortas la medida es inestable porque la constante
implicada (c), o sea el tamaño de la máquina universal (o las instrucciones de
descompresión) dominan el resultado final en la evaluación de K(s). Es decir,
5
De hecho, algunos programas, como GZIP, permiten la generación de archivos com-
primidos ejecutables, que empacan precisamente las instrucciones de descompresión
en el programa mismo y no requiere ni siquiera de tener instalado GZIP para des-
comprimirlo
142
incluir las instrucciones de descompresión afecta la complejidad relativa de una
cadena si la complejidad de la cadena es más pequeña que la longitud de las
instrucciones de descompresión, lo que resulta en evaluaciones inestables cuando
se trata de cadenas cortas, es decir, cadenas de longitud cercana o menor a la
longitud tı́pica de las instrucciones de descompresión (en el orden del tamaño en
bits del algoritmo de descompresión).
Hasta ahora, a diferencia de cadenas suficientemente largas para las cuales
los método de compresión funcionan, no existı́a un método para evaluar la com-
plejidad algorı́tmica de cadenas cortas, y por lo tanto una manera objetiva de
determinar si una cadena como 000 es más simple que 01101001 a pesar de que
la intuición nos sugiere que la primera parece más simple y la segunda más alea-
toria. Nos gustarı́a decir objetivamente que, por ejemplo, la cadena de 7 bits
1001101 parece más compleja que la cadena 0000000, o que 0001000 tiene una
complejidad intermedia a las dos anteriores. Ası́ que tenemos una idea intuitiva
de una clasificación de complejidad pero no una medida objetiva que valide la
intuición. ¿Cómo hacer que la teorı́a confirme la intuición, y que sea universal y
consistente tanto para cadenas cortas como largas?
1.4. El problema del método de compresión
Para cadenas cortas (que son a menudo las usadas en aplicaciones prácticas),
la adición de las instrucciones de descompresión de la versión comprimida ha-
ce que la cadena comprimida, con frecuencia, resulte más larga que la versión
original. Si la cadena es, por ejemplo, más corta que el tamaño del algoritmo
de descompresión, no habrá forma de comprimir la cadena en algo más corto
que la longitud original de la cadena, simplemente porque las instrucciones de
la descompresión rebasan la longitud de la cadena original (Figura 1). Por otra
parte, el resultado depende tanto del tamaño del algoritmo de descompresión
(porque en estos casos es el mayor contribuyente a la longitud total) y por lo
tanto la longitud (y aproximación de la complejidad algorı́tmica) es demasiado
inestable.
A manera de ilustración, si se trata de comprimir una cadena corta con,
digamos, el lenguaje de programación Mathematica, se obtiene que la longitud
de la versión comprimida de la cadena de longitud 0101 es:
StringLength@Compress[‘‘0101’’] = 30
(incluso antes de que la versión comprimida sea transformada a bits para que el
resultado esté en el mismo lenguaje de la cadena misma)
Esto significa que la compresión de la cadena 0101 requiere de un programa de
46 caracteres (aún más en bits) para ser generada, lo que no tiene sentido alguno,
pues la simple descripción en español es más corta que la versión comprimida con
Mathematica. En Mathematica, las cadenas comienzan a ser mejor comprimidas
(en caracteres) cuando las cadenas tienen una longitud de 30 bits. Si se trata de
comprimir 1011 se llega nada menos que al mismo valor que para 0101, es decir:
StringLength@Compress[‘‘1011’’] = 30
143
Éste no es, sin embargo, un fallo de Mathematica sino el resultado de lo que
hemos explicado. La función Compress en Mathematica en realidad está basada
en el algoritmo de compresión sin pérdida Deinflate, que es una combinación del
algoritmo LZ77 y Huffman, dos de los algoritmos de compresión sin pérdida más
populares disponible del mercado, utilizados en formatos públicos como ZIP,
GZIP, GIF y PNG.
Figura 1. Gráfica de compresión de una cadena de n bits (eje x) contra su
versión comprimida (eje y) usando un tı́pico algoritmo de compresión de datos.
Al principio de la lı́nea de compresión se observa que el origen no pasa por y = 0,
incluso cuando x = 0, lo que significa que cadenas cortas comprimidas resultan
más largas que su tamaño original.
Las instrucciones obviamente ocupan un espacio del valor final de la longitud
comprimida y no pueden ser ellos mismos (las instrucciones) comprimidas (si
lo fueran, serı́a en todo caso una longitud constante para todas las cadenas,
que nos remiten a la misma situación). En resumen, hay un lı́mite para los
algoritmos de compresión para comprimir cadenas cortas. Ası́ que si se quisiera
decir cuál de las dos cadenas son objetivamente más o menos complejas por
medio de la aproximación de su complejidad algorı́tmica mediante un algoritmo
de compresión, resulta que no hay manera de obtener una respuesta, por el
contrario, se encuentra una medida inestable y generalmente sin sentido (Figura
2).
El problema del bit isolado Por ejemplo, dada la definición de la compleji-
dad algorı́tmica basada en la compresibilidad, si una cadena no es compresible
entonces es aleatoria, de donde de inmediato se podrı́a decir que un bit isolado, 0
144
Figura 2. Al hacer un acercamiento al origen de esta gráfica de compresión de
una cadena de n “1”s (eje x), contra las diferentes longitudes de sus versiones
comprimidas (eje y), se verifica que el inicio es más inestable que el resto.
ó 1, son cadenas al azar con toda certitud, ya que tienen complejidad algorı́tmica
máxima, dado que no hay manera de comprimir un solo bit en algo más cor-
to (siendo el bit indisociable, la unidad mı́nima y básica). En otras palabras,
no hay un programa de menos de 1 bit que produzca 0 o 1. La mejor descrip-
ción de 0 y 1 son, por lo tanto, 0 y 1 mismos. Por lo tanto, la teorı́a dice que
son automáticamente cadenas aleatorias. Evidentemente, esto puede chocar con
nuestra intuición de azar si se les compara con cadenas más largas y que parecen
más el resultado de azar, o al menos se les puede considerar más complejas (por
ejemplo, 0110101).
Por un lado, un bit solo no contiene información alguna, y por este motivo
uno podrı́a pensar que representa de alguna manera al azar. Si uno piensa si
uno habrı́a sido capaz de predecir 0 o 1 como el resultado de un proceso, dado
que no hay ningún contexto, ya que se producen solos, se podrı́a concluir que su
ocurrencia es de alguna manera el resultado (aparente o no) del azar. En otras
palabras, si uno ve una cadena como 010101, uno apostarı́a fácilmente que el
siguiente bit es un 0, pero si no se le proporciona mas que un bit no hay manera
de favorecer uno u otro resultado siguiente.
Es difı́cil, sin embargo, justificar cómo la cadena de un solo bit “0”podı́a
parecer más aleatoria que, digamos, cualquier otra cadena posible, sino es ba-
jo el razonamiento descrito anterior, que se refiere a contextos y no la noción
de compresibilidad. La intuición nos dice que las cadenas cortas (incluido “0.o
“1”) no parecen más aleatorias que cualquier otra cadenas posible, y que si un
bit representa la máxima complejidad entre todas las cadenas finitas, y otras
cadenas cortas como 000 no son aleatorias, entonces hay una fase de transición
145
particularmente abrupta entre las cadenas de 1 bit y cadenas de unos cuantos
bits más, lo que parece contraintuitivo.
El problema a resolver es, como Delahaye ha señalado en [9], un problema
de termómetro: entre todos los instrumentos de medición que conducen a la
evaluación de la complejidad de Kolmogorov, pero que difieren por constantes
aditivas ¿cuál es el mejor? ¿cómo elegir? Una solución es utilizar el método que
hemos diseñado. En lugar de elegir un sólo termometro, o una sola medida,
enumeramos todas y nos fijamos en un conjunto suficientemente grande de ellas.
El método le va a dar sentido también al problema del bit isolado.
2. La probabilidad algorı́tmica de Solomonoff-Levin
La intuición nos dice que algo aleatorio también debe ser raro y poco común.
Si uno se pregunta qué tan común es 0 o 1 como resultado de la ejecución de
un programa elegido al azar, hay una medida que indica la probabilidad de que
un programa produzca una cadena determinada si se ejecuta en una máquina
universal de Turing. Ésta es la medida que utilizamos para presentar un nuevo
método para evaluar la complejidad algorı́tmica de cadenas, incluyendo cadenas
cortas incluso de un bit, como alternativa al uso tradicional de los algoritmos
de compresión. El nuevo método tiene como objetivo para resolver el problema
de la evaluación de la complejidad de las cadenas cortas, como hemos discutido;
y resuelve el problema del bit isolado. Se basa en el concepto de probabilidad
algorı́tmica de Solomonoff -Levin y se conecta con la complejidad algorı́tmica
(Kolmogorov-Chaitin) por medio del teorema de codificación de Chaitin-Levin.
Este nuevo método que resuelve varios problemas que la teorı́a y los métodos
actuales no permitı́an resolver, tiene una limitación: es muy costoso en términos
de computación. Como la duración o las longitudes muy cortas, los objetos de
complejidad muy débil son muy difı́ciles de evaluar y, paradójicamente, el méto-
do de evaluación requiere de un cálculo masivo. En la práctica, sólo proporciona
resultados para cadenas muy cortas y desde este punto de vista los métodos de
compresión siguen siendo esenciales para complementar la necesidad de aproxi-
mar la complejidad algorı́tmica de cadenas largas. Delahaye hace una analogı́a
interesante: Al igual que en astronomı́a, donde, dependiendo del tipo de objetos
y la distancia, se utiliza uno u otro método para calcular distancias, en las me-
didas de complejidad, nuestro método proporciona una alternativa para cadenas
cortas y se pueden adoptar métodos hı́bridos con la utilización de algorithmos de
compresión y técnicas de concatenación (en particular para cadenas de tamaño
mediano).
La idea que subyace nuestro nuevo termómetro de baja complejidad para
cadenas cortas se basa en una propiedad notable de la complejidad de Kolmo-
gorov: entre más un objeto es simple, más se produce con frecuencia cuando se
utiliza una computadora ejecutando programas al azar.
En un lenguaje de programación Turing completo (es decir, en el que cual-
quier función computable puede implementarse) si cada secuencia de instruc-
ciones es generada de manera aleatoria y ejecutada, muy frecuentemente pro-
146
ducirá un programa gramaticalmente inválido que no puede si quiera ejecutar-
se. Otras muchas veces el programa va a comenzar a ejecutarse y no se de-
tendrá jamás. Estos programas no nos interesan, sólo nos interesan aquellos que
producen como salida una cadena finita de “0”s y “1”s y se detienen.
Evidentemente si se ejecutan varios programas distintos algunos van a pro-
ducir la misma salida (para la misma entrada). Si ejecutamos tantos programas
como podamos podemos generar una clasificación de frecuencia en donde a cada
cadena se le asigna una frecuencia de repetición r de entre todos los programas t
ejecutados. Esto define una distribución de probabilidad sobre {0, 1}n , es decir,
sobre todas las cadenas binarias.
Como resultado, obtenemos que cadenas como 0000000 son mucho más fre-
cuentes que cadenas como 1001101. El resultado es una distribución de potencia
en donde las cadenas más frecuentes tienen baja complejidad y las menos fre-
cuentes mayor complejidad (son más aleatorias). Esta probabilidad es la medida
que Solomonoff [18] y Levin [12] caracterizaron matemáticamente mediante un
razonamiento relativamente sencillo (tirar programas al azar). En resumen, para
Kolmogorov, la complejidad de una cadena es una longitud mientras que para
Solomonoff es una probabilidad.
Formalmente, si m(s) es la probabilidad de producción de s,
�
m(s) = 2−|p| = pr(U (p) = s).
p:U (p)=s
Es decir, la suma sobre todos programas p que al ejecutarse en una máquina
(autodelimitada) universal de Turing U generan s y se detienen, o si se prefiere,
la probabilidad de que U corriendo p produzca s.
Una máquina de Turing autodelimitada o prefix-free es una máquina cuyas
entradas forman una codificación prefix-free, esto quiere decir que ninguna en-
trada es el principio de ninguna otra. Esto es para garantizar ciertas propiedades
de la medida por varias razones. Más detalles pueden encontrarse en [4, 14]. Una
codificación prefix-free es, por ejemplo, el sistema mundial de números telefóni-
cos. Si un número telefónico fuera el principio de uno otro, nunca le serı́a posible
a uno comunicarse con el del número de teléfono más largo pues como funciona
la red de telefonı́a mundial, la secuencia de números que formen un número de
teléfono valido es inmediatamente utilizado para realizar la conexión. Imagina
por un momento que mi número de teléfono fuera 558973213 y que el de otra
persona fuera 558973. Evidentemente, el que intente marcar mi número siempre
acabará comunicándose con 558973. Una codificación prefix-free permite poder
hablar de la probabilidad de un conjunto de programas que produzcan cierta
cadena sin que el conjunto pueda acotarse de alguna forma.
2.1. El teorema de codificación de Chaitin-Levin
Los valores de m están relacionados con la complejidad algorı́tmica porque
el término más grande en la sumatoria es el programa más corto, y por tanto, es
K(s) quien domina el total. Un teorema, clave para el método que propusimos
147
para evaluar la complejidad de Kolmogorov, relaciona matemáticamente m(s) y
K(s). El teorema de codificación de Chaitin-Levin establece que K(s) es apro-
ximadamente igual a − log2 (m(s)). En otras palabras, K(s) y m(s) difieren de
una constante c, independiente de la cadena s tal que | − log2 (m(s)) − K(s)| < c.
A groso modo, la probabilidad algorı́tmica m dice que si hay muchas des-
cripciones largas de cierta cadena, entonces también hay una descripción corta y
por lo tanto con baja complejidad algorı́tmica y si hay pocas descripciones para
una cadena, entonces difı́cilmente tendrá una descripción corta.
Que el logaritmo negativo de m(s) coincida con la complejidad algorı́tmica de
s con una diferencia de una constante significa que aproximar m(s) nos aproxima
a K(s). Debido a que ni K(s) ni m(s) son computables, no hay programa que
tome s como entrada y produzca m, m tiene que ser también aproximado en
lugar de calculado con certeza absoluta.
3. Cálculo de la probabilidad de producción
El cálculo de m(s) se obtiene mediante la ejecución de un gran número de
programas que serán producidos al azar, o de un conjunto de programas que
se enumeran de manera sistemática (que resulta en lo mismo). Al combinar
los resultados teóricos discutidos anteriormente se obtiene una distribución que
llamaremos SL(s), y de donde podremos calcular − log2 (SL(s)) para aproximar
K(s). SL es una distribución que puede escribirse en función del número de
estados de las máquinas que se utilizan para generar la distribución de frecuencia
de salida de las máquinas de Turing. Como función, SL no es computable ya
que si lo fuera, es decir si se pudiera calcular numéricamente SL para cualquier
número de estados de máquinas de Turing, se podrı́a resolver el problema del
castor atareado para cualquier número de estados, lo que se sabe es imposible
por contradicción con el resultado de Rado de incomputabilidad de las funciones
del castor ateareado.
3.1. Máquinas de Turing pequeñas
Usamos un método de cálculo tan primitivo como posible, pero lo suficien-
temente poderoso para que cualquier programa pueda ser ejecutado y cualquier
cadena producida. Introducido por Alan Turing en 1936, el modelo de las máqui-
nas de Turing ha desempeñado un papel fundamental en la ciencias de la compu-
tación y la lógica matemática, ya que ha permitido el estudio de lo que es un
algoritmo y, en la práctica, del desarrollo de la computadora digital. El modelo
de Turing puede verse como un lenguaje de programación; la descripción de una
máquina de Turing es equivalente a escribir un programa de cómputación.
Las máquinas de Turing son el modelo de computación más conocido, debido
a que es un modelo que tiene una representación fı́sica cuya motivación fue la
descripción de un humano que calculara con lápiz y papel. Podemos verlas como
una abstracción de nuestras computadoras. Disponen de una cinta de longitud
ilimitada dividida en celdas discretas (análoga a la tira de papel donde escribı́a
148
el computador humano) sobre la que se sitúa una cabeza capaz de leer y escribir
en la celda donde se encuentra. La máquina sólo lee y escribe un conjunto finito
de sı́mbolos conocido como su alfabeto. Entre estos sı́mbolos hay uno llamado
usualmente blanco que es el que por defecto llena todas las celdas de la cinta.
Existe un conjunto finito de estados en los que puede encontrarse la máquina.
Uno de tales estados es el estado inicial desde el que comienzan todas las compu-
taciones. También suele haber un estado de detención, que cuando se alcanza se
termina la computación. En cada paso de computación, la máquina de Turing:
1. Lee el sı́mbolo escrito en la celda sobre la que se encuentra la cabeza.
2. En función del sı́mbolo leı́do y del estado actual de la máquina:
a) Escribe un nuevo sı́mbolo en la celda (puede ser igual al que habı́a).
b) Se desplaza una posición a la izquierda o derecha sobre la cinta.
c) Cambia de estado (o permanece en el mismo).
Ası́ se continúa hasta llegar al estado de parada. Lo que caracteriza las
computaciones de una máquina de Turing es su tabla de transiciones. Si ve-
mos la enumeración anterior, el comportamiento en cada paso de computación
dependerá del estado en que se encuentra la máquina de Turing y el sı́mbolo
leı́do.
Las máquinas de Turing constituyen el ejemplo más conocido de dispositivo
de computación abstracto capaz de computación universal, lo que significa que
para cualquier función efectivamente calculable existe una máquina de Turing
que la calcula. Especialmente interesantes son las máquinas de Turing universa-
les, capaces de simular la computación de cualquier otra máquina de Turing.
El número de estados de una máquina de Turing determina su poder de
cálculo. Máquinas con un estado sólo pueden hacer cálculos sencillos, tales como
invertir 0 a 1 y 1 a 0 a una cadena que se les presenten. Una máquina que
dispone de 2 estados comienza a hacer cosas más interesantes. El número de
máquinas con 2 estados es, curiosamente, 10 000 que por supuesto sólo pueden
generar cadenas muy cortas (no más largas que el máximo número de pasos que
una máquina que se detiene puede alcanzar y que es acotado por el número
de estados). Al operar todas las máquinas de Turing de 3 estados, el número
de máquinas comienza a crecer de manera colosal pero éstas generan cadenas
más largas que permiten el cálculo de frequencia, y por tanto la probabilidad de
producción de cadenas un poco más largas.
El problema de la detención Sin embargo, las máquinas de Turing pueden
detenerse o no dependiendo si entran en el estado de detención de su tabla de
instrucciones (y del contenido de la cinta, que en este caso es siempre blanco).
Aunque Alan Turing demuestra la existencia de una máquina de Turing univer-
sal, es decir, una máquina de Turing capaz de simular cualquier otra máquina
de Turing, también muestra que no existe una máquina de Turing que pueda
determinar si cualquier otra máquina se detendrá. A este problema se le conoce
como el problema de la detención.
149
Evidentemente, si uno está interesado en la salida de una máquina de Turing,
definida como el resultado de lo que contiene su cinta una vez que se detiene. Si
no es posible saber si una máquina se va a detener no hay manera de determinar
con certeza su salida, ni la frecuencia de una cadena en general.
Una manera elegante y concisa de representar el problema de la detención es
el número de Chaitin Ω [5] (un número irracional entre 0 y 1), cuyos dı́gitos en
su expansión binaria es la probabilidad de detención de una máquina de Turing
universal corriendo programas al azar. Formalmente,
�
0<Ω= 2−|p| < 1
p se detiene
6
con |p| la longitud de p en bits .
3.2. El problema del castor atareado
De entre las máquinas que se detienen una pregunta, realizada por Rado [17],
es cuál máquina de n estados (y 2 sı́mbolos) escribe más sı́mbolos o le toma más
tiempo para detenerse a partir de una cinta en blanco. Al máximo número de
pasos se le asigna un número S(n) que depende solamente del número de estados
n y se le llama a dicha máquina un castor atareado (o busy beaver en inglés)
comúnmente denotado por B(n).
Ahora bien, si se conoce el valor S(n) para B(n) cualquier máquina que corra
más de S(n) es una máquina que no se detendrá nunca. Ası́ que basta ejecutar
cada máquina para saber si se detiene o no. Rado demuestra, sin embargo, que la
función n → S(n) no es computable, es decir, no existe un algoritmo (o máquina
de Turing) que dado un número de estados produzca el número S(n).
El número Ω de Chaitin, el castor atareado, la probabilidad algorı́tmica y
nuestro método, están todos ı́ntimamente relacionados. Para máquinas de Tu-
ring pequeñas, el problema de la detención se puede resolver porque, por un
lado, porque no son relativamente muchas y uno puede ya sea ejecutar todas las
máquinas y examinar su comportamiento o examinar la tabla de instrucciones de
la máquina y decidir analı́ticamente si se detiene o no. Sin embargo, la secuencia
de números del castor atareado, S(1), S(2), . . . crece más rápido que cualquier
secuencia computable. Porque si una máquina de Turing pudiese computar una
sucesión que crece más rápido que el castor atareado, entonces dicha secuencia,
paradójicamente, resolverı́a el problema del castor atareado.
Es fácil verificar que para B(1), S(1) = 1 pues no hay mucho lugar para cual-
quier otro comportamiento más complicado. Con dos estados, Rado determina
que S(2) = 6 y unos años después, junto con Lin [15], probaron que S(3) = 21
requiriendo un análisis exhaustivo y un importante poder computacional. Brady
[3], usando técnicas de análisis más sofisticadas y aún un mayor poder compu-
tacional prueba que que S(4) = 107, pero el valor de S(5) es desconocido, aunque
se conocen algunas cotas.
6
La definición precisa requiere que la máquina de Turing universal sea prefix-free
(para mayor información véase [4])
150
Un programa que muestra los valores de los castores atareados y su evolución
está disponible en lı́nea [25].
4. Evaluando la complejidad de cadenas cortas
El hecho de conocer los valores del castor atareado permite acotar el cálculo
sistemático y masivo de un gran número de máquinas de Turing para producir
una clasificación de frecuencia de cadenas binarias. Esta consideración es, por
supuesto, esencial para no perder tiempo innecesariamente en funcionamiento
de máquinas que no contribuyen a los resultados deseados. Para máquinas de
Turing con 3 estados, por ejemplo, cualquier máquina que ejecute más de 22
pasos, es una máquina que no se dentendrá nunca, ya que para B(3), S(3)=21.
Para 4 estados S(4) = 107, pero no se conoce S(n) para n > 4 y por lo tanto
nuestro experimento exhaustivo sólo puede realizarse a lo más para todas las
máquinas de 4 estados.
Para las 7 529 526 máquinas de Turing con 2 sı́mbolos (0 y 1) y 3 estados, los
resultados de SL(s) comienzan a arrojar indicios de un ordenamiento no trivial
de una clasificación de complejidad para cadenas binarias. Por ejemplo, entre las
cadenas binarias de longitud 6, el cálculo de SL(s) produce, mediante la ejecución
de máquinas de Turing con 3 estados, las cadenas 000000 y 111111 con la más
alta probabilidad (y por lo tanto la más baja complejidad algorı́tmica), que es
lo que uno podrı́a esperar. Seguido en orden de las siguientes cadenas: 000001,
100000, 111110 y 011111 con igual frecuencia, seguidas de 000100, 001000, 111011
y 110111 con igual frecuencia, seguidas de 001001, 100100, 110110 y 011011,
010110 y finalmente por el conjunto 101001, 100101 y 011010. Esta clasificación
es bastante sutil, pero natural para colocar la cadena que puede describirse como
un 1 detrás de cinco 0 como más simple que un 1 con tres 0 delante y dos detrás.
La clasificación obtenida con la máquinas de Turing tiene 3 estados producen sólo
128 diferentes cadenas con las cuales comparar. Esto deja a las demás cadenas un
poco más largas, pero aún cortas, sin probabilidad. Por lo tanto, ejecutamos las
máquinas de Turing con 4 estados para obtener un mayor número de cadenas
y generar una clasificación más completa y fidedigna. Para ello fue necesario
correr 11 019 960 576 máquinas de Turing, que a pesar de ciertos métodos para
acortar su cálculo llevo casi 9 dı́as (en una sola computadora portatil con un
procesador Duo a 1.2 Ghz. y 4Gb de memoria RAM) usando un programa escrito
en lenguaje C, mediante la libreria bignum para grandes números ya que las
tablas de transición de cada máquina se generaban en tiempo real a partir de una
enumeración, ya que generar las reglas de manera combinatoria y almacenarlas
resultaba, para este número de máquinas, imposible para cualquier disco duro
actualmente en el mercado (sin mencionar el tiempo de lectura que para cada
máquina tomarı́a). Algunas simetrı́as pudieron ser explotadas (por ejemplo, para
toda regla de una máquina de Turing existe una que es su complemento y basta
calcular el complemento de su salida para conocer el resultado antes de correrla)
reduciendo el tiempo de cómputo a los 9 dı́as mencionados.
151
Las máquinas de Turing con 4 estados producen 1824 diferentes cadenas bi-
narias que permiten la aproximación de K(s) a través de SL(s) y la fórmula
− log2 (SL(s)). Hay que tener en cuenta que la complejidad de Kolmogorov cal-
culada a través de SL es un número real. Esto es realmente una ventaja ya que
permite una clasificación más fina, pero si se quiere interpretar el resultado como
la longitud de un programa basta tomar el siguiente entero.
Ası́ que valores exactos pueden ser numéricamente aproximados mediante el
uso delos valores conocidos del castor atareado hasta n = 4 y hemos publicado
las tablas completas en lı́nea [1] y tablas parciales en [7].
4.1. Un método estable, autómatas celulares y un modelo de
distribución de patrones
Una pregunta fundamental, y evidente, es qué tan estable y robusto es el
método si se utilizan diferentes formalismos de cómputo (por ejemplo, usando
máquinas de Turing con una cinta ilimitada en una sola dirección o utilizando
automatas celulares en lugar de máquinas de Turing). Hemos mostrado que for-
malismos de cómputo razonables producen clasificaciones de complejidad razona-
bles [23]. Las mismas distribuciones de frecuencia fueron producidas ejecutando
y explorando un espacio representativo de automatas celulares unidimensionales
con 2 colores y rango 3/2, es decir, el espacio de autómatas celulares que utili-
zan en sus reglas de producción el estado de 2 celdas a la izquierda y una a la
derecha, y con condición inicial la más simple posible (una celda negra). Este
espacio de autómatas celulares, que es justo en tamaño el espacio siguiente más
grande al de autómatas celulares elementales [10] (es decir, unidimensionales,
con rango 1 y 2 colores posibles) nos permitió hacer una exploración del tipo de
clasificaciones de complejidad de cadenas que producen. Se eligió este espacio
porque el espacio siguiente más simple es el de los autómatas celulares elementa-
les definidos por Stephen Wolfram [10] que no contiene mas que 256 autómatas
celulares y por lo tanto un número no muy significativo. Evidentemente tanto
para autómatas celulares, como máquinas de Turing o cualquier otro formalismo
de computación, entre más número de autómatas explorados mejor. Sin embar-
go, las restricciones en tiempo y recursos de computación no permiten obtener
resultados en un tiempo razonable, ni añaden necesariamente mayor información
al modelo descrito.
A diferencia de las máquinas de Turing, los autómatas celulares favorecen
ciertas simetrı́as por la manera en que los autómatas celulares evolucionan apli-
cando su regla en paralelo sobre todas las celdas al mismo tiempo. Además,
también a diferencia de las máquinas de Turing, los autómatas celulares no tie-
nen un estado de detención (las cadenas que producen no contienen, por lo
tanto, la información de su los lı́mites extremos que contiene una cadena pro-
ducida por una máquina de Turing que se detiene) ya que un automata celular
se detiene en un tiempo arbitrario decidido por el que lo ejecuta (en nuestro
caso, cada autómata celular fue detenido arbitrariamente después de 100 pa-
sos). Sin embargo, las clasificaciones producidas mediante autómatas celulares
(y también sistemas de etiqueta de Post) resultaron parecerse unas a otras, la
152
Figura 3. Comparación de k-tuplas generadas por autómatas celulares (CA),
máquinas de Turing (TM) y sistemas de etiquetado de Post (TS). Las tuplas
están ordenadas por orden lexicográfico.
similitud fue cuantificada estadı́sticamente mediante el coeficiente de correla-
ción de Spearman [20] (coeficiente diseñado para comparar clasificaciones). El
hecho de que las clasificaciones no sólo sean razonables con respecto a nues-
tra intiuición de lo que es complejo o simple (por ejemplo, las cadenas 000...
y 010101... aparecen con baja complejidad aleatoria mientras que cadenas que
parecen aleatorias intuitivamente, lo son también en las clasificaciones), sino
además estén correlacionadas estadı́sticamente (Figura 4.1) y sean compatibles
con la definición universal de complejidad algorı́tmica, proporcionan un méto-
do eficaz, general y estable (las tablas con las clasificaciones completas están
disponibles en http://www.algorithmicnature.org).
El método descrito tiene, por un lado, la remarcable caracterı́stica de resolver
un problema teórico (el de la estabilidad de la definición y evaluación de la com-
plejidad de cadenas cortas, por ejemplo, el problema del bit isolado) y permite,
en la práctica y gracias a su estabilidad y consistencia, la comparación de la com-
plejidad de distintas clasificaciones. Esta última ventaja permite, por ejemplo,
comparar la distribución de patrones (cadenas con cierta complejidad) presente
en el mundo fı́sico (a partir de fuentes de información empı́rica) y la clasificación
producida por medios algorı́tmicos (utilizando las máquinas de Turing o algún
otro formalismo). Sus similitudes y diferencias podrı́an decirnos qué tanto las
estructuras que se forman en el mundo real pueden ser el resultado de procesos
algorı́tmicos a diferencia de, por ejemplo, procesos mayoritariamente aleatorios.
153
En [23] y [26] nos hemos formulado estas preguntas, y esbozado un inicio de ruta
de investigación.
5. Comentarios finales
El avance del programa de investigación que se describe aquı́ pone a dispo-
sición un método general para calcular la complejidad de Kolmogorov.
En el artı́culo de Pour La Science [9] Delahaye señala:
Pour les petites séquences, cette mesure est stable et conforme à notre
idée de la complexité, et, pour les grandes, elle est, d’après le théorème
mentionné conforme à la mesure de meilleure mesure de complexité una-
nimement admise, la complexité de Kolmogorov. Que demander de plus?
(Para cadenas cortas, esta medida [la medida que describo en este artı́cu-
lo, nuestro comentario] es estable y se ajusta a nuestra idea de la com-
plejidad, y, para largas cadenas, de acuerdo con el teorema mencionado
[el teorema de invarianza, nuestro comentario], se ajusta a la mejor y
universalmente aceptada medida de la complejidad, la complejidad de
Kolmogorov. ¿Qué más se puede pedir?)
El método pretende ser utilizado para evaluar la complejidad de cadenas más
largas mediante su descomposición en subcadenas más cortas para las cuales po-
demos calcular su complejidad y generar una aproximación de la complejidad
de la cadena original. Tampoco es necesario recorrer espacios completos para
aproximar un valor de complejidad. Muestreos del espacio de máquinas de Tu-
ring con 5 estados, espacios de autómatas celulares unidimensionales con rangos
de vecindad más grandes y otros formalismos de computación, como sistemas
de substitución, pueden utilizarse. De hecho una pregunta abierta, es qué tanto
pequeñas diferencias en un mismo formalismo impactan las medidas de comple-
jidad. Por ejemplo, si se les permite a las máquinas de Turing quedarse en la
misma celda o no moverse más que en una dirección de la cinta (variantes que
preservan universalidad).
A manera de conclusión, Chaitin ha expresado [6] que (hablando de los re-
sultados de nuestro método):
. . .the dreaded theoretical hole in the foundations of algorithmic com-
plexity turns out, in practice, not to be as serious as was previously
assumed.
(. . .el agujero teórico terrible en los fundamentos de la complejidad al-
gorı́tmica resulta, en la práctica, no ser tan grave como se suponı́a ante-
riormente).
Sin embargo, lo cierto es que estamos muy lejos de haber sacado todas las
conclusiones y aplicaciones posibles.
154
Agradecimientos
Los autores agradecen a los dos revisores cuyos comentarios y sugerencias fue-
ron de gran valor para mejorar la manera de comunicar los resultados explorados
en este artı́culo. Cualquier error en él, sin embargo, es exclusiva responsabilidad
de los autores.
Referencias
[1] Algorithmic Nature research program http://algorithmicnature.org.
[2] Bennett, C.H. Logical Depth and Physical Complexity in The Universal Turing
Machine–a Half-Century Survey, editado por Herken, R. Oxford University, pp.
227–257, 1988.
[3] Brady, A.H. The determination of the value of Rado’s noncomputable function
Sigma(k) for four-state Turing machines, Mathematics of Computation, Vol. 40,
No. 162, pp. 647–665, 1983.
[4] Calude, C.S. Information and Randomness: An Algorithmic Perspective. (Texts in
Theoretical Computer Science. An EATCS Series), Springer, 2nd. edition, 2002.
[5] Chaitin, G.J. A Theory of Program Size Formally Identical to Information Theory,
Journal of the ACM, No. 22, 1975.
[6] Chaitin, G.J. Reporte de la tesis de H. Zenil, Université de Lille, 2011.
[7] Delahaye, J.-P. and Zenil, H. Numerical Evaluation of Algorithmic Complexity
for Short Strings: A Glance Into the Innermost Structure of Randomness. ar-
Xiv:1101.4795v4 [cs.IT], 2011.
[8] Delahaye, J.-P. y Zenil, H. On the Kolmogorov-Chaitin complexity for short se-
quences, en Calude, C.S. (ed.) Randomness and Complexity: from Chaitin to Leib-
niz. World Scientific, p. 343–358, 2007.
[9] Pour La Science (edición francesa de Scientific American), No. 400, 2011.
[10] Shannon, C.E. A Mathematical Theory of Communication. The Bell System Tech-
nical J. 27, 379–423 and 623–656, 1948.
[11] Langton, C.G. Computation at the edge of chaos. Physica D, 42, 1990.
[12] Levin, L. Laws of information conservation (non-growth) and aspects of the foun-
dation of probability theory, Problems in Form. Transmission 10, 206–210, 1974.
[13] L. Levin. Universal Search Problems. 9(3): 265-266, 1973 (c). (submitted: 1972,
reported in talks: 1971). English translation in: B.A.Trakhtenbrot. A Survey of
Russian Approaches to Perebor (Brute-force Search) Algorithms. Annals of the
History of Computing 6(4): 384-400, 1984.
[14] Li, M. y Vitányi, P. An Introduction to Kolmogorov Complexity and Its Applica-
tions. Springer, 3rd. Revised edition, 2008.
[15] Lin, S. y Rado, T. Computer Studies of Turing Machine Problems. J. ACM 12,
196–212, 1965.
[16] Minsky, M. Computation: Finite and Infinite Machines. Prentice–Hall, 1972.
[17] Rado, T. On noncomputable Functions. Bell System Technical J. 41, 877–884,
May 1962.
[18] Solomonoff, R. J. A formal theory of inductive inference: Parts 1 and 2. Informa-
tion and Control, 7:1–22 y 224–254, 1964.
[19] Kolmogorov, A. N. Three Approaches to the Quantitative Definition of Informa-
tion. Problems of Information Theory 1, 1965.
[20] Kendall, M.G. Rank correlation methods. Griffin, 1962.
155
[21] Wolfram, S. A New Kind of Science, Wolfram Media, 2002.
[22] Zenil, H. Compression-based investigation of the behavior of cellular automata
and other systems, Complex Systems (19)2, 2010.
[23] Zenil, H. y Delahaye, J.-P. On the Algorithmic Nature of the World, en Dodig-
Crnkovic, G. and Burgin, M. (eds.) Information and Computation. World Scien-
tific, 2010.
[24] Zenil, H., Delahaye, J.-P. and Gaucherel, C. Image Characterization and Classifi-
cation by Physical Complexity, por aparecer en Complexity.
[25] Zenil, H. “Busy Beaver”, Wolfram Demonstrations Project http:
//demonstrations.wolfram.com/BusyBeaver/.
[26] Zenil, H. The World is Either Algorithmic or Mostly Random, the FXQi Contest:
Is Reality Digital or Analog? ensayo ganador del tercer premio, 2011.
Una nueva familia de sistemas tipo Collatz
Enrique Zeleny Vazquez
Wolfram Research, Inc.
[email protected] Resumen Se presentan sistemas similares al problema de Collatz, dife-
rentes a generalizaciones conocidas y a las introducidas por Wolfram1,2 ,
cuya definición no es artimética. Se estudian los grafos dirigidos para
entender cómo convergen y a que tipos de secuencias; se hallan recu-
rrencias lineales y funciones generadoras; ası́ como algunas propiedades
y formulaciones alternativas útiles para realizar emulaciones.
1. Introducción
El problema de Collatz3 establece que la iteración de la función
�
3n + 1 si n es impar
f (n) = (1)
n/2 si n es par
siempre termina en 1, para cualquier número positivo; fue originalmente pro-
puesto por Lothar Collatz en 1937 y hasta la fecha ha resistido a todo intento
de demostración.
Una caracterı́stica de este sistema es que en su evolución, en una serie de
pasos aumenta y en otra disminuye de longitud la secuencia de dı́gitos de su
expansión binaria repetidamente y de manera irregular.
El programa similar en su comportamiento al sistema de Collatz que se estu-
dia en este trabajo y que se muestra a continuación y posteriormente se describe
con palabras (que resultan más simples que tratar de escribirlo en pseudocódigo)
es:
If[OddQ[FromDigits[#1, 2]], Mod[Differences[#1], 2],
Prepend[RotateRight[#1], 1]] &
En el caso en que el valor inicial es impar, se toman las diferencias sucesivas
de la secuencia, módulo 2, y si es par, mueve el dı́gito del final al principio,
y se antepone un 1 a la secuencia resultante. Desglosando el programa, If es
el condicional que evalúa si el resultadode OddQ es un valor impar del ente-
ro que FromDigits extrae de una secuencia en base 2 (#1 representa el sitio
donde se introduce como argumento la secuencia binaria), en caso afirmativo,
Differences procesa las diferencias sucesivas módulo 2 usando Mod, en caso
contrario, RotateRight mueve el dı́gito final de la derecha de la secuencia y lo
rota a la primera posición y Prepend le agrega un 1 al comienzo.
158
Veamos un ejemplo: comenzamos con el valor inicial 13, que corresponde a
la cadena 1101, como es impar, se restan sucesivamente 1-1, 1-0 y 0-1 módulo 2
(o valor absoluto, si se prefiere), que produce 011; después 0-1,1-1, produciendo
10, que es par, entonces el cero del final se agrega al principio anteponiendo un
1, quedando 101, que es igual a 5 que es impar y produce 3 (11, sin cero a la
izquierda), que finalmente termina en 0, que jugarı́a el papel de nuestro estado
de detención. Resumiendo, tenemos la evolución.
1101
011
10
101
11
0
El sı́mbolo & denota simplemente que se trata de una función. Definimos el
sistema como programa porque no existe en la notación matemática tradicional
sı́mbolos para operaciones como “diferencias” y otras operaciones muy simples
y generales que existen en el lenguaje de Mathematica.1
En la figura 1 se puede ver un ejemplo del comportamiento de la secuencia,
que va disminuyendo su longitud hasta llegar a una secuencia de 5 ceros, a partir
de ese momento, el comportamiento se vuelve repetitivo y se forman una serie
de barras en forma de triángulo que crecen cada vez más.
En el grafo de la figura 2, vemos las trayectorias que siguen algunos números
menores que 100 como valor inicial. El grafo rápidamente se vuelve muy complejo
y aparecen secuencias de números muy grandes a menudo disconexas del resto
del grafo, pero que al incluir un mayor número de valores iniciales y aumentar el
número máximo de pasos, se conectan; debido a esto, algunos números menores
que 100 no aparecen en el grafo, además de otros detalles que se discuten en la
sección 2.
En algunos casos, las trayectorias son muy largas y en algunos intervalos no
parece claro si va a converger, por ejemplo, para un valor inicial grande como
8618126181, se requiere casi 9000 pasos para converger.
Otro detalle del grafo es que para algunos enteros, aparece más de una flecha
hacia otros enteros porque también pueden generarse secuencias con ceros a la
izquierda, que produce un número diferente que si no los tuviera.
Éste es otro ejemplo de un programa tipo Collatz,
If[OddQ[FromDigits[#1, 2]], Prepend[Accumulate[#1], 1],
BitXor[Most[#1], 3]]&
similar al anteriormente presentado, pero que utiliza la operación Accumulate,
donde se obtienen los totales acumulados de los dı́gitos de la secuencia, es decir,
se toma el primer dı́gito, luego se suman los primeros dos, posteriormente los
tres primeros y ası́ sucesivamente; que en un caso como el de una cadena como
1
http://www.wolfram.com/mathematica/
159
Figura 1. Evolución para la condición inicial 4718.
1011, produce la cadena 1123. También se introduce la operación lógica BitXor
actuando sobre la secuencia de dı́gitos pero removiendo el último, que se obtiene
con Most. Para ilustrar como actúa el comando BitXor, tomemos el 5 y el 3, que
en binario serı́an 101 y 011 (los ceros a la izquierda son para que las secuencias
tengan la misma longitud), 01 y 10 dan 1, y 00 y 11 dan 0 (0 es falso y 1
verdadero), entonces el resultado de concatenar las secuencias serı́a 110, que
corresponde al 6. La evolución del sistema se puede ver en la figura 3.
Éstos y otros programas fueron hallados utilizando un programa que genera
combinaciones de un conjunto de diferentes instrucciones de Mathematica con
diferentes estructuras de árbol y ayuda a visualizar el tipo de secuencias que
produce el programa. Incluso podrı́an generalizarse más estas secuencias consi-
derando otras propiedades que ser par o impar.
2. Convergencia
El programa converge a una secuencia de uno o más ceros, que entran en
un ciclo 0, 2, 5, 3, 0, ..., en el caso del 1, se indefine porque se requieren al menos
dos dı́gitos para poder realizar otra iteración. También existen casos donde la
secuencia no converge a cero, donde utilizamos el término “converge.en el sentido
de que llega al entero menor de la secuencia. Una vez alcanzado éste, se generan
160
55
12
77 22 38
59 43 83
50 65 6 58 30
99 89 97 33 11 35 93 47
18 49 53 17 19 51 24
26 73 69 41 9 67 15 10 44
45 39 61 29 13 34 8 14 21 37 86
27 20 3 81 25 23 171
42 2 57 126
85 5
1 31 63 7
0 4
Figura 2. Grafo para números menores que 100.
estructuras repetitivas triangulares de tres tipos diferentes, generando enteros
cada vez más grandes, como se muestra en la figura 4.
Ésta es la lista de los primeros cien enteros y los valores a los que converge.
0, 1, 0, 0, 0, 0, 6, 0, 0, 0, 0, 6, 12, 0, 12, 0, 0, 0, 0, 0,0,
0, 22, 12, 24, 0, 0, 0, 28, 0, 24, 0, 0, 0, 0, 0, 0, 12, 10,
0, 0, 0, 0, 24, 44, 0, 46, 24, 48, 0, 0, 10, 0, 0, 54, 10, 56,
0, 10, 0, 60, 0, 48, 0, 0, 0, 6, 0, 0, 0, 23, 0, 0, 0, 12, 46,
0, 24, 0, 0, 0, 0, 0, 10, 0, 0, 86, 60, 88, 0, 0, 54, 92, 10,
94, 48, 96, 0, 0, 0, 0.
Para valores más grandes, ver la figura 5.
En otros casos aparecen ciclos como es el caso de 6 y 11, y de 54 y 91. Para
enteros de la forma 2n y 2n + 1 la convergencia es muy simple, como se muestra
161
Figura 3. Otro ejemplo de programa tipo Collatz.
en la figura 6, como éstas estructuras aparecen repetidamente, juegan el papel
de estructuras localizadas.
La cantidad de pasos que se requieren para que alcancen una longitud mı́nima
los primeros 100 dı́gitos son:
1, 1, 4, 2, 5, 3, 1, 2, 6, 4, 4, 2, 1, 6, 3, 2, 7, 5, 9, 5, 5,
3, 1, 2, 1, 4, 9, 7, 1, 7, 3, 2, 8, 6, 10, 10, 12, 3, 6, 6, 6,
8, 4, 4, 1, 8, 1, 2, 1, 8, 10, 2, 16, 8, 1, 8, 1, 8, 4, 12, 1,
8, 3, 2, 9, 7, 7, 11, 17, 7, 6, 13, 15, 9, 4, 2, 17, 5, 21, 7,
7, 9, 11, 5, 5, 3, 1, 2, 1, 9, 15, 2, 1, 3, 1, 2, 1, 6, 9, 11,
23.
3. Definiciones alternativas
Un par de maneras de reescribir este sistema en el leguaje de Mathematica
son:
162
12 28 92
22 46 174
87 343
43 60 252
30 94 382
47 175 703
120 480
24 188 752
44 350 1400
86 687 2748
504 5470
171 764 10 927
126 1406 8184
191 2751 12 284
2016 22 526
96 3056 44 031
176 5624 32 256
344 11 004
21 886
684 43 711
1366 32 736
2731
2046
3071
1536
Figura 4. Tipos de estructuras que emergen cuando la secuencia alcanza su
menor longitud.
If[Last[#] == 1, BitXor[Rest[#1], Most[#]],
Join[{1, 0}, Most[#1]]] &
que en palabras podrı́a expresarse como “Si el último dı́gito es 1 (es decir, si es
impar), realizar la operación lógica BitXor con la secuencia de dı́gitos resultante
de remover el primer dı́gito y la secuencia removiendo el último; si el último
dı́gito es cero, agregar a la secuencia 1,0 al principio y remover el último dı́gito”:
If[Last[#] == 1, Partition[#1, 2, 1] /.
{{i_, i_} -> 0, {i_, j_} -> 1}, #1 /. {l__, i_} -> {1, 0, l}] &
que podrı́a describirse como “Si el último dǵito es 1, particionar la lista en pares,
empezando por cada dı́gito, aquellos pares que sean iguales se reescriben como
cero y los diferentes como 1; de ser cero, sustituir la secuencia con otra con un 1,
0 al principio y removiendo el último dı́gito”. La manera en que actúa Partition
en una secuencia como 1011101 genera pares recorriendo un sitio y produce 10,
01, 11, 11, 10, 01. El sı́mbolo /. quiere decir reemplazar y las expresiones con
un guión bajo como i aparejan un dı́gito y expresiones como l una secuencia
de una cantidad arbitraria de dı́gitos; expresiones como i y j se refieren a
diferentes dı́gitos. Los sḿbolos -> asignan que es lo que se debe reemplazar en la
secuencia. Puesto de ésta manera guarda un parecido a un sistema de sustitución
dependiente de vecinos. Veremos que para secuencias de números pares, éstas
pueden escribirse con fórmulas en términos de potencias de dos y relaciones de
recurrencia en la sección siguiente.
También existe una relación con la máquina de Post (sistema de etiquetas),
de hecho se conoce un sistema de Post que emula el problema de Collatz4 . En
nuestro caso, hay una reminiscencia con la máquina de Post en la parte donde
se agrega un 1 al principio, sin embargo el sistema tratado aquı́ depende del
163
150
100
50
500 1000 1500 2000
Figura 5. Cantidad de pasos para converger para valores hasta 2000.
vecino de la derecha, pero las reglas de producción deberı́an definirse de manera
diferente a la habitual.
También es posbile definir el problema de Collatz5,6 como máquina abstracta,
con números racionales, como secuencia de paridad, con mapeos en los reales y
complejos, usando la función de Siracusa y en una versión de autómata celular7
en base 6 con 2 vecinos. En este caso se puede definir como función por partes
para ternas de números abc:
4 si a es impar y b = 6
f (n) = 6 si a es par y b = 6 (2)
3 a mod 2+�b/2� en cualquier otro caso
en la última parte se debe sustituir los ceros por seis cuando a = 6.
Se han observado curiosos patrones8,9 en objetos tales como la espiral de
Ulam, ası́ como en el problema de Collatz; para nuestro sistema, también apa-
recen patrones que nos ayudarı́an a entender cómo interactúan las estructuras
(figura 7).
4. Expresiones analı́ticas
En ésta sección se muestran ejemplos de fórmulas para algunas secuencias, sin
embargo no se intenta una derivación general de todas las posibles secuencias.
Tomemos el caso de la secuencia creciente, obtenida del sistema que estamos
estudiando:
576, 1312, 2704, 5448, 10916, 21842, 43689
164
512 513
1280
2688 257
5440 129
10 912
21 840 65
43 688
87 380 33
174 762 17
349 525
262 143 9
0 5
3
0
Figura 6. Convergencia de enteros de la forma 2n y 2n+1 .
cuyos términos están dados por la expresión (comenzando con n = 1),
1 7−n 3+2n
2 (2 − 5) (3)
3
que también puede escribirse como relación de recurrencia,
5
a(n + 1) − a(n), a(0) = 576, a(1) = 1312.
a(n + 2) = (4)
2
Observemos que el último entero de la secuencia resulta impar, que a su vez
genera un racional para el siguiente término, entonces se aplica la otra condición
para números impares de acuerdo a la definición del programa, entonces se reduce
a un problema de relación de recurrencia que se evalúa en los números pares. En
el caso de secuencias impares no existe una recurrencia lineal.
En el caso de las estructuras repetitivas cuando la secuencia no converge a
cero, también pueden describirse por este tipo de expresiones, en el caso del 12,
se genera ésta subsecuencia:
393216, 720896, 1409024, 2801664, 5595136, 11186176, 22370304,
44739584, 89478656, 178957056, 357913984, 715827904, 1431655776,
2863311536, 5726623064, 11453246124, 22906492246, 45812984491
que se pueden escribir como:
1 18−n
2 (1 + 21+2n ) (5)
3
la cual puede escribirse también como relación de recurrencia mostrada ante-
riormente, ası́ como las secuencias siguientes, tomando los primeros dos enteros
como valores iniciales.
Otro tipo de estructura que se genera, como es el caso del 28, genera la
siguiente secuencia:
165
200
150
100
50
0
0 50 100 150 200
Figura 7. Evolución del sistema para los primeros 200 valores iniciales. Nótese
la existencia de lı́neas horizontales y otras con una cierta inclinación.
523776, 786176, 1441664, 2817984, 5603296, 11190256, 22372344,
44740604, 89479166
que de manera similar queda:
1 10−n
2 (1021 + 29+2n ). (6)
3
Por útimo, otra estructura se produce a partir de enteros como el 92 de la
siguiente manera:
32256, 48896, 89984, 176064, 350176, 699376, 1398264, 2796284,
5592446
o de la forma:
1 10−n
2 (61 + 25+2n ). (7)
3
166
5. Conclusiones
Esto muestra que este tipo de problemas no son aislados, como otros siste-
mas de tipo reversión-adición10 también hallados por el autor y que sugieren
que existe una mayor relación entre problemas de teorı́a de números e ideas de
computación y complejidad, en relación con identificación de estructuras loca-
lizadas para allanar el camino hacia demostraciones de universalidad, ası́ como
la comprensión de lı́mites de solubilidad y no solubilidad. Como trabajo poste-
rior, se requiere un teorema que resuma los ejemplos de las fórmulas presentadas
aquı́ para secuencias de números pares.
Referencias
[1] Wolfram, S. (2002). A New Kind of Science, Wolfram Media, p. 904.
[2] Weisstein, E. W. “Wolfram Sequences” From MathWorld–A Wolfram Web Re-
source. http://mathworld.wolfram.com/WolframSequences.html
[3] Weisstein, E. W. “Collatz Problem” From MathWorld - A Wolfram Web Re-
source. http://mathworld.wolfram.com/CollatzProblem.html
[4] De Mol, L. (2008). Tag systems and Collatz-like functions, Theoretical Computer
Science, 390(1), 92-101.
[5] Collatz conjecture (2011). Wikipedia, http://en.wikipedia.org/wiki/
Collatz_conjecture
[6] Zeleny, E. (2011). “Other Formulations of Collatz Problem”, submitted to Wol-
fram Demonstrations Project.
[7] Zeleny, E. “Collatz Problem as a Cellular Automaton” from the Wol-
fram Demonstrations Project. http://demonstrations.wolfram.com/
CollatzProblemAsACellularAutomaton/
[8] Pickover, C. A. (2000) Wonders of Numbers, Adventures in Math, Mind, and
Meaning, Oxford University Press.
[9] Zeleny, E. “Preferred Values of Collatz Paths” from the Wol-
fram Demonstrations Project. http://demonstrations.wolfram.com/
PreferredValuesOfCollatzPaths/
[10] Zeleny, E. (2008). “Reversal-Addition Related Systems” from the Wol-
fram Demonstrations Project. http://demonstrations.wolfram.com/
ReversalAdditionRelatedSystems/
Un algoritmo de encriptación basado en la
composición de las reglas 30 y 86 del autómata
celular elemental
Emmanuel Garcés Medina
Laboratorio de Ciencias de la Computación, UNAM.
Laboratorio de Dinámica No Lineal, Facultad de Ciencias, UNAM.
[email protected] Resumen En este artı́culo se describe un algoritmo de encriptación
basado en la dinámica de la composición alternada de los autómatas
celulares elementales (ECA) reglas 30 y 86. La llave de encriptación
k es una secuencia de bits de longitud |k| ≤ |x|, siendo x los bits a
cifrar. La llave, que es privada, define un camino hacia atrás en el tiempo
desde el estado inicial que corresponde a los bits de los datos a encriptar
alternando las reglas de ambos autómatas. El cifrado falla cuando el
algoritmo alcanza un estado que no tiene predecesores de longitud |x|
con la regla 30, lo cual ocurre con probabilidad muy cercana a cero.
1. El autómata celular elemental
El autómata celular elemental es un sistema dinámico definido sobre un arre-
glo finito x con n > 2 elementos cuyo valor puede ser 1 o 0 (x ∈ {1, 0}n ). La
dinámica del sistema esta regida por una regla o función de transición f que
actualiza el valor de cada elemento a través del tiempo t. La función de transi-
ción esta definida sobre una vecindad de tres elementos: el vecino izquierdo del
elemento a actualizar, el elemento mismo y el vecino derecho. Para los elementos
que se encuentran en la frontera del arreglo la vecindad se considera de la misma
manera, pero suponiendo que el arreglo es circular. Por lo tanto, si xti es el estado
de la i-esima celda en el tiempo t, entonces:
f (xti−1 , xti , xti+1 ) si i > 1 ∧ i < n
t+1
xi = f (xtn , xt1 , xt2 ) si i = 1 (1)
f (xtn−1 , xtn , xt1 ) si i = n
Los autómatas celulares (AC), además de ser estudiados históricamente como
sistemas dinámicos discretos, también han sido explorados como máquinas capa-
ces de efectuar computación. Existen, inclusive, autómatas celulares que pueden
ser configurados para efectuar computación de propósito general o universal.
Otros han sido diseñados para propósitos especı́ficos, entre ellos la encriptación
de datos. Se han reportado varios algoritmos de encriptación basados en autóma-
tas celulares [3, 6, 10] los cuales explotan diversas propiedades dinámicas de estos
sistemas.
168
Existen 256 funciones de transición o reglas posibles para un autómata celu-
lar elemental. Muchas de ellas exhiben comportamiento dinámico con suficiente
complejidad que se aprovecha para simular otros mecanismos. En este artı́culo
se utilizan las reglas 30 y 86, las cuales se clasifican dentro de la clase III de
Wolfram [7] exhibiendo pseudoaletoriedad, caos e irreduciblidad computacional.
La función de transición de la regla 30 se define como f30 (v1 , v2 , v3 ) = (v1 +
v2 + v3 + v2 v3 ) mod 2. La función de transición de la regla 86 se define como
f86 (v1 , v2 , v3 ) = (v1 + v2 + v3 + v1 v2 ) mod 2.
La regla 86 es la regla reflejada izquierda-derecha de la regla 30, es decir, si
f30 (v1 , v2 , v3 ) es la función de transición de la regla 30, entonces f86 (v1 , v2 , v3 ) =
f30 (v3 , v2 , v1 ) es la función respectiva para la regla 86. La dinámica de ambos
autómatas es equivalente.
2. Antecedentes
Los autómatas celulares como mecanismos de encriptación de información
se han usado de diversa manera para la encriptación de datos. Olivera, Martins
y Alt mencionan tres usos de los AC para encriptar datos: i) usando AC para
generar buenas llaves de encriptación [6], ii) usando AC reversibles [3] y iii)
usando AC no reversibles [2, 5, 10]. El algoritmo propuesto en este artı́culo
reside en la tercera categorı́a.
Existen varios motivos por los cuales los autómatas celulares resultan atrac-
tivos para su uso como mecanismos de cifrado. En principio porque la compu-
tación de un autómata celular se desarrolla en paralelo y la programación de
las funciones de transición es simple, pero sobre todo porque existen dinámicas
que exhiben pseudoaletoriedad, caos e irreducibilidad computacional y otras que
exhiben reversibilidad.
Los métodos de encriptación que emplean autómatas celulares no reversibles
realizan la computación de preimagenes de estados para el proceso de cifrado
y el computación hacia adelante para el proceso de descifrado. El algoritmo de
Gutowitz [2] usa cierto tipo de reglas (toggle rules) y configuraciones de celdas
no periódicas para sus procesos mientras que Wuensche [10] usa otra clase de
reglas asociadas con ciertos valores del parámetro Z y usando configuraciones
de celdas de tamaño fijo. Oliveira [5] extiende el método de Gutowitz para usar
cualquier regla de AC.
En los métodos ii) y iii) mencionados anteriormente las llaves de encriptación
corresponden a reglas de algún autómata celular. En el algoritmo propuesto
en este artı́culo la llave corresponde a una secuencia de bits que define una
composición funcional de la regla 30 y su equivalente reflejada izquierda-derecha,
la regla 86.
La regla 30, es usada por Wolfram [6] como un proceso para encontrar una
llave de tamaño adecuado para el método de encriptación basado en XOR o
cifrado de Vernan a partir de la llave original y usando los valores de la celda
central en la evolución de la regla 30. El método de Wolfram no emplea el cálculo
de preimagenes como lo hace el algoritmo de Gutowitz [2], donde a partir de una
169
configuración de bits a encriptar se calcula algun predecesor a cierta distancia
hacia atrás y de longitud mayor a la configuración inicial. En tal caso, la llave
de encriptación es la regla de transición. En el método de este artı́culo se fijan
dos reglas y el tamaño de la configuración de celdas.
3. Espacio de estados e irreducibilidad del autómata
celular elemental regla 30
Dado un tiempo t en la evolución del autómata celular. Se conoce como es-
tado a la configuración de los elementos del arreglo en el tiempo t. Es decir:
Si x ∈ {1, 0}+ con |x| = n entonces reglaR (x, t) es el estado del autómata
celular regla R en el tiempo t para la condición inicial x de tamaño n. Se abrevia
reglaR (x) a reglaR (x, 1).
Por lo tanto, para un arreglo de n celdas con dos estados, el número máximo
de posibles estados en el que se puede encontrar un autómata celular es 2n .
Figura 1. El espacio de transiciones del AC Elemental regla 30 para n = 20.
170
Para el caso de la regla 30, a partir de la mayorı́a de las 2n condiciones
iniciales posibles, el número de estados que son visitados durante la dinámica
del autómata celular crece exponencialmente respecto al tamaño de la condición
inicial [7]. Existen evidencias experimentales que apoyan el hecho de que la
evolución de la regla 30 es una computación irreducible.
Por lo tanto, el espacio de transiciones entre estados de la dinámica del
autómata celular elemental regla 30 contiene caminos que visitan una fracción
muy importante de todos las configuraciones posibles de un arreglo de bits de n
d elementos (2n ). En la Figura 1 se muestra el trazo general de todos los caminos
realizados por la regla 30 en un arreglo de bits de 20 elementos. El número total
de estados en la Figura 1 debe ser igual a 220 ≈ 1 millón.
4. Densidad de estados no alcanzables de longitud n para
la regla 30
Un estado no alcanzable se define como aquel que no es predecesor de algún
otro estado. Es decir, son estados que solo pueden aparecer como condiciones
iniciales en la evolución de un autómata celular y visualmente son las hojas de
la gráfica de la Figura 1. Si predR (x) es el conjunto de estados predecesores del
estado x para la regla R, entonces:
predR (x) = {p ∈ {1, 0}n |reglaR (p) = x} (2)
El conjunto de hojas o estados no alcanzables para el autómata celular regla
R con n celdas esta determinado por:
hojasR (n) = {x ∈ {1, 0}n |predR (x) = ∅} (3)
Es importante resaltar que la densidad de estados que son alcanzables será de
mucha importancia en la eficacia del algoritmo de encriptación que se propone.
Existen evidencias [7, 9] que sugieren que para la regla 30, la fracción o densidad
de estados no alcanzables tiende a cero conforme aumenta el número de ele-
mentos n del arreglo de bits del autómata celular. Esto se debe principalmente
porque la regla 30 es suryectiva. Por lo tanto, ∀x ∈ {1, 0}n se tiene que:
probabilidad(x ∈ hojas30 (n)) → 0 cuando n → ∞ (4)
La Figura 2 muestra la fracción de estados no alcanzables para 4 reglas de
autómata celular elemental.
Debido a que la regla 86 es la regla reflejada izquierda-derecha de la regla
30, el conjunto de predecesores de los 2n estados de ambos autómatas celulares
respectivamente es el mismo [8]. Por lo tanto, se ha verificado que:
∀x ∈ {1, 0}n
∃p ∈ {1, 0}n t.q. regla30 (p) = x ⇔ ∃q ∈ {1, 0}n t.q. regla86 (q) = x (5)
171
Figura 2. La densidad de estados de tamaño n sin predecesores de la misma
longitud para las reglas 30, 45, 73 y 110 en función de n.
5. Composición de autómatas celulares determinadas por
un vector
Para efectos del algoritmo, se define la composición de autómatas celulares
como la aplicación alternada de dos reglas sobre algún estado del autómata
celular. A diferencia de las definiciones usuales de composición de funciones, se
puede definir un órden particular de aplicación de funciones determinadas por
un vector. Por lo tanto, dada una condición inicial x ∈ {1, 0}n +, un vector de
composición v ∈ {1, 0}m + y dos reglas A yB, la composición se define como:
cA,B (x, v) = reglar1 (reglar2 (...reglarj (reglarj+1 (...reglarm (x)...))...)) (6)
�
A si v(j)=0
rj = (7)
B si v(j)=1
Se define ahora al conjunto de estados distintos E a los que se puede llegar
desde un estado x de tamaño n mediante la composición determinada por un
vector de tamaño m descrita anteriormente:
EA,B (x, m) = {cA,B (x, v)|v ∈ {1, 0}j , 1 ≤ j ≤ m} (8)
Para la composición con las reglas 30 y 86 en adelante se abrevia c30,86 = c
y E30,86 = E. Se observa que:
172
�
O(2m ) si m < n
|E(x, m)| ≈ (9)
2n si m ≥ n
Es decir, fijando la condición inicial x de tamaño n, el número de estados visi-
tados por la composición determinada por un vector de tamaño m es tan grande
como el número de vectores explorados, pero lógicamente menor, al número total
de estados posibles (Figuras 3 y 4).
�E�x,m�� y E� �n,m�
3500
3000
2500
2000
1500
1000
500
m
5 10 15
Figura 3. El número de estados distintos |E(x, m)| (lı́nea continua) visitados
desde un estado fijo x (elegido aleatoriamente) de 12 bits en el proceso de com-
posición de las reglas 30 y 86 determinada por un vector de tamaño m. E ∗ (n, m)
´
(l{�nea discontinua) es el número de estados visitados en m pasos desde un vérti-
ce inicial para el proceso aleatorio de agregación de aristas a una gráfica de 212
vértices descrito en esta sección. Se observa que ambas distribuciones son seme-
jantes.
Para demostrar la proposición (9) se construye una gráfica diriga G cuyos
vértices son los estados x de n bits y las aristas son las transiciones de la regla
30 y la regla 86 para todos los estados (Ver Figura 5). Todos los vértices u ∈ G
tienen grado de salida d(u)+ = 2 ya que las aristas de salida son u → regla30 (u)
y u → regla86 (u).
Por otro lado, debido a la proposición (4) casi todos los vértices u ∈ G tienen
grado de entrada d(u)− = 2, ya que las aristas de entrada son todas las flechas
w → u tal que w ∈ G y regla30 (w) = u o regla86 (w) = u y en general, debido a
173
Figura 4. Para todas las configuraciones x de 16 bits se muestra la frecuencia de
|E(x, 5)|. Se observa que a partir de la mayoria de configuraciones x se exploran
casi 25+1 = 64 estados diferentes.
la suryectividad de las reglas 30 y 86, la mayoria de los estados tienen solo un
predecesor para la regla 30 y otro para la regla 86.
Por lo tanto, G es aproximadamente una gráfica dirigida 2-regular, y usando
el teorema de conectividad en [1] se deduce que con muy alta probabilidad desde
un vértice inicial x se puede llegar a la mayoria del resto de los 2n vértices de G
mediante alguna ruta determinada por algun vector v.
Sea G∗ una gráfica con 2n y sin aristas. Se describirá un proceso aleatorio
para agregar aristas a G∗ de tal manera que la gráfica final tendrá propiedades
similares a G.
A continuación se define E ∗ (n, m) que denota al número de estados a los
que se puede llegar construyendo una gráfica mediante el proceso aleatorio men-
cionado y descrito como sigue: Sea X ∗ ⊆ V (G∗ ) el conjunto de los vértices
recientemente visitados. Ahora, ∀x∗ ∈ X ∗ se eligen dos vértices u∗ y w∗ no vi-
sitados durante el proceso y se agregan las aristas x∗ → u∗ y x∗ → w∗ a G∗ .
Luego se saca x∗ de X ∗ y se meten u∗ y w∗ en X ∗ . Este proceso se hace m
veces o hasta que ya no hay más vértices que procesar. La ecuación 10 muestra
e(n, m� ), que denota el número de vértices procesados en el m� -esimo paso del
proceso aleatorio.
�
m
� −1
� � 1
e(n, m ) = e(n, m − 1)(2 − e(n, j)) (10)
2n−1 j=1
174
m
�
E ∗ (n, m) = e(n, j)) (11)
j=1
Figura 5. Todas las posibles transiciones con la regla 30 y regla 86 para todos
los estados de longitud n = 8.
Informalmente, las aristas de G∗ se generan a través una m-caminata alea-
toria asegurando que cada vértice x∗ ∈ G∗ tenga grado de salida d+ (x∗ ) = 2.
Experimentalmente se observa que la gráfica de transiciones en la composi-
ción de las reglas 30 y 86 es similar a G∗ . Por lo tanto |E(x, m)| ≈ E ∗ (n, m) (ver
Figura 3).
Supongamos ahora que m < n. Entonces, reemplazando la suma en (10)
con la definición de (11), despejando y adecuando los ı́ndices adecuadamente
tenemos que:
175
E ∗ (n, m) = δ2n−1 (12)
2e(n, m) − e(n, m + 1)
δ= . (13)
e(n, m)
Se observa que δ es la fracción de vértices que se reeligen en el m� -esimo paso
del proceso aleatorio que genera las aristas de G∗ .
En cada paso m� de este proceso, δ crece proporcional a la fracción del número
m
de vértices ya usados. Por lo tanto, δ ∝ 22n y sustituyendo esta proporcionalidad
en (12) tenemos que E ∗ (n, m) ≈ O(2m ).
Si m ≥ n entonces debido al crecimiento asintótico de E ∗ (n, m), se tiene que
∗
E (n, m) ≈ O(2n ).
Finalmente, como E ∗ (n, m) ≈ |E(x, m)| entonces la proposión (9) queda
demostrada.
La complejidad derivada de la pseudoaleatoriedad experimentada en la dinámi-
ca de la regla 30 y 86 se manifiesta en la Figura 5 donde se muestran las tran-
siciones de un autómata celular con 8 celdas y todas las posibles composiciones
de la regla 30 y 86 determinadas por algún vector.
6. Trazo del algoritmo
Si los datos a cifrar son una secuencia x ∈ {1, 0}n de n bits, y la llave es
otra secuencia k ∈ {1, 0}m de m bits, la idea principal del algoritmo consiste en
encontrar un estado y ∈ {1, 0}n tal que x = c(y, k). El estado y será entonces la
secuencia de bits encriptados. Para lograrlo se calculan los predecesores comen-
zando desde el estado x, tomando, en cada paso del algoritmo algún predecesor
del estado actual y repitiendo el proceso hasta terminar con todos los elementos
de la llave k.
Por ejemplo, si los bits a encriptar son x = 001001, y la llave es k =
001 entonces la encriptación esta dada por s1 ∈ pred30 (s2 ∈ pred30 (s3 ∈
pred86 (001001))) = 101011. El cálculo del algún predecesor se puede hacer usan-
do el algoritmo para encontrar preimagenes descrito en [4]. La probabilidad de
que no exista predecesor de alguna configuración de celdas en algún momento
del proceso de encriptación es muy baja (Ecuación 4), tanto para la computación
de predecesores de la regla 30 como para los de la regla 86 (Ecuación 5).
Si durante algoritmo se llegase a visitar un estado sin predecesores entonces
el algoritmo falla y se puede solicitar una nueva llave al usuario del algoritmo.
El algoritmo 1 muestra la definición formal del método de cifrado propuesto.
Inversamente, si y ∈ {1, 0}n es una secuencia encriptada de bits bajo la lla-
ve k ∈ {1, 0}m entonces su descifrado se logra mediante c(y, k) (ver definición
6), es decir, el decifrado de y es la aplicación de la composición de la regla
30 y 86 determinada por la llave k. Para el ejemplo anterior se verifica que
c(101011, 001) = 001001. El algoritmo 2 muestra la definición formal del deci-
frado.
176
Algorithm 1 Calcular y = Cif rado(x, k)
Require: x, k ∈ {1, 0}+
Ensure: y = cif rado de x con la llave k ⇔ hoja = f alse
i←1
p←x
hoja ← f alse
while i ≤ Length(k) ∧ hoja = f alse do
if pred30 (p) �= ∅ then
if k[i] = 0 then
p ← s ∈ pred30 (p)
else
p ← r ∈ pred86 (p)
end if
else
hoja ← true
end if
i←i+1
end while
y←p
Algorithm 2 Calcular x = Descif rado(y, k)
Require: x, k ∈ {1, 0}+
Ensure: x = descif rado de y con la llave k
i ← Length(k)
q←y
while i ≥ 1 do
if k[i] = 0 then
q ← regla30 (q)
else
q ← regla86 (q)
end if
i←i−1
end while
x←q
177
7. Sobre la eficacia del algoritmo
La sensibilidad a condiciones iniciales y la pseudoaleatoriedad de la dinámica
del autómata celular regla 30 son dos propiedades que refuerzan la eficacia del
algoritmo. La sensibilidad a condiciones iniciales de las reglas 30 y 86 garantiza
que cualquier cambio en la llave o en los datos encriptados derivará en resultados
radicalmente distintos en el proceso de descifrado (Figuras 6 y 7) y la pseudalea-
toriedad en la regla 30 (y regla 86) equipara el proceso de busqueda de llaves con
un proceso aleatorio semejante que genera la gráfica G∗ descrito en este artı́culo.
Figura 6. El proceso de descifrado c(y, k) exhibe sensibilidad a condiciones ini-
ciales para cambios en los bits encriptados y. Con |y| = |k| = 128 bits cada figura
muestra en rojo las diferencias entre dos evoluciones del proceso de descifrado
cuyas condiciones iniciales se diferencı́an únicamente por el valor del i-esimo bit
de y.
El tamaño de la llave |k| = m puede ser tan grande como estados posibles
explorados en el algoritmo de cifrado y descifrado (estados visitados en la evo-
lución hacia adelante y hacia atrás de la composición de las reglas 30 y 86). Sin
embargo, la proposición (9) asegura que cuando m tiende a n entonces el núme-
ro de llaves que se requieren explorar para descifrar un dato encriptado es tan
178
Figura 7. El proceso de descifrado c(y, k) exhibe sensibilidad a condiciones ini-
ciales para cambios en los bits de la llave k. Con |y| = |k| = 128 bits cada figura
muestra en rojo las diferencias entre dos evoluciones del proceso de descifrado
cuyas condiciones iniciales se diferencı́an únicamente por el valor del i-esimo bit
de la llave k.
grande como el número de datos de tamaño n. Por lo tanto, aunque la encripta-
ción es posible para llaves con longitud m > n, el tamaño de las configuraciones
a explorar en un intento de descifrado es tan grande como si la encriptación
hubiese sido realizada usando una llave de longitud m = n.
La probabilidad de que la llave de cifrado no funcione y haga fallar el método
de cifrado disminuye asintóticamnte a cero conforme aumenta el tamaño n del
dato a encriptar debido a que que la probabilidad de que durante el proceso
de cifrado se visite un estado sin predecesores tiende a cero cuando n tiende a
infinito (ver proposición 4).
La computación de preimagenes de estados de la regla 30 puede ser realizado
en tiempo lineal. Por lo tanto, la complejidad computacional del algoritmo de
ciifrado es O(nm). Análogamente, la computación de una transición de la regla
30 u 86 se hace en tiempo lineal, por lo que la complejidad computacional del
algoritmo de descifrado es también O(nm).
179
8. Ejemplos
A continuación se muestran tres ejemplos de encriptación usando el algoritmo
propuesto y usando llaves de distinto tamaño relativo al tamaño de las secuencias
que se encriptan. Cada una de estas secuencias son los bits de un texto plano
que se obtuvieron usando la codificación UTF-8.
Debido a que el resultado de la encriptación puede generar secuencias de
bits que no son mapeables a sı́mbolos de la codificación UTF-8, entonces éste se
muestra usando la codificación Radix-64. Los bits de cada llave de encriptación
tambien se obtienen usando la codificación UTF-8.
Datos:
S i e l e s p a c i o e s i n f i n i t o e s t a m o
s e n c u a l q u i e r p u n t o d e l e s p a c i o
Llave:
S i e l t i e m p o e s i n f i n i t o e s t a m o
s e n c u a l q u i e r p u n t o d e l t i e m p o
Datos encriptados:
F 8 S x h B l 7 x F p � u O W O W G 8 a q u B � d h C e t
h S V J e V 8 F 8 t N Z q e K J h W 4 V K J Z a 0 V 3 K m
G m 7 p i e N J l 7 � 7 t O y a � 4 y 4 Z � C W F x W G l
q S K W y e 4 a d 0 y 8 K W 8 x p R K q B G m e G K q C h
K y S q C u u 3 4 p B 7 m K l 0 4 W S K V S u J q 0 J l 7
0 l F G l e h y K R q C y d � F h F a 0 x V 4 W m S �
Figura 8. Primer ejemplo de texto encriptado.
Referencias
[1] Cooper, C. (1993) A note on the connectivity of 2-regular digraphs, Random
Structures & Algorithms, 4(4), 469-472.
[2] Gutowitz, H. (1995) Cryptography with Dynamical Systems, In Cellular Automa-
ta and Cooperative Phenomena, E. Goles & N. Boccara (Eds.), 237-274, Kluwe-
rAcademic Press.
[3] Kari, J. (1992) Cryptosystems based on reversible cellular automata, Technical
report, University of Turku, Finland.
[4] Mora, J. C. S. T., Martı́nez, G. J., & McIntosh, H. V. (2004) Calculating Ancestors
in One-Dimensional Cellular Automata, International Journal of Modern Physics
C, 15(8), 1151-1169.
[5] Oliveira, G. M. B., Martins, L. G. A., Ferreira, G. B., & Alt, L. S., Secret
Key Specification for a Variable-Length Cryptographic Cellular Automata Mo-
del, PPSN’10 Proceedings of the 11th international conference on Parallel problem
180
Datos:
s a t u r n o
Llave:
S i e l t i e m p o e s i n f i n i t o e s t a m o
s e n c u a l q u i e r p u n t o d e l t i e m p o
Datos encriptados:
y u J m t a m i � S S t N Z p B y R u �
Figura 9. Segundo ejemplo de texto encriptado.
Datos:
S i e l e s p a c i o e s i n f i n i t o e s t a m o
s e n c u a l q u i e r p u n t o d e l e s p a c i o
Llave:
s a t u r n o
Datos encriptados:
i h a 8 4 l Z K K h 7 e N p m Z 0 e K J � p G i h J S x Z
B l N i 7 e 7 W 3 4 p 4 0 O q h 0 u 3 0 q m N K t 8 V y i
p 3 x h W 7 F R F F u 3 a u C 7 d h S h G 7 V J l V a B K
q B m F K x l O u O 7 8 R B 4 t 0 y C � y d 3 4 u G 4 d e
0 3 4 B i l 0 W h 7 l p � d Z 7 u d a i d G p a p h y q S
O 7 G K V m R 7 8 3 p q a 8 i F N O t 0 C 0 R V Z 0 �
Figura 10. Tercer ejemplo de texto encriptado.
solving from nature: Part II, Krakow, 2010. Lecture Notes in Computer Science,
6239, 381-390. 2011.
[6] Wolfram, S. (1986) Cryptography with Cellular Automata, In Cryptology: Crypto
’85 Proceedings, Lecture Notes in Computer Science, 218, 429-432.
[7] Wolfram, S. (2002) A New Kind of Science, Champaign, IL: Wolfram Media, Inc.
[8] Wuensche, A. & Lesser, M. (1992) The Global Dynamics of Cellular Automata;
An Atlas of Basin of Attraction Fields of One-Dimensional Cellular Automata.
Santa Fe Institute Studies in the Sciences of Complexity, Addison-Wesley.
[9] Wuensche, A. (1994) Complexity in one-D cellular automata: gliders, basins of
attraction and the Z parameter, Santa Fe Institute working paper 94-04-025.
[10] Wuensche, A. (2008) Encryption using cellular automata chain-rules, In
Automata-2008: Theory and Applications of Cellular Automata, A. Adamatzky,
R. Alonso-Sanz, A. Lawniczak, G. J. Martı́nez, K. Morita, T. Worsch (Eds.),
126-138, Luniver Press.
Autómatas celulares elementales aplicados a la
encriptación de datos
Elena Villarreal Zapata, Francisco Cruz Ordaz Salazar
Universidad Politécnica de San Luis Potosı́, San Luis Potosı́, México.
[email protected],
[email protected] Resumen Para el cifrado de datos suele ser necesaria una llave como
base, por lo que es indispensable tener una que sea robusta y confiable,
para ası́ evitar el acceso de terceros a la información cifrada. Esto re-
quiere un generador de números pseudo-aleatorios que proporcionará di-
cha llave, por lo que se propone trabajar con autómatas celulares au-
xiliándose con Mathematica, para revisar qué reglas, y a qué nivel, son
pseudo-aleatorias. Este proyecto se centra en la revisión de posibles reglas
pseudo-aleatorias, analizando sus caracterı́sticas detalladamente y some-
tiéndolas a un conjunto de pruebas de aleatoriedad con el fin de conocer
cuales de ellas nos permitirán obtener los números pseudo-aleatorios que
conformarán la llave para el cifrado de datos.
Keywords: autómatas celulares, pseudo-aleatoriedad, cifrado de datos.
1. Introducción
Esta investigación es parte complementaria de un proyecto que se está tra-
bajando en la Universidad Politécnica de San Luis Potosı́, en el que se pretende
desarrollar un sistema de encriptación de datos basado en autómatas celulares.
Como parte del proyecto inicial se debe comprobar que se está trabajando con
reglas pseudo-aleatorias, ya que de comenzar a trabajar con reglas al azar se
corre el riesgo de generar un cifrado que puede ser hackeado fácilmente. Por
tanto, se buscan reglas de autómatas celulares que tengan un comportamien-
to pseudo-aleatorio, para después generar secuencias con cada una y probar su
aleatoriedad.
2. Antecedentes
Los autómatas celulares fueron inventados a fines de los años cuarenta por
Stanislaw Ulam y John von Neumann, quienes realizaron trabajos para crear un
sistema que se replicara a sı́ mismo a partir de una abstracción matemática. Años
después, Wiener y Rosenblueth desarrollaron un modelo de autómatas celulares
que pretendı́a describir matemáticamente la conducción de impulsos en sistemas
cardiacos. En los sesentas se empezaron a estudiar como un tipo de sistemas
dinámicos, y para los setenta aparece el Juego de la Vida. Este fue inventado
por John Conway y consistı́a en una colección de celdas las cuales, basadas en
182
reglas matemáticas, podı́an vivir, morir o mutiplicarse, todo esto dependiendo de
las condiciones iniciales [6]. En 1983, Stephen Wolfram publicó algunos escritos
sobre una clase de autómatas que el llamaba autómatas celulares elementales y
sobre su comportamiento y las reglas que los definı́an. Para el 2002, Wolfram
publicó su libro A New Kind of Science [10] en el cual explica ampliamente sobre
ellos, su trabajo y su importancia en todas las ramas de la ciencia. En cuanto a la
encriptación, Olu Lafe [5] nos explica que existen un numero de patentes dadas y
literatura sobre ello que incluye los trabajos de Wolfram (1985) [9], Delahaye[1]
(1991), Guan [8] (1987) y Gutowitz [2] (1994). En los cuales, Wolfram hace uso
de la regla 30 de los autómatas celulares para generar números pseudo-aleatorios;
Guan usa un sistema dinámico invertible; Gutowitz (U.S. Patent 5,365,589) usa
sistemas dinámicos irreversibles; y Lafe (U.S. Patent 5,677,956 el 14 de octu-
bre de 1997) utiliza operaciones simples de transformación, lo cual implica una
enorme biblioteca de llaves o códigos criptográficos derivados de los autómatas
celulares[1, 2, 3].
3. Autómatas celulares
Un autómata celular, en su versión más simple, es una lı́nea unidimensional
de sitios o celdas, donde cada una es blanca o negra. El color o estado de esta
celda puede cambiar conforme al tiempo. Con cada paso discreto de tiempo, las
celdas se actualizan (ya sea para mantener o cambiar su color previo) de acuerdo
a la función de su estado anterior y al de las dos celdas vecinas a ella (una por
el lado izquierdo y otra por el lado derecho). Existen además, otros espacios
disponibles de autómatas celulares, donde se consideran más parámetros como
lo son el número de estados en las celdas, vecindarios mayores, plantillas más
amplias y dimensiones adicionales, colores, entre otros.
3.1. Reglas
A las condiciones de vecindad de un autómata celular se le conoce como “re-
gla”. Existen 256 (28 ) reglas para los autómatas celulares con un estado binario
variable (0,1) y una vecindad de 1 con longitud de tres. Cada una de ellas está es-
pecificada por un código decimal obtenido a partir de las ocho permutaciones
para la vecindad 1 en orden descendiente y los leemos como un código binario
de ocho dı́gitos, lo cual nos da el número de la regla. La regla 30, por ejemplo,
está definida por la configuración dada en la figura 1. Nótese que la secuencia
00011110 es la representación binaria del número 30.
Wolfram propone un esquema de clasificación, el cual divide las reglas de
autómatas celulares en cuatro categorı́as de acuerdo a sus evoluciones a partir
de una condición inicial “desordenada.o aleatoria. La clase 1, también cono-
cida como de tipo fijo, la cual evoluciona rápidamente a un estado estable y
homogéneo en el que todos los sitios tienen el mismo valor y cualquier alea-
toriedad en el patrón inicial desaparece; la clase 2, también conocida como de
tipo periódico, en la cual se repite un mismo patrón como un bucle donde su
183
Figura 1. Representación binaria de la regla 30.
evolución es a gran velocidad y cualquier aleatoriedad en el patrón inicial solo
dejarı́a restos que complementarı́an el bucle; la clase 3, también conocida como
de tipo caótico o pseudo-aleatorio, en donde su evolución conduce a un patrón
caótico donde cualquier estructura estable es rápidamente destruida por el rui-
do circundante y los cambios tienden a extenderse de manera indefinida; y la
clase 4, de tipo complejo, la cual presenta comportamientos tanto de la clase 2
y 3 y suelen presentar una evolución más lenta. Teniendo una condición inicial
simple, existen 13 reglas de autómatas celulares en las clases 3 y 4 calculadas
en [11], que son las siguientes: 30, 45, 75, 79, 86, 89, 101, 110, 124, 135, 137,
149, 193. Éstas se amplı́an a 38 reglas de clase 3 si se tienen condiciones ini-
ciales aleatorias [9], las cuales son las siguientes: 18, 22, 30, 45, 54, 60, 73, 75,
86, 89, 90, 101, 102, 105, 106, 109, 110, 120, 122, 124, 126, 129, 135, 137, 146,
147, 149, 150, 151, 153, 161, 165, 169, 182, 183, 193, 195 y 225. Según un estu-
dio realizado en Brasil [7], las reglas de clase 3 pueden ser clasificadas en cuatro
distintas subclases: Depósito Aleatorio (Declaración), representada por las siglas
RD; Percolación Dirigida, representada por las siglas DP; Percolación Compacta
Dirigida, de siglas CDP; y autómatas celulares Domany-Kinzel, de siglas DKCA
y donde pueden ser simétricos o asimétricos. Siendo que las reglas de clase 3
presentan comportamientos caóticos y pseudo-aleatorios, se eligieron cuatro re-
glas. La regla 30 perteneciente a la subcategorı́a RD; la regla 54 perteneciente a
la subcategorı́a DKCA (asimétrica); la regla 73 perteneciente a la subcategorı́a
CDP; y la regla 110 perteneciente a la subcategorı́a DP y DKCA (simétrica).
4. Pseudo-aleatoriedad
La necesidad de obtener números aleatorios y pseudo-aleatorios se plantea en
muchas aplicaciones criptográficas, pues se emplean llaves que deben ser genera-
das con dichas caracterı́sticas. Por ejemplo, para cantidades auxiliares usadas en
generación de firmas digitales, ó para generar desafı́os en autentificación de pro-
tocolos. El Instituto Nacional de Estándares y Tecnologı́a (NIST) proporciona
un conjunto de pruebas estadı́sticas de aleatoriedad y considera que estos proce-
dimientos son útiles en la detección de desviaciones de una secuencia binaria en
la aleatoriedad [4]. Existen dos tipos básicos de generadores usados para producir
secuencias aleatorias: Generadores de Números Aleatorios (RNGs) y Generado-
res de Números Pseudo-Aleatorios (PRNGs). Para aplicaciones criptográficas,
ambos tipos de generadores producen un flujo de ceros y unos que pueden ser
184
divididos en sub-flujos ó bloques de números aleatorios. Nuestro interés está en
la revisión de un generador tipo PRNGs, en este caso, si la semilla (lı́nea inicial)
es desconocida, en el paso siguiente el número producido en la secuencia debe
ser impredecible a pesar de todo conocimiento de números aleatorios anteriores
en la secuencia. Esta propiedad se conoce como imprevisibilidad siguiente, y es
lo que se presume que obtenemos mediante autómatas celulares de clase 3. El
conjunto de pruebas de NIST es un paquete estadı́stico que consiste en 15 prue-
bas que se desarrollaron para probar la aleatoriedad de (arbitrariamente largas)
secuencias binarias producidas por hardware y software basado en generadores
criptográficos de números aleatorios o pseudo-aleatorios. Dichas pruebas se en-
focan en diversos tipos de no aleatoriedad que pueden existir en una secuencia.
Las 15 puebas son:
Prueba de frecuencia (Monobit).
– Esta prueba mide la proporción de ceros y unos de toda una secuencia.
Prueba de frecuencia dentro de un bloque.
– Esta prueba mide la proporción de unos dentro de un bloque de M bits.
Prueba de corridas.
– Esta prueba mide el total de corridas en una secuencia, donde una corrida
es una secuencia interrumpida de bits idénticos.
Prueba de la más larga corrida de unos en un bloque.
– Esta prueba mide la corrida más larga de unos dentro de un bloque de M
bits.
Prueba de rango de la matriz binaria.
– Esta prueba mide el rango de sub-matrices disjuntas de toda la secuencia.
Prueba de la transformada discreta de Fourier (Espectral).
– Esta prueba mide las alturas de los picos en las transformadas discretas
de Fourier de las secuencias.
Prueba de la no acumulación de coincidencia de plantilla.
– Esta prueba mide el número de ocurrencias de cadenas destino pre-especificadas.
Una ventana de m bits es usada para buscar un patrón especı́fico de m bits.
Prueba de acumulación de coincidencia de plantilla.
– Esta prueba también mide el número de ocurrencias de cadenas destino
pre-especificadas. La diferencia con la prueba anterior reside en la acción
realizada al encontrar un patrón.
Prueba de Estadı́stica Universal de Maurer.
– Esta prueba mide el número de bits entre los patrones de juego (una
medida que está relacionada con la longitud de una secuencia comprimida).
Prueba de complejidad lineal.
– Esta prueba mide la longitud de un Registro de Desplazamiento con Re-
troalimentación Lineal (LFSR). Una baja longitud LFSR implica no aleato-
riedad.
Prueba de serie.
– Esta prueba mide la frecuencia de todos los posibles patrones de m bits
acumulados a través de la secuencia completa.
185
Prueba de entropı́a aproximada.
– Esta prueba tiene el mismo enfoque que la anterior, con el propósito de
comparar la frecuencia de bloques acumulados de dos consecutivas/adyacentes
longitudes (m y m + 1).
Prueba de sumas acumulativas.
– Esta prueba mide la excursión máxima (desde cero) del paseo aleatorio
definido por la suma acumulada de ajustados (-1, +1) dı́gitos en la secuencia.
Prueba de excursiones aleatorias.
– Esta prueba mide el número de ciclos teniendo exactamente k visitas en
una suma acumulativa de un paseo aleatorio.
Prueba variante de excursiones aleatorias.
– Esta prueba mide el total de veces que un estado particular es visitado (es
decir, se produce) en una suma acumulada de un paseo aleatorio.
5. Metodologı́a
Primeramente se recopiló información sobre las clases que propone Wolfram
para clasificar las reglas del autómata celular. Fue con esta recopilación, que
se encontró que existı́an subcategorı́as propuestas dentro de la clase 3. Y, al
encontrar estas subcategorı́as, se decidió realizar pruebas de aleatoriedad a una
regla por división, como se mencionó anteriormente.
Cuadro 1. Resultados de las pruebas aplicadas a reglas representantes de cada
una de las 4 clases de Wolfram (A significa que la prueba fue aprobada y R que
fue reprobada).
Prueba R30 R54 R73 R110
Frecuencia (Monobit) A R R R
Frecuencia dentro de un bloque A R R R
Corridas R R R R
Más larga corrida de unos en un bloque A R R R
Rango de la matriz binaria A R A R
Transformada discreta de Fourier (Espectral) R R R R
No acumulación de coincidencia de plantilla A A A A
Acumulación de coincidencia de plantilla A A R R
Estadı́stica Universal de Maurer A A R R
Complejidad lineal A R A R
Serie A R R R
Entropı́a aproximada A R R R
Sumas acumulativas A R R R
Excursiones aleatorias A R R R
Variante de excursiones aleatorias A R R R
186
Por tanto, para cada una de las reglas elegidas, se generaron mediante Mat-
hematica 1000 archivos con 10000 datos. Estos 10000 datos son conformados a
partir de una ‘cadena inicial de 100 caracteres, la cual es generada aleatoriamen-
te y se compone únicamente de 0s y 1s. Después de generar los archivos para
cada regla, estos se juntaron en un solo archivo, que posteriormente se analizarı́a
mediante la Suite de Pruebas de la NIST. Al finalizar el análisis de cada archivo
final (uno por regla), se obtuvo un archivo con los resultados del análisis, lo cual
nos permite ver si la regla tiene o no caracterı́sticas que la avalen como pseudo-
aleatorias o no. En el Cuadro 1, podemos ver una comparación de las reglas y
su pase en cada una de las pruebas.
Los resultados y calificaciones de la tabla se obtuvieron después de realizar
varias veces el procedimiento de generación y prueba de datos y promediar los
resultados por prueba estadı́stica y por intento.
6. Conclusiones
Como podemos ver, la regla que más propiedades de pseudo-aleatoriedad
presenta es la regla 30, por lo que podemos concluir que se puede considerar
que es pseudo-aleatoria. Es importante notar que las dos pruebas que reprueba
no se les considera que afecten a los resultados, puesto que se notó que sus re-
probaciones son debido a que las corridas son consideradas perfectas, lo cual es
poco probable en un generador de números pseudo-aleatorios. Por el contrario,
la enorme falta de propiedades básicas de aleatoriedad en las otras reglas, nos
permite pensar que es posible que solo las reglas de clase 3 que pertenezcan
a la subcategorı́a RD sean las que presenten pseudo-aleatoriedad. Se continúa
realizando pruebas nuevamente, con reglas distintas a las elegidas, para com-
probar si es la subcategorı́a o si solamente fue una coincidencia entre las reglas
elegidas de cada subcategorı́a que solo aquella perteneciente a la subcategorı́a
RD sea pseudo-aleatoria. Consideramos que después de realizar estas pruebas se
podrı́a continuar con el trabajo enfocándose a la encriptación y recomendamos
que se pruebe cada una de las reglas pseudo-aleatorias encontradas, como llave
de un sistema simple de encriptación y, posteriormente, en uno más complejo
para verificar el funcionamiento de las mismas como llaves y su utilidad.
Referencias
[1] J-P. Delahaye, Les Automates, Pour La Science, pp.126–134, 1991.
[2] H. A. Gutowitz, Cellular Automata: Theory and Experiment; proceedings of an
interdisciplinary workshop, Editor. vol. 45, Physica D, 1990.
[3] H. A. Gutowitz, Artificial Life Simulators and Their Applications, DRET Tech-
nical Report, 1994.
[4] A.L. Rukhin, J. Soto, J. Nechvatal, M. Smid, E. Barker, S. Leigh, M. Levenson,
M. Vangel, D. Banks, A. Heckert, J. Dray, S. Vo, A Statistical Test Suite for
Random and Pseudorandom Number Generators for Cryptographic Applications,
NIST Special Publication 800-22 A, (2001) revised 2010.
187
[5] O. Lafe, Cellular Automata Transforms, Kluwer Academia Publishers, 2000.
[6] E. Martin, John Conway’s Game of Life. Recuperado el Julio de 2010, de
http://www.bitstorm.org/gameoflife/
[7] T.G. Mattos y J. G. Moreira. Universality Classes of Chaotic Cellular Automata,
Brazilian Journal of Physics, vol. 34, núm. 02A, pp. 448–451, 2004.
[8] P. Guan, Cellular automaton public-key cryptosystem, Complex Systems, vol. 1,
pp. 51–57, 1987.
[9] S. Wolfram, Theory and Applications of Cellular Automata, Rev. Mod. Phys. 55,
601, 1983.
[10] S. Wolfram, A New Kind of Science, Wolfram Media Inc., 2002.
[11] H. Zenil, Compression-based Investigation of the Dynamical Properties of Cellular
Automata and Other Systems, Complex Systems, 19(1), pages 1-28, 2010.
Modelación de una red de Petri mediante un
autómata celular
Carlos Adrián Jaramillo Hernández, Juan Carlos Seck Tuoh Mora,
Joselito Medina Marı́n
Centro de Investigación Avanzada en Ingenierı́a Industrial
Universidad Autónoma del Estado de Hidalgo
Pachuca de Soto, Hidalgo, México
[email protected] Resumen En el presente proyecto de investigación se llevó a cabo la
modelación de una red de Petri (RdP) mediante un autómata celular
(AC), ası́ como el análisis de dicha red por medio de la evolución del
autómata celular desde una configuración inicial apropiada, con el fin de
conocer su dinámica y propiedades más relevantes.
1. Introducción
Las RdP son una herramienta gráfica y matemática que se han aplicado
en el estudio de sistemas que se caracterizan por ser concurrentes, ası́ncronos,
distribuidos, paralelos, no-deterministas, y/o estocásticos [5]. Se han aplicado
ampliamente en la modelación y análisis de sistemas de eventos discretos, siste-
mas de manufactura flexible, protocolos de comunicación, sistemas de base de
datos distribuidos, programación paralela y concurrente, sistemas operativos y
compiladores, lenguajes formales, entre algunas otras aplicaciones [5]. Con una
RdP se puede estudiar la dinámica de operación del sistema que está siendo
modelado, mediante el uso de herramientas de análisis, tales como el árbol de
alcanzabilidad y la ecuación de estado [5][9].
Por otro lado, los AC pueden ser utilizados en la modelación y análisis de
sistemas dinámicos, entre los que existe una interacción local y una evolución de
forma paralela. Los AC han sido aplicadas en teorı́a de la computación, biologı́a,
fı́sica y en ciencias sociales, en la modelación de individuos y sociedades. Además,
se han utilizado para el estudio de comportamiento de incendios, planeación
urbana, tránsito vehicular, entre muchas otras aplicaciones [2][4][1].
Dado que un AC evoluciona a partir del estado de los vecinos que cada célula
tiene y el disparo de una transición en la RdP está condicionado al estado de sus
lugares de entrada, es factible considerar segmentos de la RdP como una célula
en el AC, y llevar a cabo la modelación de la dinámica de la RdP en el AC.
La mayor debilidad que tienen las RdP es el problema de complejidad, es
decir, los modelos basados en RdP tienden a ser demasiado grandes para anali-
zarlos, aun en sistemas de tamaño moderado.
Por lo anterior, en este trabajo, se propone llevar a cabo la modelación de RdP
mediante un AC, ya que la complejidad que presenta un AC debido al número
190
de células es menor a la que presentarı́a el modelo de RdP en la modelación del
mismo sistema. Además, si se desea modelar el sistema con más elementos, en el
AC solamente se agregan más células, mientras que en la RdP se tendrı́an que
agregar los lugares, transiciones y arcos correspondientes a los elementos nuevos.
Existe poco trabajo de investigación relacionado a la interacción de una RdP
y un AC, además, en el análisis de sistemas de manufactura flexible se ha aplicado
en mayor medida teorı́a de RdP, y no se ha aprovechado lo que un AC ofrece
para el análisis de tales sistemas.
En el presente trabajo se vincularon éstas herramientas, utilizadas en la mo-
delación y análisis de sistemas de eventos discretos.
1.1. Redes de Petri
Las RdPs fueron introducidas por medio de la tesis doctoral de Carl Adam
Petri [6]. Se describen como una herramienta de naturaleza gráfica para el diseño
y análisis de sistemas dinámicos de eventos discretos [3]. Una RdP se representa
gráficamente por un grafo dirigido bipartito. Los dos tipos de nodos, lugares
y transiciones, representan las variables que definen el estado del sistema. Los
lugares se representan por cı́rculos, las transiciones por barras y el marcado M
se representa por una distribución en los lugares denominados marcas, como se
muestra en la figura 1.
Figura 1. Red de Petri y sus componentes.
Formalmente, una RdP puede definirse como una tupla de 5 elementos P N =
{P, T, F, W, M0 }, donde:
P = {p1 , p2 , . . . , pm } es un conjunto finito de lugares,
T = {t1 , t2 , . . . , pn } es un conjunto finito de transiciones,
F ⊆ {P × T } ∪ {T × P } es un conjunto de arcos,
W : F → {1, 2, 3, . . . } es una función de asignación de peso a los arcos,
M0 : P → {0, 1, 2, 3, . . . } es la marca inicial.
P ∩ T = ∅ and P ∪ T �= ∅
191
La dinámica del sistema modelado con una RdP se basa en la siguiente regla
de disparo:
1. una transición t se habilita si cada lugar de entrada tiene al menos w(p, t)
tokens.
2. Una transición habilitada puede disparar o no, dependiendo si el evento
ocurre o no.
3. El disparo de una transición t habilitada elimina w(p, t) tokens de cada lugar
de entrada p de t, y agrega w(t, p) tokens a cada lugar de salida p de t, donde
w(t, p) es el peso del arco que va de t a p.
1.2. Autómatas celulares
Los ACs, que son una clase de sistemas matemáticos espacial y temporal-
mente discretos y determinı́sticos [7], caracterizados por una interacción local y
una forma de evolución paralela, utilizados en el análisis de sistemas dinámicos
en los cuales el comportamiento está regulado por la interacción local de células,
las cuales pueden tener un conjunto finito de estados. El cambio de estado de
cada célula dependerá del estado en que se encuentren sus vecinas y el de la
misma célula. De esta manera, el vecindario de cada célula estará formado por
ésta y las r células situadas tanto a la derecha como a la izquierda de la misma,
teniendo un total de 2r + 1 células en el vecindario. Una de las aportaciones
importantes de Stephen Wolfram [4] es la notación (k, r) para un AC de una
dimensión, en la que k es el número de estados que puede tomar cada una de las
células y r es el radio de vecindad e indica el número de células vecinas a ambos
lados de las mismas. En conjunción estos parámetros representan el vecindario
de las células del AC, de tal manera que el número de vecindarios diferentes
posibles está dado por la expresión k 2r+1 , formados por 2r + 1 células, como se
muestra en la figura 2.
Para denotar los cambios de estado en la evolución del AC y de la RdP, se
le asigna la letra griega τ para diferenciarlo de las transiciones t.
Figura 2. Autómata celular y sus componentes.
2. Modelación de una RdP mediante un AC
La importancia de modelar una RdP con un AC radica en las ventajas que
tienen los ACs para ser analizados de manera gráfica, encontrando candados
192
mortales, ciclos, además de poder modificar rápidamente el estado inicial del
sistema y ver la evolución resultante.
Para llevar a cabo ésta modelación se utilizó una RdP ordinaria y un AC de
una dimensión.
Teniendo como referencia la célula de manufactura flexible encontrada en [8]
que es simulada por una RdP, se aplica la siguiente metodologı́a:
&'(%)*)+*$
,)($%-) 4)5-*)+*$+
.%-,) .%6*"7(6+($%,-')*6+
8696(+2
8696(+3
/01"-')+2
!"##$% /01"-')+3
Figura 3. Célula de manufactura flexible.
1.- La RdP se divide en sub redes o módulos, que emularán cada célula del
AC. Figura 4.
+",-./012.345 +),-./012.345
!) !$
!&
;) ;#
!" ;" !# !% !' ;*
!"#$%&"
'%&(" 78995:,-./012.345
)&*'+,&-.$
!* !(
6",-./012.345 6),-./012.345
Figura 4. Division en subredes o módulos de la RdP.
2.- Se asigna un cero o un uno, dependiendo de la configuración, a cada
subred o módulo que representa una célula, esta sólo tendrá dos estados posibles.
Figuras 5, 6, 7 y 8.
De esta manera se hace un arreglo de ceros y unos que conforman el AC, y con
una regla de evolución basada en la dinámica de la RdP se evolucionará el estado
inicial del mismo para observar su comportamiento con las dos herramientas.
193
!"#$%&"'(%&)"
*&+(,-&./$ !"#$%&"'(%&)"
-,'*&+(,-&./$
! "
!0 !0
Figura 5. Asignación de valores para el primer módulo.
%&'()*+,-)./0 %&'-,'()*+,-)./0
!# !#
2& 2# 2& 2#
!" !"
5)-'+3,40*,'(0'%!
! !3,40*,'(0'%!
"
!$ !$
1&'()*+,-)./0 1&'-,'()*+,-)./0
Figura 6. Asignación de valores para el segundo módulo.
$%&&'()*+,-./+01' $%&&'()/.)*+,-./+01'
!# !#
23 24 23 24
!" !"
! "
Figura 7. Asignación de valores para el tercer módulo.
%&'()*+,-)./0 %&'-,'()*+,-)./0
!# !#
23 24 23 24
!" !"
7)-'+5,60*,'(0'%!
! !5,60*,'(0'%!
"
!$ !$
1&'()*+,-)./0 1&'-,'()*+,-)./0
Figura 8. Asignación de valores para el cuarto módulo.
194
La regla de evolución queda determinada, como se muestra en la figura 9,
donde la célula central es la que evolucionará dependiendo del estado de sus
vecinas y con esto poder observar los cambios de estado partiendo de un estado
inicial.
Figura 9. Regla de evolución para el AC.
Ejemplificando lo anterior, se describe la evolución tanto del AC con su regla
de evolución, como en la RdP. Figuras 10, 11, 12, 13, 14 y 15.
Figura 10. AC y su evolución.
Como se observa, la regla de evolución dicta el cambio de estado del AC y a
su vez se ve reflejado en la dinámica de la RdP. En este caso τ4 es igual a τ0 por
lo que se observa que el AC se cicla y vuelve a su estado inicial.
Para fines prácticos se programó este AC en MATLAB que nos permite
aumentar el número de células, ası́ como el número de evoluciones. El siguiente
ejemplo se ejecutó el programa con un AC de 10 células y 50 evoluciones. Figura
16.
La ventaja de programar el AC radica en que se puede ingresar una cantidad
grande de células y evoluciones. Ası́, se le puede dar una interpretación de forma
gráfica y describir la dinámica del sistema.
195
+",-./012.345 +),-./012.345
!) !$ !&
!"#$%&"
'%&("
)&*'+,&-.$
;" ;) ;# ;*
!" !# !% !'
,<.2,0:1=5/1,+", ,<.2,0:1=5/1,+),
78995:,-./012.345
!* !(
6",-./012.345 6),-./012.345
Figura 11. RdP en τ0 .
+",-.,/012.-0345 +),/012.-0345
!) !$
!&
!"#$%&"'
(%&)"'*+
,&-(+*&./$
;" ;) ;# ;*
!" !# !% !'
,!:.<51.,+", ,=0-,2:.<51.,+",
78995:,/012.-0345
!* !(
6",-.,/012.-0345 6),/012.-0345
Figura 12. RdP en τ1 .
+",-./012.345 +),-./012.345
!) !$
!&
!"#$%&"'
(%&)"'*+
,&-(+*&./$
;" ;) ;# ;*
!" !# !% !'
,<.2,0:1=5/1,+", ,<.2,0:1=5/1,+",
78995:,21,-./012.345
!* !(
6",-./012.345 6),-./012.345
Figura 13. RdP en τ2 .
196
+",-./012.345 +),21,-./012.345
!) !$
!&
!"#$%&"'
(%&)"'*+
,&-(+*&./$
;" ;) ;# ;*
!" !# !% !'
,<.2,0:1=5/1,+", !:1=5/1,+",
78995:,-./012.345
!* !(
6",-./012.345 6),21,-./012.345
Figura 14. RdP en τ3 .
+",-./012.345 +),-./012.345
!) !$ !&
!"#$%&"
'%&("
)&*'+,&-.$
;" ;) ;# ;*
!" !# !% !'
,/.2,0:1<5/1,+", ,/.2,0:1<5/1,+),
78995:,-./012.345
!* !(
6",-./012.345 6),-./012.345
Figura 15. RdP en τ4 .
!"# !"$
Figura 16. Evolución del AC con 10 células y 10 evoluciones.
197
3. Modelación de una RdP con recurso compartido
mediante un AC
En los sistemas de producción flexible es común ver que se comparten ciertos
recursos como máquinas, brazos de robot, inventarios temporales y/o recursos
que hacen dos o más tareas.
En este caso, el sistema de producción estudiado consta de dos lı́neas de pro-
ducción paralelas, donde cada una hace un trabajo diferente y ambas comparten
dos máquinas para la ejecución de cada trabajo. Para la elaboración de ambos
productos se tiene que pasar por dos procesos que son realizados por ambas
máquinas, como se muestra en la figura 17.
*&+,'-'(.'+/,%'(0,%.' 8'9%-'(0,1-$2+1()(
0,1-$2+1() +/,.%&'-1
4,'51() 4,'51(3
!"##$%&'
!"#$%&'() !"#$%&'(3
!"##$%&(
4,'51(6 4,'51(7
*&+,'-'(.'+/,%'(0,%.' 8'9%-'(0,1-$2+1(3(
0,1-$2+1(3 +/,.%&'-1
Figura 17. Célula de manufactura flexible con recurso compartido.
Cada lı́nea inicia con la entrada de materia prima al sistema por medio de
una banda transportadora. La materia prima del producto 1 y del producto 2,
es llevada por los brazos de robot de las bandas a las máquinas 1 y 2 para su
posterior procesamiento, por lo que ambas tienen que ser compartidas entre las
dos lı́neas para realizar los trabajos y finalmente obtener un producto terminado.
Los buffers se utilizan para desacoplar ambos procesos a fin de que exista menos
interdependencia entre ambos, haciendo más eficiente el flujo de materiales.
Tomando en cuenta la configuración de este sistema de producción flexible
con recurso compartido, se construye la RdP para describir la dinámica del
sistema, dando como resultado la siguiente red. Figura 18.
La retroalimentación de P4 a P1 y de P7 a P10 significan que los trabajos 1
y 2 fueron terminados y puede entrar nuevamente materia prima al sistema.
El conflicto en estos sistemas de producción con recurso compartido consiste
en que, cuando existe materia prima disponible en las dos lı́neas para ser proce-
sada por la máquina 1 o producto semiprocesado de los buffers hacia la máquina
2, se tiene que decidir cuál va a ser el producto que primero será procesado.
En caso que suceda esto, la solución planteada es darle prioridad a la lı́nea de
producción superior y ası́ hacer determinista la entrada de materia. Figura 19.
198
"! !" "" !# "# !$ "$
!!
!% !&
"% "& "' "(
!' !( !) !!*
Figura 18. RdP con recurso compartido.
"! !" "" !# "# !$ "$
!!
!% !&
"% "& !) "' "(
!' !( !!*
Figura 19. Conflicto en RdP con recurso compartido.
199
No existe este conflicto cuando la disponibilidad de materia prima solo se da
en la lı́nea 1 o en la lı́nea 2, hacia la máquina 1 y de los buffers 1 y 2, hacia
la máquina 2, ya que a la llegada de materia prima simplemente es procesado
por la máquina correspondiente sin tener que decidir, como en el caso anterior.
Figura 20.
"! !" "" !# "# !$ "$
!!
!% !&
"% "& "' "(
!' !( !) !!*
Figura 20. Sin conflicto en RdP con recurso compartido.
Para la descripción de cada lugar, se toma en cuenta que cuando se encuentra
con token alguno de los lugares significa que está disponible o se esté llevando a
cabo un proceso, y sin el que no esté disponible, como se muestra en la figura 21.
Figura 21. Lugares y actividades de la RdP.
Tomando como referencia la RdP que representa el sistema de producción
antes mencionado, se lleva a cabo la división en sub redes o módulos de la red
de la siguiente manera: como se puede observar los lugares P1 y P7 con P3 y P9 ,
tienen la misma configuración, asi como P2 , P5 y P8 con P4 , P6 y P10 , por lo
que se asignaron las letras A y B para diferenciar entre las dos configuraciones
de las subredes. Figura 22.
200
" # " #
$! !" $" !# $# !$ $$
!!
!% !&
$% $& $' $(
!' !( !) !!*
Figura 22. División de RdP.
Ahora cada una de las subredes se tomará como una célula, para que de
esta manera se pueda conformar el AC. Para cada configuración de subred se le
será asignado un número dependiendo del marcado de la misma, en el caso de
la configuración A, se asignarán los siguientes números. Figura 23.
!! !!
! "
!" !"
!! !!
# $
!" !"
Figura 23. Asignación de valores para la configuración A.
Y para la configuración B como se muestra en la figura 24.
Como se puede observar la configuración A tiene cuatro estados 0, 1, 2 y 3 y
la configuración B solo tres 0, 1 y 2.
Haciendo referencia de las asignaciones anteriores se hace un arreglo de AC
con los números que dan como resultado cada una de las configuraciones. Figura
25.
Tomando en cuenta que se trabaja con un AC con un tamaño de vecindad
de tres, es necesario tener en cuenta que para la evolución de la célula central,
podrı́a ser en un caso una configuración ABA o BAB, por lo que se determinó el
desarrollo de dos reglas de evolución, una para cada caso.
201
"$ !! "! "$ !! "!
""
!"
"%
! ""
!"
"%
"
!# !#
"$ !! "!
""
!"
"%
#
!#
Figura 24. Asignación de valores para la configuración B.
# $ # $
% & ' &
"! !" "" !# "# !$ "$
!!
!% !&
"% "& !) "' "(
!' !( !!*
Figura 25. AC con su respectiva RdP.
202
Para la configuración ABA se muestra en la figura 26, y para el caso de la
configuración BAB. Figura 27.
Figura 26. Reglas de evolución para la configuracion ABA.
De la misma manera se programó este AC en Matlab, con base a la reglas de
evolución de ambas configuraciones. Se desarrolló este ejemplo con una AC de
10 células y 40 evoluciones. Figura 28.
4. Conclusiones
La investigación donde se combinan la teorı́a de RdP y AC es una área poco
explorada, sin embargo, dentro de este trabajo se ha encontrado que es factible
llevar a cabo la modelación y simulación de una RdP mediante un AC. En éste
caso se representaron dos Sistemas de Manufactura Flexible, un sistema lineal
de producción y otro con recurso compartido.
Las ventajas de modelar las RdPs con ACs radica en que permiten representar
una RdP de una gran cantidad de lugares y transiciones con pocas células de
un AC. Como se observó el análisis de la RdP se hace de manera más sencilla
porque se visualizan de manera gráfica los cambios de estado en cada célula y
se determinan ciertos compartamientos como un candados mortales, ciclos, flujo
de material y estabilidad del sistema, que se presentan en una RdP.
Como trabajo futuro de ésta investigación se aplicarán las herramientas gráfi-
cas que ofrecen los ACs, tales como: diagramas de Bruijin, diagrama de pareja
y diagramas de subconjuntos, para analizar la dinámica de los Sistemas de Ma-
nufactura Flexible que se representan como una RdP.
203
Figura 27. Reglas de evolución para la configuracion BAB.
!"# !"$ !"% !"&
Figura 28. Evolución AC recurso compartido.
204
Referencias
[1] Back, T., Dornemann, H., Hammel, U., & Frankhauser P. (1996). Modeling urban
growth by cellular automata, In Parallel Problem Solving from Nature, 636-645.
[2] Ganguly N., Sikdar B.K., Deutsch A., Canright G., & Chaudhuri P. P. (2003).
A survey on Cellular Automata, Technical Report 9, Centre of High Performance
Computing, Dresden University of Technology.
[3] Ilachinski, A. (2002). Celullar Automata: A Discrete Universe, World Scientific,
USA.
[4] Karafyllidis, I. & Thanailakis, A. (1997). A model for predicting forest fire sprea-
ding using Cellular Automata, Ecological Modelling, 99:1, 87-97.
[5] Murata T. (1989) Petri Nets: Properties, Analysis and Apllications, Proceedings
of the IEEE, 77:4, 541-580.
[6] Petri, C. A. (1966). Communication with automata, Technical report RADC-TR-
65-377, Volume I, Final Report, Supplement I.
[7] Wolfram, S. (1983). Statical Mechanics of Cellular Atomata, Reviews of Modern
Physics, 55:3, 601-644.
[8] Rodrı́guez, R. Z. (2002). Modelación de flujo de tránsito de autos utilizando
autómatas celulares. Tesis de Maestrı́a, CINVESTAV, México.
[9] Zurawski, R. & MengChu Zhou (1994). Petri Nets and Industrial Appications: A
Tutorial, IEEE Transactions on Electronics, 41:6, 567-583.
Índice alfabético
órbitas, 28 autómata celular unidimensional, 25, 88
único estado, 26 autómata celular unidimensional reversi-
ı́ndice de Welch unitario, 28 ble, 26
ı́ndices de Welch, 28 autómatas celulares, 23, 63, 151, 167, 181
autómatas celulares con memoria, 29
A New Kind of Science, 182 autómatas celulares Domany-Kinzel, 183
A. de Rivière, 84 autómatas celulares elementales, 151
aceleración, 64, 68 autómatas celulares hexagonales totalı́sti-
adaptación, 13 cos, 83
ADN, 16 autómatas celulares lineales, 86
Alan Turing, 23, 147 autómatas celulares reversibles, 24
Albert-László Barabási, 122 auto organización, 6, 8
aleatoriedad, 181
algoritmo de Childs, 35 base computacional, 40
algoritmo de compresión, 141 Benoit Mandelbrot, 129
algoritmo de encriptación, 170 binary collision, 112
algoritmo de fuerza bruta, 47 biologı́a celular, 16
algoritmo de Grover, 35 bit, 13, 144
algoritmo de Shor, 35 bit isolado, 143
algoritmo estocástico, 47 Brian Marcus, 25
algoritmo invertible, 3 Bruce P. Kitchens, 25
algoritmos NP, 47 Burton Voorhees, 24
algoritmos P, 47
algoritmos para el aprendizaje, 14 C. Flye Sainte-Marie, 84
amalgamaciones de estados, 27 C. Laramee, 122
ancestro, 26 célula, 18
ancestros, 5 código neuronal, 14
AND, 101 cadena al azar, 139
Andrei Kolmogorov, 140 cadena aleatoria, 140
Andrew Adamatzky, 83 cadenas de Markov, 50
Andrew Rukhin, 183 caminata cuántica discreta, 51
Andrew Wuensche, 5, 83, 168 caminatas aleatorias, 48
aprendizaje, 13 caminatas aleatorias discretas, 50
ARN, 17 camino geodésico, 126
Arturo Rosenblueth, 181 candados mortales, 192
associated constant, 114 caos, 8
atractor, 13 Carl Adam Petri, 190
atractores, 6, 13 cellular automata, 109, 110
atractores caóticos, 6 Charles H. Bennett, 139
autómata celular, 3, 23, 110, 122, 151, 163, choque de sus partı́culas, 6
169, 189 choques de partı́culas, 99
autómata celular complejo, 6 Christopher Langton, 5, 138
autómata celular elemental, 167 ciclo lı́mite, 28
autómata celular hexagonal, 88 ciclos, 160, 192
autómata celular probabilista, 66 ciclos atractores, 3
206
ciencia computacional, 33 configuraciones still life, 94
ciencias sociales, 189 conjuntos de atracción, 3
cifrado de Vernan, 168 conjuntos de atracción de RBN, 18
clasificación de Wolfram, 182 convergencia, 159
Claude E. Shannon, 8 convergencia del flujo dinámico, 10
co-evolución, 122 cota lineal, 27
codificación prefix-free, 146 crecimiento asintótico, 175
codificación UTF-8, 178 crecimiento ilimitado, 99
coeficiente de correlación de Spearman, criptografı́a, 183
152
colisiones, 73, 101 David Hillman, 24
colliding gliders, 112 DDLab, 5, 14, 83
collision, 112 DDN, 5
collision-based, 112 densidad vehicular, 74
complejidad, 6, 67, 166, 168, 175, 189 depósito aleatorio, 183
complejidad algorı́tmica, 137 dependencia lineal, 122
complejidad algorı́tmica de Kolmogorov- desaceleración, 68
Chaitin, 139 desaceleración acotada, 67
complejidad computacional, 103, 178 desaceleración aleatoria, 72
complejidad de cadenas cortas, 138, 150 desaceleración confortable, 72
complejidad de Kolmogorov, 138 desaceleración máxima, 72
complex systems, 109 diagrama espacio-tiempo, 77
comportamiento caótico, 29 diagramas de de Bruijn, 24, 27, 83
comportamiento complejo, 87 diagramas de Welch, 27
comportamiento emergente, 6 dinámica contı́nua, 6
comportamiento global, 23 dinámica de partı́culas, 9
comportamiento global complejo, 23 Dinámica Global en Autómata Celular, 3
comportamiento global reversible, 26 dinámica simbólica, 24
comportamiento local, 24 dinámicas discretas, 6
comportamiento reversible, 26 Discrete Dynamics Laboratory, 21
composición de autómatas celulares, 171 distancia geodésica, 124
compresibilidad, 144 Douglas Lind, 25
compuertas lógicas, 101
computable, 140 eater, 95
computación, 138, 145, 167, 189 ecuación de Schrödinger, 41
computación cuántica, 34 ecuación diofantina, 130
computación irreducible, 170 Edward F. Moore, 24
computación lógica, 6 Edward Fredkin, 24
computación lógica universal, 99 element distinctness problem, 56
computación universal, 6, 24 elementos distintos, 56
computadora convencional, 47 emerger, 95
computadora cuántica, 35 Emil Post, 23
computations, 119 encriptación, 167, 181
condición inicial, 28, 169 entropı́a, 8
condiciones a la frontera, 13 entropı́a de Shannon, 8, 138
conexiones aleatorias, 17 entropı́a media, 9
configuración, 25, 124 entropı́a variable, 8
configuración inicial aleatoria, 92 Erica Jen, 24
configuraciones de osciladores, 94 esfera de Bloch, 40
configuraciones infinitas, 28 esfera unitaria, 40
207
espacio de evoluciones, 6 grafo dirigido bipartito, 190
espacio de evoluciones hexagonal, 90 Gregory Chaitin, 140
espacio de Hilbert, 36 Gustav Hedlund, 24
espacio de Hilbert bidimensional, 40 GZIP, 141
espacio de polinomios, 129
espacio de transiciones, 169 H. Sayama, 122
espacios vectoriales, 36 Harold V. McIntosh, 24, 84
espacios vectoriales complejos, 36 Hendrik Moraal, 24
espiral de Ulam, 163 Henri Poincaré, 6
estado fase, 6 hipercubo, 55
estados globales, 10 Howard A. Gutowitz, 168, 182
estados inalcanzables, 6
estados no alcanzables, 170 información, 26, 138, 168
estructuras complejas, 99 interacción de estructuras, 6
estructuras emergentes, 13 interacción local, 191
estructuras que emergen, 162 intreracciones complejas, 6
evolución de redes, 122 invertible, 23
evolución estructural, 122 isomorfo, 27
expansión binaria, 157
Exploring Discrete Dynamics, 21 J. C. Seck Tuoh Mora, 24
exponente de Liapunov, 6 Jardı́n del Edén, 6
expresión de los genes, 16 Jarkko Kari, 24
Jean-Paul Delahaye, 182
fı́sica cuántica, 35 John Conway, 181
factor estocástico, 71 John Hopfield, 13
fases del tráfico vehicular, 74 John R. Myhill, 24
fenotipo, 14 Juego de la Vida, 6, 181
filtro de Wolfram, 130 jump-graph, 20
flujo estancado, 74
flujo libre, 74 Kenichi Morita, 24
flujo sincronizado, 74 Klaus Sutner, 24
flujo vehicular, 74
frontera periódica, 124 lógica de Bennett, 139
función booleana, 17 lógica universal, 101
función de Siracusa, 163 La Mona Lisa, 10
función de transición, 167, 168 lenguajes regulares, 141
leyes de la mecánica cuántica, 40
Garden of Eden, 6 Los Orı́genes del Orden, 5
gen, 17 Lothar Collatz, 157
generador de números pseudo-aleatorios,
183 M. H. Martin, 84
genes, 16 máquina de Post, 162
genotipo, 13 máquina de Turing, 14, 139
glider gun, 95 máquina de Turing autodelimitada, 146
glider guns, 6 máquina de Turing prefix-free, 146
glider guns movibles, 99 máquina universal de Turing, 139
gliders, 6, 91, 111 máquinas de Turing pequeñas, 147
gliders en la regla espiral, 91 manufactura flexible, 190
gráfica de Derrida, 17 mapeo global, 25
grado de convergencia, 6 mapeo local, 25
208
mapeos invertibles, 24 operador Hadamard, 42
Masakazu Nasu, 24 operador hermitiano, 41
Mathematica, 134, 142, 158, 181 OR, 101
MATLAB, 194 osciladores, 95
matriz booleana, 88
matriz conjugada, 37 parámetro de Langton, 139
matriz de de Bruijn, 88 parámetro lambda, 138
matriz de evolución, 86 parámetro Z, 6, 168
matriz de transición, 87 partı́culas, 87
Matthew Cook, 110 partı́culas básicas, 99
mecánica cuántica, 34 partı́culas estáticas, 95
medición en mecánica cuántica, 42 partı́culas estáticas periódicas, 95
medición proyectiva, 42 partı́culas movibles, 91
medida que Solomonoff, 146 patrones, 8, 124, 152, 163
medida universal de complejidad, 140 pensamiento matemático, 33
memoria, 6, 13, 28 percolación compacta Dirigida, 183
memoria de contenido direccionable, 13 percolación dirigida, 183
Mike Boyle, 25 permutaciones en bloque, 24
Mike Lesser, 5 phases, 112
modelación basada en autómatas celula- Pour La Science, 153
res, 67 predecesores, 170
modelación del tráfico vehicular, 64 preimagenes, 168
modelo BA, 122 principio de equivalencia computational,
modelo con RBN, 16 130
modelo de Kauffman, 17 principio de superposición, 39
modelo de Krauss, 67 probabilidad algorı́tmica, 147
modelo KW, 68 probabilidad algorı́tmica de Solomonoff-
modelo LAI, 65 Levin, 145
modelo NaSch, 65 problema 3SAT, 48
modelo RCA, 122 problema de Collatz, 157
modelos de cinética de gas, 64 problema de la detención, 148
modelos hidrodinámicos, 64 problema del castor atareado, 149
modelos microscópicos, 64 problema P, 45
monobit, 184 problemas NP, 46
mutación, 14 proceso aleatorio, 172
procesos de Markov, 50
número de Chaitin, 149 procesos naturales, 35
naturaleza, 6 producción flexible, 197
neurona, 14 producto de Kronecker, 39
nodo de Welch derecho, 27 programa tipo Collatz, 158
nodo de Welch izquierdo, 27 propagación de patrones, 101
NOR, 101 proposiciones indecidibles, 130
Norbert Wiener, 181 proteı́nas regulatorias, 16
NOT, 101 pseudo medidas de complejidad, 139
notación de Dirac, 37 pseudoaleatoriedad, 175, 181
NP-completo, 46 Puhua Guan, 182
Olu Lafe, 182 qubit, 39
operador de evolución, 40
operador de Hadamard, 38 radio de vecindad, 26
209
Ramon Alonso-Sanz, 29 sistemas cuánticos multipartitas, 38
rana Froggy, 48 sistemas de etiquetado de Post, 152
RBN, 3 sistemas de producción, 197
recurrencia lineal, 164 sistemas de transporte, 63
red de Petri, 28, 189 sistemas dinámicos, 138, 189
redes booleanas aleatorias, 3 sistemas dinámicos contı́nuos, 6
redes co-evolutivas adaptables, 122 sistemas dinámicos discretos, 6, 167
redes de escala-libre, 122 sistemas ordenados, 17
redes dinámicas discretas, 5 Spiral simulator, 83
redes naturales, 21 Stephen Wolfram, 109, 123, 129, 151, 182,
redes neuronales, 14 191
redes neuronales artificiales, 13, 15 Stuart Kauffman, 5
redes regulatorias genéticas, 15 subvecindad, 87
regla 110, 6, 111 suite de tests NIST, 183
regla 210, 123 superposición, 40
regla 30, 168, 182
regla 86, 168 teorı́a de autómatas, 45
regla de evolución, 25, 192 teorı́a de campo promedio, 84
regla espiral, 6, 83 teorı́a de estructura local, 84
regla lógica, 5 teorı́a de la complejidad, 45
regla Life, 6, 83 teorı́a de la complejidad algorı́timca, 140
regla local, 123 teorı́a de la computabilidad, 45
regla universal, 5 teorı́a de la computación, 33
reglas caóticas, 8 teorema de codificación de Chaitin-Levin,
reglas complejas, 8 146
reglas con orden, 8 teorema de invarianza, 141
reglas de cadena, 11 The Global Dynamics of Cellular Automa-
reglas locales, 122 ta, 3
relación de recurrencia, 164 The Origins of Order, 5
relaciones de recurrencia, 162 theoretical computer science, 35
reversibilidad, 26 tiempo lineal, 178
reversible cellular automata, 1 Tim Boykett, 24
reversible computing systems, 1 token, 199
reversible systems, 1 Tommaso Toffoli, 24
Richard Feynman, 34 tráfico vehicular, 67
rule 110, 111 transformada de Fourier, 184
transición, 191
S. Amoroso, 24
Scientific American, 137 U. Schöning, 48
señales, 95 umbral de Wolfram, 129
secuencia computable, 149 una caminata aleatoria continua, 53
secuencias de de Bruijn, 84 unconventional computer, 110
sistema cuántico aislado, 40 universo artificial discretizado, 6
sistema cuántico compuesto, 44
sistema cuántico multipartita, 44 vecindad, 5, 25, 86, 124, 167
sistema de Collatz, 157 vecindad local, 13
sistema de Post, 162 vecindades, 122
sistema de sustitución, 162 vecindario, 191
sistema dinámico, 167 vecinos adyacentes, 127
sistemas complejos, 16, 109, 137 vecinos inmediatos, 86
210
vector unitario, 39 William Shakespeare, 10
velocidad de la luz, 13
velocidad máxima, 66 XNOR, 101
W. Mantel, 84 XOR, 11, 101, 168
Walter Pitts, 23
Warren S. McCulloch, 23 Y. N. Patt, 24