체스 엔진이 때때로 좋은 움직임을 그리워하는 이유는 무엇입니까?


17

체스 엔진보다 훨씬 뛰어난 움직임을 발견 한 것은 처음이 아니며, 이러한 움직임을 이해 한 후에도 시간이 걸립니다.

예를 들어 15 ... Bf2아래 게임에서 의 움직임 :

NN-NN, 0-1
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rg3 + 17. Kf5 Rxf3 + 18. Kg4 Rg3 + 19. Kf5 f6 20. d3 Kf7 0-1

움직임은 엔진에 의해 잠시 동안 눈에 띄지 않고 남아 있습니다. 움직일 때까지는 빙산의 나머지 부분을보기 시작합니다.

나는 그것이 당신이 그들에게 분석하는데 얼마나 많은 시간을 주느냐에 달려 있다는 것을 알고 있지만, 때때로 인간이 컴퓨터보다 적은 시간에 이러한 움직임을 찾는 것은 용납 될 수 없습니다.

  • 체스 엔진이 어떤 위치에서 좋은 움직임을 찾지 못하는 이유는 무엇입니까? (한 번은 '수평선 효과'에 대해 읽었습니다. 아마도 관련이 있습니까?)
  • 다른 주목할만한 예가 있습니까? (예 : 이 유명한 퍼즐 은 컴퓨터가 해결하는 데 시간이 걸립니다)

이러한 질문에는 이러한 예외를 유발할 수있는 몇 가지 요소를 부분적으로 설명하는 유용한 정보가 포함되어 있습니다. 컴퓨터 체스에서 어떤 알고리즘과 휴리스틱이 널리 사용됩니까? , 컴퓨터 상대를 플레이 할 때 더 나은 승률을 얻으려면 어떤 상황을 만들어야합니까? , 컴퓨터 평가 : 얼마나 신뢰할 만한가?

메모 : 함정은 낚싯대 라고 알려져 있는데 , 3에서 친구를 잃었고 7에서 친구를 놓쳤다는 것을 알고 있습니다. 모든 계산을 완료합니다.


1
매우 흥미로운. 평균 강도의 PC에있는 스톡 피시는 15... Bf25 분 후에도 전혀 찾지 못했습니다 .
Tony Ennis 2012

... 다음 번에 비슷한 메이트 인 -7을 찾는 데 7 분이 걸렸습니다.
Tony Ennis 2012

20 d3은 오류입니다. 20 d4를 시도하십시오.
dcaswell

1
인간이 컴퓨터보다 짧은 시간 내에 움직임을 찾기 위해 "허용되지 않는"언어를 사용하는 이유는 무엇입니까? 이것에 대한 당신의 생각을 풀 수 있습니까?
Xonatron

더 나은 움직임이 많이 없었습니다. 왜 그 하나를 구체적으로 지적합니까?
yobamamama

답변:


33

체스 엔진이 어떤 위치에서 좋은 움직임을 찾지 못하는 이유는 무엇입니까?

