체스를위한 완벽한 알고리즘이 있습니까? [닫은]


109

저는 최근에 코딩 전문가가 아닌 사람과 체스 컴퓨터의 가능성에 대해 논의했습니다. 나는 이론에 정통하지는 않지만 충분히 알고 있다고 생각합니다.

나는 항상 체스에서이기거나 교착 상태에 빠진 결정 론적 튜링 기계는 존재할 수 없다고 주장했다. player1 / 2 동작의 모든 조합의 전체 공간을 검색하더라도 컴퓨터가 각 단계에서 결정하는 단일 동작은 휴리스틱 기반이라고 생각합니다. 휴리스틱을 기반으로하기 때문에 상대가 할 수있는 모든 동작을 반드시이기는 것은 아닙니다.

반대로 내 친구는 컴퓨터가 "실수"동작을하지 않으면 항상이기거나 무승부 할 것이라고 생각했습니다 (그러나 당신은 그것을 정의합니까?). 그러나 CS를받은 프로그래머이기 때문에 현명한 상대가 주어진 좋은 선택조차도 결국 "실수"로 움직일 수 있다는 것을 알고 있습니다. 모든 것을 알고 있더라도 다음 단계는 휴리스틱과 일치하는 데 욕심쟁이입니다.

대부분의 체스 컴퓨터는 가능한 최종 게임을 진행중인 게임과 일치 시키려고합니다. 이는 본질적으로 동적 프로그래밍 추적입니다. 다시 말하지만, 문제의 최종 게임은 피할 수 있습니다.

편집 : 흠 ... 여기에 깃털을 펼친 것 같습니다. 좋습니다.

다시 생각해 보면 체스와 같은 유한 한 게임을 해결하는 데 이론적 인 문제가없는 것 같습니다. 나는 체스가 체커보다 조금 더 복잡하다고 주장하고 싶습니다. 승리는 반드시 숫자의 조각 고갈에 의한 것이 아니라 짝에 의한 것입니다. 나의 원래 주장은 아마도 틀렸을 것입니다. 그러나 나는 아직 (공식적으로) 만족스럽게 입증되지 않은 것을 지적했다고 생각합니다.

내 생각 실험은 나무의 가지가 잡힐 때마다 알고리즘 (또는 기억 된 경로)이 상대가 움직일 수있는 모든 가지에 대해 짝짓기를하지 않고 메이트에게가는 경로를 찾아야한다는 것입니다. 토론 후, 우리가 꿈꾸는 것보다 더 많은 기억이 주어지면이 모든 길을 찾을 수있는 것을 살 것입니다.


1
+1 : 훌륭한 주제. 그러나 나는 답변의 다양성과 양에 의해 입증 된 것처럼 위키 화되어야한다고 생각합니다.
IAbstract

1
"아직 만족스럽게 입증되지 않은 것을 지적했다고 생각하십니까?" 공식적으로 입증되지 않은 점은 무엇입니까?
S.Lott

2
ack! 그런 흑백 질문에 어떻게 20 개의 다른 답이있을 수 있습니까! (말장난 의도 없음).
Peter Recore 2010-07-21

5
저도 답이 실제로 수학적으로 결정되었다는 사실을 모르고 투기적인 답변을 게시하는 사람들의 수에 놀랐습니다. 체스에 해결책이 있다는 것이 증명되었다는 의미의 답변입니다. 계산하는 것이 실용적이지 않습니다.
DJClayworth

3
Perfect Chess Playing Computer에 대한 농담이 생각 나네요. 하얗게 놀다가 생각하고 생각하고 생각하고 나서 .... 사임!

답변:


104

"나는 항상 체스에서이기거나 교착 상태에 빠진 결정 론적 튜링 기계는 존재할 수 없다고 주장했다."

당신이 옳지 않습니다. 그런 기계가있을 수 있습니다. 문제는 검색해야 할 상태 공간의 거대 함입니다. 유한하고 정말 큽니다.

그렇기 때문에 체스가 휴리스틱 (heuristic)에 다시 의존하는 이유입니다. 열거하는 것 (가능한 모든 게임의 모든 과정에서 모든 완벽한 움직임에 대한 검색이 훨씬 적음)은 매우 큰 검색 문제가 될 것입니다.

오프닝은 당신에게 "강력한"포지션을 제공하는 중간 게임으로 이동하도록 스크립트로 작성됩니다. 알려진 결과가 아닙니다. 조각이 적은 엔드 게임조차도 최고의 다음 행마를 결정하기 위해 열거하기 어렵습니다. 기술적으로 그들은 유한합니다. 그러나 대안의 수는 엄청납니다. 2 루크 + 킹조차도 22 개의 다음 동작이 가능합니다. 그리고 짝짓기까지 6 번의 동작이 필요하다면 12,855,002,631,049,216 번의 동작을 볼 수 있습니다.

오프닝 동작에 대한 계산을하십시오. 약 20 개 정도의 오프닝 동작이 있지만 30 개 정도의 두 번째 동작이 있으므로 세 번째 동작에서는 360,000 개의 대체 게임 상태를보고 있습니다.

그러나 체스 게임은 (기술적으로) 유한합니다. 거대하지만 유한합니다. 완벽한 정보가 있습니다. 정의 된 시작 및 종료 상태가 있으며 동전 던지기 또는 주사위 굴림이 없습니다.


22
6 개 이하의 모든 최종 게임이 열거되고 해결되었습니다. 여기에서 tablebase 및 bitbase를 참조하십시오 : en.wikipedia.org/wiki/Tablebase . 예를 들어, 동료를 강제하기 위해 517 번의 움직임이 필요한 KQNKRBN 엔드 게임이 있습니다! 하지만 총 체스 게임 수는 (10 ^ (10 ^ 50)) 정도입니다.
HTTP 410

2
승리를위한 스크립트는 한 가지입니다. 철저히 열거하는 것은 다릅니다. 어느 쪽이든 정보는 완벽합니다. 모든 것이 알려져 있습니다. 게임은 정의에 따라 결정적입니다.
S.Lott

11
@RoadWarrior : 동의하지 않습니다. 무작위는 날씨에 적용됩니다. 하나님은 주사위를 굴립니다. 랜덤은 정의상 체스에 적용되지 않습니다. 체스에는 완전한 정보가 있습니다. 날씨에는 양자 효과가 있습니다. 완전 할 수 없습니다.
S.Lott

3
날씨를 예측하기 어렵게 만드는 것은 양자 효과가 아닌 혼란스러운 비선형 요인입니다. 충분한 컴퓨팅 능력과 지식이 주어지면 이론적으로 "올바른"일기 예보를 만들 수 있습니다.
HTTP 410

3
@monojohnny : 규칙은 같은 위치에서 세 번의 반복을 금지합니다. 체스는 단순히 유한합니다. 크지 만 유한합니다.
S.Lott

72

나는 체스에 대해 실제로 발견 된 것이 무엇인지 거의 알지 못한다. 하지만 수학자로서 제 추론은 다음과 같습니다.

먼저 우리는 White가 먼저 가야한다는 것을 기억해야합니다. 그리고 이것은 아마도 그에게 이점을 줄 수 있습니다. Black에게 이점을 줄 수도 있습니다.

이제 블랙이 항상이기거나 지체 할 수있는 완벽한 전략없다고 가정합니다 . 이것은 블랙이 무엇을하든 화이트가 이길 수있는 전략이 있음을 의미합니다. 잠깐 -이 방법이 입니다 화이트를위한 완벽한 전략!

