라이프 게임

2017.08.23 21:49

졸리운_곰 조회 수:44

 

라이프 게임

위키백과, 우리 모두의 백과사전.
 
 
‘글라이더’ 패턴의 진행.

라이프 게임(Game of Life) 또는 생명 게임은 영국의 수학자 존 호턴 콘웨이가 고안해낸 세포 자동자의 일종으로, 가장 널리 알려진 세포 자동자 가운데 하나이다.

미국의 과학 잡지 사이언티픽 어메리칸 1970년 10월호 중 마틴 가드너의 칼럼 〈Mathematical Games(수학 게임)〉란을 통해 처음으로 대중들에게 소개되어 단순한 규칙 몇가지로 복잡한 패턴을 만들어낼 수 있다는 점 때문에 많은 관심과 반응을 불러일으켰다. 라이프 게임은 컴퓨터 과학에서도 의미가 있는데, 왜냐하면 라이프 게임이 범용 튜링 기계와 동등한 계산능력을 가진 세포 자동자이기 때문이다. 즉, 어떤 알고리즘에 의해 계산될 수 있는 것이라면 모두 이를 이용하여 계산할 수 있다.

 

 

설명[편집]

이 ‘게임’은 사실 게임을 하는 사람이 자신의 의지로 게임의 진행을 결정하는 일반적인 게임과는 약간 많이 다르다. 라이프 게임의 진행은 처음 입력된 초기값만으로 완전히 결정된다.

라이프 게임은 무한히 많은 사각형(혹은 ‘세포’)로 이루어진 격자 위에서 돌아간다. 각각의 세포 주위에는 인접해 있는 여덟 개의 ‘이웃 세포’가 있으며, 또 각 세포는 ‘죽어’ 있거나 ‘살아’ 있는 두가지 상태 중 한가지 상태를 갖는다(‘켜져’ 있거나 ‘꺼져’ 있다는 표현을 쓰기도 한다). 격자를 이루는 세포의 상태는 연속적이 아니라 이산적으로 변화한다. 즉, 현재 세대의 세포들 전체의 상태가 다음 세대의 세포 전체의 상태를 결정한다.

각각의 세포가 다음 세대에서 갖는 상태는 현재 자신의 상태와 이웃하는 여덟 개의 세포들 중 몇 개가 살아있는 상태인지만을 따져서 결정된다.

  • 죽은 세포의 이웃 중 정확히 세 개가 살아 있으면 그 세포는 살아난다(‘태어난다’).
  • 살아 있는 세포의 이웃 중에 두 개나 세 개가 살아 있으면, 그 세포는 계속 살아 있는 상태를 유지하고, 이외에는 ‘외로워서’, 또는 ‘숨이 막혀서’ 죽어버린다.

패턴의 예[편집]

라이프 게임에는 전혀 변화가 없는 고정된 패턴(정물 靜物, still life), 일정한 행동을 주기적으로 반복하는 패턴(진동자, oscillator — 정물은 주기가 한 세대인 진동자임), 한쪽 방향으로 계속 전진하는 패턴(우주선, spaceship) 등 여러 패턴이 존재한다. 아래에 간단한 예가 있다. 살아 있는 셀은 검은 색으로, 죽어 있는 셀은 흰색으로 표현했다.

Game of life block.png Game of life boat.png Game of life blinker.png Game of life toad.png Game of life glider.png Game of life lwss.png
block 배(boat) 깜빡이(blinker) 두꺼비(toad) 글라이더(glider) LWSS

‘block’과 ‘boat’는 정물이고, ‘blinker’와 ‘toad’는 진동자, 그리고 ‘글라이더(glider)’와 ‘경량급 우주선(lightweight spaceship — LWSS)’은 우주선에 속한다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

진동자로 수렴하기까지 많은 세대가 필요한 패턴도 있는데, ‘methuselah(므두셀라)’라고 불린다. ‘다이하드(diehard)’는 130세대가 지나서야 사라진다. ‘도토리(acorn)’는 5206세대가 지나서야 13개의 글라이더(glider)와 수많은 진동자를 남기고 안정화된다.지금까지 발견된 패턴 중 진동자로 수렴하기까지 가장 많은 세대를 거친 패턴은 리드카(Lidka)로, 무려 29,055 세대가 지나야 안정화된다.

Game of life diehard.png Game of life methuselah.png
diehard acorn

라이프 게임이 처음 소개된 〈Mathematical Games〉에서, 콘웨이는 세포 수가 무한히 많아지는 패턴을 찾은 사람에게 상금을 걸었다.

