Newsgroups: comp.ai.alife
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!gatech!news.mathworks.com!tank.news.pipex.net!pipex!dispatch.news.demon.net!demon!sunsite.doc.ic.ac.uk!hgmp.mrc.ac.uk!news.dcs.warwick.ac.uk!not-for-mail
From: B.Barnes@dcs.warwick.ac.uk (Benjohn Barnes)
Subject: Re: Asynchronous/Random Updating of Cells
X-Nntp-Posting-Host: tamarind
Message-ID: <1995Oct13.125323.15080@dcs.warwick.ac.uk>
Sender: news@dcs.warwick.ac.uk (Network News)
Organization: Department of Computer Science, Warwick University, England
References: <DGBwIK.Etp@aisb.ed.ac.uk>
Date: Fri, 13 Oct 1995 12:53:23 GMT
Lines: 35

timothyh@aisb.ed.ac.uk (Timothy Hely) writes:

>Could anyone tell me whether there is a "standard" technique/algorithm
>for updating a grid of N cells randomly, so that each cell is updated
>once only before moving on to the next time step.

This isn't perfect...

Put all your adresses in a list.
Form a binnary tree my splitting the list at a random point, making each leaf
a sub list.

Go into each leaf (or maybe bud would be better), choosing at random and turn
the list into two sublists by spliting at random. Keep on going untill the
bud list has only one member, at which point use this address, go up to the
parrent node, and choose the other subtree. This means you must keep a record
at each node of which subtree has been traversed. If both have been used then
move up to the parent and carry on from here. 

This is quite random, but you wouldn't for instance the first address next to
the last address. A way of further randomising it is to choose a random number
of one bit less than that of your maximum address at the start, ie max address
is 17, choose a number from 0 to 15. This can then be used to perform a 
bitwise EOR with the numbers from the first method as they come out. This will
(I think) be pretty random.

By the way, I in no way garantee any of this will be that random. Also it
may be faster to make random numbers that are within the address values and
simply tick them off as you go, so ensuring that a number is only used the
first time it is hit.

Time for an "introduction to software engineering" lecture, hope that helps,

Cheers,
		Benjohn
