Tải bản đầy đủ (.docx) (34 trang)

Bài tập lớn trí tuệ nhân tạo trò chơi cờ vua

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 (469.53 KB, 34 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MƠN TRÍ TUỆ NHÂN TẠO
Tên đề tài:
Trị chơi cờ vua

GIÁO VIÊN HƯỚNG DẪN: ĐỒN THỊ THANH HẰNG
NHĨM THỰC HIỆN: NHĨM 6
LỚP: 72DCTT21

THÀNH VIÊN THỰC HIỆN: ĐỒNG THANH TUẤN
HỒNG TRẦN NGUYÊN
ĐỖ VIỆT HƯNG
HY TIẾN SƠN
LÊ QUANG DUY
BẠCH MINH TUẤN

HÀ NỘI 2023


MỤ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 TỐN...............................................................................................................19
2.4.1 Thuật tố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

2


Trí tuệ nhân tạo

PHÂ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 tố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 đi
Hoàng Trần Ngun - Tìm hiểu thuật tốn Minimax
- Cây trị chơi
- Kiểm tra giới hạn một bàn cờ
- Đánh giá một thế cờ
Đỗ Việt Hưng
- Tìm hiểu thuật tốn Minimax
- Vét cạn
- Xử lý một nước đi “thử”
- Xử lí điều khiển của người chơi
Lê Quang Duy
- Tìm hiểu thuật tố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ơi
Bạch Minh Tuấn
- Tìm hiểu thuật tốn cải tiến Alpha – Beta
- Tổng quan về AI
- Chạy chương trình

35


LỜ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ỗi
chiế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ười
cà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ông
ngừ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ệ để
hồ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ôn
học thông qua đề tài đã nêu ở trên. Hiện tại, chương trình của chúng em cịn
nhiề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ác
bạ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Ả

4


Trí tuệ nhân tạo

CHƯƠ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 tố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ệ chun gia, mạng ngữ nghĩa, ... Các
ngơn ngữ lập trình như LISP, PROLOG mởđường cho việc áp dụng hàng loạt
cá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áy
tí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ày
trong một thời gian dài đã ảnh hưởng rất nhiều đến các nghiên cứu trong phịng
thí 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ết
quả 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ằng
chươ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ảng
củ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ột
chương trình mới vào bộ nhớ. Theo một nghĩa nào đó, khả năng này làm cho
máy tính có khả năng học và suy nghĩ. Đó cũng chính là một trong những biểu
hiện quan trọng đầu tiên của những máy tính được trang bị TTNT.

35


Năm 1956, chương trình dẫn xuất kết luận trong hệ hình thức đã được
cơng bố. Tiếp theo đó, năm 1959 chương trình chứng minh các định lý hình học
phẳng và chương trình giải quyết bài tốn vạn năng (GPS - General Problem
Solving) đã đượ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ên
dùng cho trí tuệ nhân tạo LISP (list processing), các nghiên cứu về TTNT mới
bắt đầu phát triển mạnh mẽ. Thuật ngữ TTNT do Marvin Minsky một chuyên
gia nổi tiếng cũng ở MIT đưa ra năm 1961 trong bài báo “ Steps Forwards To
ArtIficial Intelligence”.
Những năm 60 có thể xem là một mốc quan trọng trong q trình xây
dựng các máy có khả năng suy nghĩ. Các chương trình chơi cờ và các chương
trình chứng minh định lý tốn học đầu tiên cũng được công bố trong khoảng thời
gian 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ứu

TTNT 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 cho
phép tổng qt hóa những thành cơng bước đầu đạt được trong các hệ chương
trì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 tốn
đã được nâng cao đáng kể về chất, song những cách tiếp cận khác nhau đến
TTNT vẫn chưa đem tới những thành công thật sự do sự bùng nổ tổ hợp trong
quá 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 tri
thức, lý thuyết giải quyết vấn đềđã đem lại diện mạo mới cho TTNT. Thị trường
6


Trí tuệ nhân tạo

tin học đã bắt đầu đón nhận những sản phẩm TTNT ứng dụng đầu tiên mang
tính thương mại. Đó là các hệ chuyên gia được áp dụng trong các lĩnh vực khác
nhau. 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ười
dùng ở một mức độ nào đó với trình độ nhưmột chun gia có kinh nghiệm lâu
năm. Một trong những hệ chuyên gia đầu tiên được sửdụng thành công trong
thực tế là hệ MYCIN, được thiết kế và cài đặt tại trường Đại học Tổng Hợp
Stanford. 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ấy
ngơn ngữ PROLOG như là ngôn ngữ cơ sở đã làm thay đổi khá nhiều tình hình
phát triển TTNT ở Mỹ cũng như châu Âu. Giai đoạn 1981 trở đi người ta cảm
nhậ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ứu

hàng đầu nhằm đưa ra thị trường các sản phẩm phần mềm ứng dụng kỹ thuật
TTNT.
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ụng
TTNT. Các hệ thống nhận dạng và xử lý hình ảnh, tiếng nói đang ngày càng
thú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

35


đượ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ủa
cá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ời
giả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 vi
thông minh. AI là một bộ phận của khoa học máy tính và do đó nó phải được đặt
trên những nguyên lý lý thuyết vững chắc, có khả năng ứng dụng được của lĩnh
vự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 tri
thứ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ải
chấp nhận một thực tế - trí tuệ tự nó là một khái niệm khơng được định nghĩa
mộ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ơng

minh 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ĩa
trí 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ợp
những khả năng khác nhau và khơng liên quan gì đến nhau? Thế nào là khả năng
8


Trí tuệ nhân tạo

sá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 quan
sá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ằm
bê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 ra
nhữ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ững
mố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ác
ngành khoa học đã trưởng thành trước đó. Song, một trong những mục tiêu
trọ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ính
hơ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ững
trang 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ệ” (Turing
1950) của ơng vẫn cịn mang tính thời đại đối với việc đánh giá những tranh
luậ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âu
trả 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ếu
qua những đóng góp của ơng cho lý thuyết về khả năng tính tốn đã xem xét câu
hỏ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ời
bằ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”.


35


Trắ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 được
xem là có hành vi thơng minh nhất và là chuẩn mực duy nhất về trí tuệ. Trong
trắ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ào
trong 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ói
chuyện với bất kỳ ai trong trong hai đối tượng trên, cũng khơng biết được chính
xá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 đối
tượ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ết
bịđầ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ằng
cá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 qua
thiế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ấn
vớ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 đảm
rằ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 hay
bấ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ột
phé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ện
nhanh 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
10



Trí tuệ nhân tạo

thơ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ững
bài tố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ới
chiế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 đến
cả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ái
niệ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ẩn
mực để xác định trí thơng minh, đồng thời tránh được những tranh luận không
cần thiết về bản chất “đúng” của nó. Nó tránh cho chúng ta khỏi bị lạc đường
bở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áy
tí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ính
thự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ác
câ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ác
chương trình TTNT hiện đại. Người ta có thể đánh giá khả năng chun mơn
củ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àm
việ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 cho
trước. Kỹ thuật đánh giá này chỉ là biến thể của trác nghiệm Turing: một nhóm
chuyê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

35


trê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ếu

trong 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.

12


Trí tuệ nhân tạo

CHƯƠ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 vng 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 tay
phả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ột
nướ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ân
nhẹ.
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ầm
quâ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ức
chơi là giải trí hay thi đấu trong hệ thống có tổ chức. Có thể là thỏa thuận (giải
trí) hoặc do quyết định của trọng tài trong giải đấu. Bên cầm qn trắng ln
ln được đi trước và do đó có ưu thế nhỏ so với bên cầm quân đen. Các quân

35


cờ 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ải
ngườ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ó qn nào cản trên đường đi hay tới ô bị quân đối
phương chiếm giữ (ăn quân) nhưng khơng thể vượt qua qn đang đứng ở ơ
đó. Ngoại lệ duy nhất là trường hợp nhập thành. Khi đó nó có
thể nhảy qua qn Vua của mình để đứng cạnh nó. Chỉ có Xe
mới có nước đi như vậy.
- Tượng (B - Bishop) di chuyển theo đường chéo tới ơ có cùng
màu với

ngun lý tương tự như Xe tới ơ cịn trống hay ơ

bị qn đố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ống

như Tượng và Xe.
- Mã (N - Knight) có thể di chuyển tới ơ cịn trống hay ơ bị qn
đối phương


chiếm giữ (ăn qn) 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
cờ tướng.
- Tốt (P - Pawn) có thể di chuyển thẳng về phía trước chỉ một ơ
một lần tới ơ

cịn trống (đi mà khơng ăn quân), nhưng khi

di chuyển quân để ăn quân đối

14

phương thì đi chéo. Nó có


Trí tuệ nhân tạo

thể 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ột
quân

khác để tới ơ đó.
◙ T Trong trường hợp khi một quân Tốt nào đó của bên

trắng đạt tới hàng
+ Trong trường hợp khi một quân Tốt nào đó của bên trắng đạt tới hàng 5

(ví dụ tới ơ e5) và quân Tốt thuộc một trong hai cột của bên đen nằm ngay bên
cạnh cột mà Tốt trắng này đang chiếm giữ (trong trường hợp đã cho là cột d và
cột f) đi từ vị trí xuất phát đầu tiên (d7 hay f7) nhảy liền 2 ơ tới ơ d5/f5 thì Tốt
trắng tại vị trí e5 ngay tại nước đi sau đó có quyền ăn Tốt đen tại ơ d5/f5 và di
chuyển tiếp tới ô d6/f6. Quyền này sẽ tự động mất, nếu tại nước đi ngay sau đó
quân trắng di chuyển quân khác. Tương tự như vậy cho Tốt đen khi nó đã chiếm
giữ hàng 4. Đây là trường hợp mà trong cờ vua người ta gọi là bắt tốt qua đường
(en passant).
+ 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ùng
thì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 thua
cuộc. Mỗi lần đi nó có thể ăn quân hoặc di chuyển sang các ô bao quanh ô mà
35


nó hiện tại đang chiếm giữ, nhưng khơng thể tới ô mà quân của mình đang
chiếm giữ hay các ô bị quân đối phương kiểm soát. Ngoại lệ duy nhất là trường
hợp nhập thành. Khi đó nó có thể di chuyển qua hai ô đồng thời với việc di
chuyển quân Xe của mình để qn Xe đó đứng bên cạnh nó về phía cột trung
tâ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 qn đố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áp
nhằm cứu Vua (di chuyển Vua khỏi vị trí bị chiếu, ăn quân đang chiếu hay dùng

quâ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ột
bê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 hay
khi không đủ lực lượng để chiếu hết (insufficient material), rơi vào trạng thái hết
nướ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ững
trò 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ó

16


Trí tuệ nhân tạo

thể chuyển về một dạng bài tốn tìm kiếm đặc biệt: tìm đường đi đến các điểm
cao 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ễn
thà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 đi
tố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ác
nhá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 theo
cặ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ật
toán này để tính tốn nước đi, kết quả trả về sẽ rất chính xác. Nếu vậy thì việc
cho máy tính chơi cờ vua chẳng có gì gọi là khó khăn. Tuy nhiên, may mắn thay
cá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
35


con số thường gặp trong các trò chơi cờ), ta phải duyệt 16^10 nhánh hay xấp xải
10^12 nhánh – một con số rất lớn. Qua phân tích trên ta thấy khơng thể áp dụng
hồn tồn thuật tốn vét cạn vào trị chơi được. Để tạo ra một thuật tốn đánh cờ
vua tối ưu cho máy tính, chúng ta phải xác định được chiến lược tìm kiếm trong
trị chơi rồi dựa vào đó xây dựng nên những thuật tốn tối ưu cho máy tính.
2.3.4 Chiến lược tìm kiếm
Chiến lược tìm kiếm: Một chiến lược thường được cả người lẫn máy dùng
là phân tích thế cờ chỉ sau một số nước đi nào đó của cả hai bên. Sau khi “nhìn
xa” xem bàn cớ có những khả năng biến đổi như thế nào sau một số nước, ta sẽ
đánh giá độ tốt xấu của các thế cờ nhận được. Tiếp theo, ta sẽ chọn nước đi sẽ
dẫn tới một thế cờ tốt nhất trong đó số đó có cân nhắc đến cách đi của cả hai bên
(thường chúng ta xem như cả hai người đều đưa ra những lựa chọn tối ưu). Với
máy thế cờ này được đánh giá tối hơn thế cờ kia nhờ so sánh điểm của thế đó do
bộ lượng giá đáp trả lại.
Việc lượng giá quân cờ có thể hiểu đơn giản rằng, gán mỗi quân cờ một
số điểm, trong khuôn khổ bài tập này đề cập đến thì là như sau: Hậu trị giá 9
điểm, Xe trị giá 5 điểm, Tượng và Mã đều trị giá 3 điểm và Tốt trị giá 1 điểm.
Do việc mất Vua tương đương với thua cờ nên giá trị của nó là vơ hạn, trong cờ

tàn nó khoảng 3,5 điểm, trong bài tập này, giá trị của tướng là 900 điểm. Tuy
nhiên, giá trị thực sự và tầm quan trọng của một qn cờ khơng thể chỉ đơn giản
như vậy. Nó cịn phụ thuộc vào thế cờ. Ví dụ một qn Xe đang nằm ở vị trí xấu
khơng có giá trị bằng một con Mã đang có thế đứng tốt. Nếu một người chơi
thực hiện việc thí quân (cho phép đối phương bắt qn có trị giá cao của mình)
18


Trí tuệ nhân tạo

thì thơng thường họ sẽ bỏ qua các giá trị danh định dành cho quân đó để đổi lấy
các ưu thế về chiến lược hay ưu thế về vị trí của các qn đang tấn cơng.
Khi chơi cờ, chắc chắn bạn phải xét trước một số hữu hạn các nước đi, đề
tự tìm chiến thuật cho riêng mình. Người bình thường xét 2-4 nước đi, trong khi
các đại kiện tướng có thể xét từ 8-10 nước đi. Rõ ràng nếu càng xét sâu, nước đi
càng chắc chắn và cơ hội chiến thắng càng cao.
Như vậy, dựa vào chiến lược tìm kiếm ta hiểu ra rằng thay vì xét hết tồn
bộ q trình chơi, các nước đi từ khi bắt đầu đến khi kết thúc, ta có thể xét trong
một số hữu hạn các nước. Điều này đảm bảo về mặt thời gian, nhưng cũng góp
phần tăng độ chắc chắn trong các nước đi của chúng ta.
2.4 THUẬT TỐN
2.4.1 Thuật tốn Minimax
Trong q trình chơi, cả hai đấu thủ đều cố gắng đi như thế nào đó để đạt
điểm tuyệt đối lớn nhất. Người chơi cực đại sẽ tìm những nước đi dẫn đến điểm
của mình cao nhất có thể (hay chính là đẩy điểm của người chơi cực tiểu bớt âm
hơn). Trái lại, người chơi cực tiểu cố đi để đạt tới vị trí mà điểm của mình nhỏ
nhất có thể.
Từ đó ta hình thành tư tưởng thuật toán Minmax như sau: bắt đầu ở một
nút (một thế cờ), ta thực hiện tất cả các nước có thể đi, thăm tồn bộ các nút con
của nó trong cây trị chơi. Sau khi đã thăm tồn bộ các nút, kiểm tra xem hiện tại

là lượt chơi của đấu thủ nào.

35


Nếu đang là lượt chơi của đấu thủ maximizer, ta xét tồn bộ các nút con
của nó, chọn ra nút con có giá trị lớn nhất.
Nếu đang là lượt chơi của đấu thủ minimizer, ta xét toàn bộ các nút con
của nó, chọn ra nút con có giá trị nhỏ nhất.

Ta có thể thấy cách cài đặt của thuật tốn Minmax khá tương tự với cách
cài đặt đệ quy quay lui, kết hợp với quy hoạch động trên một đoạn cây từ đó
chọn ra cách đi tối ưu nhất.
Đánh giá thuật tốn Minmax: Nếu hệ số nhánh trung bình của cây là b và
ta thực hiện tìm kiếm đến độ sâu d thì số nút phải lượng giá ở đáy cây như ta đã
biết là b*d. Đây chính là số đo phức tạp của thuật toán. Nếu b = 40, d = 4 (các
con số thường gặp trong trò chơi cờ) thì số nút lượng giá là 2560000 nút. Cịn
với b = 40, d = 5 thì số nút lượng giá sẽ tăng lên 40 lần = 102400000 nút.
20



×