自我复制的元胞自动机

程序简介

  • 名 称: 能自我繁殖功能的细胞自动机
  • 作 者: Eli Bachmutsky
  • 源 代 码:Self_product.zip

程序运行说明

如果说生命区别于非生命的最本质因素就是自我繁殖的话,用细胞自动机的简单规则演化出来的生命体就能达到生命的这个标准。下面的程序给你揭示了一类细胞自动机根据演化的规则能够把一个结构(在这里都是圈)进行自我复制。你会看到一生二、二生四……的大自然造物的过程。最早研究这个问题的是Von Neumann,当时人们曾经否认机器能够产生生命,就是因为程序不能进行自我复制。于是Von Neumann等人找到了一个巧妙的能够进行自我复制的细胞自动机否定了这个观点,不久以后,第一个计算机病毒诞生了。病毒就是一段能够不断自我繁殖的程序。接下来探讨这个问题的认识Chris Langton,它用细胞自动机研究人工生命这个领域,并且发明了比Von Neumann更巧妙的细胞自动机(下面的程序中的Langton Loop就是这个程序)。接下来又有很多人对程序进行改进,人们运用细胞自动机让程序自动涌现出可复制的结构从而洞悉造物主的意图。

首先,请运行上面的java小程序,如果你的CPU很慢,请耐心等待!

程序说明

可以在下拉列表框里面选择不同的细胞自动机规则,程序将给出不同的初始状态(一个圈)和不同的演化规则,但是它们的共同点是这些圈都会自我复制。按下Start按钮程序自动开始演化,或者按下step按钮程序将在用户控制下一步一步的演化运行。其中不同颜色的方格表示细胞的不同状态,这里面列出的所有细胞自动机的邻居都是上下左右四个Von Neumann类型的邻居。

这些圈的定义与规则如下:其中数字表示不同的状态,规则中第一位表示当前细胞的状态值,接下来的四位为邻居的状态,最后一位表示当前细胞的下一时刻的状态值。

圈的类型 初始状态 演化规则
Byl's loop (12 个细胞, 6 个状态)   22
2312
2342
  25
