Tải bản đầy đủ (.pptx) (21 trang)

Chương 4 - Tìm Kiếm Có Đối Thủ pot

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (389.97 KB, 21 trang )

TÌM KiẾM CÓ ĐỐI THỦ
Trí Tuệ Nhân Tạo (Lớp thứ 4, tiết 7)
Chương 4:
Nhóm thực hiện:
1. Nguyễn Tấn Chữ - 09110010
2. Nguyễn Nhật Minh Trí - 09110133
3. Đinh Thành Vương - 09110159
4.1 VẤN ĐỀ CHƠI CỜ
Trong chương này ta chỉ quan tâm nghiên cứu các trò chơi có hai người tham
gia vd: cờ tướng, ca rô,…
Một người chơi gọi là MAX, đối thủ của MAX là MIN.
*** Mục tiêu: nghiên cứu chiến lượt chọn nước đi cho MAX (MAX là máy tính
chơi)
Chơi cờ được xem là tìm kiếm các không gian trạng thái, mỗi trạng thái là một
tình thế.

Trạng thái ban đầu: sự xắp xếp các quân cờ lúc bắt đầu.

Các toán tử là các nước đi hợp lệ.

Trạng thái kết thúc là tình thế dừng cuộc chơi.

Một hàm kết thúc (payoff function) ứng với mỗi trạng thái kết thúc với một
giá trị nào đó.
EX
4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ
4.2.1. Cây trò chơi.
Để thuận tiện cho việc nghiên cứu các chiến lượt chọn
nước đi, ta biểu diển không gian trạng thái dưới dạng cây trò
chơi.
Cây trò chơi được biểu diễn dưới dạng:



Gốc của cây ứng với trạng thái ban đầu.

Đỉnh ứng với trạng thái mà MAX (MIN) đưa ra nước đi là
MAX (MIN).

Các lá cây ứng với trạng thái kết thúc.
Nếu đặt một đỉnh là MAX (MIN) ứng với trạng thái u, thì
các đỉnh con của nó là tất cả các đỉnh biểu diễn trạng thái
v, v nhận được từ u do MAX (MIN) thực hiện nướ đi hợp lệ
nào đó.
 Trên cùng một mức của cây các đỉnh đều là MAX hoặc
đều là MIN.
4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ
4.2.1. Cây trò chơi.
*** Ví dụ: Trò chơi DODGEM:
Giới thiệu:

Đối thủ MAX cầm 2 quân trắng. Đối thủ MIN cầm 2 quân đen.

Quân cờ được xếp như hình bên.

Cách đi:

Quân đen có thể đi tới bên phải,
ở trên hoặc ở dưới.

Quân trắng có thể đi tới bên phải,
bên trái hoặc ở trên.


Các trường hợp kết thúc:

Đưa quân của mình ra khỏi bàn cờ trước:

Nếu quân đen ở cột ngoài cùng bên phải có thể ra khỏi bàn cờ.

Nếu quân trăng ở hàng trên cùng có thể ra khỏi bàn cờ.

Tạo ra tình thế đối phương không đi được.
4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ
4.2.1. Cây trò chơi.
*** Ví dụ: Trò chơi DODGEM:
Ta có cây trò chơi được biểu diễn như hình:
4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ
4.2.2. Hàm đánh giá.
Hàm đánh giá eval ứng với mỗi trạng thái u của trò chơi với
một giá trị số eval(u).
Giá trị này đánh giá độ lợi thế của trạng thái u.

Trạng thái u càng thuận lợi cho MAX  eval(u) là số dương
càng lớn.

Trạng thái u càng thuận lợi cho MIN  eval(u) là số âm
càng nhỏ.

eval(u) = 0: trạng thái u không thuận lợi cả MAX và MIN.

eval(u) = +∞ nếu u là trạng thái thắng cho MAX

eval(u) = - ∞ nếu u là trạng thái thắng cho MIN

4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ
4.2.2. Hàm đánh giá.
Chất lượng của một chương trình chơi cờ phụ thuộc rất
nhiều vào hàm đánh giá.
Thiết kế một hàm đánh giá tốt là một việc rất khó, đòi
hỏi phải quan tâm nhiều nhân tố: các quân còn lại của hai
bên, sự bố trí của các quân cờ, …
*** Ví dụ: trò chơi tic-tac-toe:
Chỉ số eval có thể tính như sau:
eval(u) = (số dòng, số cột, số đường chéo còn mở đối với MAX)
= (số dòng, số cột, số đường chéo còn mở đối với MIN)
4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ
4.2.2. Hàm đánh giá.
*** Ví dụ:trò chơi tic-tac-toe:
eval(u) = 6 – 5 = 1
X
O
X
O
Số dòng, số cột, số đường chéo
còn mở lối đối với MIN là 5
Số dòng, số cột, số đường chéo
còn mở lối đối với MAXlà 6
4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ
4.2.2. Hàm đánh giá.
*** Ví dụ 2: trở lại trò chơi Dodgem.
Mỗi quân trắng và quân đen ở trên một vị trí trên bàn cờ
được cho một giá trị như hình sau:
Giá trị quân trắng giá trị quân đen
4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ

