Newsgroups: comp.ai.alife
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!oitnews.harvard.edu!purdue!lerc.nasa.gov!magnus.acs.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!news-e1a.megaweb.com!newstf01.news.aol.com!uunet!in2.uu.net!hearst.acc.Virginia.EDU!murdoch!viper.cs.Virginia.EDU!ccb8m
From: ccb8m@viper.cs.Virginia.EDU (Charles C. Bundy)
Subject: Re: collision processing
X-Nntp-Posting-Host: viper-fo.cs.virginia.edu
Message-ID: <DCqv9J.877@murdoch.acc.Virginia.EDU>
Sender: usenet@murdoch.acc.Virginia.EDU
Organization: University of Virginia Computer Science Department
References: <pnelson.199.006FC580@lagoon.ultranet.com> <3vgqic$11g0@news.gate.net> <pnelson.206.00688300@lagoon.ultranet.com>
Date: Thu, 3 Aug 1995 17:00:55 GMT
Lines: 33

In article <pnelson.206.00688300@lagoon.ultranet.com> pnelson@lagoon.ultranet.com (Peter Nelson) writes:
>
>>>  In more generic terms imagine a grid with tokens on some
>>>  of the squares.  Imagine that two tokens each attempt 
>>>  to occupy the same square at time T+1, and this isn't
>>>  allowed.  How can this be resolved?   If you try to resolve
>>>  it by preventing it at time T, by having one token "look
>>>  ahead" to see if any other tokens will occupy its intended
>>>  location you introduce order-of-processing artifacts.  If
>>>  you wait until time T+1 and assign a "winner" then what
>>>  happens to the "loser" token?  You can't just leave it in
>>>  its original square because some OTHER token may
>>>  have occupied it - you can easily demonstrate that that
>>>  case *could* recurse endlessly.
>
>>If you can't find an acceptable way to resolve the collision when
>>it occurrs, then you will have to be able to run the system in reverse 
>>until it is in a legal state, then change something about its state that will 
>>avoid the collision when you run the system in foreward again.
>
>  Obviously that is one possible way to handle it.  And as you point out,
>  the performance issues of such a "solution" render it impractical
>  for nontrivial systems.  

Well, one thing to think about is how you define "movement" in your simulation.
If you define the "physics" of your simulated universe in a low level manner
IE existence/non-existence in a discrete or continuous spatial/temporal
sense, your problem should go away.  Look at 2D CA's such as Life which
only focus on space/time existence yet they yield collision mechanisms
and motion (gliders).

Charles Bundy
ccb8m@preferred.com