이 두 선수 중 적어도 하나는 것을 우리에게 알려줍니다 않는 그 플레이어는 항상이기거나 그릴 수있는 완벽한 전략을 가지고있다.

세 가지 가능성이 있습니다.

  • 화이트는 완벽하게 플레이하면 항상 이길 수 있습니다.
  • 블랙은 완벽하게 플레이하면 항상 이길 수 있습니다.
  • 한 명의 플레이어가 완벽하게 플레이하면이기거나 무승부 할 수 있습니다 (두 플레이어가 완벽하게 플레이하면 항상 교착 상태입니다).

그러나이 중 어느 것이 실제로 옳은지는 우리는 결코 알 수 없습니다.

질문에 대한 대답은 ' 예'입니다 . 체스를위한 완벽한 알고리즘이 있어야합니다. 적어도 두 플레이어 중 한 명에게도 그렇습니다 .


2
+1, 그것은 그것을 설명하는 정말 좋은 방법입니다. 나는 그것을 결코 생각하지 않았다는 것을 믿을 수 없다!
Zifre 2009

2
완벽한 전략이없는 흑인은 왜 백인이 완벽한 전략을 가지고 있음을 의미합니까? 완벽한 전략이없는 두 선수는 어떻습니까? 당신의 의미가 사실이라면, 모든 2 인 게임이 사실이 아닌가? 모든 게임이 완벽한 전략을 가지고 있다는 것을 의미합니까?
John M Naglick

8
@john : 체스에는 완벽한 정보가 있고 임의의 요소가 없기 때문에 (많은 다른 2 인용 게임과 달리), 흑인에 대한 완벽한 전략이 존재하지 않는 유일한 방법은 백인이 어떤 시도에도 불구하고 승리를 강요 할 수있는 경우입니다. 검정-즉, 흰색에 대한 완벽한 전략이있는 경우.
Dave Sherohman

2
실제로이 논리 가 항상 유지되는 것은 아니지만 이 경우에는 사실입니다.
BlueRaja-Danny Pflughoeft

4
@john "왜 그렇게 많은 토론을 여기에"-어떤 사람들은 답을 모르지만 어쨌든 여기에 게시합니다.
DJClayworth

30

체커 게임 에서는 프로그램이 항상 게임에서이기거나 동점을 얻을 수 있다는 것이 입증되었습니다 . 즉, 한 플레이어가 다른 플레이어가 패배하도록 만들 수있는 동작의 선택이 없습니다.

연구원 들은 5 천억 개의 가능한 체커 위치를 조사하는 데 거의 20 년을 보냈는데 , 이는 여전히 체스 위치 수의 극히 작은 부분에 불과합니다. 체커의 노력에는 연구팀이 성공 또는 실패로 분류하는 소프트웨어로 경험 규칙을 검사하는 데 도움을 준 최고 선수가 포함되었습니다. 그런 다음 연구원들은 매일 평균 50 대의 컴퓨터에서 프로그램을 실행했습니다. 언젠가이 프로그램은 200 대의 컴퓨터에서 실행되었습니다. 연구원들은 진행 상황을 모니터링하고 그에 따라 프로그램을 조정했습니다. 실제로 치누크는 1994 년에 체커 월드 챔피언십에서 우승하기 위해 인간을 이겼습니다.

예, 당신은 체스를 풀 수 있습니다.


6
"[Y] 곧 y 시간이되지 않을 것입니다."는 약간 과소 평가입니다. 우주의 예상되는 기간의 제한 외에도 저장 문제가 있습니다. 체스의 주 수가 5 천억 개의 체커를 훨씬 초과합니다. 사실 그것은 우주의 입자 수를 초과합니다.
Michael Dorfman

30
"[...] 사실 우주의 입자 수를 초과합니다." 우주에있는 입자의 상태 수를 초과하지 않는 한 여전히 희망이 있습니다 ;-)
Carsten

1
항상 상대를 잃게 만드는 프로그램이 자신을 상대로 플레이하면 어떻게 될까요 ????
John Demetriou

1
@BCS 흠, 내가 두 번째 플레이어로 플레이하고 다른 플레이어가 나와 동일한 휴리스틱을 사용하고이기려면이 휴리스틱을 따르고 첫 번째 플레이어가 유사한 휴리스틱을 가지고 있다면 어떻게 될까요 ???? ?
John Demetriou

1
내가 말하고있는 것은 만약 완벽한 알고리즘이 있고 두 플레이어가 그것을 가지고 있다면 알고리즘이 완벽하기 위해 변경할 수있는 확률이 무한 할 것이라는 것입니다
John Demetriou

15

이것은 컴퓨터에 관한 질문이 아니라 체스 게임에 관한 것입니다.

문제는 절대로 게임을 잃지 않는 안전 전략이 있는가? 그러한 전략이 존재한다면 모든 것을 알고있는 컴퓨터는 항상 그것을 사용할 수 있으며 더 이상 휴리스틱이 아닙니다.

예를 들어 tic-tac-toe 게임은 일반적으로 휴리스틱을 기반으로 재생됩니다. 그러나 오류 방지 전략이 있습니다. 상대방이 무엇을 움직이든 처음부터 바로한다면 항상 게임에서지는 것을 피할 수있는 방법을 찾습니다.

따라서 그러한 전략이 체스에도 존재하는지 여부를 증명해야합니다. 기본적으로 동일합니다. 단지 가능한 움직임의 공간이 훨씬 더 큽니다.


그렇다면 누가 내 대답에 반대표를 던지고 싶은 충동을 가졌습니까? 거기에 문제가 있습니까? 앞에 서고 싶습니까?
ypnos

@ypnos, 나는 당신의 대답에 대해 전혀 투표하지 않았습니다. 나는 무작위로 투표 한 사람들이 당신을 실망시키지 말라고 말했습니다. 30 회를 얻었고 1 개만 잃었습니다. 또한, +1;)
mmcdole

1
반대 투표에 대한 몇 가지 이유. 1) 게임을 해결하기위한 알고리즘이 존재하는 것으로 알려져 있으며, 상상할 수있는 기술을 사용하여 계산하는 것은 알고리즘이 비실용적 일뿐입니다. 2) 게임을 해결한다고해서 그들이 안전 전략이라는 것을 의미하지는 않습니다. Tic-tac-toe는 해결되었지만 패배를 피하는 두 번째 플레이어에게는 전략이 없습니다.
DJClayworth

2
"이것은 컴퓨터에 관한 질문이 아니라 체스 게임에 관한 것입니다." 글쎄, 컴퓨터 과학은 실제로 컴퓨터에 관한 것이 아닙니다. 그들은 단지 도구 일뿐입니다. 컴퓨터 과학은 컴퓨터없이 작동합니다.
Janus Troelsen 2012

1
그것은 실제로 컴퓨터에 대한 질문입니다. 튜링 머신 (= 컴퓨터)이 존재할 수 있는지 여부가 체스를 해결하기 때문입니다.
SDwarfs 2013-06-06

14