해커 빌 가스퍼(Bill Gosper)가 1970년 11월에 처음 그러한 패턴들을 찾아 상금을 탔다. 패턴들 가운데에는 ‘글라이더’나 ‘우주선’을 발사하는 ‘총’과 안정화한 패턴들을 꼬리에 남기며 전진하는 ‘기관차’, 그리고 양쪽을 다 행하는 ‘갈퀴’ 패턴이 있었다. 그는 또한 제곱 비례로 성장하는 패턴인 ‘사육사’ 패턴도 찾아냈는데, 이것은 ‘총’ 패턴을 꼬리에 남기며 앞으로 전진한다. 이 후로 글라이더를 이용한 논리 게이트, 가산기, 소수 발생기와 라이프 게임을 더 큰 스케일과 느린 속도로 모방하는 단위 세포 등 다양한 패턴들이 만들어졌다.

맨 처음 발견된 ‘총’이 여전히 알려진 가장 작은 총이다:

Gospers glider gun.gif
가스퍼의 글라이더 건

무한히 성장하는 더 단순한 패턴들이 그 후에도 발견되었다. 아래의 세 패턴은 모두 무한히 성장한다. 처음 것은 10개의 살아있는 세포만을 가지며 이보다 적은 세포를 가진 무한 성장 패턴은 존재하지 않음이 증명되었다. 두 번째 것은 5x5의 정사각형 안에 포함되는 패턴이고, 세 번째는 두께가 1인 패턴이다.

Game of life infinite1.png     Game of life infinite2.png
Game of life infinite3.png

여러 개의 글라이더가 합성되어 재미있는 결과를 형성하는 경우도 있다. 만약 두 개의 글라이더를 적당한 방법으로 블록에 충돌시키면, 블록은 글라이더가 발사된 곳을 향해 한 칸 다가간다. 세 개의 글라이더를 다른 방법으로 충돌시키면 블록은 발사된 곳의 반대 방향으로 한 칸 다가간다. 이것은 ‘움직이는 블록 메모리’라고 불리며 카운터를 모방하는 데 사용할 수 있다. 글라이더를 이용해 ANDORNOT 게이트를 만드는 것도 가능하다. 두 개의 카운터와 연결된 유한 상태 오토마타를 만들 수도 있는데, 이것은 만능 튜링 기계와 똑같은 계산능력을 가지며, 이는 라이프 게임이 무한한 메모리를 가진 어떤 컴퓨터와도 동등한 계산능력을 가짐을 의미한다. 글라이더 건의 패턴을 이용하여 새로운 개체를 조합하는 것도 가능하며, 원본의 복제물을 만드는 것도 가능하다. 또한 ‘만능 건축사’ 패턴은 튜링 머신과 동등한 컴퓨터를 만들 수 있으며, 이것은 더 복잡한 여러 가지 개체를 만들어내는 데 사용될 수 있다.

라이프 게임의 변종들[편집]

라이프 게임을 시작으로, 몇 가지 새로운 규칙을 가진 변종들이 존재한다. 원래의 라이프 게임은 3개의 이웃 세포가 살아있을 때 태어나며, 2개 또는 3개의 이웃 세포가 살아있을 때 생존하고 나머지 경우에는 사망한다. 이 규칙은 ‘23/3’으로 표시할 수 있다. 앞쪽 숫자들은 세포가 생존하기 위한 숫자를 의미하며, 뒤쪽 숫자들은 세포가 새로 태어나기 위한 숫자를 의미한다. 그러므로 ‘16/6’은 6개의 이웃이 존재할 때 세포가 새로 태어나고, 1개나 6개의 이웃이 존재할 때 생존하며 나머지 경우 사망하는 규칙을 가짐을 의미한다. 하이라이프(HighLife) 규칙은 원래 규칙에 6개의 이웃이 존재할 때 새로 태어난다는 규칙이 추가되며, 이는 ‘23/36’으로 표시된다. HighLife는 ‘복제자’ 패턴들로 유명하지만, 이 규칙의 대부분의 패턴들이 너무 복잡하거나 황폐한 패턴들을 생성한다.

  • Diamoeba 5678/35678 (혼돈스럽다) 다이아몬드 모양 패턴들. 종종 파국적으로 멸망함
  • Seeds /2 (폭발적) 불사조(몇 개의 남은 세포들로부터 폭발적으로 부활함), 간결한 패턴들
  • Serviettes/234 (폭발적) 불사조, 레이스 무늬 패턴들
  • Maze 12345/3 (폭발적) 미로같은 패턴
  • Mazectric 1234/3 (폭발적) Maze와 아주 비슷함. Maze보다 덜 막혀있음
  • 2x2 125/36 (혼돈스럽다) 2x2 블록 패턴이 출몰함
  • Replicator 1357/1357 (폭발적) 모든 패턴이 복제자 패턴이다. Replicator은 복제자 패턴이란 뜻이다
  • Amoeba 1358/357 (혼돈스럽다) 아메바형 패턴
  • Conway's game of life 23/3 (혼돈스럽다) ‘라이프 게임’
  • Highlife 23/36 (혼돈스럽다) ‘하이라이프’ (복제자 패턴이 등장한다)
  • Stains 235678/3678 (안정적) 잉크 방울이 마르는 것 같은 패턴을 보여준다
  • Coagulations 235678/378 (폭발적) 혼돈스러운 패턴과 응고하는듯한 정착 패턴들
  • Pseudo life 238/357 (혼돈스럽다)
  • Move 245/368 (안정적) 기관차와 우주선 패턴들
  • 34/34 (폭발적) ‘34 Life’
  • 34678/3678 (폭발적) ‘낮과 밤(Day & Night)’
  • Coral 45678/3 (폭발적) 산호초 모양으로 성장한다
  • 5/346 (안정적) ‘Long life’
  • Assimilation 4567/345 (혼돈스럽다)
  • Life without death 012345678/3 (폭발적)
  • Gnarl 1/1 (폭발적)
  • Walled cities 2345/45678 (안정적)

