#5. 지능의 가진 기계와의 시작 : 체스와 체커 게임
지난번 글에서 클로드 새넌(Claude Elwood Shannon) 체스 프로그램에 관련된 논문에 대해서까지 알아보았습니다. 오늘을 그 뒤를 이어서 어떤 일이 있었는지를 알아보겠습니다. 체스와 체커 게임이 오늘의 이야기 주제가 될 것 같습니다. 우선 일단 이 두 게임간의 차이점을 알아보도록 하겠습니다. 이번에는 제 주특기인 한마디가 아닌 한 장으로 표현합니다.
가끔 혼동하시는 분들도 있는데 체스(Chess)와 체커(Checkers, Draughts)는 서로 다른 게임입니다. 체스가 좀 더 복잡한 게임입니다. 체커는 체스판에 모양이 같은 말을 놓고 움직여, 상대방의 말을 모두 따먹으면 이기는 게임입니다. 체스의 가장 오래된 증거는 약 600년경에 발견되었으며, 체커는 BC 3000년 전부터 유사한 체커판이 발견되었다고 하니 이 둘의 게임 역사는 꽤 오래되었다고 봅니다.
체커는 10x10 판에서 하는 국제 룰과 8x8 판에서 하는 영/미식 룰이 가장 보편적이며, 지역에 따라 다양한 규칙이 존재합니다. 국제 룰을 기준으로 보면 게임은 상기 이미지에서와 같이 체커판에 말을 배치함으로써 시작되며, 백이 선수를 잡습니다. 각 말은 대각선 앞으로만 한 칸을 전진할 수 있다. 후진은 불가능합니다. 자신의 말이 시작한 쪽의 반대편 끝까지 도달했을 때, 그 말은 왕이 된다. 왕은 말 두개를 겹쳐서 표시하고, 이때부터는 체스의 비숍과 같이 대각선 방향으로(앞·뒤 상관없이) 원하는 만큼 이동할 수 있고 그 사이에 있는 말을 따먹을 수 있습니다. 즉, 자기 말의 대각선 방향으로 상대를 넘어가면 따먹는 게임입니다. 행마, 따먹기, 왕이 되는 법만 알면 경기를 할 수 있는 비교적 간단한 규칙입니다.
우리가 어렸을 적에 아래 그림의 변형된 형태의 별모양을 가진 체커놀이를 친구들이나 가족들과 함께 해보신 분들도 있으리라고 생각합니다.
체스는 일종의 서양식 장기입니다. 장기처럼 각 말의 움직임과 갯수가 서로 다릅니다. 가로와 세로가 각각 8줄씩 64칸으로 격자로 배열 된 체스보드(체스판)에서 두 명의 플레이어가 피스들을 규칙에 따라 움직여 싸우는 보드 게임입니다. 세계에서 가장 대중적인 게임 중 하나입니다. 플레이어는 킹[♚] 1개, 퀸[♛]1개, 룩[♜] 2개, 나이트[♞]2개 비숍[♝]2개 그리고 폰[♟] 8개로 총 16개의 피스를 가지고 시작하고 피스 6종류는 각각 다르게 이동합니다. 피스는 상대의 피스를 공격하는데 사용되고 게임의 목적은 상대의 킹을 체크메이트하는 것이다.(체크메이트 이외에 다른 방법도 있으나 편의상 생략합니다.)
컴퓨팅 기능의 발달과 더불어 많은 초기 연구자들이 목표 중 하나는 지능형 체스, 체커 게임 기계를 만들어 사람을 이기는 것이 었습니다.
1951년에 드디어 컴퓨터에서 실행되는 지능형 프로그램이 맨체스터 대학의 페란티 마크 1(Ferranti Mark 1) 머신에서 실행되도록 작성되었습니다. 페란티 마크 1(맨체스터 페란티, 혹은 맨체스터 일렉트로닉 컴퓨터: Ferranti Mark 1, Manchester Electronic Computer, Manchester Ferranti)은 상용으로는 세계 최초인 범용 전자 컴퓨터였습니다.
이 머신에서는 각각 시기는 약간 다르지만 지능적인 체커와 체스 프로그램이 모두 수행되었습니다. 1952년에 앨런 튜링도 이 머신에서 자신의 튜로 챔프(Turochamp)를 구현하려했지만 못했습니다.("#2. 새로 나오는 50파운드 영국 지폐 (2)" 참조)
페란티 마크 1위에서 수행된 지능형 게임 프로그램은 크리스토퍼 스트레이치(Christopher S. Strachey :1916년~1975년)가 작성한 체커 플레이 프로그램과 디트리히 프린츠(Dietrich Prinz : 1903년 ~ 1989년)가 작성한 체스 플레이 프로그램입니다.
우선 크리스토퍼 스트레이치는 영국의 컴퓨터 과학자였습니다. 그는 표시 의미론의 창시자이자 프로그래밍 언어 디자인 및 컴퓨터 시간 공유의 선구자 중 한 명입니다. 그는 통합 프로그래밍 언어(CPL, Combined Programming Language)를 개발한 사람으로도 유명합니다.
1951년 1월 한 친구가 그를 NPL(National Physical Laboratory, 앨런 튜링도 전쟁이 끝나고 이곳에서 잠시 몸을 담음)의 마이클 우드거(Mike Woodger : 앨런 튜링과 함께 자동 컴퓨팅 엔진(ACE)을 설계하고, 앨런 튜링이 떠난후 Pilot ACE을 이끌었음)에게 소개했습니다. 참고로 NPL 연구실은 1945년부터 시작된 개념인 앨런 튜링의 자동 컴퓨팅 엔진(ACE)의 축소 버전 Pilot ACE를 성공적으로 구축했습니다. 여기서 여가 시간에 크리스토퍼 스트레이치는 체커 게임을 위한 프로그램을 개발했습니다. 그는 1951년 5월에 예비 버전을 마쳤습니다. 이 게임은 Pilot ACE의 메모리를 완전히 소진 시켰습니다. 크리스토퍼 스트레이치의 체커(draughts) 프로그램은 1951년 7월 30일 NPL에서 처음으로 실행되었습니다. 그러나 프로그램 오류로 인해 실패했습니다. 크리스토퍼 스트레이치가 훨씬 더 큰 메모리를 가진 맨체스터 마크 1(Manchester Mark 1, 페란티 마크 1이전 모델)에 대해 들었을 때, 그는 전 동료 학생인 앨런 튜링에게 매뉴얼을 요청하고 1951년 10월경에 그의 프로그램을 그 기계의 작동 코드에 기록했습니다. 1952년 여름에 맨체스터 마크 1의 후속 모델인 페란티 마크 1에서 이 프로그램은 적당한 속도로 완전한 체커 게임을 할 수 있게 되었습니다.
같은해에 또 한명의 컴퓨터 과학 선구자가 있었습니다. 디트리히 프린츠(Dietrich Gunther Prinz : 1903년 ~ 1989년)는 체커가 아닌 체스 프로그램에 대한 선구자였습니다. 디트리히 프린츠가 만든 Mate-in-two(디트리히 프린츠의 프로그램, Robot Chess)는 제한된 체스 문제 를 해결하기 위해 1951년에 개발 한 범용 컴퓨터에서 실행되는 최초의 체스 게임입니다.
디트리히 프린츠는 앨런 튜링과 시슬리 메리 윌리엄스(Cicely Mary Williams , 결혼전 성은 포플웰(Popplewell) : 1920년 ~ 1995년)이 이끄는 세미나에서 마크 1(Mark I)에 대한 프로그래밍을 배웠습니다. 그는 체스 프로그래밍을 "전자 컴퓨터를 통해 다른 영역의 구조적 또는 물류 문제를 처리하는 데 사용할 수있는 방법에 대한 단서"로 간주했습니다. 결국 1951년 11월, 페란티 마크 1 머신 위에서 그의 프로그램은 처음으로 Mate-in-two 문제(mate in 2, mate in 3, mate in 4 등의 용어가 있는데, 이는 2수안에 체크메이트하는 것, 3수 안에, 4수 안에 체크메이트하는 것 등을 말하는 것입니다.)를 해결했습니다.
참고로 디트리히 프린츠는 앨런 튜링이 쓴 악명 높은 불투명한 첫 번째 매뉴얼보다 훨씬 더 명확한 페란티 마크 1의 매뉴얼을 썼습니다. 그는 30년 동안 프로그래밍 부서에서 일했습니다.
이 두 프로그램은 최초의 AI 프로그램이라고도 하는데, 여기에 대해서는 논란이 있을 수 있습니다. 후에 설명할 아서 사무엘(Arthur Lee Samuel : 1901년 ~ 1990년)의 체커 프로그램과 앨런 뉴얼(Allen Newell : 1927년 ~ 1992년)의 논리 이론가(Logic Theorist : 논리 증명을 하는 초기 정보 처리 프로그램)도 종종 첫 번째 AI 프로그램이라고 불립니다.
어찌되었건 1951년도부터 컴퓨터 머신위에 게임 프로그램을 돌리고, 인간과 대결할 수 있었다는 것은 대단히 놀라운 일이였습니다.
그후 세월이 한참지나서 1997년 IBM의 컴퓨터 딥 블루가 세계 체스 챔피언 가리 카스파로프를 이긴 최초의 기계되었고, 2016년 구글의 알파고는 이세돌 9단을 이기는 세상이 되었습니다. 이에 대한 설명 지난번 글을 참조하시길 바랍니다.
Copyright 2021. 『오드리공주될뻔 블로거』 All rights reserved.
오늘의 만평
'인공지능(AI) > 인공지능의 역사' 카테고리의 다른 글
#2. AI와 인간의 대결(6) : 수학 원리의 증명 (0) | 2021.02.22 |
---|---|
#2. AI와 인간의 대결(5) : 또 하나의 최초 머신 러닝 프로그램 (0) | 2021.02.02 |
#2. AI와 인간의 대결(3) : 알고리즘의 등장 (0) | 2021.01.27 |
#2. AI와 인간의 대결(2) : 체스 자동기계의 등장 (0) | 2021.01.26 |
#2. AI와 인간의 대결(1) : 기계와의 게임 시작 (0) | 2021.01.25 |