저는이 스레드에 매우 늦게 왔으며 이미 몇 가지 문제를 인식했습니다. 하지만 전직 마스터이자 전직 체스 프로그래머로서 몇 가지 유용한 사실과 수치를 추가 할 수 있다고 생각했습니다. 체스복잡성을 측정하는 방법에는 여러 가지가 있습니다 .

  • 총 체스 게임 수는 약 10 ^ (10 ^ 50)입니다. 그 숫자는 상상할 수 없을 정도로 큽니다.
  • 40 수 이하의 체스 게임 수는 약 10 ^ 40입니다. 여전히 엄청나게 많은 숫자입니다.
  • 가능한 체스 포지션의 수는 약 10 ^ 46입니다.
  • 전체 체스 검색 트리 (Shannon 번호)는 평균 분기 계수 35와 평균 게임 길이 80을 기준으로 약 10 ^ 123입니다.
  • 비교를 위해 관측 가능한 우주의 원자 수는 일반적으로 약 10 ^ 80으로 추정됩니다.
  • 6 개 이하의 모든 최종 게임이 수집되고 해결되었습니다 .

내 결론 : 체스는 이론적으로는 해결할 수 있지만, 우리는 그것을 할 돈, 동기, 컴퓨팅 능력 또는 저장 공간을 가질 수 없습니다.


3
어서. 문제를 다르게 생각해야합니다. 게임의 수를 생각하지 마십시오. 왜냐하면 전치와 알파-베타 알고리즘 등이이를 엄청나게 줄여주기 때문입니다. 보드 위치 (10 ^ 60) 또는 체스 말 조합 (1 억)을 생각해보십시오. Quantum Computing을 사용하면 간단합니다.
lkessler

2
이 맥락에서 알파-베타 (체스 해결)는 완벽한 평가 기능이 필요합니다. 보드 위치와 조각 조합도 마찬가지입니다. 완벽한 평가 기능이 없기 때문에 양자 컴퓨팅은 도움이되지 않습니다.
HTTP 410

1
내가 뭔가 "사소한"것이라고 생각하고 아무도 이미 그것을하지 않았다고 확신 할 때, 나는 또한 적어도 한 번은 틀렸다고 확신한다.
Dean J

2
@lkessler : 이사회 위치가 전체 이야기를 말하지는 않습니다. 캐슬 링 또는 패전트 캡처 또는 캡처 또는 폰 이동 부족으로 인한 무승부 및 반복에 의한 무승부에는 전체 이력이 적어도 일부 게임 이력이 필요합니다. 더욱이 최근 양자 컴퓨터가 15 인자에 대한 주목할만한 연구 결과 였기 때문에 지금 당장은 양자 컴퓨팅이 사소한 일이 아니라고 말하고 싶습니다.
David Thornley

2
비교를 위해 가능한 모든 체스 위치를 생성 할 수 있다면 10 ^ 46은 약 2 ^ 152 또는 2 ^ 153이기 때문에 128 비트 키로 모든 암호를 무차별 대입 할 수 있습니다. 우주의 열기가 죽기 전에 이것이 불가능하다고 생각하는 훌륭한 이유가 있습니다.
David Thornley

9

실제로 일부 게임이 해결되었습니다. Tic-Tac-Toe는 항상이기거나 동점을 이루는 AI를 구축하기에 매우 쉬운 도구입니다. 최근에 Connect 4도 해결되었습니다 (완벽한 플레이로 인해 패배하기 때문에 두 번째 플레이어에게 불공평 한 것으로 나타났습니다).

그러나 체스는 해결되지 않았고, 그것이 공정한 게임이라는 증거가 없다고 생각합니다 (즉, 완벽한 플레이가 무승부인지 여부). 이론적 관점에서 엄밀히 말하면 Chess는 한정된 수의 조각 구성을 가지고 있습니다. 따라서 검색 공간은 유한합니다 (아주 엄청나게 큽니다). 따라서 완벽하게 재생할 수있는 결정 론적 튜링 머신이 존재합니다. 그러나 하나를 지을 수 있는지 여부는 다른 문제입니다.


8

평균 $ 1000 데스크톱은 2040 년까지 단 5 초 만에 체커를 해결할 수 있습니다 (5x10 ^ 20 계산).

이 속도에서도 체스를 풀려면 약 6.34 x 10 ^ 19 이 걸리는 컴퓨터 100 대가 필요 합니다. 여전히 실행 가능하지 않습니다. 근처에도 안.

2080 년경에 평균 데스크톱은 초당 약 10 ^ 45 번 계산됩니다. 컴퓨터 한 대가 약 27.7 시간 만에 체스를 풀 수있는 계산 능력을 갖게됩니다. 지난 30 년 동안 컴퓨팅 파워가 계속 증가하는 한 2080 년에는 확실히 완료 될 것입니다.

2090 년에는 약 1 초 만에 체스를 풀 수있는 $ 1000 데스크톱에 충분한 계산 능력이 존재하게 될 것입니다.

체커가 2007 년에 해결되었고 1 초 만에 해결하는 계산 능력이 약 33 ~ 35 년 지연 될 것이라는 점을 감안할 때 체스가 2055 ~ 2057 년 사이에 해결 될 것으로 대략적으로 추정 할 수 있습니다. 아마도 더 많은 계산 능력을 사용할 수있게되었을 때 (45 년 후에 일어날 것임), 이와 같은 프로젝트에 더 많은 것을 할애 할 수 있습니다. 하지만 빠르면 2050 년, 늦어도 2060 년이라고 말하고 싶습니다.

2060 년에는 평균 100 대의 데스크톱이 3.17 x 10 ^ 10 년이 소요됩니다. 벤치 마크로 1,000 달러의 컴퓨터를 사용하고있는 반면 가격 / 성능 비율이 개선됨에 따라 더 큰 시스템과 슈퍼 컴퓨터를 사용할 수 있음을 인식하십시오. 또한 계산 능력의 크기가 더 빠른 속도로 증가합니다. 이제 슈퍼 컴퓨터가 초당 2.33 x 10 ^ 15 계산을 수행 할 수 있고 $ 1000 컴퓨터는 약 2 x 10 ^ 9를 수행 할 수 있습니다. 그에 비해 10 년 전에는 차이가 10 ^ 6이 아니라 10 ^ 5였습니다. 2060 년까지 크기 차이는 아마도 10 ^ 12가 될 것이며, 심지어 예상보다 빠르게 증가 할 수 있습니다.

이것의 대부분은 인간으로서 우리가 체스를 풀기위한 욕구를 가지고 있는지 여부에 달려 있지만, 계산 능력은이시기 쯤에 가능하게 만들 것입니다 (우리의 속도가 계속되는 한).

또 다른 메모에서, 훨씬 더 간단한 Tic-Tac-Toe 게임은 2,653,002 개의 계산이 가능합니다 (개방형 보드 사용). Tic-Tac-Toe를 대략 2.5 초 (초당 100 만 계산)로 해결하는 계산 능력은 1990 년에 달성되었습니다.

거꾸로 돌아 가면 1955 년에 컴퓨터는 약 1 개월 만에 Tic-Tac-Toe를 해결할 수있는 힘을 가졌습니다 (초당 1 회 계산). 다시 말하지만, 이것은 당신이 컴퓨터 (A $ 1000 데스크탑 분명히 1955 년에 존재하지 않았다)로 패키징 할 수 있다면 $ 1000 당신을 얻을 것이 무엇을 기반으로, 그리고 이 컴퓨터는 .... 틱택 토를 해결하는데 최선을 다 한 것이다 컴퓨터에 의해 Tic-Tac-Toe가 "해결"된 것으로 간주되는 날짜가 없다고 생각하지만 계산은 비용이 많이 들고이 목적으로 사용되지 않았을 것입니다. 실제 계산 능력보다 뒤쳐져 있는지 확인하십시오.