4.2.2. Hàm đánh giá.
*** Ví dụ 2: Trò chơi Dodgem.
Ngoài ra:
eval(u) = (giá trị các quân trắng + giá trị các quân đen + điểm
cản trực tiếp hay gián tiếp do vị trí quân trắng quân đen tạo ra)
Trắng cản trực tiếp
đen được thêm 40
Trắng cản gián tiếp
đen được thêm 30
Đen cản trực tiếp
trắng được thêm -40
Đen cản gián tiếp
trắng được thêm -30
4.2 CÂY TRÒ CHƠI VÀ HÀM ĐÁNH GIÁ
4.2.2. Hàm đánh giá.
*** Ví dụ 2: trò chơi Dodgem.
Ta thử tính giá trị eval(u) cho hình dưới đây:
Hình 1 Hình 2
Hình 1: eval(u) = 5+10+40+30-0-10 = 75
Hình 2: eval(u) = 20+10+30-0-25-40 = -5
4.3 CHIẾN LƯỢC MINIMAX
Quá trình chơi cờ là quá trình Max và Min thay phiên nhau đưa ra
quyết định thực hiện một trong các nước đi hợp lệ. Trên cây trò chơi quá
trình đó sẽ tạo ra đường đi từ gốc tới lá.
Giả sử Max cần tìm nước đi tại đỉnh u, Nước tối ưu cho Max là nước
đi dần tới đỉnh con của v là đỉnh tốt nhất(v là đỉnh con(đỉnh Min) của
u)cho Max trong số các đỉnh con của u.Giả thiết rằng đến lượt đối thủ
chọn nước đi từ v, Min cũng sẽ chọn nước đi tốt nhất cho mình.
 Như vậy, để chọn nước đi tối u cho Max tại u, ta cần xác định giá
trị của cây trò chơi tại gốc u.


Giá trị của các đỉnh lá(trạng thái kết thúc) là giá trị của hàm
kết thúc.

Đỉnh có giá trị càng lớn càng tốt cho trắng.

Để xác định giá trị của các đỉnh ta bắt đầu từ mức thấp nhất
lên gốc.
4.3 CHIẾN LƯỢC MINIMAX
Ví dụ:
Xét cây trò chơi trong hình bên:
- Gốc a là đỉnh trắng.
- Giá trị của các đỉnh là số ghi
cạnh mỗi đỉnh.
Đỉnh I là Trắng, nên giá trị của
nó là max(3,-2) = 3, đỉnh là
đen nên giá trị của nó là min
(2,3,4) = 2.
Việc gán giá trị cho các đỉnh được thực hiện bởi các hàm đệ
qui MaxVal va MinVal. MaxVal xác định cho các đỉnh trắng,
MinVal xác định giá trị cho các đỉnh Đen.
4.3 CHIẾN LƯỢC MINIMAX
Mã giả:
//hàm xác định giá trị của các đỉnh Max
Function MaxVal(u)
Begin
If u là đỉnh kết thúc then MaxVal(u)f(u)
Else MaxVal  max{MinVal(v)|v là đỉnh con của u}
End;
//hàm xác định giá trị của các đỉnh Min

Function MinVal(u)
Begin
If u là đỉnh kết thúc then MinVal(u)f(u)
Else MinVal  min{MaxVal(v)|v là đỉnh con của u}
End;
F(u) là giá trị của hàm kết cuộc tại đỉnh u.
4.3 CHIẾN LƯỢC MINIMAX
Mã giả:
//hàm xác định nước đi cho Max tại u
Procedure Minimax(u,v)
Begin
Valvocuc;
For w là đỉnh con của u do
If val<=MinVal(w) then
{valMinVal(w); vw}
End;
Thủ tục chọn nước đi trên gọi là chiến lược Minimax, bởi vì Max đã
chọn được nước đi dẫn tới đỉnh con có giá trị là Max của các đỉnh con, và
Đen đáp lại bằng nước đi tới tỉnh có giá trị là Min của các giá trị các đỉnh
con.
4.4 PHƯƠNG PHÁP CẮT CỤT ALPHA - BETA
Khi đánh giá đỉnh u tới độ sâu h, thuật toán Minimax đòi
hỏi ta phải đánh giá tất cả các đỉnh của cây gốc u tới độ sâu
h. Dùng phương pháp cắt cụt alpha- beta để giảm bớt số đỉnh
cần đánh giá mà không ảnh hưởng đến sự đánh giá đỉnh u.
Ý tưởng của phương pháp:
* Chiến lược tìm kiếm Minimax là tìm kiếm theo chiều sâu.
Giả sử trong quá trình tìm kiếm ta đi xuống đỉnh a là đỉnh
MAX, đỉnh a có anh em là v đã đc dánh giá. Giả sử cha của a
là b và b có anh em là u đã đc đánh giá, và giả sử cha của b

là c, Khi đó ta có giá trị đỉnh c – đỉnh MAX ít nhất là gía trị
của đỉnh u, giá trị của đỉnh b – MIN nhiều nhất là v. Do đó
nếu evalue(u)> evalue(v), ta không cần đi xuống để đánh giá
đỉnh a nữa mà vẫn không ảnh hưởng đến đánh giá đỉnh c. Nói
cách khác là cắt bỏ gốc a.
4.4 PHƯƠNG PHÁP CẮT CỤT ALPHA - BETA
4.4 PHƯƠNG PHÁP CẮT CỤT ALPHA - BETA
4.4 PHƯƠNG PHÁP CẮT CỤT ALPHA - BETA
4.4 PHƯƠNG PHÁP CẮT CỤT ALPHA - BETA

×