GOE checker model for game of life

For scripts to aid with computation or simulation in cellular automata.
Post Reply
Naszvadi
Posts: 1244
Joined: May 7th, 2016, 8:53 am
Contact:

GOE checker model for game of life

Post by Naszvadi » November 20th, 2016, 9:10 am

Hi!

I've made scripts in modeling languages, which can check a pattern if it is GOE or not. Some results:

If one certain cell is removed from the GOE #6 - http://conwaylife.com/wiki/Garden_of_Eden_6 -, some fathers are here - since now two removals were checked only:

Code: Select all

4ob3ob3o$obo5bobo$4bo3bo2bo$2o2bobo3bo$o2bo3b2o$bo3bo2b2obo$o3bo5bo$2b2o3b2o$o4b2o3bo$obo6b3o$4b2o2b2o$obo3b2obo!

Code: Select all

2bo2bo3b3o$obob2ob2obo$bobo5bo$2o2bo3b2o$2bo2b2o3b2o$bo3bobo2bo$o3bob
2obo$bob2o2bo3bo$o7bob2o$3bobobo3bo$obo2bo3b2o$4bo5b2o!

Naszvadi
Posts: 1244
Joined: May 7th, 2016, 8:53 am
Contact:

Re: GOE checker model for game of life

Post by Naszvadi » July 16th, 2017, 8:12 am

Weekly related, but this script checks a huge pattern mentioned by Saka if it is a GOE.

Other weekly related:
I wondered if composing itself a margolus 1D automata that has at least two states including 0 and 1, if it could emulate arbitrary Wolfram rule. Spoiler: yes, for all 256 Wolfram elementary automata, at most 5 states are enough.
Tried it, so I began modeling it with GMPL (a strict subset of AMPL) using GNU Linear Programming Kit (GLPK) in order perform a search to find minimal margolus 1D rules that could be composed itself yielding a Wolfram rule, objective for minimizing was the number of states. The stunning results are - transition tables in a compact form, where asterisk could be arbitrary value (does not count):

Code: Select all