또한 45 년 동안 $ 1000의 가치가 지금보다 약 4 배 적을 것이라는 점을 고려하십시오. 따라서 계산 능력은 계속 낮아지는 동안 이와 같은 프로젝트에 더 많은 돈을 투자 할 수 있습니다.


9
"당신은 디스코 레코드 판매가 1976 년까지 400 % 증가했다는 것을 알고 계셨습니까? 이러한 추세가 계속된다면 ... AAY!"
-Disco

2
무어의 법칙 (컴퓨팅 파워는 18 개월마다 두 배로 증가 함)이 2015 년경에 실패 할 가능성이 있습니다. 그렇지 않으면 컴퓨터 프로세서 설계가 근본적으로 달라야합니다. 따라서 2080 년은 현실적인 목표가 아닙니다.
Philip Smith

3
@Philip : 데스크톱 컴퓨터의 프로세서 클럭 속도는 2003 년 이후 약간만 증가했으며 그 이후로 향상된 기능은 대부분 캐시 및 다중 코어 증가였습니다. 3GHz 프로세서는 빛이 4 인치 / 10cm를 이동하는 데 걸리는 시간에 1 클럭 사이클이 있기 때문에 클럭 속도가 무한정 증가 할 것으로 예상 할 수 없습니다. 또한 병렬 처리는 일반적으로 어렵습니다. 7 년 전에 무너지기 시작한 50 년 동안 기하 급수적 인 증가를 예상하는 것은 안전한 내기처럼 보이지 않습니다.
David Thornley

1
@David-그것은 모두 사실입니다. 그러나 요점을 놓친다. 칩의 구성 요소 크기가 절반이면 전자는 동일한 클럭 속도에서 두 배 더 많은 작업을 수행합니다. 이것이 무어의 법칙에 연료를 공급합니다.
Philip Smith

3
@Philip : 반감기는 물론 영원히 계속 될 수는 없습니다. 실리콘 원자의 지름은 약 1/4 나노 미터이며 칩 제조는 이미 수십 나노 미터로 낮아졌습니다. 더욱이, 양자 수준에서 입자는 절대적인 규칙이 아닌 통계적 규칙을 따르기 때문에 한 번에 충분한 전자를 움직여서 많은 수의 법칙을 호출해야합니다. 지금까지 무어의 법칙은 법과 자기 실현 예언 사이에 있었지만 언젠가는 곧 끝납니다.
David Thornley

7

실제로 가능하다 두 선수가 더 잘 주문 무한 게임에서이기는 전략을 가지고하는; 그러나 체스는 잘 정리되어 있습니다. 사실, 50-move 규칙 때문에 게임이 가질 수있는 이동 수에는 상한선이 있으며, 따라서 체스의 가능한 게임은 유한하게 많습니다 (이론적으로 정확하게 풀기 위해 열거 할 수있는). 적어도 :)


4
기술적으로는 3 번 반복과 같은 50 번 규칙은 (물건을 제한하기도합니다-가능한 위치의 수가 한정되어 있으므로이 숫자에 3을 곱하면 상한선이됩니다) 무승부가 발생 하지 않습니다 . 오히려 두 선수 모두 무승부 를 주장 할 수있는 기회를 제공합니다 . 일반적으로 패배 한 플레이어가 그렇게 할 것이지만 필수는 아닙니다. 따라서 다음은 완전히 합법적 인 게임입니다. 1. Nc3 Nc6 2. Nb1 Nb8 3. Nc3 Nc6 4. Nb1 Nb8, 영원히 반복됩니다. 그리고 제가 착각하지 않았다면 그것이 두 개의 완벽한 알고리즘이 흰색과 검은 색으로 재생되는 결과가 아니라는 것이 입증되지 않았습니다.
Lenoxus

6

당신의 주장은 현대 체스 프로그램이 현재 작동하는 방식에 의해 뒷받침됩니다 . 그들은 결정 론적으로 작동하기 위해 체스 프로그램을 코딩하기에는 너무 많은 자원 집약적이기 때문에 그렇게 작동합니다. 항상 그런 식으로 작동 하지는 않습니다 . 체스가 언젠가는 해결 될 가능성이 있으며, 그렇게되면 컴퓨터로 해결 될 가능성이 높습니다.


5

기록을 위해 체커 에서이기거나 동점을 기록 할 수있는 컴퓨터가 있습니다 . 체스도 똑같이 할 수 있을지 모르겠습니다. 이동 횟수가 훨씬 높습니다. 또한 조각이 앞뒤가 아닌 모든 방향으로 움직일 수 있기 때문에 상황이 바뀝니다. 확실하지는 않지만 체스는 결정 론적이지만 컴퓨터가 현재 합리적인 시간 안에 모든 동작을 결정하기에는 가능한 동작이 너무 많다고 생각합니다.


1
할 수 있지만 우리가 볼 수있는 컴퓨터에서 할 수 있습니까?
BCS

1
아마도 우리 생애에는 아닐 것입니다. 이 분야에서 정말 흥미로운 모든 연구는 게임 바둑에서 이루어지고 있습니다. :)
Bill the Lizard

IIRC는 대부분의 6 세가 Go에있는 모든 컴퓨터가 될 수 있습니다.
BCS

2
@BCS : 더 이상은 아닙니다. 최고의 바둑 프로그램은 현재 dan (프로페셔널) 레벨 플레이어를 제치고 있습니다.
Bill the Lizard

1
@BlueRaja : 그게 2008 년이었습니다. 현재 기록이 뭔지는 모르겠지만 MoGo는 19x19에서 6, 7 스톤으로 프로를 이겼습니다. ireport.cnn.com/docs/DOC-214010
Bill the Lizard

5

나는 당신이 죽었다고 생각합니다. Deep Blue 및 Deep Thought과 같은 기계는 사전 정의 된 여러 게임과 해당 게임의 끝까지 트리를 구문 분석하는 영리한 알고리즘으로 프로그래밍되어 있습니다. 물론 이것은 극적으로 지나치게 단순화 된 것입니다. 게임이 진행되는 동안 항상 컴퓨터를 "이길"기회가 있습니다. 이것은 컴퓨터가 최적이 아닌 (무엇이든) 이동하도록 강제하는 이동을 의미합니다. 컴퓨터가 이동 제한 시간 전에 최적의 경로를 찾을 수없는 경우 바람직하지 않은 경로 중 하나를 선택하여 실수를 할 수 있습니다.

실제 기계 학습 또는 유전자 프로그래밍 / 진화 알고리즘을 사용하는 또 다른 종류의 체스 프로그램이 있습니다. 일부 프로그램은 진화되어 결정을 내리기 위해 신경망 등을 사용합니다. 이런 경우 컴퓨터가 "실수"를하더라도 여전히 승리를 거둘 수 있다고 생각합니다.

이 유형의 GP에 대한 Blondie24 라는 매력적인 책이 있습니다. 체커에 관한 것이지만 체스에도 적용될 수 있습니다.


그것이 당신이 체스에서 오늘날의 컴퓨터를이기는 방법입니다. 내일은 더 좋을 것입니다. 그래도 Blondie24가 매력적이라는 데 동의합니다.
Bill the Lizard

다시 투표했습니다. 이 게시물은 부정적인 점수를받을 자격이 없습니다.
Cybis

