Bài TÌM KIẾM CĨ ĐỐI THỦ c om 4.1 Vấn đề chơi cờ 4.1.1 Trò chơi hai người Hai người chơi thay phiên đưa nước tuân theo luật đó, luật cho hai người vàhai người chơi biết thông tin đầy đủ tình trị chơi Ta cần tìm kiếm nước tốt nhấtcho máysao cho sau số nước máy giành phần thắng Việc tìm kiếm phức tạp máy khơngbiết người chơi nước tương lai Gỉa sử máy tính cầm quân trắngTrắng,người chơi cầm quân Đen ta gọi máy tính trắng (hay Max), người chơi gọi đen (hay Min) Vấn đề chơi cờ xem vấn đề tìm kiếm khơng giantrạng thái Mỗi trạng thái tình (sự bố trí quân hai bên trênbàn cờ) Trạng thái ban đầu xếp quân cờ hai bên lúc bắtđầu chơi Các toán tử nước hợp lệ Các trạng thái kết thúc tình mà chơi dừng, thườngđược xác định số điều kiện dừng Như vấn đề Trắng là, tìm dãy nước cho xen kẽ vớicác nước Đen tạo thành đường từ trạng thái ban đầu tới trạngthái kết thúc thắng cho Trắng th an co ng 4.1.2 Cây trò chơi Gọi đỉnh ứng với trạng thái mà Trắng (Đen) đưa nước làđỉnh Trắng (Đen) Cây trò chơi xây dựng sau Gốc ứng với trạng tháiban đầu,các ứng với trạngthái kết thúc Nếu đỉnh Trắng (Đen) ứng với trạng thái u, đỉnh tất đỉnh biểu diễn trạng thái v, v nhận từ u Trắng (Đen) thực nước hợp lệ Do đó, mức củacây đỉnh Trắng Đen Quá trình chơi cờ trình Trắng Đen thay phiên đưa định, thực số nước hợp lệ Trên trị chơi, q trình tạo đường từ gốc tới cu u du on g Ví dụ trị chơi Dodgen Có hai qn Trắng hai quân Đen, ban đầu xếp vào bàn cờ 3*3 (hình 4.1) Qn Đen tới ô trống bên phải, Quân Trắngcó thể tới trống bên trái, bên phải, Quân Đen cột bên phải khỏi bàn cờ, quân Trắng hàng khỏi bàn cờ Ai đưa hai quân khỏi bàn cờ trước thắng, tạo tình mà đối phương khơng thắng Giả sử Đen trước, ta có câytrị chơi biểu diễn hình 4.2 Hình 4.1: Trị chơi Dodgem Hình 4.2: Cây trị chơi Dodgem với đen trước 4.2 Các thuật tốn tìm kiếm trị chơi o Thuật tốn MINIMAX o Thuật tốn ALPHA – BETA cutoff CuuDuongThanCong.com https://fb.com/tailieudientucntt 4.2.1 Thuật toán MINIMAX Hàm đánh giá xây dựng cho đỉnh có giá trị lớn (nhỏ) đỉnh tốt cho Trắng (Đen).Cần giả thiết Trắng (Đen) chọn nước tốt cho Trắng (Đen) Khi chọn nước cho đỉnh Trắng (Đen) đỉnh có giá trị lớn (nhỏ nhất) số đỉnh Trắng (Đen) Thuật toán gọi Minimax Trắng chọn nước ứng tới đỉnh có giá trị max giá trị đỉnh con, Đen đáp lại nước ứng với đỉnh có giá trị giá trị đỉnh Thuật toán Minimax thuật tốn tìm kiếm theo độ sâu Để tính giá trị đỉnh u ta xây dựng trị chơi gốc u có chiều cao d(d ta chọn d lớn máy chơi hay).Các đỉnh mức d đỉnh kết thúc tính giá trị hàm đánh giá Từ đỉnh mức d biết giá trị, tính giá trị đỉnh mức d-1 theo nguyên tắc đỉnh Trắng (Đen) có giá trị giá trị lớn (nhỏ nhất) giá trị đỉnh Lặp lại việc tính giá trị cho đỉnh mức d-2,…,0 đến tính giá trị đỉnh gốc u mức ngừng om Ví dụ: Giả sử cần tính giá trị cho đỉnh a đỉnh trắng với độ sâu 3, ta xây dựng trị chơi hình 4.3 Khi xây dựng tới mức 3, ta tính giá trị cho đỉnh k,l,m,p,q mức hàm đánh giá, giả sử ta có: k=5,l=2,m=-3,p=3,q=-2 Trong trình xây dựng mà gặp đỉnh kết thúc đánh giá ln khơng phát triển tiếp, ví dụ đỉnh e, g, h,j đỉnh kết thúc đánh giá e=-3,g=-1, h=2, j=4 ng c Sau xây dựng cây, ta tính giá trị cho đỉnh mức 2, tính giá trị cho đỉnh mức 1, đến mức 0,như tính giá trị đỉnh a cu u du on g th an co Cách tính giá trị cho đỉnh sau:Do đỉnh i Trắng, nên giá trị max(3,-2) = 3, đỉnh d đỉnh Đen, nên giá trị min(2, 3, 4) = 2, vv…Sau tính a=2 Hình 4.3: Tính giá trị cho đỉnh a với độ sâu d=3 Thuật tốn MiniMax Hàm tính giá trị đỉnh Trắng u với độ sâu d, f(u) giá trị hàm đánh giá đỉnh u int MaxVal(u,d){ int val=-∞; if (d=0 u đỉnh kết thúc) val=f(u); else { for(mỗi đỉnh v đỉnh đỉnh u){ int temp=MinVal(v,d-1); if(temp>val){ val=temp; } } } return val; } CuuDuongThanCong.com https://fb.com/tailieudientucntt .c ng u du Nếu hàm đánh giá, đánh giá khơng xác, hướng dẫn máy tính tới trạng thái xem tốt, thực tếlại bất lợi cho máy Thiết kế hàm đánh giá tốt việc khó, đòi hỏita phải quan tâm đến nhiều yếu tố quân lại hai bên, bố trícủa qn đó, hàm đánh giá xác thườngcần nhiềuthời gian tính tốn, mà trị chơi lại bị giới hạn thời gian phải đưa ranước Do ta thường thỏa hiệp xây dựng hàm đánh giá tương đối xác thực thi tương đối nhanh cu on g th an co Hàm tìm nước điv cho đỉnh Trắng u với độ sâu d void MiniMax(u, v, d){ val = -∞; for (mỗi w đỉnh u){ int tempval=MinVal(w,d); if (tempval>val) {val = tempval; v = w;} } } Hàm tìm nước v cho đỉnh Đen u với độ sâu d void MiniMax(u, v, d){ val = +∞; for (mỗi w đỉnh u){ int tempval =MaxVal(w,d); if (tempval= β) break; // Cắt bỏ gốc v lại } val=α; } return val; cu u du on g th an co ng c om } Hàm tính giá trị đỉnh Đen u với độ sâu d int MinVal(u,d, α, β){// α, β truyền theo kiểu tham trị int val; if (d=0 u đỉnh kết thúc) val=f(u); else { for(mỗi đỉnh v đỉnh đỉnh u){ int tempval=MaxVal(v,d-1,α, β); if(tempval= β) break; // Cắt bỏ gốc v lại } val=β; } return val; } Hàm tìm nước v cho đỉnh Trắng u với độ sâu d void AlphaBeta (u, v, d){ α = -∞; β = ∞; for (mỗi w đỉnh u){ int tempval =MinVal(w,d,α, β); if (tempval>α) {α = tempval; v = w;} } } Hàm tìm nước v cho đỉnh Đen u với độ sâu d void AlphaBeta (u, v, d){ α = -∞; β = ∞; for (mỗi w đỉnh u){ int tempval =MaxVal(w,d,α, β); if (tempvalCắt 11,12 -∞,∞ -7,∞ 5,∞ -∞,5 10,-3 -∞,-3 =>Cắt 16,17 -3, ∞ 12,10 -3,10 =>Cắt 20 10,∞ -7, ∞ om -∞,∞ c Từ bảng ta tính đỉnh trắng có giá trị 10 α, β -∞,∞ -∞,8 -∞,∞ -7, ∞ 10 -∞,8 -3, ∞ 8, ∞ 12 g th 10,8 =>Cắt 8,8 -∞,8 =>Cắt 11,12 -7 -∞,∞ -∞,-7 -3 -7, ∞ -3, ∞ -3,10 -3,8 10 -∞,8 4.3 Bài tập -∞,8 13 -7 -∞,∞ 14 15 16 17 18 19 20 10 -3, ∞ 15 -3,10 -3,10 -5 12 18 -∞,-7 cu u du 10 17 on 11 an α, β α, β Đỉnh Giá trị α, β co Đỉnh Giá trị α, β ng Nếu đỉnh đỉnh đen, áp dụng thuật toán alpha betacutoff ta tính đỉnh có giá trị theo bảng sau: 1/ Cài đặt trò chơi Tic-tac-toe Minimax, Cutoff Anpha_Beta 2/ Cài đặt trò chơi Dodgem Minimax, Cutoff Alpha_Beta - Hết - CuuDuongThanCong.com https://fb.com/tailieudientucntt ... vị trí bàn cờ cho giá trị tương ứng bảng hình 4. 4 Nếu quân Trắng cản trực tiếp quân Đen, thêm 40 điểm, cản gián tiếp thêm 30 điểm (hình 4. 5) Tương tự, quân Đen cản trực tiếp qn Trắng thêm -40 ... này, ta xét đến vị trí quân mối tương quan quân.Áp dụng qui tắc trên, ta tính giá trị hai trạng thái hình 4. 6 75, -5 CuuDuongThanCong.com https://fb.com/tailieudientucntt Hình 4. 4: Đánh giá qn cờ... đỉnh trắng có giá trị 10 α, β -∞,∞ -∞,8 -∞,∞ -7, ∞ 10 -∞,8 -3, ∞ 8, ∞ 12 g th 10,8 =>Cắt 8,8 -∞,8 =>Cắt 11,12 -7 -∞,∞ -∞,-7 -3 -7, ∞ -3, ∞ -3,10 -3,8 10 -∞,8 4. 3 Bài tập -∞,8 13 -7 -∞,∞ 14 15 16