Found a solution for rule 0:
00
00
--
Found a solution for rule 1:
32**
22**
**00
**01
--
Found a solution for rule 2:
021
22*
0*0
--
Found a solution for rule 3:
33**
22**
**00
**01
--
Found a solution for rule 4:
0010
23**
0***
**00
--
Found a solution for rule 5:
43*00
02***
0*0**
1*0**
***01
--
Found a solution for rule 6:
01**
2310
00**
**00
--
Found a solution for rule 7:
22**
130*
*110
*0*0
--
Found a solution for rule 8:
001
02*
0*0
--
Found a solution for rule 9:
32***
24***
**001
**01*
**0*0
--
Found a solution for rule 10:
021*
23**
0*01
**00
--
Found a solution for rule 11:
220*
03**
0*11
0**0
--
Found a solution for rule 12:
020
00*
1**
--
Found a solution for rule 13:
31**
221*
*000
*0*1
--
Found a solution for rule 14:
01*
221
000
--
Found a solution for rule 15:
33**
22**
**00
**11
--
Found a solution for rule 16:
020
22*
1*0
--
Found a solution for rule 17:
32**
32**
**00
**01
--
Found a solution for rule 18:
021
22*
1*0
--
Found a solution for rule 19:
23**
33**
**11
**10
--
Found a solution for rule 20:
020*
130*
*1*0
*0*0
--
Found a solution for rule 21:
2010
23**
0*1*
**00
--
Found a solution for rule 22:
01**
2310
10**
**00
--
Found a solution for rule 23:
32***
1401*
*1**0
**11*
*0**0
--
Found a solution for rule 24:
020
20*
1*0
--
Found a solution for rule 25:
2001
23**
0*1*
**00
--
Found a solution for rule 26:
021*
23**
1*01
**00
--
Found a solution for rule 27:
43***
32***
**00*
**101
***11
--
Found a solution for rule 28:
03*0
22**
1*00
**1*
--
Found a solution for rule 29:
31**
221*
*001
*0*1
--
Found a solution for rule 30:
01*
221
100
--
Found a solution for rule 31:
301*
22**
0*01
1**1
--
Found a solution for rule 32:
200
120
000
--
Found a solution for rule 33:
300*
12*0
*00*
0**1
--
Found a solution for rule 34:
01
00
--
Found a solution for rule 35:
300*
12*0
*00*
1**1
--
Found a solution for rule 36:
020
20*
0*1
--
Found a solution for rule 37:
32***
24***
**100
**01*
**0*0
--
Found a solution for rule 38:
021*
03**
1**0
0**0
--
Found a solution for rule 39:
23***
34***
**11*
**010
***00
--
Found a solution for rule 40:
201
120
000
--
Found a solution for rule 41:
31*0
021*
0*0*
*0*1
--
Found a solution for rule 42:
01*
021
0*0
--
Found a solution for rule 43:
210*
03*1
*11*
0**0
--
Found a solution for rule 44:
03*0
22**
0*01
**1*
--
Found a solution for rule 45:
301*
22**
1*00
0**1
--
Found a solution for rule 46:
021
00*
1**
--
Found a solution for rule 47:
31**
221*
*100
*1*1
--
Found a solution for rule 48:
00
10
--
Found a solution for rule 49:
32**
1211
*00*
**01
--
Found a solution for rule 50:
021
121
*00
--
Found a solution for rule 51:
23**
23**
**11
**00
--
Found a solution for rule 52:
0010
23**
1***
**00
--
Found a solution for rule 53:
32***
24***
**110
**01*
**0*0
--
Found a solution for rule 54:
021*
23**
1*10
**00
--
Found a solution for rule 55:
22**
23**
**10
**00
--
Found a solution for rule 56:
001
12*
*00
--
Found a solution for rule 57:
31*1
021*
0*0*
*0*1
--
Found a solution for rule 58:
211
021
010
--
Found a solution for rule 59:
21**
2301
*11*
**00
--
Found a solution for rule 60:
020
20*
1*1
--
Found a solution for rule 61:
301*
22**
1*01
0**1
--
Found a solution for rule 62:
01*
221
110
--
Found a solution for rule 63:
22**
23**
**11
**00
--
Found a solution for rule 64:
000
02*
1*0
--
Found a solution for rule 65:
32***
24***
**000
**01*
**1*0
--
Found a solution for rule 66:
021
20*
0*0
--
Found a solution for rule 67:
22**
130*
*010
*1*0
--
Found a solution for rule 68:
001
20*
0**
--
Found a solution for rule 69:
3200
02**
1*0*
**01
--
Found a solution for rule 70:
021*
32**
**01
0*0*
--
Found a solution for rule 71:
32**
1200
*10*
**11
--
Found a solution for rule 72:
001
02*
1*0
--
Found a solution for rule 73:
32***
24***
**001
**01*
**1*0
--
Found a solution for rule 74:
021*
23**
0*01
**10
--
Found a solution for rule 75:
220*
03**
0*11
1**0
--
Found a solution for rule 76:
0011
23**
0***
**10
--
Found a solution for rule 77:
41***
2311*
*0**0
**10*
*0**1
--
Found a solution for rule 78:
01**
2311
00**
**10
--
Found a solution for rule 79:
22**
130*
*111
*1*0
--
Found a solution for rule 80:
020*
23**
1*00
**10
--
Found a solution for rule 81:
2000
23**
0*1*
**10
--
Found a solution for rule 82:
021*
23**
1*00
**10
--
Found a solution for rule 83:
42***
23***
**001
**10*
**1*1
--
Found a solution for rule 84:
020
120
*10
--
Found a solution for rule 85:
23**
23**
**10
**10
--
Found a solution for rule 86:
021
120
*10
--
Found a solution for rule 87:
3201
02**
1*0*
**11
--
Found a solution for rule 88:
020*
23**
1*01
**10
--
Found a solution for rule 89:
2001
23**
0*1*
**10
--
Found a solution for rule 90:
01
10
--
Found a solution for rule 91:
23***
34***
**11*
**101
***10
--
Found a solution for rule 92:
020*
130*
*1*1
*1*0
--
Found a solution for rule 93:
21**
2311
*01*
**10
--
Found a solution for rule 94:
01**
2311
10**
**10
--
Found a solution for rule 95:
2310*
04***
**11*
1***1
1***0
--
Found a solution for rule 96:
210
020
100
--
Found a solution for rule 97:
31*0
020*
1*0*
*0*1
--
Found a solution for rule 98:
01*
020
1*0
--
Found a solution for rule 99:
300*
12*0
*10*
1**1
--
Found a solution for rule 100:
020*
32**
**01
0*1*
--
Found a solution for rule 101:
32**
1210
*10*
**01
--
Found a solution for rule 102:
021
02*
1*0
--
Found a solution for rule 103:
32**
1210
*10*
**11
--
Found a solution for rule 104:
201
120
010
--
Found a solution for rule 105:
31*0
021*
1*0*
*0*1
--
Found a solution for rule 106:
01*
021
1*0
--
Found a solution for rule 107:
210*
03*1
*11*
1**0
--
Found a solution for rule 108:
020*
23**
0*11
**10
--
Found a solution for rule 109:
23***
34***
**10*
**011
***10
--
Found a solution for rule 110:
021*
03**
1**1
1**0
--
Found a solution for rule 111:
23***
34***
**11*
**011
***10
--
Found a solution for rule 112:
000
12*
*10
--
Found a solution for rule 113:
20*0
131*
0*1*
*1*0
--
Found a solution for rule 114:
200
121
110
--
Found a solution for rule 115:
22**
131*
*010
*1*0
--
Found a solution for rule 116:
001
20*
1**
--
Found a solution for rule 117:
3211
02**
1*0*
**01
--
Found a solution for rule 118:
021
121
*10
--
Found a solution for rule 119:
33**
32**
**01
**01
--
Found a solution for rule 120:
001
12*
*10
--
Found a solution for rule 121:
20*1
131*
0*1*
*1*0
--
Found a solution for rule 122:
201
121
110
--
Found a solution for rule 123:
221*
03**
0*11
1**0
--
Found a solution for rule 124:
0011
23**
1***
**10
--
Found a solution for rule 125:
43***
32***
**01*
**111
***01
--
Found a solution for rule 126:
021
20*
1*1
--
Found a solution for rule 127:
33**
32**
**01
**11
--
Found a solution for rule 128:
00
01
--
Found a solution for rule 129:
12*
210
*00
--
Found a solution for rule 130:
120
201
000
--
Found a solution for rule 131:
220
01*
001
--
Found a solution for rule 132:
001
210
0**
--
Found a solution for rule 133:
301*
210*
0**0
0**1
--
Found a solution for rule 134:
301*
210*
0**0
1**0
--
Found a solution for rule 135:
220
01*
101
--
Found a solution for rule 136:
001
02*
0*1
--
Found a solution for rule 137:
21**
31*0
*01*
*00*
--
Found a solution for rule 138:
01*
210
00*
--
Found a solution for rule 139:
11*
210
*0*
--
Found a solution for rule 140:
020
01*
11*
--
Found a solution for rule 141:
3200
01**
11**
**01
--
Found a solution for rule 142:
3200
01**
11**
**10
--
Found a solution for rule 143:
220
01*
111
--
Found a solution for rule 144:
020
210
100
--
Found a solution for rule 145:
200
210
0*1
--
Found a solution for rule 146:
120
201
010
--
Found a solution for rule 147:
300*
210*
0**1
1**1
--
Found a solution for rule 148:
3201
01**
10**
**00
--
Found a solution for rule 149:
201
210
0*1
--
Found a solution for rule 150:
301*
210*
0**1
1**0
--
Found a solution for rule 151:
301*
210*
0**1
1**1
--
Found a solution for rule 152:
020
120
*01
--
Found a solution for rule 153:
21*
210
*01
--
Found a solution for rule 154:
01*
210
10*
--
Found a solution for rule 155:
21**
31*0
*11*
*01*
--
Found a solution for rule 156:
3201
01**
11**
**00
--
Found a solution for rule 157:
23**
210*
**10
*11*
--
Found a solution for rule 158:
01**
2311
10**
**01
--
Found a solution for rule 159:
3201
01**
11**
**11
--
Found a solution for rule 160:
300*
12*0
*01*
0**0
--
Found a solution for rule 161:
200
120
001
--
Found a solution for rule 162:
01*
020
0*1
--
Found a solution for rule 163:
210
020
011
--
Found a solution for rule 164:
120
200
001
--
Found a solution for rule 165:
10
01
--
Found a solution for rule 166:
021
01*
10*
--
Found a solution for rule 167:
301*
210*
1**0
1**1
--
Found a solution for rule 168:
210
01*
*00
--
Found a solution for rule 169:
210
01*
*01
--
Found a solution for rule 170:
01
01
--
Found a solution for rule 171:
210
01*
*11
--
Found a solution for rule 172:
020
210
011
--
Found a solution for rule 173:
3210
01**
11**
**01
--
Found a solution for rule 174:
021
01*
11*
--
Found a solution for rule 175:
32**
210*
*110
**11
--
Found a solution for rule 176:
000
12*
*01
--
Found a solution for rule 177:
211
020
001
--
Found a solution for rule 178:
211*
03*0
*10*
0**1
--
Found a solution for rule 179:
221
01*
001
--
Found a solution for rule 180:
001
210
1**
--
Found a solution for rule 181:
301*
210*
1**1
0**1
--
Found a solution for rule 182:
120
201
011
--
Found a solution for rule 183:
22*
210
*01
--
Found a solution for rule 184:
001
12*
*01
--
Found a solution for rule 185:
211
01*
*01
--
Found a solution for rule 186:
01*
210
11*
--
Found a solution for rule 187:
11
01
--
Found a solution for rule 188:
221
01*
110
--
Found a solution for rule 189:
12*
210
*11
--
Found a solution for rule 190:
120
201
111
--
Found a solution for rule 191:
22*
210
*11
--
Found a solution for rule 192:
000
02*
1*1
--
Found a solution for rule 193:
32**
1100
*0**
**01
--
Found a solution for rule 194:
01*
220
001
--
Found a solution for rule 195:
22*
110
*01
--
Found a solution for rule 196:
001
211
0**
--
Found a solution for rule 197:
301*
211*
0**0
0**1
--
Found a solution for rule 198:
301*
211*
0**0
1**0
--
Found a solution for rule 199:
22**
31*1
*011
**0*
--
Found a solution for rule 200:
11
10
--
Found a solution for rule 201:
32**
211*
*100
**01
--
Found a solution for rule 202:
121
201
100
--
Found a solution for rule 203:
22**
31*1
*110
**0*
--
Found a solution for rule 204:
001
22*
0*1
--
Found a solution for rule 205:
31**
211*
*0*0
*0*1
--
Found a solution for rule 206:
01*
211
00*
--
Found a solution for rule 207:
11*
211
*0*
--
Found a solution for rule 208:
020
110
*0*
--
Found a solution for rule 209:
12*
110
*0*
--
Found a solution for rule 210:
021
110
*0*
--
Found a solution for rule 211:
23**
1110
**11
*0**
--
Found a solution for rule 212:
301*
211*
0**1
0**0
--
Found a solution for rule 213:
201
211
0*1
--
Found a solution for rule 214:
301*
211*
0**1
1**0
--
Found a solution for rule 215:
301*
211*
0**1
1**1
--
Found a solution for rule 216:
121
200
110
--
Found a solution for rule 217:
23**
211*
**10
*10*
--
Found a solution for rule 218:
121
201
110
--
Found a solution for rule 219:
12*
211
*10
--
Found a solution for rule 220:
020
110
*1*
--
Found a solution for rule 221:
12*
110
*1*
--
Found a solution for rule 222:
01*
211
10*
--
Found a solution for rule 223:
31**
211*
*0*1
*1*1
--
Found a solution for rule 224:
20*
110
0*0
--
Found a solution for rule 225:
20*
110
0*1
--
Found a solution for rule 226:
01*
020
1*1
--
Found a solution for rule 227:
20*
110
1*1
--
Found a solution for rule 228:
121
200
001
--
Found a solution for rule 229:
301*
211*
1**0
0**1
--
Found a solution for rule 230:
201
211
1*0
--
Found a solution for rule 231:
12*
211
*01
--
Found a solution for rule 232:
210*
03*1
*00*
1**1
--
Found a solution for rule 233:
210
021
101
--
Found a solution for rule 234:
01*
021
1*1
--
Found a solution for rule 235:
201
120
111
--
Found a solution for rule 236:
10
00
--
Found a solution for rule 237:
21*
110
*01
--
Found a solution for rule 238:
021
02*
1*1
--
Found a solution for rule 239:
21*
110
*11
--
Found a solution for rule 240:
11
00
--
Found a solution for rule 241:
20*
111
0*1
--
Found a solution for rule 242:
20*
111
1*0
--
Found a solution for rule 243:
10
11
--
Found a solution for rule 244:
001
211
1**
--
Found a solution for rule 245:
32**
211*
*011
**01
--
Found a solution for rule 246:
121
201
011
--
Found a solution for rule 247:
22*
211
*01
--
Found a solution for rule 248:
001
12*
*11
--
Found a solution for rule 249:
211
021
101
--
Found a solution for rule 250:
20*1
131*
1*0*
*1*1
--
Found a solution for rule 251:
211
021
111
--
Found a solution for rule 252:
21*
111
*00
--
Found a solution for rule 253:
21*
111
*01
--
Found a solution for rule 254:
01
11
--
Found a solution for rule 255:
11
11