안타깝게도 체스 게임 문제는 너무 커서 머신 러닝이 작동하지 않습니다. 그들은 실수없이 초보자도 플레이 할 수있는 학습 체스 프로그램을 얻을 수 없었습니다. 휴리스틱이 더 좋습니다. 그러나 Brute Force는 더 좋았습니다. 머신 러닝 분야는 체스의 실패에서 배웠습니다.
lkessler

체스 프로그램은 단기적인 실수를하지 않으며 최고의 프로그램은 세계 챔피언보다 더 잘 플레이합니다. 최신 버전의 Rybka 64 비트는 3200 ELO
Alex

5

이 질문에 관한 게임 이론에서 대답은 '예'입니다. 체스는 완벽하게 플레이 할 수 있습니다. 게임 공간은 알려져 / 예측 가능하며, 손자의 양자 컴퓨터가 있다면 아마도 모든 휴리스틱을 제거 할 수있을 것입니다.

오늘날 모든 스크립팅 언어로 완벽한 틱택 토 머신을 작성할 수 있으며 실시간으로 완벽하게 재생됩니다.

Othello는 현재 컴퓨터가 완벽하게 완벽하게 플레이 할 수있는 또 다른 게임이지만 머신의 메모리와 CPU에는 약간의 도움이 필요합니다.

체스는 이론적으로는 가능하지만 실제로는 불가능합니다 (2008 년).

i-Go는 까다 롭고 가능성의 공간이 우주의 원자 수를 넘어 서기 때문에 완벽한 i-Go 기계를 만드는 데 시간이 걸릴 수 있습니다.



4
기술적으로는 조합적인 게임 이론입니다.
Anaphory

5

체스는 정의에 따라 최적의 결과를내는 매트릭스 게임의 한 예입니다 (내시 균형을 생각해보십시오). 플레이어 1과 2가 각각 최적의 움직임을 취하면 항상 특정 결과에 도달합니다 (승패 여부는 아직 알 수 없음).


5

1970 년대의 체스 프로그래머로서 저는 이것에 대해 확실히 의견이 있습니다. 내가 약 10 년 전에 썼던 것은 오늘날에도 여전히 기본적으로 사실입니다.

"미완성 된 작업과 체스 프로그래머의 도전"

당시에는 제대로 만하면 기존 방식으로 체스를 풀 수 있다고 생각했습니다.

Checkers는 최근에 해결되었지만 (Yay, University of Alberta, Canada !!!) 효과적으로 Brute Force를 수행했습니다. 전통적으로 체스를하려면 더 똑똑해야합니다.

물론 양자 컴퓨팅 이 현실이 되지 않는 한 . 그렇다면 체스는 Tic-Tac-Toe만큼 쉽게 풀릴 것입니다.

1970 년대 초 Scientific American에서 짧은 패러디가 제 관심을 끌었습니다. 체스 게임이 러시아 체스 컴퓨터로 해결되었다는 발표였습니다. 양측의 완벽한 플레이로 승리를 보장 할 수있는 완벽한 화이트 무브가 하나 있다고 결정했고, 그 무브는 1. a4!


3

여기에 많은 답변이 중요한 게임 이론적 요점을 만듭니다.

  1. Chess는 게임 상태에 대한 완전한 정보를 제공하는 유한하고 결정적인 게임입니다.
  2. 유한 한 게임을 풀고 완벽한 전략을 찾을 수 있습니다
  3. 그러나 체스는 무차별 대입 방법으로 완전히 해결할 수 없을 정도로 충분히 크다.

그러나 이러한 관찰은 중요한 실용적인 요점을 놓치고 있습니다. 무적의 기계를 만들기 위해 완전한 게임을 완벽하게 해결할 필요는 없습니다 .

실제로 가능한 상태 공간의 아주 작은 부분을 검색하지 않고도 무적의 체스 머신을 만들 수있을 가능성이 높습니다 (즉, 절대 패배하지 않고 항상 승리 또는 무승부).

예를 들어 다음 기술은 모두 필요한 검색 공간을 크게 줄입니다.

  • Alpha / Beta 또는 MTD-f 와 같은 나무 가지 치기 기술은 이미 검색 공간을 크게 줄였습니다.
  • 입증 가능한 우승 위치. 많은 엔딩이이 범주에 속합니다. 예를 들어 KR 대 K를 검색 할 필요가 없습니다. 입증 된 승리입니다. 약간의 작업을 통해 더 많은 보장 된 승리를 증명할 수 있습니다.
  • 거의 확실한 승리-어리석은 실수가없는 "충분히 좋은"플레이를 위해 (ELO 2200+에 대해?) 많은 체스 포지션이 거의 확실한 승리입니다. 예를 들어, 보상 포지션 이점이없는 괜찮은 물질적 이점 (예 : 추가 기사)이 있습니다. 프로그램이 그러한 위치를 강요 할 수 있고 위치 우위를 감지하기에 충분한 휴리스틱이 있다면, 그것이 승리하거나 적어도 100 % 확률로 무승부 할 것이라고 안전하게 가정 할 수 있습니다.
  • 트리 검색 휴리스틱-충분한 패턴 인식을 통해 "흥미로운"동작의 관련 하위 집합에 빠르게 집중할 수 있습니다. 이것이 인간 그랜드 마스터가 플레이하는 방식이므로 분명히 나쁜 전략이 아닙니다 ..... 패턴 인식 알고리즘은 지속적으로 향상되고 있습니다.
  • 위험 평가-위치의 "위험성"에 대한 더 나은 개념은 결과가 더 불확실한 상황에 컴퓨팅 능력을 집중함으로써 훨씬 더 효과적인 검색을 가능하게합니다 (이것은 정지 검색 의 자연스러운 확장입니다 ).

위의 기술을 올바르게 조합하면 "뛰어난"체스 게임기를 만들 수 있다고 편하게 주장 할 수 있습니다. 우리는 현재 기술과는 그리 멀지 않을 것입니다.

이 기계가 이길 수 없다는 것을 증명 하는 것이 거의 확실 합니다. 그것은 아마도 Reimann 가설과 같을 것입니다. 우리는 그것이 완벽하게 작동하고 결코 패배하지 않았다는 것을 보여주는 경험적 결과를 가질 것이라고 확신 할 것입니다 (자체에 대한 몇 십억 연속 드로우 포함). 그것을 증명하십시오.

"완벽 함"에 대한 추가 참고 사항 :

다음과 같이 비정상적으로 강력한 추가 조건을 의미하기 때문에 게임 이론적 의미에서 기계를 "완벽한"것으로 설명하지 않도록주의합니다.

  • 승리하는 조합이 아무리 복잡하더라도 강제로 승리 할 수있는 모든 상황에서 항상 승리합니다. 승리 / 무승부 경계에 완벽하게 계산하기 어려운 상황이있을 것입니다.
  • 예를 들어 상대가 너무 탐욕스럽고 의도적으로 상대가 실수를하도록 유도 할 가능성이 더 크다는 이유로 약간 약한 라인을 플레이 할 수 있다고 추론하는 등 상대 플레이의 잠재적 인 불완전성에 대한 모든 정보를 활용합니다. 불완전한 상대에 대해 상대가 아마도 강제 승리를 발견하지 못할 것이며 자신이 이길 확률이 더 높다고 추정한다면 실제로 지는 것이 최선일 수 있습니다.

완벽 함 (특히 불완전하고 알려지지 않은 상대에게 주어짐)은 단순히 무적하는 것보다 훨씬 더 어려운 문제입니다.


