TECH 으로 돌아가기
TECH HACKER NEWS 오늘 8분 읽기 29 READS

선(禪) 정원 모래 긁기를 퍼즐로: 솔버가 설계한 '사몬'의 교훈

선(禪) 정원 모래 긁기를 퍼즐로: 솔버가 설계한 '사몬'의 교훈
SOURCE IMAGE · HACKER NEWS

교토 료안지의 방장 툇마루에서 바라보는 백사(白沙) 정원은 명상의 대상이자, 갈퀴로 평행한 줄무늬를 긋는 노동의 결과물이기도 하다. 거품 완충재를 터뜨릴 때처럼 '묘하게 만족스러운' 그 반복 작업을 퍼즐로 바꿀 수 있을까. gwern이 2023년의 짧은 스케치를 올해 본격 설계로 확장하며 내놓은 답이 '사몬(砂紋, 모래 무늬)'이다. 흥미로운 점은 이것이 단순한 게임 기획이 아니라, 추측으로 남겼던 질문들을 전부 솔버(solver)로 측정해 답하는 과정이라는 데 있다. 실무자 입장에서 보면 제약 충족 문제와 절차적 생성, 그리고 '점수 설계'에 관한 작은 사례 연구에 가깝다.

규칙은 단 하나, 수학적으로는 해밀턴 경로

정원은 벽으로 둘러싸인 직사각형으로, 정사각형 칸으로 나뉘고 돌이 장애물로 놓인다. 툇마루 쪽 한 칸이 '문'(신발을 벗는 평평한 돌 앞의 틈)이다. 초심 승려(운수)가 신발 돌에서 모래로 걸어 들어가 갈퀴를 내려놓고, 자기 발자국 위로 갈퀴를 끌며 뒷걸음질로 문까지 돌아 나온다. 모든 칸이 정확히 한 번씩 긁히고 선이 끊기지 않으며 다시 신발 돌에 서면 완성이다. 한 번의 획, 모든 칸 한 번씩, 교차 없이, 문에서 끝. 이를 형식화하면 격자 그래프에서 문 칸에서 끝나는 해밀턴 경로가 된다. 직진한 칸은 평행 홈, 꺾인 칸은 동심 사분원이 된다. 설계자가 밝힌 모든 수치는 이 정의를 푸는 정확 솔버에서 나왔다.

여기서 첫 번째 설계적 통찰이 나온다. 걸어 들어가는 경로는 자유롭다. 어차피 모든 칸이 긁히므로 발자국은 전부 지워지고, 완성된 정원의 집합은 '문에서 끝나는 해밀턴 경로'의 집합과 정확히 일치한다. 따라서 승려가 걸어온 길을 그대로 되짚어 긁는 '거울 긁기'는 아무 제약도 더하지 않는다. 덕분에 인터페이스는 가장 단순해진다. 문에서 선 하나를 그으면, 그것이 걸어 들어온 길이자 역순의 긁기가 된다.

규칙만으로는 게임이 되지 않는다

문제는 규칙 하나로는 난이도가 생기지 않는다는 점이다. 빈 정원에서 모퉁이 문으로 끝나는 해밀턴 경로의 수는 폭발적으로 늘어난다. 5×5에서 824개, 7×7에서 150만 개, 9×9에서는 약 550억 개다(이 수열이 OEIS A145157과 일치하는 것은 솔버의 정확성 검증으로도 쓰였다). 누구나 줄 맞춰 왕복하면 완성한다. 돌을 흩뿌려도 해결이 어려워지는 게 아니라 대부분 아예 풀 수 없게 된다. 체커보드로 칠해보면 획은 매 칸 색을 번갈아 밟으므로, 많은 쪽 색에서 시작·종료해야 한다. 7×7 무작위 정원 중 돌이 없으면 57%, 돌 6개면 31%만 이 패리티 검사를 통과한다. 무작위 300개 실험에서 돌 0~6개짜리 중 유일해를 갖는 정원은 하나도 없었다. 완성은 사소하고, 어렵게 만드는 장애물은 대개 불가능하게 만든다.

아름다움을 점수로, 점수를 제약으로

