체스를 처음 배우는 사람을 본 적이 있다면 인간 체스 플레이어는 매우 제한된 능력으로 시작한다는 것을 알고 있습니다. 플레이어가 각 조각을 제어하는 기본 규칙을 이해하면 체스를 "플레이"할 수 있습니다. 그러나 새로운 선수는 그다지 좋지 않습니다. 각 초기 패배는 놀라움으로 다가옵니다. "아, 그건 생각도 못했어요!" 또는 "나는 그것이 오는 것을 보지 못했다!" 흔한 감탄사들이다.
인간의 마음은 이러한 경험을 흡수하고, 다양한 보드 구성을 저장하고, 특정 트릭과 책략을 발견하고, 일반적으로 한 번에 한 동작씩 게임의 뉘앙스를 흡수합니다. 기술 수준이 발전함에 따라 플레이어는 종종 최고의 플레이어가 사용하는 플레이 패턴을 찾기 위해 책을 읽습니다. 전략과 전술은 각 게임을 통해 플레이어를 안내하기 위해 개발됩니다.
따라서 인간의 경우 체스 게임은 보드 위치, 규칙 및 지침, 의식적 사고 및 심지어 심리학을 회상하는 시각적 패턴 일치 와 같은 높은 수준의 추상적인 사고 를 많이 포함합니다 .
컴퓨터는 이 작업을 수행하지 않습니다.
체스는 지능과 생각을 필요로 하는 뚜렷한 인간 활동처럼 보이지만 어떻게 컴퓨터가 그것을 할 수 있습니까?
이 기사에서는 이 질문을 살펴보겠습니다. 당신이 알게 될 사실은 컴퓨터가 사람들처럼 실제로 체스를 "놀이"하지 않는다는 것입니다. 체스를 두는 컴퓨터는 "생각하는" 것이 아닙니다. 대신, 그것은 좋은 움직임을 만드는 일련의 공식을 통해 계산하고 있습니다. 컴퓨터가 점점 더 빨라지면서 이러한 계산된 움직임의 품질이 점점 더 좋아졌습니다. 컴퓨터 체스 계산기는 완전히 맹목적으로 수행하지만 이제 지구상에서 최고의 체스 플레이어입니다.
컴퓨터와 체스

컴퓨터 체스의 현재 최첨단 기술은 상당히 복잡하지만 모두 핵심에서 매우 간단한 블라인드 계산을 포함합니다.
게임 시작을 위해 설정된 체스판으로 시작한다고 가정해 보겠습니다. 각 플레이어는 16개의 조각을 가지고 있습니다. 흰색이 시작된다고 가정해 보겠습니다. 화이트는 20가지의 가능한 움직임을 가지고 있습니다 :
- 백인 플레이어는 폰을 한 위치 또는 두 위치 앞으로 이동할 수 있습니다.
- 백인 플레이어는 두 가지 방법으로 기사를 움직일 수 있습니다.
백인 플레이어는 20개의 이동 중 하나를 선택하고 수행합니다.
흑인 플레이어의 경우 옵션은 동일합니다: 20개의 가능한 이동. 그래서 블랙은 움직임을 선택합니다.
이제 흰색이 다시 움직일 수 있습니다. 이 다음 이동은 흰색이 선택한 첫 번째 이동에 따라 다르지만 현재 보드 위치에서 흰색이 할 수 있는 이동은 약 20개 정도이고 검은색은 할 수 있는 이동이 20개 정도가 되는 식입니다.
이것이 컴퓨터가 체스를 보는 방식입니다. 그것은 "가능한 모든 움직임"의 세계에서 그것에 대해 생각하고 다음과 같이 모든 움직임에 대한 큰 나무 를 만듭니다 .
이 트리에는 흰색에 대해 20가지 가능한 움직임이 있습니다. 흰색이 무엇을 하느냐에 따라 검은색에 대해 20 * 20 = 400개의 가능한 움직임이 있습니다. 그런 다음 흰색에는 400 * 20 = 8,000이 있습니다. 그런 다음 검정의 경우 8,000 * 20 = 160,000이 되는 식입니다. 가능한 모든 체스 이동에 대해 전체 트리를 완전히 개발하면 총 보드 위치 수는 약 1,000,000,000,000,000,000,000,000,
000,000,000,000,000,000,000,000,000,000,000,000,000,000,
000,000,000,000,000,000,000,000,000,000,000,000,000,000,
000,000,000,000 또는 10 120 , 몇 개를 주거나 받습니다. 아주 큰 숫자입니다. 예를 들어, 빅뱅 이후 10 26 나노초 만 있었습니다 . 전체 우주에는 10 75개의 원자 만 있는 것으로 생각됩니다 . 은하수가 수십억 개의 태양을 포함하고 수십억 개의 은하가 있다는 것을 고려할 때, 그것이 원자의 전체임을 알 수 있습니다. 그 숫자는 가능한 체스 이동의 수에 비해 왜소합니다. 체스는 꽤 복잡한 게임입니다!
어떤 컴퓨터도 전체 나무를 계산하지 않을 것입니다. 체스 컴퓨터가 하려고 하는 것은 미래로 5, 10, 20번 이동하는 보드 위치 트리를 생성하는 것입니다. 모든 보드 위치에 대해 약 20개의 가능한 이동이 있다고 가정하면 5단계 트리에는 3,200,000개의 보드 위치가 포함됩니다. 10레벨 트리에는 약 10,000,000,000,000(10조)개의 위치가 있습니다. 컴퓨터가 계산할 수 있는 트리의 깊이는 게임을 하는 컴퓨터의 속도에 의해 제어됩니다. 가장 빠른 체스 컴퓨터는 초당 수백만 개의 보드 위치를 생성하고 평가할 수 있습니다.
트리가 생성되면 컴퓨터는 "보드 위치를 평가"해야 합니다. 즉, 컴퓨터는 보드의 조각을 보고 조각 배열이 "좋은지" 또는 "나쁜지"를 결정해야 합니다. 이를 수행하는 방법은 평가 기능 을 사용하는 것 입니다. 가장 간단한 가능한 기능은 각 면에 있는 조각의 수를 세는 것입니다. 컴퓨터가 흰색을 재생 중이고 특정 보드 위치에 11개의 흰색 조각과 9개의 검은색 조각이 있는 경우 가장 간단한 평가 함수는 다음과 같습니다.
분명히, 체스에 대한 공식이다 방법 일부 조각이 다른 사람보다 더 가치가 있기 때문에 너무 간단. 따라서 공식은 각 유형의 조각에 가중치를 적용할 수 있습니다. 프로그래머는 그것에 대해 생각하면서 보드 위치, 센터 제어, 체크해야 할 킹의 취약성, 상대 여왕의 취약성 및 기타 수많은 매개변수와 같은 것들을 추가하여 평가 기능을 점점 더 복잡하게 만듭니다. 그러나 기능이 아무리 복잡해도 해당 보드 위치의 "좋은 점"을 나타내는 단일 숫자로 압축됩니다.
3단계 트리 다이어그램

