Bài tập lớn trí tuệ nhân tạo trò chơi cờ vua trường đại học công nghệ GTVT. Đề tài mô tả nhập môn trí tuệ nhân tạo của các trường đại học, Là tiền đề để học các giải thuật. Trong đề tài sử dụng hai giải thuật chính là minimax và cắt tỉa anphabeta.
Trang 1BÁO CÁO MÔN TRÍ TUỆ NHÂN TẠO
Trang 2MỤC LỤC
MỤC LỤC 2
PHÂN CÔNG CÔNG VIỆC VÀ ĐỊNH HƯỚNG PHÁT TRIỂN ĐỀ TÀI 3
LỜI NÓI ĐẦU 4
CHƯƠNG 1: TỔNG QUAN VỀ AI 5
1.1 Lịch sử hình thành và phát triển của trí tuệ nhân tạo 5
1.2 Định nghĩa trí tuệ nhân tạo 8
1.2.1 Trí tuệ nhân tạo 8
1.2.2 Trắc nghiệm Turing 9
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 13
2 Tổng quan về trò chơi Cờ Vua 13
2.1 Giới thiệu trò chơi 13
2.2 Các quy tắc của trò chơi 13
2.3 Một số khái niệm 16
2.3.1 Dạng trò chơi 16
2.3.2 Cây trò chơi 17
2.3.3 Vét cạn 17
2.3.4 Chiến lược tìm kiếm 18
2.4 THUẬT TOÁN 19
2.4.1 Thuật toán Minimax 19
2.4.2 Cải tiến Alpha – Beta 21
CHƯƠNG 3: CÀI ĐẶT THUẬT TOÁN 25
3.1 Biểu diễn bàn cờ và quân cờ 25
3.2 Sinh nước đi 25
3.3 Kiểm tra giới hạn bàn cờ 26
3.4 Đánh giá một thế cờ 26
3.5 Xử lí một nước đi "thử" 28
3.6 Xử lí điều khiển của người chơi 30
3.7 Cập nhật một nước đi 31
3.8 Vòng lặp chính xử lí trò chơi 31
3.9 Chạy chương trình 33
TÀI LIỆU THAM KHẢO 35
Trang 3PHÂN CÔNG CÔNG VIỆC VÀ ĐỊNH HƯỚNG PHÁT TRIỂN ĐỀ TÀI
Thành viên Công việc
Đồng Thanh Tuấn - Tìm hiểu thuật toán cải tiến Alpha – Beta
- Dạng trò chơi
- Biểu diễn bàn cơ và quân cờ
- Sinh nước điHoàng Trần Nguyên - Tìm hiểu thuật toán Minimax
- Xử lí điều khiển của người chơi
Lê Quang Duy - Tìm hiểu thuật toán Minimax
- Chiến lược tìm kiếm
- Cập nhật một nước đi
- Vòng lặp chính xử lý trò chơiBạch Minh Tuấn - Tìm hiểu thuật toán cải tiến Alpha – Beta
- Tổng quan về AI
- Chạy chương trình
Trang 4LỜI NÓI ĐẦU
Trong một thời đại mà nền công nghiệp tự động hóa chiếm một vị tríkhông thể thiếu của một nền kinh tế phát triển, máy móc càng chứng tỏ những
ưu thế vượt trội nhờ sự chính xác, độ ổn định cao,… Nhưng đằng sau đó, mỗichiếc máy là do con người điều khiển, trí tuệ của máy móc cũng là do con ngườicài đặt mà có được Vì vậy, tri thức con người vẫn luôn là yếu tố then chốt
Từ những năm 50 của thế kỉ XX, trí tuệ nhân tạo mới bắt đầu nhen nhóm,vậy mà giờ đây, ta có thể thấy nó đã có những bước phát triển vượt bậc, khôngngừng
Để hiểu rõ hơn về AI, chúng em đã quyết định lựa chọn trò chơi cờ vua,một trò chơi cổ điển nhưng là một trong những trò chơi biểu tượng của trí tuệ đểhoàn thành bài tập lớn môn học này Dưới đây là phần trình bày báo cáo mônhọc thông qua đề tài đã nêu ở trên Hiện tại, chương trình của chúng em cònnhiều thiếu sót, rất mong nhận được những ý kiến góp ý và tư vấn từ thầy và cácbạn để chúng em có thể trau dồi thêm cho bản thân những kiến thức hữu ích
NHÓM TÁC GIẢ
Trang 5CHƯƠNG 1: TỔNG QUAN VỀ AI
1.1 Lịch sử hình thành và phát triển của trí tuệ nhân tạo
Những năm gần đây, khá nhiều sách, báo, công trình nghiên cứu khoa học
đề cập đến các kỹthuật tính toán, người ta hay nhắc đến nhiều thuật ngữ như:máy tính thông minh, máy tính thế hệ V, hệ chuyên gia, mạng ngữ nghĩa, Cácngôn ngữ lập trình như LISP, PROLOG mởđường cho việc áp dụng hàng loạtcác hệ thống chương trình có khả năng “thông minh” Trước đây, mỗi khi nóiđến Trí tuệ nhân tạo (TTNT) người ta thường quan tâm đến việc tạo lập các máytính có khả năng “suy nghĩ”, thậm chí trong một số phạm vi hẹp nào đó, có thểcạnh tranh hoặc vượt quá khả năng của bộ não con người Những hy vọng nàytrong một thời gian dài đã ảnh hưởng rất nhiều đến các nghiên cứu trong phòngthí nghiệm Mặc dù những mô hình tương tự các máy tính thông minh đã đượcđưa ra hàng nhiều năm trước, nhưng chỉ từ khi Alan Turing công bố những kếtquả nghiên cứu quan trọng đầu tiên, người ta mới bắt đầu thực sự nghiên cứuđến các vấn đề TTNT một cách nghiêm túc Phát hiện của Turing cho rằngchương trình có thể được lưu trữ trong bộ nhớ để sau đó được thực hiện trên cơ
sở các phép toán cơ bản thao tác với các bit 0, 1 Điều này đã tạo nên nền tảngcủa những máy tính hiện đại Việc lưu trữ chương trình trong máy cho phép thayđổi chức năng của nó một cách nhanh chóng và dễ dàng thông qua việc nạp mộtchương trình mới vào bộ nhớ Theo một nghĩa nào đó, khả năng này làm chomáy tính có khả năng học và suy nghĩ Đó cũng chính là một trong những biểuhiện quan trọng đầu tiên của những máy tính được trang bị TTNT
Trang 6Năm 1956, chương trình dẫn xuất kết luận trong hệ hình thức đã đượccông bố Tiếp theo đó, năm 1959 chương trình chứng minh các định lý hình họcphẳng và chương trình giải quyết bài toán vạn năng (GPS - General ProblemSolving) đã được đưa ra Tuy vậy chỉ cho đến khoảng năm 1960 khi McCathy ởMIT (Massachussets Institute of Technology) đưa ra ngôn ngữ lập trình đầu tiêndùng cho trí tuệ nhân tạo LISP (list processing), các nghiên cứu về TTNT mớibắt đầu phát triển mạnh mẽ Thuật ngữ TTNT do Marvin Minsky một chuyêngia nổi tiếng cũng ở MIT đưa ra năm 1961 trong bài báo “ Steps Forwards ToArtIficial Intelligence”
Những năm 60 có thể xem là một mốc quan trọng trong quá trình xâydựng các máy có khả năng suy nghĩ Các chương trình chơi cờ và các chươngtrình chứng minh định lý toán học đầu tiên cũng được công bố trong khoảng thờigian này Những bế tắc, hạn chế thành công của các công trình nghiên cứuTTNT trong những năm 60 chính là do giới hạn khả năng của các thiết bị, bộnhớ và đặc biệt là yếu tố thời gian thực hiện Chính những yếu tố này không chophép tổng quát hóa những thành công bước đầu đạt được trong các hệ chươngtrình TTNT đã xây dựng
Tuy rằng vào giữa những năm 70, bộ nhớ máy tính và thời gian tính toán
đã được nâng cao đáng kể về chất, song những cách tiếp cận khác nhau đếnTTNT vẫn chưa đem tới những thành công thật sự do sự bùng nổ tổ hợp trongquá trình tìm kiếm lời giải cho các bài toán đặt ra Cuối những năm 70, một sốnghiên cứu cơ bản trong các lĩnh vực như xử lý ngôn ngữ tự nhiên, biểu diễn trithức, lý thuyết giải quyết vấn đềđã đem lại diện mạo mới cho TTNT Thị trường
Trang 7tin học đã bắt đầu đón nhận những sản phẩm TTNT ứng dụng đầu tiên mangtính thương mại Đó là các hệ chuyên gia được áp dụng trong các lĩnh vực khácnhau Hệ chuyên gia là các phần mềm máy tính, chứa các thông tin và tri thức vềmột lĩnh vực cụ thể nào đó, có khả năng giải quyết những yêu cầu của ngườidùng ở một mức độ nào đó với trình độ nhưmột chuyên gia có kinh nghiệm lâunăm Một trong những hệ chuyên gia đầu tiên được sửdụng thành công trongthực tế là hệ MYCIN, được thiết kế và cài đặt tại trường Đại học Tổng HợpStanford Một sự kiện quan trọng trong sự phát triển của khoa học TTNT là sự
ra đời của ngôn ngữ PROLOG, do Alain Calmerauer đưa ra năm 1972
Năm 1981, dự án của Nhật Bản xây dựng các máy tính thế hệ thứ V lấyngôn ngữ PROLOG như là ngôn ngữ cơ sở đã làm thay đổi khá nhiều tình hìnhphát triển TTNT ở Mỹ cũng như châu Âu Giai đoạn 1981 trở đi người ta cảmnhận khá rõ nét rằng các chuyên gia về TTNT đang dần chuyển các kết quảnghiên cứu từ phòng thí nghiệm sang cài đặt các ứng dụng cụ thể Có thể nóiđây cũng là giai đoạn cạnh tranh ráo riết của các công ty, các viện nghiên cứuhàng đầu nhằm đưa ra thị trường các sản phẩm phần mềm ứng dụng kỹ thuậtTTNT
Cuối những năm 80, đầu những năm 90 thị trường các sản phẩm dân dụng
đã có khá nhiều sản phẩm ở trình độ cao như máy giặt, máy ảnh, sử dụngTTNT Các hệ thống nhận dạng và xử lý hình ảnh, tiếng nói đang ngày càngthúc đẩy sự phát triển kỹ thuật mạng Neuron Sựxích lại của hai cách tiếp cận:Tiếp cận mờ trong lập luận xấp xỉ và kỹ thuật mạng Neuron đã và đang gây
Trang 8được sự quan tâm đặc biệt của các chuyên gia tin học Bên cạnh sự xuất hiện củacác hệ chuyên gia, các ứng dụng công nghiệp và quản lý xã hội, quản lý kinh tếcũng đòi hỏi sự ra đời của các hệ thống xử lý tri thức – dữ liệu tích hợp Thế giớiđang chuyển mình trong những nghiên cứu về TTNT Tuy vậy câu hỏi liệu kỹthuật TTNT có tạo nên những bước nhảy vọt trong công nghệ tin học, đặc biệt làtrong công nghệmáy tính như người ta đã mong đợi hay không vẫn chưa có lờigiải đáp thỏa đáng.
1.2 Định nghĩa trí tuệ nhân tạo
1.2.1 Trí tuệ nhân tạo
Trí tuệ nhân tạo (AI: ArtIficial Intelligence) có thể được định nghĩa nhưmột ngành của khoa học máy tính liên quan đến việc tự động hóa các hành vithông minh AI là một bộ phận của khoa học máy tính và do đó nó phải được đặttrên những nguyên lý lý thuyết vững chắc, có khả năng ứng dụng được của lĩnhvực này
Những nguyên lý này bao gồm các cấu trúc dữ liệu dùng cho biểu diễn trithức, các thuật toán cần thiết để áp dụng những tri thức đó, cùng các ngôn ngữ
và kỹ thuật lập trình dùng cho việc cài đặt chúng Tuy nhiên định nghĩa trên phảichấp nhận một thực tế - trí tuệ tự nó là một khái niệm không được định nghĩamột cách rõ ràng Mặc dù hầu hết chúng ta đều có thể nhận ra các hành vi thôngminh khi nhìn thấy chúng nhưng rất khó có thể đưa ra một định nghĩa về trí tuệ
Vì thế mà vấn đề định nghĩa Trí tuệ nhân tạo tự nó trở thành một sự định nghĩatrí tuệ: đó có phải là một năng lực duy nhất hay chỉ là tên dùng gọi một tập hợpnhững khả năng khác nhau và không liên quan gì đến nhau? Thế nào là khả năng
Trang 9sáng tạo? Thế nào là trực giác? Có thể kết luận ngay về tính trí tuệ từ việc quansát một hành vi hay không hay cần phải có biểu hiện của một cơ chế nào đó nằmbên trong? Tất cả những câu hỏi này vẫn chưa được trả lời và chúng đã nêu ranhững vấn đề cần có phương pháp luận để giải quyết
Cho đến nay, Trí tuệ nhân tạo vẫn còn là một ngành khoa học trẻ, nhữngmối quan tâm và những phương pháp của nó chưa được rõ ràng so với tất cả cácngành khoa học đã trưởng thành trước đó Song, một trong những mục tiêutrọng tâm của nó là quan tâm đến việc mởrộng khả năng của khoa học máy tínhhơn là tìm cách định nghĩa những giới hạn của nó
1.2.2 Trắc nghiệm Turing
Năm 1950, một nhà toán học người Anh là Alan Turing đã viếtu nhữngtrang sách đầu tiên trả lời một cách cụ thể câu hỏi: trí tuệ máy có liên hệ như thếnào với máy tính kỹ thuật số hiện đại Tác phẩm “Máy tính và trí tuệ” (Turing1950) của ông vẫn còn mang tính thời đại đối với việc đánh giá những tranhluận về khả năng tạo ra một máy tính thông minh, cũng như đối với những câutrả lời của tác phẩm này cho các tranh luận trên Turing, người nổi tiếng chủ yếuqua những đóng góp của ông cho lý thuyết về khả năng tính toán đã xem xét câuhỏi: liệu có thể làm cho một máy tính thực sự có khả năng suy nghĩ hay không?
Để giải quyết những mơ hồ trong câu hỏi này, ông đã đề xuất thay thế câu trả lờibằng kết quả của một trắc nghiệm mang tính thực nghiệm – trắc nghiệm Turing(Turing test) hay “trò chơi bắt chước”
Trang 10Trắc nghiệm Turing đo lường khả năng của một máy tính được coi làthông minh và so sánh với khả năng đó của con người – một đối tượng đượcxem là có hành vi thông minh nhất và là chuẩn mực duy nhất về trí tuệ Trongtrắc nghiệm này, một máy tính và một người tham gia trắc nghiệm được đặt vàotrong các căn phòng cách biệt với một người thứ hai, người này được gọi là
“người thẩm vấn” (hình 1.1) Người thẩm vấn không thể nhìn thấy hay nóichuyện với bất kỳ ai trong trong hai đối tượng trên, cũng không biết được chínhxác đối tượng nào là người hay máy tính, và cũng chỉ có thể giao tiếp với hai đốitượng đó thông qua một thiết bị soạn thảo văn bản, chẳng hạn như một thiếtbịđầu cuối Người thẩm vấn có nhiệm vụ phân biệt người với máy tính bằngcách chỉ dựa trên những câu trả lời của họđối với những câu hỏi được truyền quathiết bị liên lạc này Trong trường hợp nếu người thẩm vấn không thể phân biệtđược máy tính với người thì khi đó, theo Turing, máy tính này có thể được xem
là thông minh
Trắc nghiệm Turing Người thẩm vấn bằng cách cách ly người thẩm vấnvới máy tính cũng như người tham gia vào trắc nghiệm, thí nghiệm này bảo đảmrằng người thẩm vấn sẽ không có thành kiến với sự xuất hiện của máy tính haybất kỳ một đặc tính máy móc nào trong lời nói của nó Tuy nhiên, với mục đích
cố gắng phát hiện ra đâu là máy tính, người thẩm vấn có thể được tự do hỏi bất
kỳ câu hỏi nào, cho dù là những câu hỏi bóng gió hay quanh co
Chẳng hạn, người thẩm vấn có thể yêu cầu cả hai đối tượng thực hiện mộtphép tính liên quan ít nhiều đến số học với giảđịnh rằng máy tính sẽ thực hiệnnhanh và chính xác hơn người Để đối phó với chiến thuật này, một máy tính
Trang 11thông minh cần phải biết khi nào thì nó nên đưa ra một câu trả lời sai cho nhữngbài toán nhằm tỏ ra nó giống con người Một cách tương tự, để có thể phát hiện
ra đặc tính con người dựa vào bản chất cảm xúc, người thẩm vấn cũng có thể hỏi
cả hai đối tượng các kiến thức về thơ văn hay nghệ thuật Và để đối phó vớichiến thuật này đòi hỏi máy tính cũng phải có những kiến thức liên quan đếncảm xúc xuất phát từ con người
Những đặc trưng quan trọng của trắc nghiệm này là: Nó đưa ra một kháiniệm khách quan về trí tuệ, tức là hành vi của một thực thể thông minh nào đóđáp ứng lại một tập hợp các câu hỏi đặc thù Việc này cho chúng ta một chuẩnmực để xác định trí thông minh, đồng thời tránh được những tranh luận khôngcần thiết về bản chất “đúng” của nó Nó tránh cho chúng ta khỏi bị lạc đườngbởi những câu hỏi rắc rối và hiện thời chưa thể trả lời được, chẳng hạn như máytính có sử dụng những suy luận thích hợp bên trong nó hay không, hay máy tínhthực sự có ý thức được những hành động của nó hay không Nó loại trừ bất cứđịnh kiến thiên vị nào vì bắt buộc người thẩm vấn chỉ tập trung vào nội dung cáccâu trả lời Nhờ những ưu điểm này, trắc nghiệm Turing đã cung cấp một cơ sởcho nhiều sơ đồ đánh giá mà những sơ đồ này được dùng thực sự cho cácchương trình TTNT hiện đại Người ta có thể đánh giá khả năng chuyên môncủa một chương trình về một lĩnh vực nào đó bằng cách so sánh kết quả làmviệc của nó với một chuyên gia khi cùng giải quyết một tập các bài toán chotrước Kỹ thuật đánh giá này chỉ là biến thể của trác nghiệm Turing: một nhómchuyên gia sau đó sẽ được yêu cầu so sánh kết quả thực hiện của máy và người
Trang 12trên một tập hợp đặc thù các bài toán mà không được thấy các đối tượng Chúng
ta sẽ thấy rằng phương pháp luận này đã trở thành một công cụ không thể thiếutrong cả hai giai đoạn phát triển và kiểm chứng của các hệ chuyên gia hiện đại
Trang 13CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2 Tổng quan về trò chơi Cờ Vua
2.1 Giới thiệu trò chơi
Cờ vua (tên tiếng Anh: Chess), trước kia còn được gọi là Cờ quốc tế, là
trò chơi quốc tế và là môn thể thao trí tuệ cho 2 người chơi Ngày nay, cờ vua làmột trong những trò chơi phổ biến nhất thế giới với hàng triệu người tại nhàriêng, trong câu lạc bộ, trực tuyến, từ xa và trong các giải đấu Trò chơi này diễn
ra trên một bảng hình vuông, gọi là bàn cờ, gồm 8 hàng (đánh số từ 1 đến 8) và
8 cột (đánh các chữ cái từ a đến h), tạo ra 64 ô hình vuông với các màu đậm vànhạt xen kẽ nhau, với mỗi người chơi sẽ có ô màu nhạt ở hàng cuối cùng bên tayphải của mình khi ngồi vào bàn chơi cờ Mỗi người sẽ bắt đầu ván cờ với 16
quân cờ và sẽ lần lượt đi các quân của mình sau khi đối phương đã đi xong mộtnước (hoàn thành nước đi)
Các quân cờ của mỗi bên bao gồm 8 Tốt, 2 Mã, 2 Tượng, 2 Xe, 1 Hậu và
1 Vua Người cầm quân trắng luôn là người đi đầu tiên; người kia cầm quân đen.Các quân Hậu và Xe được gọi là quân nặng, còn Tượng và Mã được gọi là quânnhẹ
2.2 Các quy tắc của trò chơi
Khi bắt đầu, một người chơi sẽ cầm quân đen và người chơi còn lại cầmquân trắng Việc chọn lựa ai sẽ cầm quân đen hay trắng phụ thuộc vào thể thứcchơi là giải trí hay thi đấu trong hệ thống có tổ chức Có thể là thỏa thuận (giảitrí) hoặc do quyết định của trọng tài trong giải đấu Bên cầm quân trắng luônluôn được đi trước và do đó có ưu thế nhỏ so với bên cầm quân đen Các quân
Trang 14cờ cần phải xếp trên bàn cờ tiêu chuẩn với ô nằm ở hàng cuối cùng bên tay phảingười chơi bao giờ cũng có màu nhạt.
Các quân cờ có nước đi khác nhau:
- Xe (R - Rook) di chuyển theo các đường thẳng dọc theo cột hay hàng tới ôcòn trống mà không có quân nào cản trên đường đi hay tới ô bị quân đốiphương chiếm giữ (ăn quân) nhưng không thể vượt qua quân đang đứng ở ô
đó Ngoại lệ duy nhất là trường hợp nhập thành Khi đó nó cóthể nhảy qua quân Vua của mình để đứng cạnh nó Chỉ có Xemới có nước đi như vậy
- Tượng (B - Bishop) di chuyển theo đường chéo tới ô có cùngmàu với nguyên lý tương tự như Xe tới ô còn trống hay ô
bị quân đối phương chiếm giữ (ăn quân)
- Hậu (Q - Queen) có nước đi là tổ hợp đơn giản của chuyểnđộng của Xe và Tượng Với nguyên lý đi và ăn quân giốngnhư Tượng và Xe
- Mã (N - Knight) có thể di chuyển tới ô còn trống hay ô bị quânđối phương chiếm giữ (ăn quân) theo dạng hình chữ L
(hình chữ nhật 3×2 hay 2×3) Quân Mã không bị cản như trong
Trang 15thể di chuyển 1 hoặc 2 ô nếu nó đi từ vị trí xuất phát banđầu tới ô chưa bị chiếm giữ, nhưng không thể nhảy qua mộtquân khác để tới ô đó
+ Tốt còn một đặc điểm nữa là khi nó di chuyển đến hàng cuối cùng thìngười chơi có quyền phong cấp cho nó thành bất kỳ quân nặng hay nhẹ nào(Hậu, Xe, Tượng, Mã)
◙ T Tốt còn một đặc điểm nữa là khi nó di chuyển đến hàng cuối cùngthìngười chơi có quyền phong cấp cho nó thành bất kỳ quân nặng hay
- Vua (K - King) là quân quan trọng nhất, nếu mất Vua thì người chơi thuacuộc Mỗi lần đi nó có thể ăn quân hoặc di chuyển sang các ô bao quanh ô mà
Trang 16nó hiện tại đang chiếm giữ, nhưng không thể tới ô mà quân của mình đangchiếm giữ hay các ô bị quân đối phương kiểm soát Ngoại lệ duy nhất là trườnghợp nhập thành Khi đó nó có thể di chuyển qua hai ô đồng thời với việc dichuyển quân Xe của mình để quân Xe đó đứng bên cạnh nó về phía cột trungtâm Ký hiệu của nhập thành là 0-0 (nhập thành gần) và 0-0-0 (nhập thành xa).
Khi ăn quân đối phương, quân tấn công sẽ di chuyển tới ô đó và thay thếcho quân đối phương tại vị trí này, bắt tốt qua đường (en passant) là ngoại lệduy nhất Quân bị ăn được loại ra khỏi bàn cờ Vua không thể không bảo vệkhỏi nước chiếu, do đó khi bị chiếu thì người chơi phải thực hiện các biện phápnhằm cứu Vua (di chuyển Vua khỏi vị trí bị chiếu, ăn quân đang chiếu hay dùngquân khác của mình cản đường chiếu nếu có thể) Nếu không thể có nước đi đểcứu Vua thì người chơi bị chiếu bí và thua cuộc
Các ván cờ không phải bao giờ cũng kết thúc bằng chiếu bí Có thể mộtbên xin thua, có thể thua do hết giờ Có thể xảy ra các ván cờ hòa Một ván cờvua là hòa khi: do thỏa thuận của hai bên do không bên nào dám mạo hiểm haykhi không đủ lực lượng để chiếu hết (insufficient material), rơi vào trạng thái hếtnước đi (stalemate), cả hai bên lặp lại nước đi ba lần (threefold repitition)
2.3 Một số khái niệm
2.3.1 Dạng trò chơi
Các trò chơi có dạng như cờ Vua, cờ Tướng, cờ Vây, cờ Caro,… là nhữngtrò chơi đối kháng, diễn ra giữa hai đấu thủ Nói chung, các trò chơi này đều có
Trang 17thể chuyển về một dạng bài toán tìm kiếm đặc biệt: tìm đường đi đến các điểmcao nhất giữa hai đấu thủ Đặc điểm của loại trò chơi này như sau:
- Có hai đấu thủ, mỗi người chỉ đi một nước khi tới lượt
- Các đấu thủ đều biết mọi thông tin về tình trạng trận đấu
- Trận đấu không kéo dài vô tận, phải diễn ra hài hoà, hoặc một bên thắng
và bên kia thua
2.3.2 Cây trò chơi
Các trạng thái bàn cờ khác nhau trong quá trình chơi có thể biểu diễnthành một cây tìm kiếm và ta sẽ tiến hành tìm kiếm trên cây để tìm được nước đitốt nhất Ở cây này, các nút của cây là các tình huống khác nhau của bàn cờ, cácnhánh nối sẽ cho ta biết từ một tình huống cờ thế này chuyển sang tình huống cờnhư thế khác thông qua một nước đi đơn nào đó Các nước đi này diễn ra theocặp do hai đấu thủ lần lượt tiến hành Độ sâu của cây trò chơi là số tầng của cây
2.3.3 Vét cạn
Thuật toán vét cạn có thể hiểu đơn giản là sinh ra hết tất cả mọi khả năng
có thể xảy ra trong trò chơi Sau đó tiến hành lựa chọn đánh giá trên từng khánăng, từ đó chọn ra phương án tối ưu nhất Trong cờ vua, nếu bạn áp dụng thuậttoán này để tính toán nước đi, kết quả trả về sẽ rất chính xác Nếu vậy thì việccho máy tính chơi cờ vua chẳng có gì gọi là khó khăn Tuy nhiên, may mắn thaycách làm này không thể thực hiện được do bùng nổ tổ hợp Ví dụ nếu một thế cờtrung bình với khả năng đi được b nước khác nhau, ở độ sâu d sẽ có b^d nút Giả
sử độ sâu của cây là 10 , hệ số nhánh 16 (b và d đều là những con số nhỏ hơn