🐜 兰顿蚂蚁

只有两条规则、没有大脑的蚂蚁,如何从一团混沌里走出无限延伸的”高速公路”?50 行 Python 复现。

玩法

python3 content/code/langton_ant.py            # 默认 11000 步
python3 content/code/langton_ant.py -n 200     # 只看混沌期
python3 content/code/langton_ant.py -n 20000 -w 100 -H 50

规则

蚂蚁在一张无限大的方格纸上爬行,每走一步都执行同一条判断:

  • 站在白格 → 右转 90°,把格子涂,前进一步
  • 站在黑格 → 左转 90°,把格子涂,前进一步

没有天敌,没有食物,没有目标,连记性都只有”上一格是什么颜色”。就是这样一只蠢蚂蚁,却让研究它的人困惑了四十年。

三幕剧

第一幕:混沌(前几百步)。 蚂蚁像喝醉了酒,在起点附近画出一团毫无章法的乱麻:

............................................................
............................####............................
...........................#....#...........................
..........................###....#...........................
..........................########...........................
...........................##.#..#...........................
...........................#...#.##..........................
..........................@.###.###..........................
..........................###....#...........................
.............................####............................
............................................................

(200 步,黑格仅 40 个——看不出任何规律。)

第二幕:铺垫(几百到一万步)。 混乱还在继续,但蚂蚁开始偶尔画出对称的图案,像是喝醉的人在试图走直线。这一阶段持续约一万步,数学上至今没人能预测它会持续多久。

第三幕:高速公路(约一万步之后)。 突然之间,蚂蚁”清醒”了——它开始沿着一条对角线,反复走出一个 104 步的循环,每循环一次图案整体平移两格,一条无限延伸的高速公路就此开工:

...........................................#.#..............................
............................................#.#....##.......................
....................................####..#...#.....##..##..................
...................................###.#.....#.....##...###.................
..........................##..##..#.##..#..#......####.#.#.#................
.........................#..#..###..#..####.##########.#...#................
........................###...#.####..#.##.#....#..#####.##.................
........................#####.#.........#...#.#.#...#....#..................
.........................#....##.####.#..#..##..#...#.###...................
..........................###.....#.##.###.....#..#.###..##.................
...........................#...#..###.####..#.....#.###.#..#................
............................##...##.#.#..##..#.##....##.....#...............
............................#....##.##.#..#......###....#...#...............
...........................###.#.##.####..#####.####..####.#................
...........................##.#######.#...#....##...#.#.#...................
............................#......##.####.#..####.####...#.#...............
............................###.#.#..####.......####..#....#.#..............
...........................#..#.###.#####...#.###..#..##.....#..............
...........................#..###.####..#.######...#..#.##..#...............
...........................#..#.##.##.#.######....###.###...###.............
...........................#..#..#..#.....#.#.#.#..##.#....##..#............
............................#.....#..#.##.####...#..#..##.#.#...#...........
.............................#.....##..#.....##...###########...#...........
.................................##..##..##..#.#...##.####.###.#............
...............................#.###.##...####...#.#..#..#..#..#............
................................##..#..#####....#.##..#..##..#.#............
.................................##...#####..#.#.#.#.#####..#..#............
......................................#..####...#..#.##....##..#............
........................................####..#..##.......##...#............
........................................#.#...####..##...###...#............
.........................................#...##....##..#....#.#.............
..........................................####....##..##.#....#.............
.............................................##....##.###....###.............
......................................................#......###............
.........................................................#....#.............
..........................................................####..............

(11000 步,76×36 窗口——右下角那条斜向的走廊就是高速公路。)

实测数据(本仓库脚本,600×600 网格)

观测项结果
混沌期黑格500 步仅 62 格,10000 步 720 格
高速路起点约第 8000~10000 步之间(此例从 10000 步起位移稳定)
高速路周期104 步,每周期整体平移 (−2,+2),头部图案 155/155 格完全重合
高速路增速约每 104 步净增 12 个黑格
越界时刻第 24669 步撞到 600×600 边界

为什么它让人着迷

  • 确定性的混沌:初始条件完全确定、规则完全确定,却产生了不可预测的复杂行为——这是”混沌”最干净的例子。
  • 图灵完备:把规则推广到多种颜色后,兰顿蚂蚁可以模拟图灵机,也就是原则上能计算任何可计算的东西。
  • 未解之谜:一个悬而未决的猜想是——从任何有限初始构型出发,蚂蚁最终一定会进入高速公路吗? 所有实验都说是,但至今无人证明。一只两条规则的蚂蚁,卡住了整个数学界。

还能怎么玩

  • -n 调到 30000,在更大的场地里看高速路延伸得更远
  • 修改规则(比如”白格左转”),看看会出现什么样的新图案
  • 放两只蚂蚁(改改初始位置),看它们的高速路会不会相交

相关