불완전한 상대를 갖는 것은 실제 문제가 아닙니다. 이것은 완벽한 플레이어가 적은 움직임으로 승리 / 무승부 (완벽한 결과가 무엇이든간에)하게합니다. 각 위치에서 최적의 이동은 항상 다른 가능한 이동 (정의상)보다 낫거나 같습니다. 따라서 차선의 움직임은 상대가 최적의 최종 상태 (승 / 무)에 더 일찍 도달하거나 더 나은 결과를 강제 할 수 있도록합니다. 예를 들어, 흰색이 완벽하게 플레이하면 검정색이 항상 풀린다면, 흰색이 최적이 아닌 단 하나의 움직임 만 플레이하면 검정색이 이길 가능성이 있습니다. 그러나 예, 이것은 분석의 복잡성을 약간 증가시킬 것입니다.
SDwarfs

@Stefan- 최적의 플레이에 관심이 있다면 불완전한 상대는 큰 문제 입니다. 특히, 상대가 실수를 할 확률이 충분히 높다는 것을 안다면 패배 동작 (즉, 완벽한 상대가 확실히 이길 수있는 동작)을 하는 것이 실제로 더 바람직한 상황을 생각할 수 있습니다 .
mikera

제 생각에 최적의 플레이는 위험없이 최상의 결과를 얻는 것을 의미합니다. 당신의 상대는 아마도 "약한"상태 일 것입니다. 그러나 당신이 패배 한 움직임 을 할 때 그는 불행하게도 우연히 좋은 움직임을 할 수 있습니다. 차선책 상대를 돌보는 것은 그 중 하나가 실제로 무승부 또는 승리로 이어지는 (차선 적 플레이) 상대가 실수 할 가능성이 더 높은 경우 패하는 동작 사이의 선택 만있는 경우에만 관련이 있습니다.
SDwarfs 2013 년

1
그것은 게임 이론에서 최적의 일반적인 정의가 아닙니다. 최적은 일반적으로 예상 결과를 최대화하는 것을 의미합니다 . 이 경우 최적의 플레이어는 평균적 으로 더 나은 결과 얻는다면 약간의 위험을 감수 할 것 입니다.
mikera

이 경우 당신은 완전히 옳습니다!
SDwarfs

2

player1 / 2 동작의 모든 조합의 전체 공간을 검색하는 경우 컴퓨터가 각 단계에서 결정하는 단일 동작은 휴리스틱을 기반으로합니다.

두 가지 경쟁 아이디어가 있습니다. 하나는 가능한 모든 이동을 검색하고 다른 하나는 휴리스틱을 기반으로 결정하는 것입니다. 휴리스틱은 좋은 추측을하기위한 시스템입니다. 가능한 모든 움직임을 검색하고 있다면 더 이상 추측하지 않습니다.


실제로 인용문이 맞습니다. 프로그램은 현재 위치 에서 양측의 가능한 모든 동작을 확인 하고 휴리스틱을 사용하여 컴퓨터에 유리한 위치로 게임을 진행할 수있는 좋은 동작을 찾습니다.
Bill the Lizard

1
아니요, 가능한 모든 동작을 보지 않습니다. 그들은 null-move 휴리스틱을 사용하여 트리를 잘라냅니다.
Alex

2

"체스를위한 완벽한 알고리즘이 있습니까?"

네, 있습니다. 화이트가 항상이기는 ​​건 어쩌면. 블랙이 항상이기는 ​​게 아닐까. 둘 다 항상 적어도 동점 일 수도 있습니다. 우리는 어떤 것을 모르고 결코 알 수 없지만 확실히 존재합니다.

또한보십시오


1
꽤 괜찮은 체스 선수이고 수년에 걸쳐 문제를 광범위하게 연구 한 저는 99.9 %의 확신을 가지고 두 선수 모두의 체스의 완벽한 전략이 무승부로 이어질 것이라고 확신합니다 (체커로 증명 된 것과 동일). 플레이어의 힘이 증가하면 무승부 비율도 증가한다는 증거도 있습니다.
mikera

2

"게임 이론의 아버지" Ernst Friedrich Ferdinand Zermelo 의 작업을 참조 하는 John MacQuarrie 의이 기사를 찾았습니다 . 다음과 같은 결론을 내립니다.

체스에서 흰색은 승리를 강요 할 수 있고, 검은 색은 승리를 강요 할 수 있으며, 양쪽 모두 적어도 무승부를 강요 할 수 있습니다.

논리는 나에게 소리가 나는 것 같습니다.


2

완벽하게 해결할 수 있습니다.

10 ^ 50 개의 홀수 위치가 있습니다. 내 생각에 각 위치는 저장하는 데 최소 64 라운드 바이트가 필요합니다 (각 사각형에는 2 개의 제휴 비트, 3 개의 조각 비트가 있습니다). 일단 대조되면 장군 인 위치를 식별하고 위치를 비교하여 관계를 형성하여 큰 결과 트리에서 다른 위치로 이어지는 위치를 보여줄 수 있습니다.

그런 다음 프로그램은 그러한 것이 존재하는 경우 가장 낮은 단 하나의 체크 메이트 루트 만 찾아야합니다. 어쨌든 체스는 첫 단락의 끝에서 상당히 간단하게 해결되었습니다.


1

나는 상태 공간의 크기가 해결책을 기대하는 것을 불가능하게 만든다는 주장에 대해 99.9 %만이 확신합니다.

물론, 10 ^ 50은 엄청나게 큰 숫자입니다. 상태 공간의 크기를 n이라고합시다.

가능한 가장 긴 게임에서 이동 횟수의 한계는 무엇입니까? 모든 게임은 한정된 수의 움직임으로 끝나기 때문에 그러한 경계가 존재하므로 m이라고 부릅니다.

초기 상태에서 시작하여 O (m) 공간에서 n 개의 움직임을 모두 열거 할 수 없습니까? 물론, O (n) 시간이 걸리지 만 우주의 크기에 대한 주장은 그것을 직접적으로 다루지 않습니다. O (m) 공간은 그다지 많지 않을 수도 있습니다. O (m) 공간의 경우,이 순회 중에 경로를 따라 어떤 상태의 연속이 EitherMayWin, EitherMayForceDraw, WhiteMayWin, WhiteMayWinOrForceDraw, BlackMayWin 또는 BlackMayWinOrForceDraw로 이어지는 지 추적 할 수 없습니까? (누구의 차례에 따라 격자가 있습니다. 순회 기록의 각 상태에 격자 만남을 주석으로 추가하십시오.)

내가 뭔가를 놓치고 있지 않는 한, 그것은 체스가 속하는 가능한 범주를 결정하기위한 O (n) 시간 / O (m) 공간 알고리즘입니다. Wikipedia는 대략 10 ^ 60 번째 Planck 시간에 우주의 나이에 대한 추정치를 인용합니다. 우주론에 대한 논쟁을하지 않고, 더위 / 추위 / 무엇이든 우주의 죽음까지 남은 시간이 그 정도라고 생각해 봅시다. 따라서 우리는 10 ^ 10 번째 플랑크 번 또는 10 ^ -34 초마다 한 번의 움직임을 평가해야합니다. 이것은 불가능할 정도로 짧은 시간입니다 (지금까지 관찰 된 가장 짧은 시간보다 약 16 배 더 짧음). 현재 또는 예상되는 비 양자 P는 적절한 NP 서브셋 기술을 기반으로 실행되는 매우 우수한 구현을 통해 우리가 평가할 수 있다고 낙관적으로 말합시다. 한 걸음 앞으로 결과 상태를 100MHz (10 ^ -8 초마다 한 번) 속도로 중간 상태 또는 세 가지 최종 상태 중 하나로 분류합니다. 이 알고리즘은 병렬화가 가능하기 때문에 결과를 수집 할 수있는 능력과 함께 10 ^ 26 번째 컴퓨터 또는 내 몸의 모든 원자에 대해 약 1 대가 필요합니다.