그 이유는 첫 줄에 ProbCut을 사용하여 정방향 정리 기술 ( http://chessprogramming.wikispaces.com/Pruning 참조 ) 이라고합니다 .

이동 15 ... Bf2는 희생물 16.Rxf1을 포함하기 때문에 얕은 깊이에서 잘라 내고 바로 뒤에 증거가있는 콘크리트를 되찾지 않습니다. 예를 들어 17 ... Ke7과 같은 추가 '자동'움직임이 포함되어 있기 때문에 matenet 도보 기가 어렵습니다. 그렇습니다. 엔진도 마찬가지입니다.

이 구체적인 경우에 당신은 말할 수 없습니다. 연속 15 ... Rh3h1도 매우 좋은 움직임이며 절대적으로 승리 한 위치로 이어지기 때문에 엔진이 좋은 움직임을 발견하지 못합니다.

마지막으로, 엔진의 강도는 항상 최강의 힘으로 측정되며 절대로 이길 수있는 가장 짧은 방법을 찾는 능력이 아니라는 점을 기억해야합니다. 엔진이 8 이동 또는 25 이동으로이기더라도 중요하지 않습니다. 가장 짧은 승리를 위해 많이 찾는 것은 낭비 시간을 의미합니다. 대부분의 시간에는 비밀스러운 좋은 움직임이 전혀 없기 때문입니다. 그리고 시간 낭비는 엔진 ELO 등급을 손상시킬 것입니다.


1
좋은 답변, 사이트에 오신 것을 환영합니다!
앤드류

정리 된 검색과 전체 검색 간의 균형을 언급하면 ​​+1입니다. 나는 13+ PLY 조합이 빨리 발견되지 않는다는 사실에 놀라지 않았습니다. 엔진은 그 깊이에 대한 모든 가능성을 계산하는 것보다 "할 일이 더 낫다".
Daniel B

2
전반적으로 좋은 답변입니다. +1 "마지막으로 당신이 기억해야 할, 엔진의 힘은 항상 ELO-strengh의 관점에서가 아니라 이길 수있는 절대 가장 짧은 방법 찾을 수있는 기능으로 측정된다"
ferit

훌륭한 답변입니다.
Xonatron

12

Houdini 1.5 (무료 버전)로 이것을 시도하고 있습니다. 처음에는 15 ... Bf2가 상위 5 개 이동에 표시되지 않습니다. 15 번 깊이에 도달하면 # 1과 같이 표시됩니다. 4 살짜리 컴퓨터에서 약 19 초가 걸리지 않습니다.

따라서 그것을 발견하지 못합니다. 대신 깊이 15에 도달하면 가장 잘 움직입니다. 분명히 14 플라이 깊이 만 보이는 한 다른 움직임이 더 좋습니다 (또한 15 ... f5 + 우승).

분명히 15 ... Bf2는 8의 짝이며 15 겹입니다 (8은 검은 색, 7은 흰색). 그러나 처음에는 +10 정도, +20, 10은 짝, 8은 짝으로 간주합니다.

8 줄의 메이트는 다음과 같습니다.

NN-NN
1. e4 e5 2. Nf3 Nc6 3. Bb5 Nf6 4. OO Ng4 5. h3 h5 6. hxg4 hxg4 7. Bxc6 gxf3 8. Qxf3 Qh4 9. Qh3 Qxh3 10. gxh3 dxc6 11. Re1 Bxh3 12. f3 Bc5 + 13. Kh2 Bf1 + 14. Kg3 Rh3 + 15. Kg4 Bf2 16. Rxf1 Rh4 + 17. Kg5 Ke7 18. Rh1 Rxh1 19. Nc3 Rah8 20. Nd5 + cxd5 21. d3 R8h5 + 22. Kg4 R1h4 #.

Houdini 1.5가 15 플라이 깊이를 생각할 때 분명히 15 플라이 깊이의 가능한 모든 라인을 고려하지는 않습니다 .

나는 그것이 가지 치기 때문이라고 생각합니다 . 충분하지 않다고 생각할 때 일부 줄을 보지 않습니다. 그렇게하면 유망한 라인에 더 많은 시간을 할애 할 수 있으며 프로그래머는 프로가 단점보다 중요하다고 생각합니다. 그러나 지금 여기에서 정리하기로 결정한 것에 대한 대답은 없습니다 (아마도 깊이 15에서 수백만 건의 분리 된 가지 치기 결정을합니다).

무음 동작 ... Ke7 및 ... Rah8과 관련이있을 수 있습니다. 어딘가에이 줄을 계속 보는 것이 유용하지 않다고 결정했을 가능성이 큽니다. 나중에 라인을 계속하고 마지막에 메이트를 찾으면 게임을 연장하는 다른 라인을 수행합니다 (18.Rh1 Rxh1 등).

어쨌든 컴퓨터가 무언가의 맨 바닥에 도달하려는 경우에만 몇 초 동안 생각하게하는 것이 잘 작동하지 않는 것으로 알려져 있습니다. 몇 분이 더 좋습니다.


왜 그렇게 자두를하는지에 대한 나의 추측은 16이기 때문이다. Rxf1은 대담한 왕의 왕이 공개 된 것이 아니라 "윤리적으로"보인다. 이 "희생"의 가치가 명확 해지는 것은 더 심도 깊은 분석이 이루어질 때까지는 아닙니다.
Joe K

"15 겹"은 모든 움직임이 아니라 깊이 15까지의 움직임 을 보았 음을 의미합니다 . 슈퍼 컴퓨터에서도 4 초 이상 걸리는 시간 이 걸립니다 .
BlueRaja-대니 Pflughoeft

2

모든 답변과 다른 출처를 읽은 후, 나는 그들이 '이동'을 놓치지 않거나이 움직임을 놓치지 않기로 선택했다는 것을 이해합니다. 인간은 검색의 특정 패턴을 따르도록 프로그램을 프로그래밍했습니다 더 중요한 것은 자원을 절약하기 위해 검색을 일시 중지하고 더 유망한 행을 조사하는시기입니다.

그러나 충분한 시간이 주어지면 컴퓨터는 특정 깊이에서 가능한 모든 조합을 찾아냅니다.

TL; DR

  • Q1 : 움직임을 놓치지 않고 아직 찾지 못했습니다.
  • Q2 : 리소스를 절약하도록 프로그래밍 되었기 때문에 시간이 걸리고 다른 라인 (예 : 수동적 움직임이 없거나 다음 몇 번의 움직임에서 재료를 복구하지 않는 라인)보다 일부 라인의 우선 순위를 정합니다.

-1

나는 모든 사람이 훨씬 빠른 친구를 잃어버린 것 같아요. Houdini 3으로 위치를 확인할 때 검은 색은 이동 13에서 메이트가 3입니다. Bf1 + 대신 검은 색은 Bf2를 재생했으며 14로 진행됩니다. d3 bf1 + 15. Bh6 Rxh6 #. 따라서 귀하의 질문에 대한 특이한 답변으로 특정 엔진이 귀하의 움직임을 즉시 보지 못할 수도 있지만 Houdini 3의 경우 훨씬 빠른 메이트를 발견했습니다.


5
전체 질문을 읽으면 그가 3의 메이트를 알고 있음을 알 수 있습니다. 합리적으로 새로운 엔진은 모두 3에서 메이트를 즉시 발견하며 여기에서 요구되는 것의 일부가 아닙니다.
Halvard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.