Difference between revisions of "Generations"

From LifeWiki
Jump to navigation Jump to search
(→‎Examples: Link CAs)
(formatted reference)
(21 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Glossary}}
{{Glossary}}
'''Generations''' rules are a generalization of [[Life-like cellular automata]] in which live cells can exist in different states, and cells that would die in a 2-state cellular automaton instead advance to the next state. The name "Generations" is due to the conceptualization of this process as cells "getting older" before eventually dying.{{refn|group=note|The name "Generations", and the different states in which cells in Generations rules can exist, should not be confused with the generations (i.e. repeated evolution) of a pattern.}}
'''Generations''' rules are a [[multistate rule|multistate]] generalization of [[Life-like cellular automata]] in which live cells can exist in different states, and cells that would die in a 2-state cellular automaton instead advance to the next state.  
 
The name "Generations" is due to the conceptualization of this process as cells "getting older" before eventually dying.{{refn|group=note|The name "Generations", and the different states in which cells in Generations rules can exist, should not be confused with the generations (i.e. repeated evolution) of a pattern.}}


==Description==
==Description==
Generations rules are described by [[rulestring]]s of the form <tt>Bx/Sy/n</tt> or <tt>y/x/n</tt>, an extension of B/S and S/B rulestrings where ''n'' is any natural number &ge;2. Patterns evolve according to the following rules:
Generations rules are described by [[rulestring]]s of the form <tt>Bx/Sy/n</tt>{{refn|group=note|<tt>Bx/Sy/Cn</tt> and <tt>Bx/Sy/Gn</tt> are also sometimes used, with "C" standing for "Count" (of cell states), and "G" for "Generations". If "C" is used, care must be taken to not confuse the state count with a [[symmetry]], e.g. "B3/S23/C4".}} or <tt>y/x/n</tt>, an extension of B/S and S/B rulestrings where ''n'' is any natural number &ge;2. Patterns evolve according to the following rules:


# A cell in state 0 ("dead") will advance to state 1 ("get born") in the next generation of the pattern if the number of neighbors in state 1 ("live") in its [[Moore neighbourhood]] is present in the rule's birth conditions (<tt>Bx</tt>).
# A cell in state 0 ("dead") will advance to state 1 ("get born") in the next generation of the pattern if the number of neighbors in state 1 ("live") in its [[Moore neighbourhood]] is present in the rule's birth conditions (<tt>Bx</tt>).
Line 11: Line 13:
# A cell in state ''m'' &ge; 2 will advance to state ''((m + 1)'' mod ''n)'' in the next generation of the pattern. In particular, a cell in state ''n'' will reset to state 0 ("die").
# A cell in state ''m'' &ge; 2 will advance to state ''((m + 1)'' mod ''n)'' in the next generation of the pattern. In particular, a cell in state ''n'' will reset to state 0 ("die").


Any [[outer-totalistic Life-like cellular automaton]] with rulestring <tt>B.../S...</tt> is equivalent to the Generations rule with rulestring <tt>B.../S.../C2</tt>.
Any [[outer-totalistic Life-like cellular automaton]] with rulestring <tt>B.../S...</tt> is equivalent to the Generations rule with rulestring <tt>B.../S.../2</tt>.


==Examples==
==Examples==
Line 40: Line 42:
| B45678/S12345/8 || 12345/45678/8 || [[Lava]] || Expanding || [[Mirek Wójtowicz]]
| B45678/S12345/8 || 12345/45678/8 || [[Lava]] || Expanding || [[Mirek Wójtowicz]]
|-
|-
| B458/S012345/3 || 012345/458/3 || [[Lines (CA)|Lines]] || Stable || [[Anders Starmark]]
| B458/S012345/3 || 012345/458/3 || [[Lines (rule)|Lines]] || Stable || [[Anders Starmark]]
|-
|-
| B2/S345/4 || 345/2/4 || [[Star Wars]] || Exploding || [[Mirek Wójtowicz]]
| B2/S345/4 || 345/2/4 || [[Star Wars]] || Exploding || [[Mirek Wójtowicz]]
Line 52: Line 54:


==Software support==
==Software support==
Both [[MCell]] and [[Golly]] support Generations rules, the latter with a maximum of 256 states. Generations rules are also supported by [[Chris Rowett]]'s [[LifeViewer]] starting with build 180.
Both [[MCell]] and [[Golly]] support Generations rules, the latter with a maximum of 256 states. Generations rules are also supported by [[User:rowett|Chris Rowett]]'s [[LifeViewer]] starting with build 180.


==Extensions==
==Extensions and variants==
Generations rules can, in a straightforward manner, be adapted to [[von Neumann neighbourhood|von Neumann]] and [[hexagonal neighbourhood|hexagonal]] neighbourhoods and extended to [[non-totalistic Life-like cellular automaton|non-totalistic]] and [[non-isotropic Life-like cellular automaton|non-isotropic]] rules.
Generations rules can, in a straightforward manner, be adapted to [[von Neumann neighbourhood|von Neumann]], [[hexagonal neighbourhood|hexagonal]] and [[triangular neighbourhood|triangular]] neighbourhoods and extended to [[non-totalistic Life-like cellular automaton|non-totalistic]] and [[non-isotropic Life-like cellular automaton|non-isotropic]] rules.