무차별 대입 솔루션에 대한 희망이 항상 있다고 생각합니다. 우리는 운이 좋을 수 있으며, 백인의 가능한 오프닝 동작 중 하나만 탐색 할 때 둘 다 평균보다 훨씬 낮은 팬 아웃을 가진 하나와 백인이 항상이기거나 무승부를 선택하는 하나를 선택합니다.

우리는 또한 체스의 정의를 다소 축소하고 모든 사람들에게 그것이 여전히 도덕적으로 같은 게임임을 설득하기를 희망 할 수 있습니다. 무승부 전에 포지션을 3 번 반복해야하나요? 도망 치는 파티가 50 번의 이동을 위해 탈출 할 수있는 능력을 보여 주어야합니까? 누구든지 en passant 규칙 이 도대체 무엇인지 이해합니까 ? ;) 더 진지하게, 우리는 플레이어가 수표에서 벗어나기 위해 움직이거나 교착 상태가 합병 일 때 무승부 나 패배와는 반대로 강제로 움직여야합니까? 캡처 합니까? 원하는 비 여왕 승진이 즉각적인 수표 나 체크 메이트로 이어지지 않는 경우 폰이 승격 될 수있는 조각의 선택을 제한 할 수 있습니까?

또한 게임 후반 상태의 대규모 데이터베이스에 대한 각 컴퓨터 해시 기반 액세스를 허용하는 정도와 가능한 결과 (기존 하드웨어 및 기존 최종 게임 데이터베이스에서 상대적으로 실행 가능할 수 있음)가 검색을 더 일찍 정리하는 데 도움이 될 수 있는지도 불확실합니다. 분명히 O (n) 저장소없이 전체 함수를 기억할 수는 없지만 큰 정수를 선택하고 가능한 (또는 쉽게 증명할 수있는 불가능하지 않은) 최종 상태에서 거꾸로 열거하는 많은 최종 게임을 기억할 수 있습니다.


1
당신의 m = 5898. FIDE 체스 규칙은 적어도 50 개의 이동 (50 개의 이동 규칙이라고 함)마다 폰을 움직이거나 조각 (게임을 돌이킬 수 없게 바꾸는 것)을 가져 가야하거나 플레이어 중 한 명이 무승부를 주장 할 수 있다고 정의합니다. 가능한 한 빨리 두 플레이어가 협력하고 무승부를 주장하면 가능한 가장 긴 게임은 5898 이동 길이로 계산되었습니다. 두 선수가 무승부를 주장 할 수 있다면 계속 플레이하는 것은 말이되지 않습니다. 플레이어가 패배를 발견하면 무승부를 청구하여 동일한 결과를 얻을 수 있습니다. 참조 : chess.com/blog/kurtgodden/the-longest-possible-chess-game
SDwarfs

1
참고 : m = 5898은 "이동"수입니다. 최대 절반 이동 횟수는 (118-3) * 100 + 3 * 99 = 11797입니다. 여기에서 증명을 찾을 수 있습니다 (독일어!) : de.wikipedia.org/wiki/50-Z%C3%BCge-Regel# Schachmathematik
SDwarfs

1

나는 이것이 약간의 충돌이라는 것을 알고있다. 그러나 나는 여기에 나의 5 센트 가치를 넣어야한다. 컴퓨터 또는 그 문제에 대한 사람이 자신이 참여하는 모든 체스 게임을 승리하거나 교착 상태로 끝낼 수 있습니다.

그러나이를 달성하려면 가능한 모든 움직임과 반응 등을 모든 가능한 게임 결과에 이르기까지 정확하게 알고 있어야하며이를 시각화하거나이 정보를 쉽게 분석 할 수있는 방법을 만들어야합니다. 지속적으로 분기되는 마인드 맵입니다.

중앙 노드는 게임의 시작입니다. 각 노드의 각 분기는 이동을 상징하며, 각각은 해당 이동과는 다릅니다. 이 저택에 그것을 제시하는 것은 특히 종이에 이것을하는 경우 많은 자원을 필요로 할 것입니다. 컴퓨터에서는 분기를 다시 가져 오지 않는 한 매우 많은 반복 동작을 수행하므로 수백 테라 바이트의 데이터가 필요할 수 있습니다.

그러나 그러한 데이터를 암기하는 것은 불가능하지는 않더라도 믿기지 않을 것입니다. 컴퓨터가 (최대) 8 개의 즉시 가능한 동작 중에서 가장 최적의 동작을 인식하게하려면 가능하지만 그럴듯하지는 않습니다 ... 그 컴퓨터는 해당 동작 이후의 모든 분기를 처리 할 수 ​​있어야하므로 결론에 이르기까지, 승리 또는 교착 상태를 초래하는 모든 결론을 세고, 그 결과 수만큼의 승리 결론에 따라 결말을 잃어 버리면 테라 바이트 이상의 데이터를 처리 할 수있는 RAM이 필요합니다! 그리고 오늘날의 기술을 사용하면 이와 같은 컴퓨터는 세계에서 가장 부유 한 5 명의 남성 및 / 또는 여성의 은행 잔고 이상을 필요로합니다!

그래서 그 모든 고려 끝에 할 수는 있었지만 아무도 할 수 없었습니다. 그러한 작업에는 체스뿐만 아니라 과학 및 컴퓨터 기술 분야에서 오늘날 살아있는 가장 영리한 30 명의 정신이 필요하며, 그러한 작업은 (전적으로 기본 관점에 놓이게 함)에서만 완료 할 수 있습니다. 초고속 컴퓨터 ... 적어도 한 세기 동안 존재할 수 없었던. 완료됩니다! 이번 생에서는 아닙니다.


1

