« Cómo medir la Complej… « || Inicio || » Estructurando y consu… »

Redes Booleanas

Última modificación: 22 de Marzo de 2014, y ha tenido 937 vistas

Etiquetas utilizadas: || || ||

La Teoría de Sistemas Complejos trabaja sobre sistemas dinámicos que tienen un gran número de variables, en los que el comportamiento puede ser arbitrariamente complejo. Por tanto, es importante disponer de una serie de ejemplos de sistemas dinámicos, a modo de modelos de control, que puedan ser investigados con mayor comodidad y en los que podamos controlar o predecir de alguna forma su comportamiento.

Las redes booleanas (aquellas que tienen únicamente variables binarias) constituyen este tipo de sistemas complejos dinámicos canónicos, y muestran de forma mucho más sencilla comportamientos observados en sistemas reales.

Introducción

Una variable booleana es aquella que puede tomar únicamente dos valores (\(0/1\), o \(-1/1\), los valores concretos son irrelevantes). Una red booleana es un conjunto de \(N\) variables booleanas que pueden interactuar entre si de acuerdo a ciertas reglas que llamaremos funciones de acoplamiento (una función de acoplamiento booleana es simplemente una función \(f:\{0,1\}^K \to \{0,1\}\)).

Sobre esta red consideraremos una dinámica discreta temporal (es decir, el tiempo \(t\in \mathbf{N}\)) en la que el valor de cada variable en la siguiente unidad de tiempo está determinado por el resultado de las funciones de acoplamiento actuando sobre las variables booleanas que interactúan con ella.

En consecuencia, toda red booleana puede ser representada por medio de un grafo dirigido que tiene en los nodos las variables booleanas involucradas.

El campo de las redes booleanas fue introducido a finales de 1960 por Kauffman con el fin de dar una explicación al proceso de diferenciación funcional que se podía observar entre las células de un organismo, de forma que esta diferenciación puede obtenerse como el atractor de la dinámica existente en la red. Su teoría ha ido confirmándose con resultados experimentales desde entonces, y la misma metodología se ha aplicado a un rango más amplio de problemas (como es el modelado de redes neuronales).

Veremos en las siguientes líneas que las redes booleanas, a pesar de simplificar el modelo informativo sobre el que trabajan los sistemas dinámicos (ya que muchas veces el mundo real trabaja sobre variables continuas, aunque otras muchas veces, como en el caso de las redes neuronales, la existencia de umbrales de disparo, hace que el proceso de discretización sea natural), presentan comportamientos generales que se esperan en sistemas complejos mucho más elaborados: comportamientos regulares y caóticos, auto-organización, transiciones de fase, etc.

El tipo más simple de redes booleanas son las conocidas como Redes \(N-K\) o redes de Kauffman. Tienen como soporte una red regular de \(N\) nodos y grado \(K\). Las funciones de acoplamiento se eligen aleatoriamente entre todas las posibles aplicaciones binarias \(K\)-arias.

No se corresponden con ningún proceso del mundo real, sino que constituyen un modelo abstracto, principalmente debido a que las redes reales usan funciones de acoplamiento específicas que vienen determinadas por la estructura física real y las interacciones biológicas del sistema considerado. Como a menudo tanto estas funciones como las interacciones (topología) son desconocidas, este tipo de redes abstractas pueden ser un buen punto de partida para analizar comportamientos generales.

A continuación presentamos la formalización general de la redes booleanas, no únicamente de las redes \(N-K\).

Para una definición completa de la red booleana hemos de especificar:

  1. La conectividad de cada elemento de la red, \(K_i\). De donde \(<K>=\frac{1}{N}\sum_{i=1}^N K_i\).
  2. El entorno entrante de cada nodo: \(N_{in}(i)=\{j_{i1},\dots,j_{iK_i}\}\), podría ocurrir que \(i\in N_{in}(i)\).
  3. Las reglas de evolución, o funciones de acoplamiento, de cada nodo, \(f_i\).

Denotaremos por \(\{\sigma_i\in \{0,1\}: i=1,2,\dots,N\}\) al conjunto de las \(N\) variables booleanas de la red, y por \(\sigma_i(t)\) el valor de dicha variable en el tiempo \(t\). De esta forma, el estado del sistema en \(t\) será denotado por el vector booleano \(\Sigma_t=(\sigma_1(t), \sigma_2(t),\dots,\sigma_N(t)) \in \Omega=2^N\).

Para un nodo \(1\leq i\leq N\) la dinámica evolutiva del nodo viene determinada por:

\[\sigma_i(t+1)=f_i(\sigma_{j_{i1