000000 000010 000031 000420 000110 000120 000311
000330 000320 000200 000242 000233 004330 005120
001400 001120 001305 001310 001320 003020 003400
003420 003120 002040 002050 002010 002020 002420
002500 002520 002200 002250 002220 040000 050000
050500 010052 010022 010400 010100 020055 400233
405235 401233 442024 452020 415233 411233 412024
412533 432024 421433 422313 501302 502230 540022
542002 512024 530025 520025 520442 523242 522020
100000 100010 100033 100330 101233 103401 103244
111244 113244 112404 133244 121351 123444 123543
122414 122434 300100 300300 300211 300233 304233
301100 301211 303211 303233 302233 344233 343233
351202 353215 314233 311233 313251 313211 312211
335223 333211 320533 324433 325415 321433 321511
321321 323411 200000 200042 200032 200022 200442
200515 200112 200122 200342 200332 200242 200212
201502 203202 202302 244022 245022 242042 242022
254202 255042 252025 210042 214022 215022 212052
212055 212022 230052 234022 235002 235022 232042
232022 220042 220020 220533 221552
Chou/Reggia 1 (6 细胞, 8 状态) 11
3411
000000 000200 000110 004420 006301 001447 003030
046000 060400 062102 051060 010420 010360 012152
032000 401033 410011 431206 640406 660630 616600
636000 000440 000260 000330 004512 005103 001540
003100 045002 060600 061110 051710 010506 010320
030400 076010 460313 410633 600000 640106 610006
616100 636100 000420 000231 000705 006030 002020
001210 040000 045600 060100 050006 020320 010140
016000 036000 400035 466633 410100 606100 660060
610106 613001 676600 000600 000100 004040 006440
001010 001110 040160 041040 060166 050306 024200
010154 016100 036606 400313 423106 411033 606313
660460 614004 630160 500000 000540 000152 004010
006110 001030 003000 044400 060066 062030 054040
023010 010340 012000 036300 405033 410061 431033
640006 660615 616000 630360 500044 500011 230000
100111 101044 146004 143321 166611 121121 117044
300111 340066 366611 374017 200100 100044 104414
101601 141403 160414 161101 112244 130414 304011
340611 314001 703010 203010 100011 104674 101301
141424 160111 161301 111044 133001 301471 340261
314676 703330 240400 100441 106101 103011 141141
164104 120414 113011 133011 301303 340211 313023
733630 210102 100414 105011 103103 141121 166644
124104 113601 300101 307141 344011 331001
Chou/Reggia 2 (5 细胞, 8 状态) 11
341
000000 000440 000547 000100 000110 000330 004040
004445 004100 001040 001010 001740 003000 003010
003030 007040 007030 007104 007110 040000 040070
047100 050007 017000 070000 070077 071010 400101
400313 401033 407103 411033 431033 500033 503330
100045 100011 100414 101044 101301 103011 107131
140414 141044 111044 133011 177711 304011 305011
305141 307141 344011 345011 354010 314001 377711
700000 700337 707100 707141 707110 717000 730007
770070 770711
Langton's loop (86 细胞, 8 状态) 22222222
2170140142
2022222202
272 212
212 212
202 212
272 212
21222222122222
207107107111112
2222222222222
000000 000012 000020 000030 000050 000063 000071
000112 000122 000132 000212 000220 000230 000262
000272 000320 000525 000622 000722 001022 001120
002020 002030 002050 002125 002220 002322 005222
012321 012421 012525 012621 012721 012751 014221
014321 014421 014721 016251 017221 017255 017521
017621 017721 025271 100011 100061 100077 100111
100121 100211 100244 100277 100511 101011
101111 101244 101277 102026 102121 102211 102244
102263 102277 102327 102424 102626 102644 102677
102710 102727 105427 111121 111221 111244 111251
111261 111277 111522 112121 112221 112244 112251
112277 112321 112424 112621 112727 113221 122244
122277 122434 122547 123244 123277 124255 124267
125275 200012 200022 200042 200071 200122 200152
200212 200222 200232 200242 200250 200262
200272 200326 200423 200517 200522 200575 200722
201022 201122 201222 201422 201722 202022 202032
202052 202073 202122 202152 202212 202222 202272
202321 202422 202452 202520 202552 202622 202722
203122 203216 203226 203422 204222 205122 205212
205222 205521 205725 206222 206722 207122 207222
207422 207722 211222 211261 212222 212242 212262
212272 214222 215222 216222 217222 222272
222442 222462 222762 222772 300013 300022 300041
300076 300123 300421 300622 301021 301220 302511
401120 401220 401250 402120 402221 402326 402520
403221 500022 500215 500225 500232 500272 500520
502022 502122 502152 502220 502244 502722 512122
512220 512422 512722 600011 600021 602120 612125
612131 612225 700077 701120 701220 701250 702120
702221 702251 702321 702525 702720
Sayama's SDSR loop(86 细胞, 9 状态) 222222222222222
27017017017011112
21222222222222212
202 212
272 212
212 212
202 212
272 212
212 212
202 212
272 272
212 202
202 212
272 272
21222222222222202
20710710710410412
222222222222225
000012 000043 000122 000152 000212 000242 000422
000452 000752 001022 002141 002171 002322 011221
012121 012321 012421 012451 012526 012626 012721
012751 013421 013721 014221 014251 014321 014351
014421 014621 017221 017251 017561 017621 017721
100011 100121 100211 100244 100277 101211 101244
101277 102021 102111 102121 102131 102211 102244
102277 102324 102414 102424 102434 102511 102527
102543 102577 102717 102727 102735 105121 105424
105727 106211 106244 106277 111121 111221 111244
111251 111277 111621 112121 112131 112151 112221
112244 112277 112321 112424 112434 112527 112543
112577 112626 112727 112735 113221 113321 115424
115727 116244 116277 122244 122277 122434 122737
123244 123277 124266 124333 126276 200012 200022
200042 200052 200060 200071 200122 200152 200212
200222 200232 200242 200260 200272 200324 200423
200452 200545 200575 200620 200722 200752 201022
201122 201222 201422 201722 202022 202032 202052
202065 202073 202122 202152 202212 202222 202232
202323 202422 202452 202525 202620 202650 202722
202752 203122 203222 203422 203452 203722 204122
204222 204422 205122 205425 205725 206125 206212
206425 206725 207122 207222 207722 211222 212222
212232 212242 212272 212323 213222 214222 216222
217222 222242 222272 222342 222372 222432 222442
222732 222772 223243 223273 300013 300022 300032
300043 300074 300123 300322 300421 301021 301250
302123 302423 302521 302723 303321 312123 312423
312521 312723 324243 324251 324273 325271 327273
400001 400021 401020 401120 401220 401250 401620
402120 402150 402221 402321 402626 403120 403221
500025 500125 500215 500232 500245 500275 500425
500725 502022 502052 502125 502152 502425 502725
503120 602022 602122 602220 602422 602722 612220
622240 622270 701020 701120 701220 701250 701620
702120 702150 702221 702320 702626 703120
Langton's ant (2个状态) 从任意一点往一个方向(上、下、左、右选其一)出发蚂蚁进行游走,它的规则有两条:
1、如果走到的格子为空,则占领这个格子并且蚂蚁顺时针旋转90度;2、如果走
到的格子已经被占领,则把这个格子的状态变为空,并且逆时针旋转90度。

相关的参考文献

1、C.G.Langton. Self-reproduction in cellular automata. Physica D, Vol. 10, pages 135-144, 1984.

2、C.G.Langton. Studying artificial life with cellular automata Physica D,Vol.22,pages 120-149,1986

3、J. Byl. Self-Reproduction in small cellular automata. Physica D, Vol. 34, pages 295-299, 1989.