Alpha-Beta Pruning을 사용하여 Gomoku (연속 5 개) AI를 만들었습니다. 그것은 어리석은 수준으로 움직이지 않습니다. 먼저 Alpha-Beta 알고리즘의 등급 지정 기능을 모호하게 설명하겠습니다.게임 AI를위한 유전 알고리즘의 헬스 기능 al
게시판을 입력으로 받으면 돌의 모든 반복을 찾아내어 길이에 따라 결정되는 위협의 유용성에 따라 4 가지 가능한 값 중에서 점수를 부여합니다. 그리고 모든 반복 점수의 합계를 반환합니다.
하지만 문제는 내가 점수 (총 4 점)를 명시 적으로 결정했기 때문에 문제가 아니라고 생각합니다. 그래서 나는이 점수를 생성하는 유전자 알고리즘을 구현하기로 결정했습니다. 각 유전자는 4 점 중 하나입니다. 예를 들어, 하드 코딩 된 점수의 염색체는 다음과 같습니다. [5, 400001000000050000]
그러나 유전자 알고리즘을 사용하여 점수 함수를 작성하기 때문에 유전 적 기능을 어떻게 구현해야하는지 확신 할 수 없습니다. 그래서 대신에 다음을 생각해 보았습니다.
피트니스 기능을 사용하는 대신 선택 프로세스를 병합합니다. 두 개의 염색체 A와 B가 있고 하나를 선택해야하는 경우 각 인공 지능에서 A와 B 염색체를 사용하여 게임을 시뮬레이션하고, 승리하는 염색체를 선택하십시오.
1 이것은 피트니스 기능을 대체 할 수 있습니까?
2. 알파 베타 알고리즘의 특징으로 인해, 나는 대부분의 경우 무한대로 설정되는 승패 조건에 최대 점수를 부여해야합니다. 그러나 Infinity를 사용할 수 없기 때문에 나는 방금 엄청나게 많은 수를 사용했습니다. 이 점수를 염색체에 추가해야합니까? 또는 중요하지 않고 채점 기능의 값을 변경하지 않으므로 상수로 둡니다.
3. 처음에는 염색체를 생성 할 때, 무작위 생성, 표준 분포에 따라 가장 최적이라고합니다. 그러나 제 경우의 유전자에는 큰 편차가 있습니다. 무작위로 염색체를 생성하는 것이 여전히 괜찮습니까?
당신은 어떻게 생각하십니까, 그것은 몬테 - 카를로 트리 검색과 알파 - 베타 가지 치기를 대체 할 수 있습니까? –
@TodorBalabanov 아마도 그렇습니다. GA는 정적 평가 함수의 매개 변수에 대해 여기에서 제안 된 동일한 방법으로 MCTS- 휴리스틱의 매개 변수를 최적화하는 데 사용될 수 있습니다. 실제로 나는 Chess/Alpha-Beta/GA로 실험했지만 MCTS에 대한 직접적인 경험이 없으므로 중요한 측면을 간과 할 수 있습니다. 또한 최적화 시간이 실제 문제 일 수 있습니다. – manlio
MCTS는 ABP보다 구현이 훨씬 쉽기 때문에 더 좋아진다. 또한 MCTS는 계산 자원이 충분하지 않을 때 시간 제한을받을 수 있습니다. –