사고 실험에는 두 가지 실수가 있습니다.

  1. 튜링 머신이 메모리, 속도 등에서 "제한"되지 않은 경우 휴리스틱을 사용할 필요는 없지만 최종 상태 (승리, 패배, 무승부)를 계산할 수 있습니다. 완벽한 게임을 찾으려면 Minimax 알고리즘 ( http://en.wikipedia.org/wiki/Minimax 참조 )을 사용하여 각 플레이어에 대한 최적의 동작을 계산하면 하나 이상의 최적의 게임이 생성됩니다.

  2. 사용 된 휴리스틱의 복잡성에도 제한이 없습니다. 완벽한 게임을 계산할 수 있다면 그것으로부터 완벽한 휴리스틱을 계산하는 방법도 있습니다. 필요한 경우 "내가이 상황에 있다면 S 내 최선의 움직임은 M"방식으로 체스 위치를 매핑하는 기능입니다.

다른 사람들이 이미 지적했듯이, 이것은 3 가지 가능한 결과로 끝날 것입니다 : 흰색은 승리를 강요 할 수 있고, 검정색은 승리를 강요 할 수 있으며, 그들 중 하나는 무승부를 강요 할 수 있습니다.

완벽한 체커 게임의 결과는 이미 "계산"되었습니다. 인류가 이전에 스스로를 파괴하지 않는다면 언젠가는 컴퓨터가 충분한 메모리와 속도를 가질만큼 충분히 진화 한 체스에 대한 계산도있을 것입니다. 아니면 양자 컴퓨터가 있습니다 ... 아니면 누군가 (연구자, 체스 전문가, 천재)가 게임의 복잡성을 크게 줄이는 알고리즘을 찾을 때까지 말입니다. 예를 들어, 1에서 1000 사이의 모든 숫자의 합은 무엇입니까? 1 + 2 + 3 + 4 + 5 ... + 999 + 1000을 계산하거나 간단히 계산할 수 있습니다. N * (N + 1) / 2 with N = 1000; 결과 = 500500. 이제 그 공식에 대해 모른다고 상상해보십시오. 당신은 수학적 귀납법에 대해 모르고, 숫자를 곱하거나 더하는 방법도 모릅니다. 궁극적으로이 게임의 복잡성을 줄이는 현재 알려지지 않은 알고리즘이있을 수 있으며 현재 컴퓨터로 최상의 움직임을 계산하는 데 5 분이 소요됩니다. 시간이 좀 더 주어지면 펜과 종이를 가진 사람으로 추정하거나 마음 속에있는 것으로 추정 할 수도 있습니다.

따라서 빠른 대답은 : 인류가 충분히 오래 살아남는다면 시간 문제 일뿐입니다!


0

풀 수 있을지 모르지만 뭔가 신경이 쓰인다. 나무 전체를 가로 지르더라도 상대방의 다음 움직임을 예측할 수있는 방법은 없다. 우리는 항상 상대방의 상태에 따라 다음 움직임을 기반으로하고 "최상의"움직임을 사용할 수 있도록해야합니다. 그런 다음 다음 상태에 따라 다시 수행합니다. 따라서 상대방이 특정 방식으로 움직이면 최적의 움직임이 최적 일 수 있습니다. 상대의 일부 이동에 대해 우리의 마지막 이동은 차선책 일 수 있습니다.

나는 모든 단계에서 어떻게 "완벽한"움직임이있을 수 있는지 보지 못합니다.

그러기 위해서는 [현재 게임에서] 모든 상태에 대해 상대의 다음 이동 (틱택 토에서와 같이)에 관계없이 승리로 이끄는 경로가 트리에 있어야합니다. 시간을 내야합니다.


5
완벽한 움직임은 'minmax'전략에 의해 결정됩니다 : 가능한 최소 점수를 최대화하는 움직임입니다 (상대가 할 수있는 가능한 모든 움직임을 감안할 때). 달리 말하자면, 상대도 완벽하게 플레이한다고 가정합니다.
Nick Johnson

이것은 흥미로운 점입니다. 상대방이 최선의 행동을 취하지 않으면 가능한 최선의 행동에 대한 반응이 당신을 불리하게 만드는 상황이 발생할 수 있습니까? 이것은 어떤 의미가 있습니까?
Nona Urbiz

저는 수학자도 아니고 체스를 잘하지도 않습니다. 나는 또한 이론상 (전체 게임 트리를 알아야 함) 이것에 대한 대답이 '예'라고 가정했습니다. 그러나 이제이 문제 (다른 플레이어의 선택)를 언급 했으므로 시스템이 잠재적으로 예측할 수 없음을 의미합니까? 게임에서 다른 플레이어가 불이익을 줄 수있는 중간 지점이 있습니까? 이것은 Perceptron (Neural Net)이 'OR'과 'AND'를 배울 수 있지만 'XOR'을 절대 파악할 수 없다는 사실과 비슷합니까? 체스는 '혼돈'시스템의 예입니까? FWIW, IMHO이 시점에서 대답은 '몰라'인 것 같습니다.
monojohnny

@Nona 정의에 따르면 그 움직임이 최고의 움직임이 될 것입니다. 가정이 없습니다.
piccolbo

@piccolbo : 더 나은-최고의 움직임 중 하나. 체스에는 여러 동작이 같은 결과를 가져 오는 위치가 있습니다 (같은 수의 동작에서 승리, 무승부 또는 패배).
SDwarfs

0

수학적으로 체스는 Minimax 알고리즘 1920 년대로 거슬러 올라갑니다 (Borel 또는 von Neumann에 의해 발견됨). 따라서 튜링 머신은 실제로 완벽한 체스를 할 수 있습니다.

그러나 체스의 계산 복잡성으로 인해 실제로는 불가능합니다. 현재 엔진은 몇 가지 개선 사항과 휴리스틱을 사용합니다. 오늘날 최고의 엔진은 플레이 강도 측면에서 최고의 인간을 능가했지만 사용하는 휴리스틱으로 인해 무한한 시간이 주어지면 완벽하게 재생되지 않을 수 있습니다 (예 : 해시 충돌로 인해 잘못된 결과가 발생할 수 있음).

현재 완벽한 플레이 측면에서 가장 가까운 것은 엔드 게임 테이블베이스 입니다. 이를 생성하는 일반적인 기술을 역행 분석 이라고 합니다 . 현재 최대 6 개까지의 모든 위치가 해결되었습니다.


-1

, 수학에서 체스는 결정된 게임으로 분류됩니다. 즉, 각 첫 번째 플레이어에게 완벽한 알고리즘이 있음을 의미합니다. 이것은 무한 체스 판에서도 사실임이 입증되었으므로 언젠가는 양자 AI가 완벽한 전략을 찾을 것입니다. 그리고 게임은 사라졌습니다

이 비디오에서 더 자세히 알아보십시오 : https://www.youtube.com/watch?v=PN-I6u-AxMg

또한 퀀텀 체스가 있는데, 게임이 결정된다는 수학 증거가 없습니다. http://store.steampowered.com/app/453870/Quantum_Chess/

퀀텀 체스에 대한 자세한 비디오가 있습니다. https://chess24.com/en/read/news/quantum-chess


-2

물론 보드에있는 피스의 조합이 가능한 50 개의 거듭 제곱에 불과합니다. 이를 염두에두고, 모든 컴비네이션을 플레이하려면 10 수 미만의 50 수 (반복 횟수에 3을 곱한 횟수 포함)를 만들어야합니다. 그래서, 체스에서 100 개의 동작의 거듭 제곱에 10보다 적은 것이 있습니다. 장군으로 이끄는 것들을 골라서 가셔도 좋습니다.


-3

64 비트 수학 (= 체스 보드) ​​및 비트 연산자 (= 다음 가능한 이동) 만 있으면됩니다. 그래서 간단합니다. Brute Force는 일반적으로 가장 좋은 방법을 찾습니다. 물론 모든 위치에 대한 보편적 인 알고리즘은 없습니다. 실제 생활에서는 계산도 시간 제한이 있으며 시간 초과로 인해 계산이 중지됩니다. 좋은 체스 프로그램은 무거운 코드 (통과, 두 배의 폰 등)를 의미합니다. 작은 코드는 매우 강력 할 수 없습니다. 데이터베이스를 열고 종료하면 처리 시간, 일종의 사전 처리 된 데이터가 절약됩니다. 장치, 즉 OS, 스레딩 위치, 환경, 하드웨어가 요구 사항을 정의합니다. 프로그래밍 언어가 중요합니다. 어쨌든 개발 과정은 흥미 롭습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.