Tic Tac Toe와 같은 게임에서 신경망 대 유전자 알고리즘?


9

현재 저는 Gomoku 게임을하기 위해 AI를 만드는 프로젝트를 수행하고 있습니다 (tic tac toe와 같지만 15 * 15 보드에서 플레이하고 승리하려면 5 연속을 요구합니다). Q 학습을 사용하고 테이블에 게임 상태 / 액션을 저장하여 완벽한 틱택 토 AI를 이미 성공적으로 구현했지만 15 * 15 보드의 경우 가능한 게임 상태가 너무 커져이 프로젝트를 구현할 수 없습니다.

내 질문은,이 문제에 신경망이나 유전자 알고리즘을 사용해야합니까? 그리고 더 구체적으로, 이것을 어떻게 구현해야합니까?


2
AI에 오신 것을 환영합니다! 훌륭한 질문 imho.
DukeZhou

답변:


7

gomoku의 경우 신경망이나 유전자 알고리즘을 사용하는 것은 다소 시간이 걸리고 자주 걸리지 않으므로 원하는 방식으로 진행하지 마십시오. 고모 쿠 게임 트리는 다소 크지 만 미니 맥스, 게임 트리 가지 치기 및 매핑과는 달리 절반과 전체 2, 3, 4 등을 포함하여 우수한 휴리스틱 기능을 통해 적절한 AI를 얻을 수 있습니다. 전체 공간을 밖으로.

알파 베타 가지 치기 및 minimax에 익숙하지 않은 경우 https://www.cs.cornell.edu/courses/cs312/2002sp/lectures/rec21.htm을 참조 하십시오.

신경망이나 유전자 알고리즘을 실제로 사용하려면 학습 경험을 쌓을 수 있습니다. 신경망과 관련하여 한 가지 방법은 다음과 같습니다.

  • 보드 상태 입력 (빈, 검정, 흰색의 경우 0,1,2 순서)을 수신하고 보드 상태의 '양호'값을 출력하는 휴리스틱 함수를 정의하십시오. 신경망은 휴리스틱 기능입니다.
  • 이 게임의 움직임이 최적이라고 가정하면 현재의 가장 좋은 움직임 (현재 매개 변수 별)과 데이터의 움직임이 가장 좋은 것의 차이를 극복하십시오. 이것이 에러 함수를 정의하는 방법입니다! 따라서 신경 네트워크를 움직이는 것이 가장 강하다고 말하는 것이 이상적으로는 게임 데이터가 가장 강한 것입니다 (이 오류 함수의 최적화는 역 전파 또는 유전자 알고리즘을 통해 수행 할 수 있음).
  • 이상적으로는이 시점에서 하드 코딩 된 휴리스틱 대신 게임 트리 이동 평가에 ( '강한') 신경망 기반 평가 기능을 사용할 수 있습니다.

물론 이것은 한 가지 방법 일 뿐이므로 게임 데이터를 먼저 찾아야합니다.

유전자 알고리즘을 적용하는 참고 사항은 위에서 언급 한 신경망의 매개 변수 최적화 또는 게임 트리 검색과 같은 몇 가지 방식으로 발생할 수 있으므로 문제 설정을 정의하는 방법을 명확하게 확인하십시오! 신경망을 적용하는 다른 방법도 마찬가지입니다.

마지막으로 gomuku가 해결되었음을 아는 것이 도움이됩니다. 다른 사람들의 생각과 아이디어는 /programming/6952607/ai-strategy-for-gomoku-a-variation-of-tic-tac-toe 를 참조 하십시오 .


2
해결 된 게임으로 고모 쿠에 대한 좋은 지적. 이를 통해 AI의 강도를 쉽게 확인할 수 있습니다 (즉, 게임을 해결하고 완벽한 플레이를 표현하거나 AlphaGo의 경우와 같이 상대보다 더 최적으로 플레이하는 것입니다).
하는가
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.