해법은 '여유'를 의미 있게 만드는 점수와, 여유를 제거하는 규칙 두 가지다. 그리고 둘 다 긁은 정원이 아름다운 이유에서 나온다. 미학 지표는 단 하나, 꺾임의 수다. 적게 꺾일수록 차분하다. 각 정원에는 모든 유효한 긁기 중 최소 꺾임 수인 '파(par)'가 있고, 제약 솔버로 증명된다. 파에 도달하면 방장의 주홍 인장을 받는다. 파는 바늘 끝과 같다. 빈 7×7에서 150만 해법 중 파에 닿는 것은 66개(0.004%)뿐이고, 중앙값은 그 두 배가 넘는 꺾임을 갖는다. 완성은 쉽지만 '차분하게' 완성하는 것은 진짜 최적화 퍼즐이다. 이는 Zachtronics식 구조로, 완료 후 플레이어의 꺾임 수를 전체 분포 히스토그램에 파와 함께 표시한다. 파가 증명되어 있으므로 인장은 함정도 거짓도 아니다.

주목할 대목은 하나의 숫자를 최소화했을 뿐인데 전통 문양이 되살아난다는 점이다. 파 해법은 긴 평행선(사자나미)과 돌을 두른 동심원(미즈몬)으로 나타난다. 돌을 도는 것이 인접 칸을 쓰는 가장 싼 방법이고, 꺾임마다 비용이 들기 때문이다. 다만 이것은 법칙이 아니다. 돌이 빽빽하면 파 해법도 U자 미로로 변질된다. 무작위 60개 중 열린 모래에 U턴이 없는 파 해법을 가진 것은 20%뿐이었다. 그래서 '파는 아름답다'는 보장이 아니라 레벨 큐레이터가 골라내야 할 성질이다.

설계자가 신경망 미학 점수를 쓰지 않은 이유도 실무적으로 음미할 만하다. CLIP 기반 LAION-Aesthetics 같은 학습 모델은 불투명해서 플레이어가 세고 최적화할 수 없고, 증명된 최적값도 없으며, 적대적 긁기를 부른다. 손으로 셀 수 있는 지표가 낫다. 학습 모델은 오히려 상류에서, 어떤 돌 배치가 실제 정원 같은지 순위를 매기는 데 쓰는 편이 낫다. 불투명함의 비용이 거기선 없기 때문이다.

월드마다 규칙 하나씩

가장 가까운 선배 격인 '젠 퍼즐 가든'이 받은 비판은 단조로움이었다. 그래서 사몬은 월드마다 규칙을 하나씩만 더하되, 풍경이 아니라 사고방식을 바꾸는 규칙만 솔버 테스트를 거쳐 채택했다. 물결 돌은 여덟 이웃 칸을 하나의 끊기지 않은 호로 둘러야 하지만(미즈몬), 제약으로서는 의외로 느슨해 7×7 한 개 기준 해법 중앙값이 여전히 5,573개였다. 파문 띠는 영역 내 각 행을 끝에서 끝까지 직선 한 줄로 긁게 하며(사자나미) 조금 더 조인다. 이 띠를 체커보드로 교차 배치한 '이치마쓰'에 이르러서야 비로소 빡빡해진다. 9×9를 3×3 블록 아홉 개로 나누면 유효 해법이 정확히 2개로 떨어진다. 마지막 장치는 '홈'이다. 방장이 긁다 만 칸을 남겨두는 이 부분 단서는 그 자체가 정답의 조각이라 자명하다. 레벨 생성기는 아름다운 파 해법을 정답으로 고른 뒤 유일해가 될 때까지 홈을 더하는데, 7×7~7×8 정원 69개에서 중앙값 7개면 충분했다.

사몬은 148개의 정원과 1년치 데일리 퍼즐, 플레이 가능한 프로토타입까지 한 페이지에 담겨 있다. 게임 자체의 완성도와 별개로, 모호한 '재미'나 '아름다움'을 증명 가능한 최적값과 셀 수 있는 지표로 환원하고, 생성 단계와 평가 단계에서 학습 모델의 역할을 분리한 설계 방식은 퍼즐 바깥의 소프트웨어 실무에도 그대로 옮겨볼 만한 사고 틀이다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://gwern.net/doc/design/2026-10-03-gwern-samon.html
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...