개미가 뭔가요?
격자 위에 개미 한 마리가 있습니다. 개미는 매 걸음 이렇게만 합니다.
규칙은 글자로 씁니다. RL은 "빈 칸이면 오른쪽(R), 칠한 칸이면 왼쪽(L)"이라는 뜻이고, 이게 유명한 랭턴 개미입니다.
규칙이 이렇게 단순한데도 개미는 1만 걸음 가까이 어지럽게 헤매다가, 어느 순간 같은 104걸음을 되풀이하며 한쪽으로 길을 내고 떠납니다. 이 길을 고속도로라고 부릅니다. 함께 놓인 그림이 지금 실제로 그 장면을 돌리고 있습니다.
이 페이지는 글자를 바꾼 다른 개미들을 전부 돌려 봤습니다. 랭턴 개미보다 약 1,500배 오래 헤맨 뒤 고속도로를 내는 개미(LRRLRLLLR, 약 1,500만 걸음)도 찾았습니다.
파란 눈금 = 9,977걸음, 고속도로가 시작되는 순간
결국 이 여섯 가지 중 하나가 됩니다
그림을 누르면 그 개미가 처음부터 다시 걷습니다.
규칙 하나를 나누는 순서
위에서부터 차례로 검사하고, 처음 해당하는 칸에서 결과가 정해집니다. 줄을 누르면 그림과 자세한 설명이 열립니다.
① 걷게 하기개미를 빈 격자에서 200만 걸음 걷게 하고, 매 걸음을 기록해 둡니다.
격자 끝에 닿거나 200만 걸음이 되면 멈춥니다. 애매한 규칙은 2천만 걸음으로 한 번 더 돌렸습니다.
자세히 · C로 짠 시뮬레이터 tsim이 4096×4096 격자에서 초당 수천만 걸음을 돌립니다. 매 걸음 (읽은 색, 상태, 새 방향)을 1바이트로 적어 두고, 아래 ②의 반복 찾기는 그림 전체가 아니라 이 기록만으로 합니다.
② 반복 찾기기록 끝부분이 같은 동작 묶음의 되풀이면 → 고속도로 또는 덫
묶음 하나를 돌 때마다 개미가 조금씩 앞으로 나가면 고속도로, 원래 자리로 돌아오면 덫입니다. 랭턴 개미는 9,977걸음 헤맨 뒤 104걸음 묶음을 되풀이합니다.
자세히 · 기록을 끝에서부터 거꾸로 읽고 KMP 알고리즘의 '접두사 함수'로 가장 짧은 반복 단위 p를 한 번에 구합니다. p가 6번 이상, 합쳐 2만 걸음 이상 반복될 때만 인정합니다. 그다음 기록[i] = 기록[i+p]인 동안 한 걸음씩 과거로 넓혀 정확한 시작 걸음을 찾습니다(RL은 9,977로 위키백과와 같음). 한 묶음 동안의 이동 거리가 0이 아니면 고속도로, 0이면 덫입니다. 보는 범위가 마지막 400만 걸음이라 묶음이 약 60만 걸음보다 길면 못 찾습니다.
③ 크기 재기뒤쪽 절반 동안 무늬가 한 칸도 안 커졌으면 → 정체
무늬를 감싸는 상자 크기를 비교합니다. 안에서 무늬는 바뀌어도 상자가 그대로면 정체입니다.
자세히 · L과 R이 둘 다 들어간 개미는 결국 끝없이 커진다고 증명돼 있습니다. 그래서 L/R 개미의 '정체'는 멈춤이 아니라 아주 느린 성장입니다. 예: LLRRRR은 200만 걸음에 30×32칸, 2억 걸음에도 46×48칸입니다.
④ 거울에 비춰 보기출발 칸에 돌아올 때마다 무늬가 거울 대칭이면 → 대칭
세 번 넘게 대칭으로 나오면 대칭입니다. Propp가 LLRR에서 처음 본 현상입니다.
자세히 · 무늬 상자의 중심을 기준으로 세로·가로·대각선 두 개, 모두 4개 축에 비춰 봅니다. 무늬가 지난 검사 때보다 30% 이상 커졌을 때만 다시 검사합니다.
⑤ 무늬 읽기이웃 칸만 보고 가운데 칸 색을 맞히기 쉬우면 → 질서, 어려우면 → 혼돈
반듯한 무늬는 왼쪽·위·왼쪽 위 칸만 알아도 가운데 칸 색이 거의 정해집니다. 어지러운 무늬는 이웃을 알아도 맞히기 어렵습니다.
자세히 · 점수 = H(칸 | 이웃 3칸) / H(칸), 즉 조건부 엔트로피의 비율입니다. 0.5보다 작으면 질서입니다. 위키백과 예시로 맞춘 값: 삼각형 RRLLLRLLLRRR 0.02, 정사각형 LRRRRRLLR 0.29, RLR 0.68, LLRR 0.73.
글자가 길어지면 색도 많아집니다
LLRR은 색이 4개입니다. 칸 색이 몇 번째냐에 따라 그 번째 글자대로 돌고, 칸을 다음 색으로 바꿉니다.
자세히
글자는 L(왼쪽), R(오른쪽), N(직진), U(유턴) 네 가지입니다. '턴마이트'는 여기에 기분(상태)을 더해, (기분, 색)마다 {칠할 색, 회전, 다음 기분}을 정한 표입니다. 표기는 Golly를 따릅니다: 회전 1=N, 2=R, 4=U, 8=L. 카드에는 "칠할색 회전 다음기분"을 줄여 쓰고 기분 사이를 | 로 나눴습니다.
무엇을 얼마나 돌렸나
글자 8개 이하 개미 전부, L/R만 쓰는 12글자 이하 개미 전부, 작은 턴마이트 전부와 무작위 1만 개. 합쳐서 약 9만 2천 개입니다.
자세히
L/R/N/U 8글자 이하 43,741개, L/R 12글자 이하 4,015개, 2상태 2색 턴마이트 34,816개, 3상태 2색·2상태 3색 무작위 5천 개씩. 좌우만 뒤집은 규칙, RLRL처럼 더 짧은 규칙의 반복은 미리 뺐습니다. 1차는 200만 걸음, 끝에서야 반복이 보인 고속도로와 L/R 9글자 이하 미해결 규칙은 2천만 걸음으로 다시 돌렸고, 다시 돌린 고속도로 33개 모두 같은 결과가 나왔습니다. '새로운 발견'인지는 기존 목록과 대조하지 않았습니다.
직접 돌려 보기
카드나 표의 줄을 누르면 브라우저가 같은 규칙을 0걸음부터 다시 돌립니다. '고속도로 직전으로'를 누르면 헤매던 개미가 길을 내기 시작하는 순간 바로 앞으로 갑니다.
자세히
브라우저 안 엔진(engine.js)은 C 시뮬레이터와 결과가 비트 단위로 같습니다(RL, LUNRL, 피보나치 턴마이트를 30만 걸음에서 확인). 다시 보기 격자는 2048×2048칸이라 C 쪽(4096²)보다 먼저 끝에 닿을 수 있습니다.
전체 표
열 제목을 누르면 정렬됩니다. 흥미로운 줄만 담았습니다: 5만 걸음 넘게 헤맨 고속도로, 묶음이 1,000걸음 넘는 고속도로, 그리고 질서·대칭·정체·덫 전부입니다.
| 규칙 | 묶음 | 결과 | 헤맨 걸음 | 반복 묶음 | 묶음당 이동 | 돌린 걸음 | 크기 | 질서 점수 |
|---|