Mạng lưới thần kinh vs thuật toán di truyền trong các trò chơi như Tic Tac Toe?


9

Hiện tại tôi đang thực hiện một dự án về việc tạo ra một AI để chơi trò chơi Gomoku (Nó giống như tic tac toe, nhưng chơi trên một bảng 15 * 15 và yêu cầu 5 liên tiếp để giành chiến thắng). Tôi đã thực hiện thành công AI hoàn hảo bằng cách sử dụng Q learning và có các trạng thái / hành động trò chơi được lưu trữ trong một bảng, nhưng đối với bảng 15 * 15, các trạng thái trò chơi có thể trở nên quá lớn khi thực hiện dự án này.

Câu hỏi của tôi là, tôi nên sử dụng mạng lưới thần kinh hoặc thuật toán di truyền cho vấn đề này? Và cụ thể hơn, tôi nên thực hiện điều này như thế nào?


2
Chào mừng bạn đến với AI! Câu hỏi tuyệt vời imho.
DukeZhou

Câu trả lời:


7

Đối với gomoku, có vẻ hơi quá mức khi sử dụng mạng thần kinh hoặc thuật toán di truyền vì cả hai mất một thời gian và thường xuyên hơn không, đừng đi theo cách bạn muốn. Cây trò chơi gomoku khá lớn, nhưng bạn có thể có được một AI tốt từ minimax, cắt tỉa cây trò chơi và chức năng heuristic tốt (bao gồm đếm một nửa và đầy đủ 2, 3 giây, 4 giây, v.v.) trái ngược với ánh xạ ra toàn bộ không gian.

Nếu bạn không quen với việc cắt tỉa alpha beta và minimax, hãy xem https://www.cs.cornell.edu/cifts/cs312/2002sp/lectures/rec21.htm

Nếu bạn thực sự muốn sử dụng mạng lưới thần kinh hoặc thuật toán di truyền, bạn có thể cho trải nghiệm học tập. Về mạng lưới thần kinh, một cách để làm điều đó là như sau:

  • Xác định hàm heuristic nhận đầu vào trạng thái bảng (chuỗi 0,1,2 cho trống, đen, trắng) và xuất giá trị 'độ tốt' của trạng thái bảng. Mạng lưới thần kinh là chức năng heuristic của chúng tôi.
  • Giả sử rằng các nước đi trong các trò chơi này là tối ưu, hãy tìm ra sự khác biệt giữa nước đi tốt nhất hiện tại (theo thông số hiện tại của bạn) và những gì di chuyển dữ liệu của bạn nói là tốt nhất. Đây là cách chúng tôi xác định chức năng lỗi của chúng tôi! Do đó, bạn đang giảm thiểu sự khác biệt này để những gì di chuyển mạng thần kinh của bạn nói là mạnh nhất là lý tưởng mà dữ liệu trò chơi của bạn nói là mạnh nhất (Tối ưu hóa chức năng lỗi này có thể được thực hiện thông qua thuật toán truyền ngược hoặc thuật toán di truyền).
  • Lý tưởng nhất là vào thời điểm này, giờ đây bạn có thể sử dụng chức năng đánh giá dựa trên mạng thần kinh ('mạnh') của mình cho các đánh giá di chuyển cây trò chơi của bạn thay vì các phương pháp phỏng đoán được mã hóa cứng.

Tất nhiên đây chỉ là một cách, và bạn sẽ cần tìm dữ liệu trò chơi trước.

Một lưu ý phụ, áp dụng thuật toán di truyền có thể xảy ra theo một số cách, chẳng hạn như tối ưu hóa tham số trong mạng thần kinh như đã đề cập ở trên hoặc tìm kiếm cây trò chơi để đảm bảo bạn hiểu rõ cách bạn xác định cài đặt vấn đề với nó! Điều tương tự cũng áp dụng cho các cách khác để áp dụng một mạng lưới thần kinh.

Cuối cùng, thật hữu ích khi biết gomuku đã được giải quyết. Xem /programming/6952607/ai-strargety-for-eimoku-a-variation-of-tic-tac-toe để biết suy nghĩ và ý tưởng của người khác.


2
Điểm hay về gomoku như một trò chơi đã được giải quyết. Điều này giúp dễ dàng xác thực sức mạnh của AI (nghĩa là nó giải quyết trò chơi và thể hiện lối chơi hoàn hảo, hoặc nó chỉ chơi tối ưu hơn đối thủ, như trong trường hợp của AlphaGo.)
DukeZhou
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.