Life32 프로그램에 따름.

[출처] https://ko.wikipedia.org/wiki/%EB%9D%BC%EC%9D%B4%ED%94%84_%EA%B2%8C%EC%9E%84

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
1195 [ 一日30分 인생승리의 학습법] VBA Web Scraping: How Can VBA Be Used To Scrape Website Data? file 졸리운_곰 2024.04.13 3
1194 [ 一日30分 인생승리의 학습법] 윈도우 실행파일 구조(PE파일) file 졸리운_곰 2024.03.31 3
1193 [ 一日30分 인생승리의 학습법] [Analysis] PE(Portable Executable) 파일 포맷 공부 file 졸리운_곰 2024.03.31 3
1192 [ 一日30分 인생승리의 학습법] 성공하는 메타버스의 3가지 조건 file 졸리운_곰 2024.03.30 7
1191 [ 一日30分 인생승리의 학습법] REST, REST API, RESTful 과 HATEOAS file 졸리운_곰 2024.03.10 9
1190 [ 一日30分 인생승리의 학습법] 렌더링 삼형제 CSR, SSR, SSG 이해하기 file 졸리운_곰 2024.03.10 2
1189 [ 一日30分 인생승리의 학습법] 엑셀 VBA에서 셀레니움 사용을 위한 Selenium Basic 설치 file 졸리운_곰 2024.02.23 11
1188 [ 一日30分 인생승리의 학습법]500 Lines or Less Blockcode: A Visual Programming Toolkit : 500줄 이하의 블록코드: 시각적 프로그래밍 툴킷 졸리운_곰 2024.02.12 4
1187 [ 一日30分 인생승리의 학습법] 구글 클라이언트(앱) 아이디를 발급받으려면 어떻게 해야 하나요? 졸리운_곰 2024.01.28 3
1186 [ 一日30分 인생승리의 학습법] 빅뱅 프로젝트를 성공적으로 오픈하기 위한 팁 졸리운_곰 2023.12.27 16
1185 [ 一日30分 인생승리의 학습법]“빅뱅 전환보다 단계적 전환 방식이 이상적 애자일팀과 협업 쉽게 체질 개선을” file 졸리운_곰 2023.12.27 12
1184 [ 一日30分 인생승리의 학습법] Big-bang / phased 접근 file 졸리운_곰 2023.12.27 3
1183 [ 一日30分 인생승리의 학습법] CodeDragon 메뉴 데이터 전환의 개념 이해 - 데이터 전환의 개념, 데이터 전환방식, 데이터 전환방식 및 장단점 비교, 데이터전환 이후 검토해야 할 사항 졸리운_곰 2023.12.27 5
1182 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템 file 졸리운_곰 2023.12.27 6
1181 [ 一日30分 인생승리의 학습법] 블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 개념과 리뷰 시스템 file 졸리운_곰 2023.12.27 4
1180 [ 一日30分 인생승리의 학습법] 소켓 CLOSE_WAIT 발생 현상 및 처리 방안 file 졸리운_곰 2023.12.03 7
1179 [ 一日30分 인생승리의 학습법] robots 설정하기 졸리운_곰 2023.12.03 3
1178 [ 一日30分 인생승리의 학습법] A Tutorial and Elementary Trajectory Model for the Differential Steering System of Robot Wheel Actuators : 로봇 휠 액츄에이터의 차동 조향 시스템에 대한 튜토리얼 및 기본 궤적 모델 file 졸리운_곰 2023.11.29 6
1177 [ 一日30分 인생승리의 학습법] Streamline Your MLOps Journey with CodeProject.AI Server : CodeProject.AI 서버로 MLOps 여정을 간소화하세요 file 졸리운_곰 2023.11.25 2
1176 [ 一日30分 인생승리의 학습법] Comparing Self-Hosted AI Servers: A Guide for Developers / : 자체 호스팅 AI 서버 비교: 개발자를 위한 가이드 file 졸리운_곰 2023.11.25 10
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED