Handling of dead cells in Golly

Has something gone haywire? Let us know about it!
Post Reply
automaton
Posts: 2
Joined: August 27th, 2015, 2:18 pm

Handling of dead cells in Golly

Post by automaton » August 27th, 2015, 2:47 pm

Golly (2.6 and 2.7) seems to have special handling for dead cells, which causes rules like the following to not work correctly:

Code: Select all

n_states:2
neighborhood:vonNeumann
symmetries:none

0,0,0,0,0,1
What happens is that if you start with an empty grid, it stays empty, with the message "All cells are dead". And if you start with one or more live cells, it becomes a square region of live cells, growing exponentially at each step (with a dead cell border around the previous squares).

Is this a bug? Or a known limitation?

Obviously it's a contrived example, and it's easy to work around. But if this is not supported, maybe Golly should show an error message.

User avatar
Andrew
Moderator
Posts: 933
Joined: June 2nd, 2009, 2:08 am
Location: Melbourne, Australia
Contact:

Re: Handling of dead cells in Golly

Post by Andrew » August 27th, 2015, 6:48 pm

automaton wrote:Is this a bug? Or a known limitation?
The latter, I guess. Or a known bug -- take your pick! It would require a lot of messy special-case code to handle explosive rules like that. A lot more than just showing "population=infinity" in the status bar. I guess it would be slightly less messy to handle such rules in a finite universe, but still something I'm not all that keen to undertake.

The real question is, would it be worth doing? Given that an explosive rule can usually (always?) be emulated by a non-explosive rule (possibly with extra states), there doesn't seem much point.
Use Glu to explore CA rules on non-periodic tilings: DominoLife and HatLife

automaton
Posts: 2
Joined: August 27th, 2015, 2:18 pm

Re: Handling of dead cells in Golly

Post by automaton » August 28th, 2015, 3:46 pm

Andrew wrote:It would require a lot of messy special-case code to handle explosive rules like that.
I'm not familiar with Golly's internals, but (naively) I'd think it would just take a single extra variable to keep track of the "background" state. Update it at every step using the transition X,X,X,X,X,Y (X being the current background, and Y the new one). And everywhere Golly assumes a region consists entirely of dead cells, it should instead assume those cells have the background state.
Andrew wrote:The real question is, would it be worth doing? Given that an explosive rule can usually (always?) be emulated by a non-explosive rule (possibly with extra states), there doesn't seem much point.
Yeah, agreed. Which is why I suggested showing an error message (when a transition like 0,0,0,0,0,!0 is found). But I understand if you don't want to add handling for this edge case.

Post Reply