Câu hỏi này là về cách tiếp cận đối thủ máy tính mà tôi đã tạo và hiện đang được sử dụng hoặc dự định sẽ được sử dụng trong một số trò chơi trên máy tính.
Lý lịch
Năm ngoái, khi cố gắng cải thiện đối thủ máy tính cho một trò chơi có tên là "Minesweeper Flag" (mô tả ngắn: Phiên bản nhiều người chơi theo lượt của Minesweeper, nơi bạn phải lấy nhiều mìn hơn đối thủ của mình) , tôi đã thay đổi mạnh mẽ cách thức hoạt động của thuật toán của tôi . Thay vì sử dụng một cách tiếp cận như if-other-if-other, tôi đang sử dụng một bộ "người ghi bàn" với các trọng số được chỉ định để xác định cách di chuyển tốt nhất là gì.
Bạn có thể nghĩ rằng đối với một trò chơi như Minesweeper Flag, chỉ cần thực hiện các động tác mang lại cho bạn xác suất lấy mỏ cao nhất, nhưng nó không đơn giản. Việc di chuyển máy tính sẽ thực hiện thường phụ thuộc vào một số tính năng cho di chuyển cụ thể đó trong trạng thái trò chơi hiện tại. Ví dụ về các tính năng:
- Xác suất của động thái này ghi điểm của tôi là gì?
- Xác suất để tiết lộ bất cứ điều gì cho đối thủ của tôi ở đây là gì?
Mô tả hệ thống
Hệ thống về cơ bản hoạt động như thế này:
- "Pre-scorers": Một số phân tích trước được thực hiện cho trạng thái trò chơi hiện tại (theo thuật ngữ Minesweeper Flag, đây thường là: Tính toán tất cả các xác suất)
- "Người ghi bàn": Một nhóm người ghi bàn thông thường được yêu cầu xác định điểm số cho mỗi lần di chuyển có thể, mỗi người ghi bàn áp dụng điểm số theo tiêu chí riêng của mình. Những người ghi bàn có thể kiểm tra kết quả phân tích trước đã được thực hiện.
- Điểm số được tính trong bước trên được tổng hợp lại với nhau và được đặt thành điểm số cho một lần di chuyển.
- Các bước di chuyển được sắp xếp theo điểm số của chúng và được xếp hạng sao cho tất cả các nước đi có cùng số điểm đều có cùng thứ hạng.
- "Người ghi điểm": Kết quả của những điều trên có thể được gửi đến "Người ghi điểm" có khả năng sửa đổi điểm số của bất kỳ trường nào theo bất kỳ cách nào họ muốn, theo quy tắc riêng của người đăng bài.
Khi kết hợp một loạt các người ghi bàn trước, người ghi bàn (với trọng số của họ) và người ghi bàn sau, nó trở thành cái mà tôi gọi là cấu hình điểm số .
Kết quả ví dụ
Đây là một ví dụ về điểm số đã được áp dụng cho Minesweeper Flag. Đây là bản đồ đã được ghi:
Và đây là đầu ra của một cấu hình điểm thực tế. Nó đang hiển thị thứ hạng của các nước đi có thể, trong đó 1 là thứ hạng tốt nhất và được đánh dấu màu trắng:
Nhờ có mã được viết rất linh hoạt, cách tiếp cận AI này cũng có thể được chèn vào các trò chơi khác.
Ưu điểm và nhược điểm
Dưới đây là một số ưu điểm và nhược điểm của hệ thống này mà tôi có thể nghĩ về bản thân
Ưu điểm
- Thật dễ dàng để tạo ra rất nhiều cấu hình khác nhau cho AI.
- Có thể sử dụng với Thuật toán di truyền: Mỗi người ghi bàn có trọng lượng liên quan, trọng lượng có thể trở thành gen.
- Sử dụng một số công cụ, có thể kiểm tra lý do tại sao một động thái cụ thể được thực hiện và những người ghi bàn nào chịu trách nhiệm chính cho động thái đó
- Sử dụng các công cụ, có thể tạo một bản đồ về tổng điểm / thứ hạng của các bước di chuyển có thể (như ảnh chụp màn hình ở trên)
- Bằng cách áp dụng điểm số vào cách con người chơi, có thể tạo ra một "#AI_Mirror" để cố gắng thực hiện các động tác mà nó nghĩ rằng con người sẽ thực hiện
Nhược điểm
- Có thể cực kỳ khó khăn để điều chỉnh cấu hình điểm "chính xác", để làm cho AI chơi tốt nhất có thể.
Câu hỏi
Là hệ thống tôi đã xây dựng ở đây được biết đến rộng rãi trong thế giới AI? Nó sẽ được gọi là gì trong thuật ngữ AI thực sự?
Liệu cách tiếp cận này có ý nghĩa hay có một cách tiếp cận khác mà bạn muốn giới thiệu?
Những cách nào có thể làm cho quá trình điều chỉnh cấu hình điểm dễ dàng hơn?
Về câu hỏi cuối cùng, tôi nhận thức được khả năng sử dụng thuật toán di truyền, tôi cũng nhận thức được nhẹ về SARSA (và tôi nghĩ rằng những người ghi điểm của tôi giống với mô tả các tính năng của trang web với trọng số, nhưng từ hiểu biết của tôi đó không phải là chính xác những gì tôi đã tạo ra đây). Tôi nghĩ rằng một vấn đề với SARSA là bạn không biết phần thưởng cho đến khi trò chơi kết thúc, nước đi tốt nhất thường là một nước đi không mang lại phần thưởng (của tôi). Cơ hội chiến thắng hiện tại của bạn phụ thuộc vào cả điểm số hiện tại (bạn đã lấy bao nhiêu quả mìn) và bản đồ hiện tại trông như thế nào.
Câu hỏi này ban đầu được đăng trên một trang web Trí tuệ nhân tạo hiện không còn tồn tại .
Mã (Java) được sử dụng cho phương pháp này hiện đã được đăng tại Đánh giá mã .