Perft

다른 이름: 성능 테스트

정확히 지정된 탐색 깊이까지 모든 합법적인 수순을 세는 테스트.

설명

Perft는 한 포지션에서 합법적인 수의 트리를 순회하고 정확한 깊이에 도달하는 모든 수순을 센다. 깊이 1은 현재 가능한 합법적인 수를 세는 것이다. 깊이 2는 상대의 모든 합법적인 응수를 포함하며 이후도 같은 방식이다. 서로 다른 수순이 같은 보드 상태에 도달해도 각각 따로 센다. 결과는 해당 포지션과 깊이에 대해 재현 가능한 숫자다.

주된 목적은 프로그램의 수 생성기를 검증하는 것이다. 합계가 신뢰할 수 있는 기준값과 다르면 어떤 규칙이나 포지션 갱신이 잘못된 것이다. divide라는 형태는 각 시작 수의 소계를 따로 보여 주어 차이가 시작되는 가지를 찾는 데 도움을 준다.

Perft는 체크, en passant라는 특별한 폰 잡기, 승격, 그리고 킹과 룩이 함께 움직이는 특별한 수인 과 관련된 미묘한 오류를 찾는 데 특히 좋다. 또한 수를 무른 뒤 프로그램이 둘 차례, 캐슬링 권리, en passant 대상 칸을 잘못 복원하는 문제도 드러낼 수 있다.

Perft는 포지션 평가, 최선 수 선택, 가지치기를 하지 않는다. 통과했다는 것은 시험한 합법 수 개수와 일치한다는 뜻이지, 이 체스를 강하게 둔다는 뜻은 아니다. 이름은 performance test에서 왔지만 정확한 개수 계산이 핵심 목적이며, 속도 측정은 구현에 따라 달라지는 별도의 벤치마크다.

자주 혼동하는 개념

Perft와 대국 실력

Perft는 규칙과 수 생성을 검증한다. 포지션 이해, 평가 품질, 전술 능력을 측정하지 않는다.

Perft와 해싱

구현이 포지션을 알아보기 위해 을 사용할 수는 있지만, 올바른 키가 합법 수 계산을 대신하지는 않는다.

용어 보기

출처

  1. 1.Perft, Chess Programming Wiki

관련 용어

© 2026 MindZug