다음 다이어그램은 세 단계 앞으로 나아가고 최종 보드 위치의 값을 평가한 3단계 트리를 보여줍니다.
컴퓨터가 흰색 플레이어로 재생 중입니다. 흑인 플레이어가 이동하여 나무 상단의 보드 위치를 떠났습니다. 이 트리에서 흰색은 세 가지 이동을 할 수 있습니다. 이 세 가지 가능한 움직임 각각에서 검은색은 세 가지 가능한 움직임을 만들 수 있습니다. 이 9개의 보드 위치 각각에서 흰색은 두 가지 가능한 이동을 할 수 있습니다. (실생활에서는 어느 위치에서든 총 이동 횟수가 20회 정도지만 그리기는 어려울 것입니다.)
무엇을 할지 결정하기 위해 컴퓨터는 이 트리를 보고 아래쪽에서 위쪽으로 작업합니다. 블랙이 취할 수 있는 각 가능한 위치에서 최상의 보드 위치를 찾도록 계산이 설정됩니다(최대값 취함).

한 수준 위로 올라가면 검은색이 흰색에 대해 가능한 최악의 위치를 선택한다고 가정합니다(최소값 사용).

마지막으로 상위 3개 숫자 중 최대값을 취합니다. 7. 컴퓨터가 수행할 이동입니다. 블랙이 움직이면 컴퓨터는 이 전체 프로세스를 다시 거쳐 새 트리를 생성하고 모든 보드 위치를 평가하여 다음 움직임을 파악합니다.
이 접근 방식은 트리 위로 이동할 때 최대값과 최소값을 번갈아 사용 하기 때문에 최소값 알고리즘 이라고 합니다 . 알파 베타 가지치기(alpha beta pruning) 라고 하는 기술을 적용 하면 알고리즘 이 약 두 배 빠르게 실행되고 훨씬 적은 메모리 가 필요합니다 . 보시다시피, 이 프로세스는 완전히 기계적이며 아무 생각도 하지 않습니다. 특정 깊이의 트리에서 가능한 모든 보드 위치에 평가 기능을 적용하는 단순한 무차별 대입 계산입니다.
흥미로운 것은 이런 종류의 기술이 꽤 잘 작동한다는 것입니다. 충분히 빠른 컴퓨터에서 알고리즘은 아주 좋은 게임을 할 수 있을 만큼 충분히 앞을 내다볼 수 있습니다. 과거 게임을 기반으로 평가 기능을 수정하는 학습 기술을 추가하면 시간이 지남에 따라 기계가 향상될 수도 있습니다.
그러나 명심해야 할 핵심은 이것이 인간의 생각과 다를 바가 없다는 것입니다. 인간의 생각이 어떻게 작동하는지 배우고 이러한 기술을 사용하여 체스를 하는 컴퓨터를 만들 때 우리는 정말로 무언가에 빠져들게 될 것입니다.
체스 컴퓨터 및 관련 주제에 대한 자세한 내용은 다음 페이지의 링크를 확인하십시오.
더 많은 정보
관련 기사
- 비디오 게임 시스템 작동 방식
- 암호화 작동 방식
- 라우팅 알고리즘의 작동 방식
- "컴퓨터 알고리즘"이란 무엇입니까?
- 컴퓨터와 같은 완전히 논리적인 기계가 어떻게 난수를 생성할 수 있습니까?
더 좋은 링크
- 카스파로프 대 X3D 프리츠
- Kasparov vs. Deep Blue - IBM의 Deep Blue 체스 컴퓨터 웹 사이트
- Kasparov vs. World - 전 세계가 Kasparov에 대항할 다음 움직임에 대해 투표하는 인터넷상의 혁신적인 체스 게임(게임 시작: 1999년 6월 21일)
- 컴퓨터 체스 참조
- 야후! 디렉토리: 체스
- 컴퓨터 체스 프로그래밍
- Chessopolis.com
- CNN.com: 두 번째 3D 체스 게임에서 기계가 Kasparov를 제치고 - 2003년 11월 14일
- WorldChess.com: 인간 대 기계: Garry Kasparov 대 X3D Fritz