Cellular automaton again

As we were doing some logic during the last few lectures (see the post about reasoner), I decided that I wanted to do something usefull with this highly interessting stuff. So as I already had an engine to evaluate propositional logic expressions it was an easy thing to accomplish the following idea:
Consider the following matrix constituting our “world” and initial population:

    \[F = \begin{pmatrix} c_{11} & \dots & c_{1j} \\ \vdots & \ddots & \vdots \\ c_{n0} & \dots & c_{nn} \end{pmatrix}\]


    \[c_{ij} \in \{0,1\}\]


    \[i,j \in [1,n]\]

To compute a new “generation” the aliveness (1 being alive, 0 dead) of each element is determined by evaluating a certain propsitional expression:

    \[c_{ij,\mbox{new}} = E(\beta)\]



being the valuation of the proposition and


being the proposition itself.

    \[\beta \rightarrow \{\top,\bot\}\]

    \[\beta(a) \mapsto c_{ij} = 1\]

    \[\beta(a_n) \mapsto f(i, j) = n\]


    \[f(u, v) = \sum^{u + 1}_{u - 1}\sum^{v + 1}_{v - 1}c_{uv} - c_{ij}\]

Have a look at the screenshot to get a better idea on what the program is doing or run it using Java webstart below (may not work on MacOSX or Windows).

Launch using webstart

One Response to “Cellular automaton again”

  1. PhiLho says:

    I confirm it doesn’t work on Windows:
    java.io.FileNotFoundException: http://32leaves.net/apps/bgol/swt_3.4_win.jar

    Might I suggest to indicate which language you used in this interesting application? It can be indicated in previous posts (which I will explore) but don’t forget articles can be seen in isolation…

Leave a Reply

Fork me on GitHub