인공 생명: 300줄의 코드로 구현한 계산 생명체(Computational Life) 재현

단 300줄의 코드로 '계산 생명체(Computational Life)'의 발생과 진화를 재현한 오픈소스 프로젝트가 공개되었습니다. 240x135 그리드 내에서 Brainfuck 기반 프로그램들이 상호작용하며, 최대 2^13(8,192) 단계의 실행 과정을 통해 스스로를 복제하고 더 효율적인 형태로 진화하는 양상을 보여줍니다.

AI 요약

이 프로젝트는 '단순한 상호작용에서 어떻게 자기 복제 프로그램이 출현하는가'를 다룬 논문을 단 300줄의 파이썬 코드로 구현한 것입니다. 240x135 크기의 그리드 위에 각각 64개 명령어로 구성된 프로그램들이 배치되며, 초기에는 무작위로 설정된 상태에서 시작합니다. 인접한 프로그램들은 무작위로 짝을 지어 테이프를 결합하고, 최대 8,192($2^{13}$) 단계 동안 실행되며 이 과정에서 명령어 테이프가 스스로 변이하거나 복제됩니다. 초기에는 혼돈 상태이지만, 곧 자신을 이웃의 테이프에 복사하는 '자기 복제자'가 자생적으로 등장하여 전체 그리드를 점령하게 됩니다. 특히 특정 환경(seed 1)에서는 초기 복제자보다 더 효율적인 변종이 나타나 기존 군집을 대체하는 자연선택의 과정까지 관찰됩니다.

핵심 인사이트

  • 극도로 간결한 구현: 단 300줄의 코드로 복잡한 '계산 생명체'의 발생 및 진화 메커니즘을 성공적으로 재현함.
  • 그리드 기반 시뮬레이션: 240x135 해상도의 그리드 시스템 내에서 64개 길이의 명령어를 가진 프로그램들이 상호작용함.
  • 실행 제한 설정: 매 이터레이션마다 최대 $2^{13}$(8,192) 스텝의 실행 한도를 설정하여 연산의 효율성을 유지하고 무한 루프를 제어함.

주요 디테일

  • 언어 구조: 난해한 프로그래밍 언어로 알려진 Brainfuck과 유사한 명령어 세트를 사용하여 프로그램 스스로 테이프를 조작하고 루프를 생성할 수 있게 함.
  • 시각화 메커니즘: 각 픽셀은 하나의 명령어를 나타내며 고유한 색상을 가짐. 검은색은 데이터 저장 공간을 의미하며, 8x8 픽셀 구역이 하나의 독립적인 프로그램을 구성함.
  • 진화적 현상: 'uv run main.py --seed 1' 실행 시, 초기에 등장한 자기 복제자가 그리드를 장악하지만, 곧이어 나타난 더 효율적인 복제자에 의해 도태되는 과정이 확인됨.
  • 복제 방식: 인접한 두 프로그램의 테이프를 이어 붙여 실행한 후 다시 분리하는 과정에서, 특정 프로그램이 상대방의 메모리 영역에 자신의 코드를 덮어쓰는 방식으로 복제가 발생함.

향후 전망

  • 디지털 생명(Digital Life) 및 진화적 알고리즘 연구를 위한 초경량 벤치마크 및 교육용 도구로의 활용이 기대됨.
  • 단순한 규칙에서 복잡한 시스템이 창발(Emergence)하는 과정을 증명함으로써, 인공지능의 자가 최적화 및 변이 연구에 영감을 제공할 수 있음.
Share

댓글

이 소식에 대한 의견을 자유롭게 남겨주세요.

댓글 (0)

불러오는 중...

인공 생명: 300줄의 코드로 구현한 계산 생명체(Computational Life) 재현 | paper!