본문으로 건너뛰기
김도현

룰 30 셀룰러 오토마톤

한 칸에서 자란 무늬

룰 30

스티븐 울프럼(Stephen Wolfram)은 1980년대 초부터 두 가지 상태와 3칸짜리 이웃만으로 정의되는 256가지 규칙, 즉 초보적 셀룰러 오토마톤(elementary cellular automaton)을 체계적으로 분류했다. 이 작업은 2002년 저서 A New Kind of Science에서 집대성됐다.

콘웨이의 생명 게임이 2차원 격자에서 8개의 이웃을 살피는 오토마톤이라면, 이 계열은 1차원 한 줄에서 바로 옆 세 칸(왼쪽, 자신, 오른쪽)만 보고 다음 세대를 정한다. 그중 룰 30은 울프럼이 가장 즐겨 인용하는 예로, 완전히 정해진 규칙과 단 하나의 살아 있는 칸에서 시작했는데도 예측할 수 없을 만큼 복잡한 무늬가 자라난다.

규칙

왼쪽·자신·오른쪽 세 칸의 상태를 이진수 세 자리로 읽으면 000부터 111까지 여덟 가지 조합이 나온다. 룰 30은 이 여덟 조합마다 다음 세대의 상태를 아래처럼 정해둔 것이다.

이웃(왼쪽·자신·오른쪽)다음 세대
1110
1100
1010
1001
0111
0101
0011
0000

오른쪽 열을 위에서부터 이진수로 읽으면 00011110, 십진수로는 30이다. 규칙 이름이 바로 여기서 나온다. 이 여덟 자리를 다르게 채우면 같은 방식으로 0부터 255까지 다른 규칙이 만들어진다.

룰 30의 가운데 열, 즉 중심 칸이 세대를 거치며 남기는 값은 표준적인 난수 검정을 통과할 만큼 불규칙하다. 그래서 울프럼의 Mathematica는 실제로 정수 난수를 만드는 알고리즘 중 하나로 이 오토마톤을 쓴다. 같은 삼각형 무늬는 자연에서도 발견되는데, Conus textile 고둥 껍데기의 색소 무늬가 룰 30이 그리는 패턴과 닮아 있다.

시각화

가운데 칸 하나만 켜진 한 줄에서 시작해 규칙에 따라 한 세대씩 아래로 쌓아간다. 슬라이더로 규칙 번호를 바꾸면 처음 씨앗부터 다시 시작한다.

Wolfram MathWorld의 Rule 30 문서에서 더 자세한 설명을 볼 수 있다.

관련 글