Xref: utzoo comp.misc:8124 comp.theory.cell-automata:49 comp.theory.self-org-sys:8 comp.theory:287 comp.sys.ibm.pc:43533
Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!rpi!hiebeler
From: hiebeler@cs.rpi.edu (Dave Hiebeler)
Newsgroups: comp.misc,comp.theory.cell-automata,comp.theory.self-org-sys,comp.theory,comp.sys.ibm.pc
Subject: Re: CA question
Message-ID:
Date: 4 Feb 90 02:09:56 GMT
References: <486e5e96.20b6d@apollo.HP.COM>
Organization: RPI CS Dept, and LANL Center for Nonlinear Studies
Lines: 90
In article <486e5e96.20b6d@apollo.HP.COM> nelson_p@apollo.HP.COM (Peter Nelson) writes:
> [semi-negative comments about Autodesk's CA lab]
You might want to check out Cellsim, it is a public-domain cellular
automata program (written in C), which runs under SunView. I realize
you want something for the PC, but the inner loops for Cellsim are
just pure C, and can be run on pretty much anything. It lets you get
up to 8 bits from each of 9 neighbors at most, in addition to a couple
of 8-bit "global" parameters.
Rather than tell you how to get Cellsim, I'd prefer to wait, as I'm
currently working on version 2.5, which is substantially better than
previous versions. If you're *really* desperate to get the old
versions, send me an e-mail note, although I hate to tell people where
to get the old version, since the new one will be so much better. :-)
> Conway's Life - types of simulations
> are static, i.e., nothing moves from one cell to the next.
> I was kind of hoping I could use my new utility to simulate
> systems where "stuff" (information or state or something) does
> move from one cell to another. This might be useful in simulating
> fluid flow or ecological systems.
Well, in Conway's life (as well as things like the HPP and FHP
lattice gas rules), *information* moves from one cell to another.
That is, a "particle" might be represented as an active cell; an empty
cell that sees a neighbor with a particle moving toward it, will
"create" a new particle while its neighbor "destroys" its particle.
The net effect is an information transfer, or a particle "transfer".
> But when stuff moves between cells "collisions" may occur. The
> problem is not resolving the collision (that's relatively easy).
> The problem is propagating the effects of that resolution through
> the matrix, and doing so in a way which is not dependent on the
> order-of-evaluation.
> [stuff about following the results of possible collisions...]
You should check out the HPP lattice gas model, this has a simple
example of how to get around this. The basic solution (on a square
lattice), is as follows (I'll describe it in terms of particles, since
that's the terminology associated with the HPP model):
1. Each cell can hold up to 4 particles
2. There cannot be 2 or more particles in the same place moving in the
same direction. So a "full" (4-particle) cell would have 1
particle moving in each direction: up, down, left, right.
3. If you think about the "worst-case" collision, this would be a cell
that is full and whose neighbors are all full. In that case, the
cell would "destroy" its 4 particles (knowing its neighbors would
get them), and it would get 1 particle from each of its 4 neighbors.
That is, the exclusion principle in item 2 above prevents you from
having more than 4 items try to come into the same cell. Since each
cell can hold at most 4 particles, you're safe.
Three sources of information about HPP, which will clarify what I'm
trying to say above are:
J. Hardy, Y. Pomeau, and O. de Pazzis, ``Time Evolution of a
Two-Dimensional Model System. I. Invariant states and time
correlation functions'', J. Math. Phys. [14] (1973).
J. Hardy, O. de Pazzis, Y. Pomeau, ``Molecular dynamics of a Classical
Lattice Gas: Transport Properties and Time Correlation Functions,''
Physical Review A, [13] (1976) 1949.
T. Toffoli and N. Margolus, Cellular Automata Machines: A New
Environment for Modeling, (MIT Press, 1987).
> Thanks in advance for any observations or comments. I'm new
> at much of this so if I'm making lots of stupid assumptions
> feel free to tell me, but be nice, please. 8-)
I've been at this for years, and I still make lots of stupid
assumptions and ask stupid questions. :-)
Note that I'll be away at the 2nd Artificial Life conference next
week, so I'll probably be slow to reply to e-mail queries until Feb
11th or so.
I'll try to post a summary of interesting stuff I see at the ALife
conference, probably in the following newsgroups:
comp.theory.cell-automata, comp.theory.self-org-sys, comp.bio
and maybe a couple of other groups, so watch at least one of those
newsgroups around Feb 11-15 or so, if you're interested.
--
Dave Hiebeler Internet: hiebeler@turing.cs.rpi.edu (preferred)
Computer Science Dept. Bitnet: userF3JL@rpitsmts (last resort)
Amos Eaton Bldg.
Rensselaer Polytechnic Institute / Troy, NY 12180-3590