[[Larger than Life]] rules extend Generations rules to larger neighbourhoods.
[[Larger than Life]] rules extend Generations rules to larger neighbourhoods.
Reverse Generations rules (also called "snoitareneG" rules), in which cells take time to become alive, have been explored.<ref name="thread372" /><ref name="post44058" /><ref name="thread2939" /> These are not directly supported by Golly or apgsearch, although ruletables have been used for the former.
Generation and snoitareneG can be considered subsets of the Extended Generations rulespace,<ref name="post62255" /> which is supported by apgsearch.
==See also==
* [[BSFKL]]
* [[Larger than Life]]
* [[List of rules investigated on Catagolue#Generations rules|List of Generations rules investigated on Catagolue]]


==Notes==
==Notes==
<references group="note" />
<references group="note" />
==References==
<references>
<ref name="thread372">{{LinkForumThread
|title  = "Reverse Generations" Rules
|format = ref
|t      = 372
}}</ref>
<ref name="thread2939">{{LinkForumThread
|title  = snoitareneG Rules
|format = ref
|t      = 2939
}}</ref>
<ref name="post44058">{{LinkForumThread
|title  = Re: Thread for basic questions
|author = Brian Prentice
|format = ref
|p      = 44058
|t      = 2036
|f      = 7
}}</ref>
<ref name="post62255">{{LinkForumThread
|format = ref
|title  = "Extended" Generations rules
|p      = 62255
|author = M. I. Wright
|date  = August 1, 2018
}}</ref>
</references>


==External links==
==External links==
Line 67: Line 107:


[[Category:Algorithms]]
[[Category:Algorithms]]
[[Category:Cellular automata]]
[[Category:Generations| ]]

Revision as of 15:59, 18 August 2019

Generations rules are a multistate generalization of Life-like cellular automata in which live cells can exist in different states, and cells that would die in a 2-state cellular automaton instead advance to the next state.

The name "Generations" is due to the conceptualization of this process as cells "getting older" before eventually dying.[note 1]

Description

Generations rules are described by rulestrings of the form Bx/Sy/n[note 2] or y/x/n, an extension of B/S and S/B rulestrings where n is any natural number ≥2. Patterns evolve according to the following rules:

  1. A cell in state 0 ("dead") will advance to state 1 ("get born") in the next generation of the pattern if the number of neighbors in state 1 ("live") in its Moore neighbourhood is present in the rule's birth conditions (Bx).
  2. A cell in state 1 ("live") will:
    1. Remain in state 1 ("survive") in the next generation of the pattern if the number of neighbors in state 1 ("live") in its Moore neighborhood is present in the rule's survival conditions (Sx).
    2. Advance to state 2 ("age") in the next generation of the pattern otherwise.
  3. A cell in state m ≥ 2 will advance to state ((m + 1) mod n) in the next generation of the pattern. In particular, a cell in state n will reset to state 0 ("die").

Any outer-totalistic Life-like cellular automaton with rulestring B.../S... is equivalent to the Generations rule with rulestring B.../S.../2.

Examples

Main article: List of Generations rules
Rule (B/S/C) Rule (S/B/C equivalent) Name Character Author
B3457/S2367/5 2367/3457/5 Banners Exploding Mirek Wójtowicz
B34678/S234/24 234/34678/24 Bloomerang Expanding John Elliott
B2/S/3 /2/3 Brian's Brain Chaotic Brian Silverman
B378/S124567/4 124567/378/4 Caterpillars Chaotic Mirek Wójtowicz
B2/S23/8 23/2/8 Cooties Exploding Rudy Rucker
B13/S2/21 2/13/21 Fireworks Exploding John Elliott
B34/S12/3 12/34/3 Frogs Chaotic Scott Robert Ladd
B45678/S12345/8 12345/45678/8 Lava Expanding Mirek Wójtowicz
B458/S012345/3 012345/458/3 Lines Stable Anders Starmark
B2/S345/4 345/2/4 Star Wars Exploding Mirek Wójtowicz
B2/S3456/6 3456/2/6 Sticks Exploding Rudy Rucker
B26/S345/5 345/26/5 Transers Exploding John Elliott
B2356/S1456/16 1456/2356/16 Xtasy Exploding John Elliott

Software support

Both MCell and Golly support Generations rules, the latter with a maximum of 256 states. Generations rules are also supported by Chris Rowett's LifeViewer starting with build 180.

Extensions and variants

Generations rules can, in a straightforward manner, be adapted to von Neumann, hexagonal and triangular neighbourhoods and extended to non-totalistic and non-isotropic rules.

Larger than Life rules extend Generations rules to larger neighbourhoods.

Reverse Generations rules (also called "snoitareneG" rules), in which cells take time to become alive, have been explored.[1][2][3] These are not directly supported by Golly or apgsearch, although ruletables have been used for the former.

Generation and snoitareneG can be considered subsets of the Extended Generations rulespace,[4] which is supported by apgsearch.

See also

Notes

  1. The name "Generations", and the different states in which cells in Generations rules can exist, should not be confused with the generations (i.e. repeated evolution) of a pattern.
  2. Bx/Sy/Cn and Bx/Sy/Gn are also sometimes used, with "C" standing for "Count" (of cell states), and "G" for "Generations". If "C" is used, care must be taken to not confuse the state count with a symmetry, e.g. "B3/S23/C4".

References

  1. "Reverse Generations" Rules (discussion thread) at the ConwayLife.com forums
  2. Brian Prentice. Re: Thread for basic questions (discussion thread) at the ConwayLife.com forums
  3. snoitareneG Rules (discussion thread) at the ConwayLife.com forums
  4. M. I. Wright (August 1, 2018). "Extended" Generations rules (discussion thread) at the ConwayLife.com forums

External links

Generations at Golly's online help Family: Generations at Mirek Wójtowicz's Cellebration page