Khám niệm về biểu diễn tri thức Biểu diễn tri thức Knowledge Representation là sự diễn đạt và thể hiện của trithức dưới những dạng thích hợp để có thể tổ chức một hệ cơ sở tri thức của h
Trang 1-BÀI THU HOẠCH MÔN HỌC BIỂU DIỄN TRI THỨC VÀ ỨNG DỤNG
ĐỀ TÀICÁC PHƯƠNG PHÁP BIỂU DIỄN TRI THỨC
VÀ ỨNG DỤNG VÀO TRÒ CHƠI CỜ CARO
GVHD: PGS.TS Đỗ Văn Nhơn
Học viên thực hiện: Huỳnh Thị Mỹ Hồng
Mã số học viên: CH1101086
Trang 3MỞ ĐẦU 1
Chương 1: TỔNG QUAN VỀ BIỂU DIỄN TRI THỨC VÀ GIẢI TOÁN DỰA TRÊN TRI THỨC 2
1.1 Khái niệm tri thức 2
1.2 Khám niệm về biểu diễn tri thức 2
1.3 Các dạng tri thức 3
Chương 2: CẤU TRÚC CỦA HỆ GIẢI TOÁN DỰA TRÊN TRI THỨC 4
2.1 Cấu trúc hệ thống 4
2.2 Vấn đề biểu diễn tri thức 5
Chương 3: PHƯƠNG PHÁP BIỂU DIỄN TRI THỨC 6
3.1 Các phương pháp biểu diễn tri thức 6
3.2 Suy diễn tự động 7
Chương 4: TỔNG QUAN VỀ CÁC CHIẾN LƯỢC HEURISTIC 9
4.1 Khái niệm Heuristic 9
4.2 Các chiến lược tìm kiếm Heuristic (tìm kiếm có đối thủ) 10
4.3 Hàm đánh giá và các phương pháp đánh giá kinh nghiệm trong các chiến lược tìm kiếm Heuristic 19
Chương 5: TÌM HIỂU VỀ TRÒ CHƠI CỜ CARO VÀ ỨNG DỤNG CÁC CHIẾN LƯỢC HEURISTIC VÀO TRÒ CHƠI CỜ CARO 21
5.1 Giới thiệu về trò chơi cờ caro 21
5.2 Các kinh nghiệm trong trò chơi cờ caro 22
5.3 Ứng dụng các chiến lược tìm kiếm Heuristic cho trò chơi cờ caro 23
Chương 6: Ý TƯỞNG VÀ CHƯƠNG TRÌNH TRÒ CHƠI CỜ CARO 26
6.1 Ý tưởng cho chương trình trò chơi cờ caro 26
6.2 Giới thiệu về chương trình trò chơi cờ caro 31
TÀI LIỆU THAM KHẢO 34
Trang 4MỞ ĐẦU
Trong khoa học trí tuệ nhân tạo, mô hình phương pháp biểu diễn tri thức là mộtbước ngoặc quan trọng trong việc thiết kế các hệ cơ sở tri thức và các hệ chuyên gia
Ngày nay, có nhiều phương pháp biểu diễn tri thức đã được đề xuất và ứng dụng Tri
thức là một hệ chuyên gia được biểu diễn theo nhiều phương pháp khác nhau Tùy theo
hệ chuyên gia người ta sử dụng một hoặc đồng thời cả nhiều phương pháp Mục tiêuchính biểu diễn tri thức trong máy tính là phục vụ cho việc thu nhận tri thức vào máytính, truy xuất tri thức và thực hiện các phép suy luận dựa trên những tri thức đã lưu trữ.Tuy có nhiều phương pháp biểu diễn tri thức tùy theo từng trường hợp, ta nên chọnphương pháp nào cho phù hợp
Biểu diễn tri thức được ứng dụng nhiều trong các bài toán thực tế, nó có đến hàngtrăm giải thuật Trong bài tiểu luận này em xin trình bày sơ lược về các phương pháp biểudiễn tri thức và ứng dụng nó để giải quyết bài toán chơi cờ caro Qua đây, em xin gửi lời
cảm ơn sâu sắc đến PGS.TS Đỗ Văn Nhơn, người đã tận tâm truyền đạt những kiến
thức nền tảng cơ bản cho chúng em về môn học “Biểu diễn tri thức và ứng dụng” Bêncạnh đó cũng không thể không nhắc đến công lao trợ giúp không mệt mỏi của các chuyêngia cố vấn qua mạng thuộc Trung tâm phát triển CNTT – ĐH Quốc gia TP.HCM và toànthể các bạn bè học viên cùng lớp
Trang 5Chương 1 TỔNG QUAN VỀ BIỂU DIỄN TRI THỨC
VÀ GIẢI TOÁN DỰA TRÊN TRI THỨC 1.1 Khái niệm tri thức
Tri thức không có định nghĩa chính xác bởi tri thức là một khái niệm trừu tượng.Tuy nhiên vì phải tập hợp và xử lý được “tri thức” bằng máy tính nên ta cố gắng đưa rađịnh nghĩa về tri thức càng hình thức càng tốt
- Khái niệm: Tri thức là sự hiểu biết về một lĩnh vực của vấn đề
- Lĩnh vực: Miền chủ đề được chú trọng
- Tri thức: Thường bao gồm các khái niệm, các loại sự kiện, các luật
Ví dụ:
Kiến thức về y học và khả năng chuẩn đoán bệnh là tri thức
Biết một tam giác có các yếu tố nào cùng với các công thức liên quan giữa cácyếu tố là tri thức
Biết các dạng cấu trúc dữ liệu thường dùng trong lập trình cùng với các thuậttoán xử lý cơ bản trên các cấu trúc là tri thức
1.2 Khám niệm về biểu diễn tri thức
Biểu diễn tri thức (Knowledge Representation) là sự diễn đạt và thể hiện của trithức dưới những dạng thích hợp để có thể tổ chức một hệ cơ sở tri thức của hệ thống.Trong tin học biểu diển tri thức là một phương pháp mã hóa tri thức sao cho máytính có thể xử lí được chúng Cũng như dữ liệu có nhiều cách khác nhau để biểu diễn trithức trong máy tính Tuy nhiên ta phải chọn một phương pháp nào phù hợp để đưa lênmáy tính
Các công cụ cho việc biểu diễn tri thức đơn giản như:
Các cấu trúc dữ liệu cơ bản: Dãy danh sách, tập hợp, mẫu…
Các cấu trúc dữ liệu trừu tượng: ngăn xếp, hàng đợi
Các mô hình toán học: đồ thị, cây…
Các mô hình đối tượng
Các ngôn ngữ đặc tả tri thức
Ví dụ: Kiến thức về một hình chữ nhật cần thiết cho việc giải bài toán có thể được
biểu diễn gồm:
Trang 6 Một tập hợp các biến thực, mỗi biến đại diện cho một yếu tố của hình chữ nhậtnhư chiều dài, chiều rộng.
Một tập hợp các công thức liên quan đến tính toán trên các yếu tố của hình chữnhật
1.3 Các dạng tri thức
- Tri thức mô tả: Các khái niệm, các đối tượng cơ bản
- Tri thức cấu trúc: Các khái niện cấu trúc, các quan hệ, các đối tương phức hợp,…
- Tri thức thủ tục: Các luật dẫn, các thủ tục xử lý, các chiến lược,…
- Tri thức meta: tri thức về các dạng tri thức khác và cách sử dụng chúng
Trang 7Chương 2 CẤU TRÚC CỦA HỆ GIẢI TOÁN DỰA TRÊN TRI THỨC
2.1 Cấu trúc hệ thống
Cấu trúc của hệ giải toán thông minh
Các thành phần chính của hệ thống trong việc giải toán tổng quát trong một miền trithức:
- Bộ suy diễn tri thức (Knowledge Base): Đây là trái tim của hệ thống, trong đóchứa các kiến thức cần thiết trong việc giải các bài toán
- Bộ suy diễn hay mô tả suy diễn: Bộ suy diễn áp dụng kiến thức được lưu trữ trong
cơ sở tri thức để giải quyết hay tìm lời giải cho bài toán đặt ra
Sự tách biệt của bộ suy diễn và một cơ sở tri thức là sự tách biệt quan trọng:
Sự tách biệt: tính độc lập tương đối giữa các cơ sở tri thức và bộ suy diễn Cần có
sẽ không gây ra các hiệu ứng lề các thành phần cho hệ thống
d Cho phép cùng một chiến lược điều khiển và giao tiếp có thể được sử dụng chonhiều hệ thống khác nhau
Trang 8e Sự tách biệt của kiến thức giải bài toán và bộ suy diễn còn giúp ta có thể thửnghiệm nhiều chiến lượt điều khiển khác nhau trên cùng một cơ sở tri thức.
2.2 Vấn đề biểu diễn tri thức
Biểu diễn tri thức đóng vai trò quan trọng trong thiết kế và xây dựng một hệ giảitoán thông minh và các hệ chuyên gia
Phương pháp biểu diễn tri thức thích hợp sẽ tạo nên một hệ thống có trái tim khỏemạnh
Xây dựng và phát triển các phương pháp biểu diễn tri thức và một hướng nghiêncứu quan trọng trong các nhà nghiên cứu Trí tuệ nhân tạo
Suy diễn tự động để giải quyết các bài toán dựa trên tri thức cũng là một vấn đề rấtquan trọng
Các phương pháp suy diễn tự động nhằm vận dụng kiến thức đã biết trong quá trìnhlập luận giải quyết vấn đề, trong đó quan trọng nhất là các chiến lược điều khiển giúpphát sinh các sự kiện mới từ các sự kiện đã có
Xây dựng và phát triển các phương pháp biểu diễn tri thức là một hướng nghiên cứuquan trọng cho các nhà nghiên cứu về Trí tuệ nhân tạo
Trang 9Chương 3 PHƯƠNG PHÁP BIỂU DIỄN TRI THỨC 3.1 Các phương pháp biểu diễn tri thức
3.1.1 Biểu diễn dựa trên logic hình thức
Sử dụng các biểu thức logic hình thức trong hệ thống logic để diễn đạt các sự kiện
và các luật trong cơ sở tri thức
Phép tính logic vị từ cấp 1 được sử dụng phổ biến nhất và cả một ngôn ngữ lập trình
hỗ trợ cho phương pháp này Đó là ngôn ngữ lập trình PROLOG
Trong ngôn ngữ PROLOG chỉ cần khai báo sự kiện và các luật Hệ thống sẽ thựchiện giải quyết vấn đề được yêu cầu dựa trên tri thức được khai báo
3.1.2 Hệ luật dẫn
Mỗi luật dẫn được phát biểu dưới dạng:
If<giả thiết> then <kết luận>
Mô hình: Một cách hình thức, hệ luật dẫn gồm:
- Tập kí hiệu đại diện cho các sự kiện
- Tập dẫn trong đó <giả thiết> và <kết luận> là các tập sự kiện
Nhận xét: Mô hình hệ luật dẫn trên khó áp dụng trực tiếp vì quan niệm sự kiện kháđơn giản
3.1.3 Mạng ngữ nghĩa
Mạng ngữ nghĩa (semantic network) có dạng đồ thị gồm các nút và các cung, trongđó:
- Các nút thể hiện các khái niệm, các đối tượng
- Các cung thễ hiện các quan hệ giữa các đối tượng
Dựa trên mạng ngữ nghĩa ta nhận biết tri thức một cách trực quan giúp thiết kế các
xử lý như: thêm/ bớt các khái niệm hay các đối tượng, tìm kiếm thông tin
Nhận xét: Mô hình khá trừu tượng và khái quát, trong áp dụng phải phát triển các
mô hình tri thức cụ thể hơn
3.1.4 Các khung
Các khung (frame) thể hiện các khái niệm dưới dạng các cấu trúc mẫu tin các hìnhthức như một bảng mẫu
Khung cơ bản: Gồm các thành phần cơ bản sau:
- Tên đối tượng (loại khung)
Trang 10- Các thuộc tính
- Giá trị các thuộc tính
Khung lớp: Thể hiện các tính chất tổng quát của một lớp các đối tượng với nhữngquan hệ kế thừa và cấu trúc phân cấp
3.2 Suy diễn tự động
3.2.1 Khái niệm suy diễn tự động
Suy diễn nhằm vận dụng kiến thức đã biết trong quá trình lập luận giải quyết vấn
đề, trong đó quan trọng nhất là các chiến lược điều khiển giúp phát sinh những sự kiệnmới từ các sự kiện đã có
Suy diễn tự động: Quá trình suy diễn được thuật giải hóa và có thể cài đặt thànhchương trình máy tính
Các kỹ thuật suy diễn cơ bản:
- Suy diễn tiến
- Suy diễn lùi
3.2.2 Hợp giải trong tri thức dạng logic
Phương pháp: Thực hiện quá trình phát sinh sự kiện mới bằng cách sử dụng các luậtsuy diễn cơ bản trên các biểu thức logic như: Modus Ponens, Modus Tollens, tam đoạnluận
Trong logic vị từ: Quá trình hợp giải có thể được cài đặt dựa trên kỹ thuật hợp nhất,PROLOG là một ngôn ngữ lập trình được thiết kế với chức năng suy diễn theo phươngpháp này
Hợp giải trong tri thức dạng logic:
- Phương pháp: Thực hiện quá trình phát sinh sự kiện mới bằng cách sử dụng cácluật suy diễn cơ bản trên các biểu thức logic như: Modus Ponens, Modus Tollens, tamđoạn luận
- Trong logic vị từ: Quá trình hợp giải có thể được cài đặt dựa trên kỹ thuật hợpnhất (unification) và quay lui (backtracking)
- PROLOG là một ngôn ngữ lập trình được thiết kế với chức năng suy diễn theophương pháp này
3.2.3 Suy diễn tiến
Phương pháp: Suy dẫn từ giả thiết đi đến kết luận Chiến lược này được bắt đầubằng tập sự kiện đã biết, rút ra các sự kiện mới nhờ dùng các luật mà phần giả thiết khớp
Trang 11với sự kiện đã biết và tiếp tục quá trình này cho đến khi thấy trạng thái đích, hoặc chođến khi không còn luật nào khớp được các sự kiện đã biết hay được sự kiện suy luận.Trong áp dụng cụ thể phương pháp thường sử dụng kết hợp với các qui tắcHeuristic trong việc chọn luật.
3.2.4 Suy diễn lùi
Phương pháp: Truy ngược từ kết luận trở về giả thiết Phương pháp này được tiếnhành bằng cách truy ngược từ mục tiêu cần đạt được trở về phần giả thiết của bài toánbằng cách áp dụng các luật trong cơ sở tri thức
Quá trình suy diễn lùi này sẽ phát sinh một sơ đồ cây mục tiêu kèm theo một cơ chếquay lui và lời giải sẽ được tìm thấy khi tất cả các mục tiêu ở các nút lá của cây mục tiêuđều thuộc về những sự kiện đã biết
Trong áp dụng cụ thể phương pháp thường sử dụng kết hợp với các qui tắcHeuristic trong việc chọn luật
3.2.5 Suy diễn hỗn hợp
Phương pháp: Kết hợp 2 quá trình suy diễn tiến và suy diễn lùi nhằm khắc phụckhuyết điểm của mỗi phương pháp và nâng cao hiệu quả của quá trình suy diễn trong ápdụng cụ thể
Nhược điểm của suy diễn tiến: Không cảm nhận được sự gần tới đích
Nhược điểm của suy diễn lùi: thường dẫn tới sự phân nhánh lớn và không cảm nhậnđược sự cần chuyển hướng dòng suy nghĩ
Trang 12Chương 4 TỔNG QUAN VỀ CÁC CHIẾN LƯỢC HEURISTIC 4.1 Khái niệm Heuristic
Theo từ điển tiếng Anh Oxford đưa ra giải thích sau đây: “Heuristic là nghệ thuậttìm kiếm chân lý Nói riêng, Heuristic là đặc trưng của quá trình học nhờ đó các học sinhhọc được cách tự tìm ra cách giải thích các hiện tượng tự nhiên”
George Polya định nghĩa Heuristic là “sự nghiên cứu về các phương pháp và các quitắc trong việc khám phá và phát minh” (Polya 1945) Nghĩa này có thể xuất phát từ gốc
Hy Lạp của động từ eurisco nghĩa là “tôi phát hiện” Khi Archimedes nhảy ra khỏi bồntắm và chộp lấy chiếc mũ miện bằng vàng, ông ta đã la lên “Eureka!” có nghĩa “Tôi đãtìm thấy nó!” Trong tìm kiếm không gian trạng thái, Heuristic là các luật dùng để chọnnhững nhánh nào có nhiều khả năng nhất dẫn đến một giải pháp chấp nhận được
Thuật ngữ Heuristic được Feigenbaum Feldman định nghĩa như sau: “Heuristic làcác qui tắc, phương pháp, chiến lược, mẹo giải hay phương cách nào đó nhằm làm giảmkhối lượng tìm kiếm lời giải trong không gian bài toán cực lớn”
Một số khác lại sử dụng thuật ngữ “Heuristic” để ám chỉ các cách thức giải quyếtbài toán nhưng không thể định hình thành giải thuật (Newell, Shaw, Simon năm 1963).Heuristic chỉ là một phỏng đoán chứa các thông tin về bước tiếp theo sẽ được chọndùng trong việc giải quyết một vấn đề Nó thường dựa vào kinh nghiệm hoặc trực giác
Vì các Heuristic sử dụng những thông tin hạn chế nên chúng ít khi có khả năng đoántrước chính xác cách hành xử của không gian trạng thái ở những giai đoạn xa hơn.Heuristic có thể dẫn đến một thuật toán tìm kiếm chỉ đạt được giải pháp gần tối ưu hoặchoàn toàn không tìm được bất kỳ giải pháp nào
Theo một quan niệm nào đó, Heuristic chỉ đơn thuần là kinh nghiệm, cái mà conngười có được trong quá trình lao động sản xuất Nó có đặc tính:
- Sẽ luôn giúp người sử dụng kinh nghiệm hoàn thành công việc của mình Nhưngđôi khi, đó không phải là cách làm nhanh và tối ưu nhất
- Việc giải quyết một vấn đề mà người giải quyết đã có kinh nghiệm luôn nhanhhơn những người bình thường, ít dẫn tới hao phí, sai sót
- Kinh nghiệm là những gì có được trong quá trình làm việc, lao động lâu dài củacon người chứ không tự sinh ra
Trang 134.2 Các chiến lược tìm kiếm Heuristic (tìm kiếm có đối thủ)
Có nhiều phương pháp để xây dựng một thuật giải Heuristic, trong đó người tathường dựa vào một số nguyên lý cơ bản như sau:
- Nguyên lý vét cạn thông minh: Trong một bài toán tìm kiếm nào đó, khi không
gian tìm kiếm lớn, ta thường tìm cách giới hạn lại không gian tìm kiếm hoặc thực hiệnmột kiểu dò tìm đặc biệt dựa vào đặc thù của bài toán để nhanh chóng tìm ra mục tiêu
- Nguyên lý tham lam (Greedy): Lấy tiêu chuẩn tối ưu (trên phạm vi toàn cục) của
bài toán để làm tiêu chuẩn chọn lựa hành động cho phạm vi cục bộ của từng bước (haytừng giai đoạn) trong quá trình tìm kiếm lời giải
- Nguyên lý thứ tự: Thực hiện hành động dựa trên một cấu trúc thứ tự hợp lý của
không gian khảo sát nhằm nhanh chóng đạt được một lời giải tốt
- Hàm Heuristic: Trong việc xây dựng các thuật giải Heuristic, người ta thường
dùng các hàm Heuristic Đó là các hàm đánh giá thô, giá trị của hàm phụ thuộc vào trạngthái hiện tại của bài toán tại mỗi bước giải Nhờ giá trị này, ta có thể chọn được cáchhành động tương đối hợp lý trong từng bước của thuật giải
4.2.1 Chiến lược minimax
a Ý tưởng
Xét các trò chơi hai đối thủ đối kháng, chẳng hạn trò chơi Nim Để chơi Nim, một
số token (vật biểu hiện như đồng xu, lá bài, mảnh gỗ, ) được đặt trên bàn giữa hai đốithủ Ở mỗi nước đi, người chơi phải chia đống token thành hai đống nhỏ có số lượngkhác nhau Ứng với một số token vừa phải, không gian trạng thái này có thể triển khaiđến cùng Hình sau biểu diễn không gian trạng thái của trò chơi có 7 token
Trang 14Hình 4.1: Không gian trạng thái của trò chơi nim
Khi chơi các trò chơi có thể triển khai hết không gian trạng thái, khó khăn chủ yếu
là phải tính toán phản ứng của đối thủ Một cách xử lý đơn giản nhất là giả sử đối thủ củabạn cũng sử dụng kiến thức về không gian trạng thái giống như bạn và áp dụng kiến thức
đó kiên định để thắng cuộc Mặc dù giả thiết này có những hạn chế của nó, nhưng nócũng cho chúng ta một cơ sở hợp lý để dự đoán hành vi của đối thủ Minimax sẽ tìm kiếmkhông gian của trò chơi này theo giả thiết đó
Hai đối thủ trong một trò chơi được gọi là MIN và MAX MAX đại diện cho đối thủquyết giành thắng lợi hay cố gắng tối đa hóa ưu thế của mình Ngược lại MIN là đối thủ
cố gắng tối thiểu hóa điểm số của MAX Ta giả thiết MIN cũng dùng cùng những thôngtin như MAX
Khi áp dụng thủ tục minimax, chúng ta đánh dấu luân phiên từng mức trong khônggian tìm kiếm phù hợp với đối thủ có nước đi ở mức đó Trong ví dụ trên, MIN đượcquyền đi trước, từng nút lá được gán giá trị 1 hay 0 tùy theo kết quả đó là thắng cuộc đốivới MAX hay MIN Minimax sẽ truyền các giá trị này lên cao dần trên đồ thị qua các nútcha mẹ kế tiếp nhau theo luật sau:
- Nếu trạng thái cha mẹ là nút MAX, gán cho nó giá trị tối đa của các con cháu củanó
- Nếu trạng thái cha mẹ là nút MIN, gán cho nó giá trị tối thiểu của các con cháucủa nó
Giá trị được gán cho từng trạng thái bằng cách đó sẽ chỉ rõ giá trị của trạng thái tốtnhất mà đối thủ này có thể hy vọng đạt được Các giá trị này sẽ được dùng để lựa chọncác nước đi có thể có Kết quả của việc áp dụng Minimax vào đồ thị không gian trạngthái đối với trò chơi Nim được thể hiện như hình trên Vì tất cả các nước đi đầu tiên cóthể xảy ra cho MIN sẽ dẫn đến các nút có giá trị 1 nên đối thủ MAX luôn có thể bắt tròchơi giành thắng lợi cho mình bất kể nước đi đầu tiên của MIN là như thế nào (đường đithắng lợi của MAX được cho theo mũi tên đậm)
Khi áp dụng Minimax cho các trò chơi phức tạp, hiếm khi có khả năng mở rộng đồthị không gian trạng thái đến các nút lá Thay vào đó không gian trạng thái này chỉ có thểđược triển khai đến một số mức xác định phụ thuộc tiềm năng về thời gian và bộ nhớchẳng hạn Chiến lược này được gọi là tính trước n nước đi (n – move lookahead) Vì giátrị các nút trong đồ thị con này không phải là trạng thái kết thúc của trò chơi nên chúng
Trang 15không phản ánh giá trị thắng cuộc hay thua cuộc Chúng chỉ có thể được gán một giá trịphù hợp với một hàm đánh giá Heuristic nào đó Giá trị được truyền ngược về nút gốckhông cung cấp thông tin thắng cuộc hay thua cuộc mà chỉ là giá trị Heuristic của trạngthái tốt nhất có thể tiếp cận sau n nước đi kể từ nút xuất phát Việc tính trước này sẽ làmtăng hiệu quả của Heuristic vì nó được áp dụng vào một phạm vi lớn hơn trong khônggian trạng thái Minimax sẽ hợp nhất tất cả các giá trị của các nút con cháu của một trạngthái thành một giá trị duy nhất cho trạng thái đó.
Trong các đồ thị trò chơi được tìm kiếm bằng mức hay lớp, MAX và MIN luânphiên nhau chọn các nước đi Mỗi nước đi của một đối thủ sẽ xác định một lớp mới trênđồ thị Các chương trình trò chơi nói chung đều dự tính trước một độ sâu lớp cố định(thường được xác định bằng các giới hạn về không gian hoặc thời gian của máy tính).Các trạng thái trên mức đó được đánh giá theo các Heuristic và các giá trị này sẽ đượctruyền ngược lên bằng thủ tục Minimax, sau đó thuật toán tìm kiếm sẽ dùng các giá trịvừa nhận được để chọn lựa một nước trong số các nước đi kế tiếp Bằng cách tối đa hóacho các cha mẹ MAX và tối thiểu hóa cho các cha mẹ MIN, những giá trị này đi lùi theođồ thị đến con của trạng thái hiện hành Sau đó trạng thái hiện hành dùng chúng để tiếnhành lựa chọn trong các con của nó Hình sau trình bày quá trình Minimax trên mộtkhông gian trạng thái giả thuyết tính trước bốn lớp
Hình 4.2: Minimax đối với một không gian trạng thái giả định
Hình 4.3 giới thiệu một ứng dụng của Minimax độ sâu lớp cố định vào trò chơi tac-toe (trò chơi cờ caro)
Trang 16Tic-Hình 4.3: Minimax hai lớp được áp dụng vào nước đi mở đầu trò chơi Tic-tac-toe
Ở đây sử dụng một Heuristic hơi phức tạp hơn, nó cố đo mức độ tranh chấp trongtrò chơi Heuristic chọn một trạng thái cần đo, tính tất cả các đường thắng mở ra choMAX, rồi trừ đi tổng số các đường thắng mở ra cho MIN Giải thuật tìm kiếm sẽ cố gắngtối đa hóa sự chênh lệch (hiệu số) đó Nếu có một trạng thái bắt buộc thắng cuộc choMAX, nó sẽ được đánh giá là +∞, còn với trạng thái bắt buộc thắng cuộc cho MIN thìđược đánh giá là -∞
Trang 17For w là con của u do
If val <Minval(w) thenBegin
Val Minimax(w);
v w;
end;
end;
4.2.2 Chiến lược cắt tỉa alpha – beta (alpha-beta prunning)
Minimax yêu cầu phải có sự phân tích qua hai bước đối với không gian tìm kiếm:Bước đầu truyền xuống đến độ sâu của lớp áp dụng Heuristic và bước sau để truyềnngược các giá trị trên cây Minimax lần theo tất cả các nhánh trong không gian bao gồm
cả những nhánh mà một thuật toán thông minh hơn có thể bỏ qua hay tỉa bớt Các nhà
nghiên cứu trong lĩnh vực chơi game đã xây dựng một kỹ thuật tìm kiếm gọi là cắt tỉa
alpha – beta nhằm nâng cao hiệu quả tìm kiếm trong các bài toán trò chơi hai đối thủ
a Ý tưởng
Ý tưởng của tìm kiếm alpha – beta rất đơn giản: Thay vì nếu như tìm kiếm toàn bộkhông gian đến một độ sâu lớp cố định, tìm kiếm alpha – beta thực hiện theo kiểu tìmkiếm sâu Có hai giá trị, gọi là alpha và beta được tạo ra trong quá trình tìm kiếm Giá trịalpha liên quan với các nút MAX và có khuynh hướng không bao giờ giảm Ngược lạigiá trị beta liên quan đến các nút MIN và có khuynh hướng không bao giờ tăng Giả sử cógiá trị alpha của một nút MAX là 6, MAX không cần phải xem xét giá trị truyền ngượcnào nhỏ hơn hoặc bằng 6 có liên quan với một nút MIN nào đó bên dưới Alpha là giá trịthấp nhất mà MAX có thể nhận được sau khi cho rằng MIN cũng sẽ nhận giá trị tốt nhấtcủa nó Tương tự nếu MIN có giá trị beta là 6 nó cũng không cần xem xét các nút nằmdưới nó có giá trị lớn hơn hoặc bằng 6
Để bắt đầu thuật toán tìm kiếm alpha – beta, ta đi xuống hết độ sâu lớp theo kiểutìm kiếm sâu, đồng thời áp dụng đánh giá Heuristic cho một trạng thái và tất cả các trạngthái anh em của nó Giả thuyết tất cả đều là nút MIN Giá trị tối đa của các nút MIN này
sẽ được truyền ngược lên cho nút cha mẹ (là một nút MAX) Sau đó giá trị này được gáncho ông bà của các nút MIN như là một giá trị beta kết thúc tốt nhất Tiếp theo thuật toánnày sẽ đi xuống các nút cháu khác và kết thúc việc tìm kiếm đối với nút cha mẹ củachúng nếu gặp bất kỳ một giá trị nào lớn hơn hoặc bằng giá trị beta này Quá trình này
Trang 18gọi là cắt tỉa beta (β cut) Cách làm tương tự cũng được thực hiện cho việc cắt tỉa alpha (α
cut) đối với các nút cháu của một nút MAX
Hai luật cắt tỉa dựa trên các giá trị alpha và beta là:
- Quá trình tìm kiếm có thể kết thúc bên dưới một nút MIN nào có giá trị beta nhỏhơn hoặc bằng giá trị alpha của một nút cha MAX bất kỳ của nó
- Quá trình tìm kiếm có thể kết thúc bên dưới một nút MAX nào có giá trị alpha lớnhơn hoặc bằng giá trị beta của một nút cha MIN bất kỳ của nó
Việc cắt tỉa alpha – beta như vậy thể hiện quan hệ giữa các nút ở lớp n và các nút ởlớp n+2 và do quan hệ đó toàn bộ các cây con bắt nguồn ở lớp n+1 đều có thể loại khỏiviệc xem xét Chú ý rằng giá trị truyền ngược thu được hoàn toàn giống như kết quảMinimax, đồng thời tiết kiệm được các bước tìm kiếm một cách đáng kể
Hình 4.4: Thực hiện giải thuật cắt tỉa alpha – beta
Else for mỗi đỉnh v là con của u do
{ α max[α, minval(v,α, β)];α, minval(v,α, β)];
If α ≥ β then exit };
Maxval α;
End;
Function minval(u, α, β););