Naszvadi
Posts: 1244
Joined: May 7th, 2016, 8:53 am
Contact:

Re: GOE checker model for game of life

Post by Naszvadi » July 17th, 2017, 6:17 am

Naszvadi wrote:...
If one certain cell is removed from the GOE #6 - http://conwaylife.com/wiki/Garden_of_Eden_6 -, some fathers are here - since now two removals were checked only:

Code: Select all

4ob3ob3o$obo5bobo$4bo3bo2bo$2o2bobo3bo$o2bo3b2o$bo3bo2b2obo$o3bo5bo$2b2o3b2o$o4b2o3bo$obo6b3o$4b2o2b2o$obo3b2obo!

Code: Select all

other predecessor, not relevant yet
Tidyed a bit manually:

Code: Select all

x = 16, y = 17, rule = B3/S23
ob2ob2ob2o2b2obo$b14o$6ob3ob5o$3obo5bobob2o$bo4bo3bo2b2o$4o2bobo3bob2o
$3o2bo3b2o3b2o$bobo3bo2b2ob2o$b2o3bo5bobo$2o2b2o3b2o3b2o$3o4b2o3bob2o$
b2obo6b4o$bo4b2o2b2o2bo$3obo3b2obo2b2o$3obob10o$b14o$ob2ob2ob2o2b2obo!
[[ AUTOFIT STOP 1 ]]
Good algorithm ideas wanted for creating such bounds fast!

Naszvadi
Posts: 1244
Joined: May 7th, 2016, 8:53 am
Contact:

Re: GOE checker model for game of life

Post by Naszvadi » July 26th, 2017, 3:46 am

Naszvadi wrote:Hi!

I've made scripts in modeling languages, which can check a pattern if it is GOE or not. Some results:
...
Now it is included in GNU Linear Programming Kit examples, look up for included life_goe.mod file for more details.

http://lists.gnu.org/archive/html/help- ... 00012.html

On ubuntu simply type:

Code: Select all

$ sudo apt-get install -y glpk-utils
And then acquire life_goe.mod from latest tarball, and run with

Code: Select all

$ glpsol --cuts --last --math life_goe.mod
Model file is self-explanatory, documented. Ask me if you have questions.

Post Reply