+ 2 đối thủ luân phiên đi, 1 đối thủ Min sẽ đi các nước nhằm cực tiểu hóa giá trị của mình, đối thủ kia Max sẽ đi các nước nhằm cực đại hóa giá trị của mình... Alpha-beta cắt tỉa- MiniMa
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
Trí tuệ nhân tạo
Xây dựng game cờ vua
5 Đào Văn Khang MSSV: 20101694
6 Đoàn Đại Nghĩa MSSV: 20101932
Trang 2Game Cờ Vua
Trang 4Thiết kế chương trình – Biểu đồ Usecase
Trang 5Cấu trúc chương trình
Dữ liệu
Giải thuật
Trang 6Dữ liệu
+ Quân cờ: Vị trí (Coord), Trắng / Đen,
Loại (Tốt, Xe, …),các giá trị phục vụ cho hàm lượng giá
+ Slot (Ô bàn cờ): Quân cờ và vị trí
+ Bàn cờ: Quân cờ[], Slot[][], Bảng bít
(Bảng 8 * 8 các giá trị bit (0 / 1) cho biết slot có thể ăn (di chuyển tới) hay không)
Trang 7Giải thuật
Minimax
Alpha – Beta cắt tỉa
Trang 8+ Thuật toán được áp dụng trong các trò chơi đối kháng.
+ 2 đối thủ luân phiên đi, 1 đối thủ (Min) sẽ đi các nước nhằm cực tiểu hóa giá trị của mình, đối thủ kia (Max) sẽ đi các nước nhằm cực đại hóa giá trị của mình
Trang 9Alpha-beta cắt tỉa
- MiniMax: Sẽ phải duyệt qua tất cả các bàn cờ có thể
sinh ra Bất khả thi.
- Alpha- Beta cắt tỉa là mở rộng của Minimax
- Ý tưởng của tìm kiếm Alpha-Beta cắt tỉa :
đối với giá trị đã có thì không cần xét tới nhánh tìm kiếm đó nữa
+ Việc loại bỏ một nhánh tìm kiếm tồi sẽ không
ảnh hưởng tới kết quả cuối cùng của việc tìm kiếm
Trang 10Ví dụ Alpha – Beta cắt tỉa
Trang 14• Nhóm sẽ xây dựng 3 yếu tố 3 chiến lược
định giá hàm lượng giá khác nhau
Trang 15Chiến lược 1: Định lượng giá trị cho quân cờ
• Mỗi một quân cở trên bàn cờ sẽ có một giá trị khác nhau, phụ
thuộc mức độ quan trọng của quân đó trên bàn cờ
• 2 bên sẽ có giá trị quân cờ đối ngược nhau:
- Bên trắng sẽ mang giá trị quân cờ dương
- Bên đen sẽ mang gia trị quân cờ âm
• Việc định trị của bàn cờ sẽ là tổng của tất cả giá trị các quân cờ còn tồn tại trên bàn cờ
• Mục đích của chiến lược:
- Giúp máy có xu hướng ăn quân địch hoặc đổi quân có giá trị lớn hơn nhằm tạo ưu thế hơn
- Giúp máy phong thủ, chạy quân khi bị nguy hiểm
Trang 16Chiến lược 1: Định lượng giá trị cho quân cờ
= -100 Quân đen đang chiếm ưu thế hơn.
Trang 17Chiến lược 2: Định lượng mức độ quản lý bàn cờ
• Ta sẽ đưa vào giá trị cho các nước đi có thể của quân cờ nhằm
“khuyến khích” quân cờ đi vào vị trí có khả năng quản lý càng
Trang 18Chiến lược 2: Định lượng mức độ quản lý bàn cờ
Ví dụ:
1 trạng thái bàn cờ.
Giá trị hàm lượng giá
Evaluation =
∑ Giá trị quân trắng + ∑ Giá trị quân đen +
∑ Số nước đi có thể * Hệ số trên mỗi
bước đi của quân trắng +
∑ Số nước đi có thể * Hệ số trên mỗi
bước đi của quân đen
Trang 19Chiến lược 3: Chống đi vào vùng nguy hiểm
• Vấn đề chiến lược quản lý bàn cờ: Quân cờ sẽ đi vào vùng có thể quản lý bàn cờ tốt hơn bất chấp nước đó dẫn đến việc bị bắt
• Giải quyết: Kiểm tra trạng thái của nước đi, nếu nước đi đó dẫn đến việc bị ăn thì sẽ cộng thêm một lượng điểm trái dấu tương ứng với nó
Trang 20Chiến lược 3: Chống đi vào vùng nguy hiểm
Ví dụ:
1 trạng thái bàn cờ
Giá trị hàm lượng giá
Evaluation =
∑ Giá trị quân trắng + ∑ Giá trị quân đen +
∑ Số nước đi có thể * Hệ số trên mỗi
bước đi của quân trắng +
∑ Số nước đi có thể * Hệ số trên mỗi
bước đi của quân đen +
∑ Điểm trừ cho quân trắng +
∑ Điểm trừ cho quân đen
Trang 21Kết quả đạt được
• Bảng so sánh các giá trị
Minimax và Alpha - Beta cắt tỉa
• Mô phỏng thành công trò chơi,
máy có AI khá thông minh
Trang 22Hướng phát triển
AI thông minh hơn Giải quyết một vài trường hợp: Phong hậu,
…
Trang 23Demo chương trình!