Random Boolean Network

Consider a network of N on/off bulbs. Assign to each of these bulbs B, a random boolean function of K inputs, and K other bulbs in the network. Let the state of those K bulbs, through B, at time t determine the state of the bulb at time t+1. Start this Random Boolean network off in a random state. What happens?

Naively one might think that, because each such network has 2N possible states, it might cycle through, say, 2N-1 of them on average before repeating. Actually, for small K, it self-organises to a much shorter cycle length. For K = 1, the network usually quickly settles down to a cycle length of 1, sometimes a little more. For K = 2, the network usually settles down to a cycle length of a few, in a short settling time. For K = 3 the cycle lengths and settling times are much longer.

RBN (Java applet, JDK 1.3)

If you had a Java browser, you would be able to explore NK networks for various values of N and K.

  • random: each bulb flickers on and off randomly
  • NK: each bulb is randomly linked to K others through random boolean functions
  • Reset: reset the bulb states, interconnections and boolean functions
  • Find/Show cycle: find the cycle length (searches for up to N*N steps)
  • Find/Show cycle: move the system through a single cycle
  • Next step: take a single step
  • Next n: take root N steps
  • black: bulb is off -- red: bulb has just gone off this step
  • white: bulb is on -- yellow: bulb has just come on this step