Page 1 of 5
Partitioned Cellular Automata
Posted: August 26th, 2019, 4:10 pm
by bprentice
A Golly rule tree:
Code: Select all
@RULE PCA_4
@TREE
num_states=16
num_neighbors=4
num_nodes=31
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
2 3 3 3 3 4 4 4 4 3 3 3 3 4 4 4 4
3 2 2 5 5 2 2 5 5 2 2 5 5 2 2 5 5
1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
2 7 7 7 7 8 8 8 8 7 7 7 7 8 8 8 8
1 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
1 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
2 10 10 10 10 11 11 11 11 10 10 10 10 11 11 11 11
3 9 9 12 12 9 9 12 12 9 9 12 12 9 9 12 12
4 6 6 6 6 6 6 6 6 13 13 13 13 13 13 13 13
1 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
2 15 15 15 15 16 16 16 16 15 15 15 15 16 16 16 16
1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
1 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
2 18 18 18 18 19 19 19 19 18 18 18 18 19 19 19 19
3 17 17 20 20 17 17 20 20 17 17 20 20 17 17 20 20
1 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
2 22 22 22 22 23 23 23 23 22 22 22 22 23 23 23 23
1 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14
1 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
2 25 25 25 25 26 26 26 26 25 25 25 25 26 26 26 26
3 24 24 27 27 24 24 27 27 24 24 27 27 24 24 27 27
4 21 21 21 21 21 21 21 21 28 28 28 28 28 28 28 28
5 14 29 14 29 14 29 14 29 14 29 14 29 14 29 14 29
that was inspired by section 2.2 of this paper:
http://bprentice.webenet.net/PCA/Two%20 ... e%20CA.pdf
The paper references:
Morita, K., Ueno, S: Computation-Universal Models of Two-Dimensional 16-state Reversible
Cellular Automata, IEICE Trans. Inf. & Syst., E75-D,1, pp.141–147 (1992).
I was unable to find a free copy on the internet. Can anyone help me obtain one?
The Golly rule tree was generated with RuleTreeGen.java which is distributed with Golly.
The rule definition that was inserted into RuleTreeGen.java is:
Code: Select all
/* Put your state count, neighbor count, and function here */
final static int numStates = 16;
final static int numNeighbors = 4;
private int rule[] = {0,2,4,12,8,5,9,7,1,6,10,11,3,13,14,15};
/* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
/* order for five neighbors is n, w, e, s, c */
int f(int[] a)
{
int s = 0;
if ((a[3] & 4) > 0)
s = s | 1;
if ((a[1] & 8) > 0)
s = s | 2;
if ((a[0] & 1) > 0)
s = s | 4;
if ((a[2] & 2) > 0)
s = s | 8;
return rule[s];
}
As you can see, the rule is very simple, but it exhibits very complex behavior.
Small ships with 42 different speeds have been found and there are probably many more.
Code: Select all
Diagonal Ships
2c/172 DS001.rle
2c/1364 DS002.rle
2c/284 DS003.rle
2c/1088 DS004.rle
2c/288 DS005.rle
c/78 DS006.rle
c/112 DS007.rle
2c/604 DS008.rle
2c/410 DS009.rle
2c/450 DS010.rle
c/54 DS011.rle
2c/552 DS012.rle
4c/1930 DS013.rle
c/702 DS014.rle
3c/606 DS015.rle
3c/1324 DS016.rle
4c/2006 DS017.rle
c/394 DS018.rle
c/50 DS019.rle
c/1214 DS020.rle
c/2126 DS021.rle
2c/1488 DS022.rle
Orthogonal Ships
2c/180 S001.rle
4c/2642 S002.rle
c/39 S003.rle
2c/70 S004.rle
5c/353 S005.rle
2c/1656 S006.rle
2c/374 S007.rle
2c/216 S008.rle
c/53 S009.rle
2c/132 S010.rle
7c/13549 S011.rle
2c/516 S012.rle
4c/1318 S013.rle
c/27 S014.rle
2c/244 S015.rle
c/81 S016.rle
6c/1900 S017.rle
5c/4915 S018.rle
5c/8409 S019.rle
c/237 S020.rle
Oscillators and interactions between oscillators and ships have not yet been explored.
An archive containing pattern files for these ships is here:
http://bprentice.webenet.net/PCA/PCA_4%20Ships.zip
Brian Prentice
Re: Partitioned Cellular Automata
Posted: August 26th, 2019, 5:02 pm
by Gamedziner
p16 oscillator:
EDIT:
p552:
Code: Select all
x = 5, y = 2, rule = PCA_4
.ED2B$BL!
Re: Partitioned Cellular Automata
Posted: August 26th, 2019, 7:26 pm
by Moosey
This ship is, for the record, the most common by far:
Code: Select all
x = 2, y = 3, rule = PCA_4
.A$D$.C!
Re: Partitioned Cellular Automata
Posted: August 26th, 2019, 9:53 pm
by FWKnightship
Stable 2c/180 reflector,repeat time 1881:
Code: Select all
x = 49, y = 49, rule = PCA_4
AB45.AB$HD45.HD44$21.A20.D$20.E$AB19.B20.F4.AB$HD39.D5.HD!
EDIT:P1881:
Code: Select all
x = 619, y = 216, rule = PCA_4
143.A.C469.C2$127.AB5.B9.A452.AB15.A$127.HD2.H10.A.HD451.HD2.H12.ED$
134.L464.A2.H.F6.A$128.B.B13.D453.A13.H2$600.D$127.H.D467.H8$229.B
270.B$129.A56.A64.B18.D18.A.B43.B16.A62.A.F18.A20.H.B18.B20.B20.A20.B
62.A$147.B16.L.B39.A.L39.L.B60.J20.H.B18.B20.B.D18.J22.D18.B.D18.B22.
B18.L20.A20.B22.B16.L.B27.H$125.J.HB14.IB.D20.B20.D18.A20.C39.A22.H
20.C39.A22.D18.H.A39.A22.D20.D41.D18.B.D18.B.D20.B20.D4.A.DA$127.HA
16.H39.H.D41.H39.H.D18.H41.D22.D20.D102.H39.H43.H39.H.D9.D$125.H17.H
469.A.I$144.H4$598.B$599.L2$599.H13$125.E17.H.D$124.A3.B13.H.H$128.B
13.A40.B2.D$126.2H13.H.A20.L17.HC.D$129.A33.J$143.D37.I$599.J$101.B
496.D.B2$103.B$85.AB2.B12.JB$85.HD3.D11.HA$87.A12.A$90.D89.B.B$181.F$
87.B$86.B$87.I41.A13.B$135.J$127.ABJ4.B.D6.DA$127.HD.H14.D2$144.I.D$
145.D$146.A$86.J13.A4.D60.B14.B$99.A6.D18.B.D18.D20.H16.B$84.JA14.H4.
I18.D.D20.D18.A15.A2.J411.H$83.B2.D14.D44.H20.H14.A2D413.L.H$84.H17$
599.A$101.B.D494.A$102.B$85.B15.H496.A$599.H2$85.AE10.A22.A19.A$85.BD
H10.A20.D.B18.CDC$88.B12.B39.H$100.D18.D18.H4$45.B14.B.B.B$43.AB14.3A
$44.D16.D79.D$44.J.B12.B80.F$43.A$140.D3$44.B.D41.B6.A4.B.A.B$43.A.A
39.B3.D4.A503.L.A$85.2A8.F4.A.AB495.D$86.2D11.H2.H$86.H4$57.A6.D20.B$
42.C.H.D11.A4.L22.B18.D33.D$41.A2.B14.H.D2.D18.A.H20.L20.I.D10.DB$42.
DH61.D20.D13.HD$138.H$139.D$140.H8$598.F$599.E4$59.A$58.H$59.A$58.A3$
43.L$97.A$44.B30.A.B20.AB$43.HD.E27.H23.H$45.H8.F.D39.A.J$57.D18.B22.
B4$96.H.A$2.B15.DBA.D74.B.B498.H.B$FHF15.HB.B575.H$.D596.D$4.D12.D4$
54.J2.H.C$46.F6.A.B4.H$.H42.B15.AB$2.C39.AHA15.HD2$2.H16.B22.H$45.D$.
A15.A$A.B.D11.H.H46.A20.H$45.H18.A22.I8.H$.A19.H.L20.I20.D.B18.H10.2A
L$.A2D20.H20.H53.D2$98.J498.A$598.A2$598.A$599.H8$16.A$17.A2$17.D.B5$
2.L595.A$.D615.B$.AD29.B20.A60.A20.A.B83.B20.A20.A41.B18.A.B39.B22.B
20.B39.B20.A60.A20.A.B42.I16.B2.D$2.DA.B6.H18.A20.H20.H62.A20.I20.D
22.D20.D18.C22.B81.C20.B18.H20.H22.H18.A20.H20.H62.A20.I20.DA16.HD.B$
11.E43.B18.L20.D.D16.H43.D20.D.D16.L.D20.D60.L.D20.D20.B18.B.B41.D18.
D.B18.E43.B18.L20.D.D16.H43.D20.D.D12.H.B$10.D20.H.H18.H41.D.H18.D22.
D18.D22.H41.D18.D22.D20.D18.E18.H43.H.D16.H41.D20.H.H18.H41.D.H18.D
22.D18.D22.H$74.H41.D146.D228.H41.D7$612.A.A$613.H$18.I$17.E597.D$13.
B586.B10.A$3.E10.B582.B$.A11.C4.AB577.A11.H.A2.AB$.HD15.HD578.2D10.D
3.HD$2.B595.B$.H.B593.D$598.H!
Re: Partitioned Cellular Automata
Posted: August 26th, 2019, 10:44 pm
by PkmnQ
I ran a 20x20 soup.
Fastest diagonal ship found:
Code: Select all
x = 4, y = 4, rule = PCA_4
3.E$2.B$.D$D!
Fastest orthogonal ship found:
Code: Select all
x = 3, y = 3, rule = PCA_4
2.A$.J$E!
Re: Partitioned Cellular Automata
Posted: August 26th, 2019, 11:22 pm
by bprentice
Two more Golly rules with similar behavior:
Code: Select all
/* Put your state count, neighbor count, and function here */
final static int numStates = 16;
final static int numNeighbors = 4;
private int rule[] = {0,2,4,3,8,10,6,7,1,9,5,11,12,13,14,15};
/* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
/* order for five neighbors is n, w, e, s, c */
int f(int[] a)
{
int s = 0;
if ((a[3] & 4) > 0)
s = s | 1;
if ((a[1] & 8) > 0)
s = s | 2;
if ((a[0] & 1) > 0)
s = s | 4;
if ((a[2] & 2) > 0)
s = s | 8;
return rule[s];
}
Code: Select all
@RULE PCA_2
@TREE
num_states=16
num_neighbors=4
num_nodes=31
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
2 3 3 3 3 4 4 4 4 3 3 3 3 4 4 4 4
3 2 2 5 5 2 2 5 5 2 2 5 5 2 2 5 5
1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
2 7 7 7 7 8 8 8 8 7 7 7 7 8 8 8 8
1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
1 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
2 10 10 10 10 11 11 11 11 10 10 10 10 11 11 11 11
3 9 9 12 12 9 9 12 12 9 9 12 12 9 9 12 12
4 6 6 6 6 6 6 6 6 13 13 13 13 13 13 13 13
1 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
1 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
2 15 15 15 15 16 16 16 16 15 15 15 15 16 16 16 16
1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
1 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
2 18 18 18 18 19 19 19 19 18 18 18 18 19 19 19 19
3 17 17 20 20 17 17 20 20 17 17 20 20 17 17 20 20
1 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
2 22 22 22 22 23 23 23 23 22 22 22 22 23 23 23 23
1 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14
1 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
2 25 25 25 25 26 26 26 26 25 25 25 25 26 26 26 26
3 24 24 27 27 24 24 27 27 24 24 27 27 24 24 27 27
4 21 21 21 21 21 21 21 21 28 28 28 28 28 28 28 28
5 14 29 14 29 14 29 14 29 14 29 14 29 14 29 14 29
Example ships:
http://bprentice.webenet.net/PCA/PCA_2%20Ships.zip
And:
Code: Select all
/* Put your state count, neighbor count, and function here */
final static int numStates = 16;
final static int numNeighbors = 4;
private int rule[] = {0,8,1,3,2,5,6,7,4,9,10,11,12,13,14,15};
/* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
/* order for five neighbors is n, w, e, s, c */
int f(int[] a)
{
int s = 0;
if ((a[3] & 4) > 0)
s = s | 1;
if ((a[1] & 8) > 0)
s = s | 2;
if ((a[0] & 1) > 0)
s = s | 4;
if ((a[2] & 2) > 0)
s = s | 8;
return rule[s];
}
Code: Select all
@RULE PCA_3
@TREE
num_states=16
num_neighbors=4
num_nodes=31
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
1 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
2 3 3 3 3 4 4 4 4 3 3 3 3 4 4 4 4
3 2 2 5 5 2 2 5 5 2 2 5 5 2 2 5 5
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
2 7 7 7 7 8 8 8 8 7 7 7 7 8 8 8 8
1 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
1 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
2 10 10 10 10 11 11 11 11 10 10 10 10 11 11 11 11
3 9 9 12 12 9 9 12 12 9 9 12 12 9 9 12 12
4 6 6 6 6 6 6 6 6 13 13 13 13 13 13 13 13
1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
2 15 15 15 15 16 16 16 16 15 15 15 15 16 16 16 16
1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
1 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
2 18 18 18 18 19 19 19 19 18 18 18 18 19 19 19 19
3 17 17 20 20 17 17 20 20 17 17 20 20 17 17 20 20
1 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
2 22 22 22 22 23 23 23 23 22 22 22 22 23 23 23 23
1 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14
1 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
2 25 25 25 25 26 26 26 26 25 25 25 25 26 26 26 26
3 24 24 27 27 24 24 27 27 24 24 27 27 24 24 27 27
4 21 21 21 21 21 21 21 21 28 28 28 28 28 28 28 28
5 14 29 14 29 14 29 14 29 14 29 14 29 14 29 14 29
Example ships:
http://bprentice.webenet.net/PCA/PCA_3%20Ships.zip
Brian Prentice
Re: Partitioned Cellular Automata
Posted: August 27th, 2019, 7:11 am
by FWKnightship
A signal track in PCA_4:
Code: Select all
x = 4, y = 60, rule = PCA_4
2AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.
HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.A
B$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$ACFB$HILD$.
HD$.AB$ACFB$HILD$.HD$.AB$ACFB$HILD$.HD!
Repeat time 1:
Code: Select all
x = 4, y = 60, rule = PCA_4
2AB$2HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.
HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.A
B$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$ACFB$HILD$.
HD$.AB$ACFB$HILD$.HD$.AB$ACFB$HILD$.HD!
Re: Partitioned Cellular Automata
Posted: August 27th, 2019, 7:45 am
by PHPBB12345
FWKnightship wrote:A signal track in PCA_4:
Code: Select all
x = 4, y = 60, rule = PCA_4
2AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.
HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.A
B$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$ACFB$HILD$.
HD$.AB$ACFB$HILD$.HD$.AB$ACFB$HILD$.HD!
Repeat time 1:
Code: Select all
x = 4, y = 60, rule = PCA_4
2AB$2HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.
HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.A
B$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$ACFB$HILD$.
HD$.AB$ACFB$HILD$.HD$.AB$ACFB$HILD$.HD!
PCA_4 is omniperiodic.
Re: Partitioned Cellular Automata
Posted: August 27th, 2019, 3:48 pm
by Moosey
It's creepy how the signals don't care what happens to the other parity:
Code: Select all
x = 4, y = 61, rule = PCA_4
2.A$2AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.
AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.H
D$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$.HD$.AB$ACFB$HI
LD$.HD$.AB$ACFB$HILD$.HD$.AB$ACFB$HILD$.HD!
Code: Select all
x = 4, y = 60, rule = PCA_4
A.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H
$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.
H$2.B$.H$2.B$.H$2.B$.H$2.B$.H$2.B$.C.B$H.L$.H$2.B$.C.B$H.L$.H$2.B$.C.
B$H.L$.H!
Fast diagonal:
Code: Select all
x = 4, y = 2, rule = PCA_4
.C.C$D!
RRO, p67292:
Code: Select all
x = 6, y = 7, rule = PCA_4
5.H3$H.L.D3$5.B!
Of course, it's loopable:
Code: Select all
#C p16823
x = 30, y = 30, rule = PCA_4
22.H3$17.H.L.D3$22.B$D5.A$3.B2$3.F2$3.D5$26.A2$26.I2$26.H$23.D5.A$7.H
3$8.A.C.B3$7.B!
Can we make an infinite-reservoir rep?
EDIT:
I like the small ships in pca_2:
Code: Select all
x = 14, y = 14, rule = PCA_2
.L10.I$L12.I11$F12.C$.F10.C!
Re: Partitioned Cellular Automata
Posted: August 27th, 2019, 4:47 pm
by bprentice
PHPBB12345 wrote:
PCA_4 is omniperiodic.
Please post the first 10 oscillators.
Moosey wrote:RRO, p67292:
Nice find!
Another diagonal ship 4c/1930:
Code: Select all
x = 3, y = 6, rule = PCA_4
.D$2.I2$A.D2$2.B!
Brian Prentice
Re: Partitioned Cellular Automata
Posted: August 27th, 2019, 7:46 pm
by Hdjensofjfnen
Okay, natural spaceship catalog. There might be some ships that I have difficulty telling apart.
2c/70o:
Code: Select all
x = 3, y = 3, rule = PCA_4
2.J$.F$D!
2c/132o:
2c/172d:
Code: Select all
x = 4, y = 4, rule = PCA_4
.A$H$3.F$H!
2c/180o:
2c/288d:
Code: Select all
x = 5, y = 3, rule = PCA_4
.A$B3.I$3.D!
2c/516o:
Code: Select all
x = 4, y = 2, rule = PCA_4
.J.I$D!
2c/604d:
Code: Select all
x = 4, y = 4, rule = PCA_4
.H.B2$.F$B!
7c/13589o:
Code: Select all
x = 5, y = 6, rule = PCA_4
.H2$3.A$A3.L2$4.H!
And a p4, for good measure:
Code: Select all
x = 4, y = 7, rule = PCA_4
.A.A2$3.B3$H$3.D!
EDIT: Oops, already a catalog. I'm an idiot.
Re: Partitioned Cellular Automata
Posted: August 27th, 2019, 9:49 pm
by bprentice
This is the Golly rule that was briefly introduced in the introduction and was proved to be computation-universal in the missing paper:
Morita, K., Ueno, S: Computation-Universal Models of Two-Dimensional 16-state Reversible Cellular Automata, IEICE Trans. Inf. & Syst., E75-D,1, pp.141–147 (1992).
Code: Select all
/* Put your state count, neighbor count, and function here */
final static int numStates = 16;
final static int numNeighbors = 4;
private int rule[] = {0,4,8,3,1,10,6,7,2,9,5,11,12,13,14,15};
/* order for nine neighbors is nw, ne, sw, se, n, w, e, s, c */
/* order for five neighbors is n, w, e, s, c */
int f(int[] a)
{
int s = 0;
if ((a[3] & 4) > 0)
s = s | 1;
if ((a[1] & 8) > 0)
s = s | 2;
if ((a[0] & 1) > 0)
s = s | 4;
if ((a[2] & 2) > 0)
s = s | 8;
return rule[s];
}
Code: Select all
@RULE PCA_1
@TREE
num_states=16
num_neighbors=4
num_nodes=31
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1
1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
1 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
2 3 3 3 3 4 4 4 4 3 3 3 3 4 4 4 4
3 2 2 5 5 2 2 5 5 2 2 5 5 2 2 5 5
1 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
1 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3
2 7 7 7 7 8 8 8 8 7 7 7 7 8 8 8 8
1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
1 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11
2 10 10 10 10 11 11 11 11 10 10 10 10 11 11 11 11
3 9 9 12 12 9 9 12 12 9 9 12 12 9 9 12 12
4 6 6 6 6 6 6 6 6 13 13 13 13 13 13 13 13
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
1 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10 10
2 15 15 15 15 16 16 16 16 15 15 15 15 16 16 16 16
1 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12
1 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13
2 18 18 18 18 19 19 19 19 18 18 18 18 19 19 19 19
3 17 17 20 20 17 17 20 20 17 17 20 20 17 17 20 20
1 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
1 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7
2 22 22 22 22 23 23 23 23 22 22 22 22 23 23 23 23
1 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14 14
1 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15
2 25 25 25 25 26 26 26 26 25 25 25 25 26 26 26 26
3 24 24 27 27 24 24 27 27 24 24 27 27 24 24 27 27
4 21 21 21 21 21 21 21 21 28 28 28 28 28 28 28 28
5 14 29 14 29 14 29 14 29 14 29 14 29 14 29 14 29
Four oscillators with periods 4964, 3450, 770, 1650:
Code: Select all
x = 130, y = 31, rule = PCA_1
82.ICIC31.ICIC$10.ICIC32.ICIC32.LFLF31.LFLF$10.LFLF32.LFLF10$IC9.DA
9.IC12.IC9.DA9.IC12.IC9.DA9.IC12.IC8.DA8.IC$LF20.LF12.LF20.LF12.LF20.
LF12.LF18.LF$IC20.IC12.IC20.IC12.IC20.IC12.IC18.IC$LF4.B4.H.B2.H5.L
F12.LF4.B4.H.B2.H5.LF12.LF4.B4.H.B2.H5.LF12.LF3.B4.H.B2.H4.LF$IC20.
IC12.IC20.IC12.IC20.IC12.IC18.IC$LF20.LF12.LF20.LF12.LF20.LF12.LF18.
LF$11.AD34.AD34.AD33.AD10$10.ICIC$10.LFLF32.ICIC32.ICIC31.ICIC$46.L
FLF32.LFLF31.LFLF!
Brian Prentice
Re: Partitioned Cellular Automata
Posted: August 27th, 2019, 10:02 pm
by PHPBB12345
Similar to billiard ball model:
Code: Select all
x = 7, y = 3, rule = PCA_1
IC2.B.B$LOC$.LF!
PCA_1 is omniperiodic:
Code: Select all
x = 24, y = 118, rule = PCA_1
8.IC$8.LF$8.IC$8.LF$8.IC4.IC$8.LF4.LF$8.IC$8.LF$8.IC$8.LF3$4.ICICIC$
4.LFLFLF$8.IC$8.LF$4.ICICIC4.I$4.LFLFLF5.F$4.IC$4.LF$4.ICICIC$4.LFLFL
F3$4.ICICIC$4.LFLFLF$8.IC$8.LF4.I2.C$4.ICICIC$4.LFLFLF$8.IC4.L2.F$8.L
F$4.ICICIC$4.LFLFLF3$4.IC2.IC$4.LF2.LF$4.IC2.IC$4.LF2.LF4.I$4.ICICIC$
4.LFLFLF6.F$8.IC$8.LF$8.IC$8.LF3$4.ICICIC$4.LFLFLF$4.IC8.I4.C$4.LF$4.
ICICIC$4.LFLFLF$8.IC$8.LF4.L4.F$4.ICICIC$4.LFLFLF3$4.ICICIC$4.LFLFLF$
4.IC$4.LF8.I$4.ICICIC$4.LFLFLF$4.IC2.IC7.F$4.LF2.LF$4.ICICIC$4.LFLFLF
3$4.ICICIC$4.LFLFLF4.I6.C$8.IC$8.LF$8.IC$8.LF$8.IC$8.LF$8.IC4.L6.F$8.
LF3$4.ICICIC$4.LFLFLF$4.IC2.IC$4.LF2.LF4.I$4.ICICIC$4.LFLFLF$4.IC2.IC
$4.LF2.LF8.F$4.ICICIC$4.LFLFLF3$4.ICICIC4.I8.C$4.LFLFLF$4.IC2.IC$4.LF
2.LF$4.ICICIC$4.LFLFLF$8.IC$8.LF$4.ICICIC$4.LFLFLF4.L8.F3$IC2.ICICIC$
LF2.LFLFLF$IC2.IC2.IC4.I$LF2.LF2.LF$IC2.IC2.IC$LF2.LF2.LF$IC2.IC2.IC$
LF2.LF2.LF9.F$IC2.ICICIC$LF2.LFLFLF!
Re: Partitioned Cellular Automata
Posted: August 27th, 2019, 10:18 pm
by FWKnightship
P16+8n:
Code: Select all
x = 147, y = 26, rule = PCA_4
A.3A4.3A.A.A5.3A.3A7.A.A.3A9.A.A.3A11.3A.3A13.3A.A.A15.3A.3A17.3A.3A$
A.A8.A.A.A7.A3.A7.A.A.A.A9.A.A.A.A11.A3.A15.A3.A.A17.A3.A17.A.A.A.A$A
.3A4.3A.3A5.3A.3A7.3A.A.A9.3A.3A11.3A.3A13.3A.3A17.A.3A17.3A.A.A$A.A.
A4.A5.A7.A.A11.A.A.A11.A.A.A13.A.A.A13.A.A3.A17.A.A19.A.A.A.A$A.3A4.
3A3.A5.3A.3A9.A.3A11.A.3A11.3A.3A13.3A3.A17.A.3A17.3A.3A13$2.C9.C11.C
13.C15.C17.C19.C21.C23.C$13.C11.C13.C15.C17.C19.C21.C23.C$26.C13.C15.
C17.C19.C21.C23.C$41.C15.C17.C19.C21.C23.C$58.C17.C19.C21.C23.C$77.C
19.C21.C23.C$98.C21.C23.C$121.C23.C$146.C!
Re: Partitioned Cellular Automata
Posted: August 29th, 2019, 10:47 am
by bprentice
Building on the work of FWKnightship and Moosey:
Code: Select all
x = 73, y = 16, rule = PCA_4
2AB21.2AB29.2ABABABABABABABAB$.HD22.HD30.HDHDHDHDHDHDHDHD$.AB22.AB30.
AB12.AB$.HD22.HD30.HD12.HD$.AB22.AB30.AB12.AB$.HD22.HD30.HD12.HD$.A
B22.AB30.AB12.AB$.HD22.HD30.HD12.HD$.AB22.AB30.AB12.AB$.HD22.HD30.H
D12.HD$.AB22.AB30.AB12.AB$.HD22.HD30.HD12.HD$.AB22.AB30.AB12.AB$.HD
22.HD30.HD5.B6.HD$.AB22.ABABABABABABABAB16.ABABABABABABABAB$.HD22.H
DHDHDHDHDHDHDHD16.HDHDHDHDHDHDHDHD!
Code: Select all
x = 71, y = 16, rule = PCA_4
AHB20.AHB28.AHBHBHBHBHBHBHBHB$.HB21.HB29.HBHBHBHBHBHBHBHB$.HB21.HB29.
HB12.HB$.HB21.HB29.HB12.HB$.HB21.HB29.HB12.HB$.HB21.HB29.HB12.HB$.H
B21.HB29.HB12.HB$.HB21.HB29.HB12.HB$.HB21.HB29.HB12.HB$.HB21.HB29.H
B12.HB$.HB21.HB29.HB12.HB$.HB21.HB29.HB12.HB$.HB21.HB29.HB12.HB$.HB
21.HB29.HB6.A5.HB$.HB21.HBHBHBHBHBHBHBHB15.HBHBHBHBHBHBHBHB$.HB21.H
BHBHBHBHBHBHBHB15.HBHBHBHBHBHBHBHB!
Code: Select all
x = 124, y = 32, rule = PCA_4
2.AB35.AB52.AB2.AB2.AB2.AB2.AB2.AB2.AB2.AB$2ACFB32.2ACFB49.2ACFBACF
BACFBACFBACFBACFBACFBACFB$.HILD33.HILD50.HILDHILDHILDHILDHILDHILDHI
LDHILD$2.HD35.HD52.HD2.HD2.HD2.HD2.HD2.HD2.HD2.HD$2.AB35.AB52.AB26.
AB$.ACFB33.ACFB50.ACFB24.ACFB$.HILD33.HILD50.HILD24.HILD$2.HD35.HD52.
HD26.HD$2.AB35.AB52.AB26.AB$.ACFB33.ACFB50.ACFB24.ACFB$.HILD33.HILD
50.HILD24.HILD$2.HD35.HD52.HD26.HD$2.AB35.AB52.AB26.AB$.ACFB33.ACFB
50.ACFB24.ACFB$.HILD33.HILD50.HILD24.HILD$2.HD35.HD52.HD26.HD$2.AB35.
AB52.AB26.AB$.ACFB33.ACFB50.ACFB24.ACFB$.HILD33.HILD50.HILD24.HILD$
2.HD35.HD52.HD26.HD$2.AB35.AB52.AB26.AB$.ACFB33.ACFB50.ACFB24.ACFB$
.HILD33.HILD50.HILD24.HILD$2.HD35.HD52.HD26.HD$2.AB35.AB52.AB26.AB$
.ACFB33.ACFB50.ACFB24.ACFB$.HILD33.HILD50.HILD24.HILD$2.HD35.HD52.H
D15.B10.HD$2.AB35.AB2.AB2.AB2.AB2.AB2.AB2.AB2.AB24.AB2.AB2.AB2.AB2.
AB2.AB2.AB2.AB$.ACFB33.ACFBACFBACFBACFBACFBACFBACFBACFB22.ACFBACFBA
CFBACFBACFBACFBACFBACFB$.HILD33.HILDHILDHILDHILDHILDHILDHILDHILD22.
HILDHILDHILDHILDHILDHILDHILDHILD$2.HD35.HD2.HD2.HD2.HD2.HD2.HD2.HD2.
HD24.HD2.HD2.HD2.HD2.HD2.HD2.HD2.HD!
Code: Select all
x = 69, y = 16, rule = PCA_4
A.B19.A.B27.A.B.B.B.B.B.B.B.B$.H21.H29.H.H.H.H.H.H.H.H$2.B21.B29.B13.
B$.H21.H29.H13.H$2.B21.B29.B13.B$.H21.H29.H13.H$2.B21.B29.B13.B$.H21.
H29.H13.H$2.B21.B29.B13.B$.H21.H29.H13.H$2.B21.B29.B13.B$.H21.H29.H
13.H$2.B21.B29.B13.B$.H21.H29.H7.A5.H$2.B21.B.B.B.B.B.B.B.B15.B.B.B
.B.B.B.B.B$.H21.H.H.H.H.H.H.H.H15.H.H.H.H.H.H.H.H!
Brian Prentice
Re: Partitioned Cellular Automata
Posted: August 31st, 2019, 9:01 pm
by bprentice
Another stable reflector:
Code: Select all
x = 53, y = 23, rule = PCA_4
.HD$.AB18.BA$16.A4.DH10.HD$15.E17.AB16.BA$16.B29.A4.DH$45.E$2.H.A41.
B$3.J$34.H.A$35.J6$19.J29.J$18.D.B27.D.B2$6.H31.H$7.E31.E$BA4.D25.B
A4.D$DH18.HD10.DH16.HD$20.AB28.AB!
Periods 1672 and 1492.
Brian Prentice
Re: Partitioned Cellular Automata
Posted: August 31st, 2019, 11:33 pm
by bprentice
A new 3c/606 diagonal ship:
Code: Select all
x = 5, y = 4, rule = PCA_4
3.A$A.D.H$.D$H!
The list of ships in this thread's introduction and the associated archive have been updated.
Brian Prentice
Re: Partitioned Cellular Automata
Posted: September 1st, 2019, 10:49 pm
by bprentice
The missing paper proving that rule PCA_1 is computation-universal:
http://bprentice.webenet.net/PCA/16%20S ... tomata.pdf
Brian Prentice
Re: Partitioned Cellular Automata
Posted: September 2nd, 2019, 12:20 am
by bprentice
A new 3c/1324 diagonal ship:
Code: Select all
x = 4, y = 5, rule = PCA_4
2.B$.H$A$3.D$D.H!
The list of ships in this thread's introduction and the associated archive have been updated.
Brian Prentice
Re: Partitioned Cellular Automata
Posted: September 2nd, 2019, 3:12 pm
by bprentice
A period 16226 oscillator:
Code: Select all
x = 31, y = 4, rule = PCA_4
A$.D23.H$24.I5.B$25.H3.H!
which leads to this c/15613 orthogonal ship:
Code: Select all
x = 4, y = 5, rule = PCA_4:T70,70
.D2$.A.E$A$3.B!
Brian Prentice
Re: Partitioned Cellular Automata
Posted: September 2nd, 2019, 11:15 pm
by bprentice
A new 4c/2006 diagonal ship:
Code: Select all
x = 5, y = 5, rule = PCA_4
2.A.H2$H$.D.D$2.H!
The list of ships in this thread's introduction and the associated archive have been updated.
Brian Prentice
Re: Partitioned Cellular Automata
Posted: September 3rd, 2019, 3:07 pm
by bprentice
Oscillators with periods (n + 1) * 4:
Code: Select all
x = 65, y = 65, rule = PCA_4
J14$64.E2$J.J61.E2$64.E2$64.E2$64.E2$64.E2$64.E2$64.E2$64.E2$J.J.J59.
E2$64.E2$64.E2$64.E2$64.E2$64.E2$64.E2$64.E2$J.J.J.J57.E2$64.E2$64.
E12$J.J.J.J.J!
Brian Prentice
Re: Partitioned Cellular Automata
Posted: September 3rd, 2019, 3:39 pm
by Gustone
How does this work?
PkmnQ wrote:I ran a 20x20 soup.
I ran a 116x79 soup
Code: Select all
x = 5, y = 5, rule = PCA_4
2.A.A$3.E$H2$2.H!
c/50d, new record!
some soups
Big ship
Code: Select all
x = 9, y = 5, rule = PCA_4
.B.B$A3.B$8.D$7.I$6.A!
Slow diagonal
Code: Select all
x = 4, y = 3, rule = PCA_4
A.A$3.A$C!
Oscillator
Code: Select all
x = 5, y = 5, rule = PCA_4
2.A2$2.B$3.E$A3.D!
Dot diagonal
Code: Select all
x = 6, y = 3, rule = PCA_4
5.B$A.I$3.L!
Re: Partitioned Cellular Automata
Posted: September 3rd, 2019, 4:16 pm
by Gustone
PHPBB12345 wrote:PCA 1
Isn't this just HPP?
Re: Partitioned Cellular Automata
Posted: September 3rd, 2019, 6:45 pm
by Moosey
Gustone wrote:PHPBB12345 wrote:PCA 1
Isn't this just HPP?
No-some parts aren't stable on their own and need copies