1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng chương trình trí tuệ nhân tạo cho trò chơi cờ vua

37 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Chương Trình Trí Tuệ Nhân Tạo Cho Trò Chơi Cờ Vua
Tác giả Nguyễn Dức Bảo, Lê Anh Tú, Dương Xuân Hợp
Trường học Trường Đại Học Hàng Hải Việt Nam
Chuyên ngành Công Nghệ Thông Tin
Thể loại báo cáo bài tập lớn
Năm xuất bản 2024-2025
Thành phố Hải Phòng
Định dạng
Số trang 37
Dung lượng 4,05 MB

Nội dung

Thông qua việc xây dựng một phần mềm trò chơi cờ vua dựa trên trí tuệ nhân tạo, nhóm chúng tôi không chỉ nâng cao kiến thức cá nhân về AI, mà còn đóng góp vào việc phát triển các ứng dụn

Trang 2

Danh mục các từ viết tắt, thuật ngữ:

Al: Artifical Intelligence

IBM: International Business Machines Corporation

PVS: Principle Variation Search

UCI: Universal Chess Interface

LMR: Late Move Reduction

Trang 3

Nguyễn Dức Bảo — Mã SƯ: 95057

Lê Anh Tú T— Mã SV: 95213

Dương Xuân Hợp — Mã SV: 96645

LỜI MỞ ĐẦU Trong thời đại công nghệ phát triển mạnh mẽ, các lĩnh vực liên quan đến trí tuệ nhân tạo (AI) đã và đang trở thành xu hướng hàng đầu trong nghiên cứu và ứng dụng Trong bối cảnh đó, tiểu luận này mang ý nghĩa vô cùng quan trọng, không chỉ giúp chúng tôi tìm hiểu sâu hơn về công nghệ AI, mà còn mở ra cơ hội áp

dụng những lý thuyết tiên tiến vào thực tiễn Thông qua việc xây

dựng một phần mềm trò chơi cờ vua dựa trên trí tuệ nhân tạo, nhóm chúng tôi không chỉ nâng cao kiến thức cá nhân về AI, mà còn đóng góp vào việc phát triển các ứng dụng thông minh phục

vụ nhu cầu giải trí và học tập của con người

Lý do chọn đề tài là vì trò chơi cờ vua từ lâu đã được coi là một biểu tượng của tư duy chiến lược và sự phát triển trí tuệ Cờ vua không chỉ là một môn thể thao trí tuệ mà còn là một thử thách đối với cả người chơi lẫn máy tính Khi kết hợp với trí tuệ nhân tạo, việc xây dựng một phần mềm cờ vua giúp tái hiện lại các chiến thuật và động thái phức tạp của trò chơi, đồng thời cho phép phát triển các chiến lược AI thông minh hơn Chính từ mong muốn khám phá sự kết hợp giữa AI và cờ vua, tiểu luận này đã được lựa chọn với hy vọng mang lại một góc nhìn mới mẻ về lĩnh vực này

Để hoàn thành tiểu luận này, nhóm tôi xin gửi lời cảm ơn sâu sắc

đến giáo viên hướng dẫn, người đã không ngừng hỗ trợ và định hướng trong suốt quá trình nghiên cứu Những ý kiến đóng góp quý báu và sự chỉ dẫn tận tình của thầy đã giúp tôi vượt qua nhiều

khó khăn, mở rộng tầm hiểu biết về chủ đề này Tôi cũng xin cảm

ơn các bạn bè và những người thân đã luôn tạo điều kiện thuận lợi, khuyến khích và hỗ trợ tôi về tinh thần cũng như vật chất trong suốt thời gian hoàn thành tiểu luận

Trang 4

Bố cục của tiểu luận này gồm bốn phần chính Phần đầu tiên giới thiệu tổng quan về trí tuệ nhân tạo, từ các khái niệm cơ bản đến lịch sử phát triển và những ứng dụng quan trọng Phần thứ hai đi sâu vào việc phân tích cấu trúc, thiết kế và các thuật toán liên

quan đến phần mềm cờ vua AI Phần ba là giới thiệu về ngôn ngữ

mà nhóm tôi dùng để thực hiện chủ đề này Cuối cùng, phần bốn

là những đánh giá về khả năng phát triển trong tương lai và

những thách thức khi áp dụng AI vào các trò chơi trí tuệ, đồng thời

đề xuất những cải tiến cho dự án trong các nghiên cứu tiếp theo

Với mục tiêu cung cấp một cái nhìn toàn diện về ứng dụng của trí tuệ nhân tạo trong trò chơi cờ vua, tiểu luận hy vọng sẽ mang lại những giá trị hữu ích cho những ai quan tâm đến lĩnh vực này Qua đó, tôi mong rằng sẽ đóng góp được phần nào vào sự phát triển của công nghệ AI và các ứng dụng của nó trong cuộc sống

Trang 5

Nguyễn Dức Bảo — Mã SƯ: 95057

FN NOU EN NEI EU EEE ELIE EE EE EEE EIEIO EEE EE EEE EEE EE EEE EEE EEE 13 1.2.6 MG FONG CIM KIGM cc cccceeeeeceeeeeeseeeeeeeeeesseesssaneeeesereneetteneas 13

1.2.9 Giảm bớt nước đi CUỐI che 15

Chương 2: PHÂN TÍCH BÀI TOÁN -cc s2 15 2.1 Giao diện người dùng và luật chơi cờ vua cci.c 15 2.2 BOT CỜ VỤA tt vn nh ng nh nh ng nh khe 17

2.2.1 Tổng điểm của quân cờ trên bàn cờ c cv 17

2.2.2 Hàm đánh giá ‹‹ ccccnnnnnnn nh nh ng Tnhh ro 18 Chương 3: Ngôn ngữ thực hiện - - - - uc 20

Trang 6

3.2 Thư viện chính hỗ trợ CỜ VUA cc CĐ SH HH nhe riy 20

Chương 4: Các kết quả đạt đưƯỢC -.- «nen sen 22

4.1 Thực hiện chương trÌnh is cnnnnn vn hs nh nho 22 Giao diện trạng thái ban đầu: Một bàn cờ vua có 2 bên trắng và đen Người dùng có thể chọn tự chơi với bot hay chọn để cho

engine tự chơi với nhau thông qua các phím với các cấp độ khác Ma? e ener reece ee EEE EEE E EEE EE DEEDES TEESE EEE DEST EEE EEE SEEDS EE SEER EE EEE EEE 22 4.2 Đánh gid CHUONG triNh cccccceeesecseeeeceeeeseeeeeeeseeseseeeeeneeseaeeees 25 4.3 So sánh thuật toán cuc nn Tnhh nh HH ng 25

Để tiện so sánh thuật toán, nhóm đã đặt tên cho chương trình là:

“Siêu cấp VỊP PO ” cnnnnnnnnn nh HT kg KH TT Ha 25

4.4 Đánh giá trình đỘ cccccnc nnnnnn ng n nghe nhu 27 Thiết lập thi đấu: 00111111111 nh Ho 28

Kết quả thi đấu: tt nnnnnn Tnhh kg thà 28

4.5 Đánh giá hệ số ElO cn tt n1 ng n ng ưu 29

4.6 Điểm yếu cần khắc phục : cccccctk cv nhe 29

Tài liệu tham khảO ‹ ccc cccnnnn nh ng ng ng ng nen rêu 32

Hình 1.1 Bần CỜ c cu ng nnn ng n TT nh T ng TK TK TK The 6 Hình 1.2 Ví dụ thuật toán MinimaX cu ng nn nh nen hen rào 9 Hình 1.3 Ví dụ thuật toán minimax cắt tỉa Alpha-Beta 10 Hình 1.4 Giao thức CI tt vkn SE kg s kg gen be 14 Hình 2.1 BitbOard cccc nnnnnnn ng ng HT ng TT Tế TT gen 16 Hình 2.2 Ma trận thể hiện giá trị của quân Tốt tùy vị trí 18 Hình 4.1 Giao diện ban đầu của chương trình ccccc cà 23 Hình 4.2 Hiện các bước đi CỜ VUA con nh nghe 23

Hình 4.3 Kết thúc ván cờ bên trắng thắng :ccccccccccccccc: 24

Hình 4.4 Tốt trắng phong hậu khi đến cuốu bàn cờ - 24

Danh mục bảng

5

Trang 7

Nguyễn Dức Bảo — Mã SƯ: 95057

Bảng 4.5 Kết quả tổng quan cc nghe 28 Bảng 4.6 Kết quả đôi chiếu chéo chao 28

Bảng 4.8 Đánh giá ©lO : ccnnnnn ng nh nn ng Hs HT tha 29

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu

1.1.1 Cờ vua (Chess)

Cờ vua, được biết đến với tên gọi tiếng Anh là "chess," là một trò chơi đối kháng trí tuệ chơi trên bảng dành cho hai người Xuất phát

từ những trò chơi cổ có nguồn gốc từ Ấn Độ và Ba Tư, cờ vua đã trải

qua một quá trình phát triển dài lâu để trở thành trò chơi như ngày

nay Đặc biệt, vào nửa sau của thế kỷ 15, cờ vua lan rộng và được

chơi nhiều phổ biến ở Nam Âu

Trang 8

mỗi người chơi điều khiển một quân đội bao gồm tốt, mã, tượng,

xe, hậu và vua Mục tiêu chính của người chơi là chiếu hết vua đối phương

1.1.2 Ảnh hưởng của trí tuệ nhân tạo với cờ vua

Trong thế kỷ 20 và đặc biệt là thế kỷ 21, sự phát triển của trí

tuệ nhân tạo đã đánh dấu một cột mốc quan trọng trong lịch sử cờ vua, biến những trò chơi đấu trí truyền thống giữa người và người thành cuộc đấu giữa con người và máy tính Một số sự kiện đáng chú ý đã chứng kiến sức mạnh đáng kinh ngạc của máy tính trong trò chơi này

Đối mặt với một trong những đại kiện tướng cờ vua hàng đầu thế giới, Deep Blue, máy tính của IBM, đã tạo nên lịch sử khi chiến thang van dau tiên trong một trận đấu 6 ván với Garry Kasparov vào năm 1996 Bất ngờ không chỉ dừng lại ở đó khi Deep Blue tái đấu với Kasparov vào năm 1997 và giành chiến thắng chung cuộc, điều này đã chứng kiến sức mạnh trí tuệ vượt trội của

AI

Trang 9

Nguyễn Dức Bảo — Mã SƯ: 95057

Lê Anh Tú T— Mã SV: 95213

Dương Xuân Hợp — Mã SV: 96645

AlphaZero của DeepMind, một cơ sở thuộc sở hữu của Goodle, tiếp tục làm chao đảo cộng đồng cờ vua khi nó tự học và đánh bại một trong những chương trình cờ mạnh mẽ nhất thế giới,

Stockfish, mà không cần bất kỳ dữ liệu cờ vua trước đó

Năm 2021, Stockfish đã thể hiện sức mạnh của mình khi đánh bại một loạt các đại kiện tướng thế giới trong một sự kiện độc đáo

Sự kiện này đặt ra những thách thức mới và khám phá sự cân bằng giữa con người và trí tuệ nhân tạo trong thế giới đầy chiến thuật và sáng tạo của cờ vua

Ngày nay, cờ vua không chỉ là một trò chơi giải trí tại nhà mà còn là một bộ môn thể thao trí tuệ tại các câu lạc bộ và giải đấu trên toàn thế giới Cờ vua thu hút hàng triệu người chơi, không chỉ trong các buổi chơi gia đình mà còn thông qua các nền tảng trực

tuyến và các giải đấu lớn tổ chức khắp nơi trên thế giới Sự kết

hợp giữa chiến thuật tỉnh tế và sự tính toán chiến lược làm cho cờ vua trở thành một trong những trò chơi giáo dục và giải trí hàng đầu thế giới

1.2 Cơ sở lý thuyết

Mục tiêu của nhóm là xây dựng một chương trình AI cờ vua đồ

họa đơn giản có thể chơi với người chơi ở mức khá thông qua việc

sử dụng phương pháp đã được học trong môn học Trí tuệ nhân tạo

và tìm hiểu trên các nền tảng khác nhau : Minimax, cắt tỉa Alpha-

Beta, Iterative Deepening (tim kiếm sâu dân), sắp xếp nước đi

(move ordering), tìm kiếm phương án chính (principle variation search - PVS), nước đi huỷ diệt (killer moves), bảng trạng thái (transposition table)

Chương trình này cài đặt 4 nhóm thuật toán chính (Minimax,

Alphabeta, Iter deepen, Pv_search) Một số kĩ thuật sẽ chỉ được

thêm vào 1 số nhóm thuật toán, một phần là do tính khả thi, một

8

Trang 10

phần là để làm nổi bật sự khác biệt giữa các nhóm thuật toán Mặc định bot sẽ dùng thuật toán PVS Các nhóm thuật toán này

sẽ được dùng chung các hàm đánh giá

Minimax là 1 trong 2 loại thuật toán chính để triển khai bot cờ vua; thuật toán còn lại là thuật toán tìm kiếm cây Monte-Carlo (Monte-Carlo tree search hay MCTS) Dự án này dùng minimax và

các biến thể của minimax vì minimax phổ biến hơn so với MCTS

1.2.1 Minimax và cây trò chơi

Cây trò chơi được xây dựng như sau: Gốc của cây ứng với trạng thái ban đầu Ta sẽ gọi đỉnh ứng với trạng thái mà Trắng (Đen) đưa

ra nước đi là đỉnh Trắng (Đen) Nếu một đỉnh là Trắng (Đen) ứ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 Trắng (Đen) thực hiện nước đi hợp

lệ nào đó Do đó, trên cùng một mức của cây các đỉnh đều là Trắng hặc đều là Đen, các lá cửa cây ứng với các trạng thái kết thúc

Quá trình chơi cờ qua cây trò chơi là sự luân phiên đưa ra quyết định của hai bên (Trắng và Đen), với mỗi bước đi tạo ra một đường từ gốc đến lá của cây Ở mỗi đỉnh, bên có lượt chơi sẽ chọn nước đi tốt

nhất dựa trên các đỉnh con Mục tiêu của Trắng là tối đa hóa giá trị,

còn Đen là tối thiểu hóa giá trị, và giá trị này được đánh giá bởi hàm kết cuộc hoặc hàm đánh giá

Chiến lược Minimax là một phương pháp giúp Trắng chọn nước đi tối

ưu, trong đó Trắng cố gắng đạt đỉnh có giá trị lớn nhất trong các đỉnh

con, còn Đen cố gắng chọn đỉnh có giá trị nhỏ nhất Thuật toán

Minimax hoạt động theo phương thức đệ quy, duyệt sâu qua các

nước đi có thể Tuy nhiên, do số lượng nước đi rất lớn trong các trò

chơi phức tạp như cờ vua, việc tính toán tối ưu toàn bộ cây trò chơi trở nên không khả thi trong thực tế

Trang 11

Nguyễn Dức Bảo — Mã SƯ: 95057

Lê Anh Tú — Mã SV: 95213

Dương Xuân Hợp — Mã SV: 96645

Để giảm thời gian tính toán và tìm ra nước đi tốt, thay vì xem xét

toàn bộ cây và tính nước đi tối ưu, người ta sử dụng hàm đánh giá để ước lượng giá trị của từng nước đi

Maximizer

Minimizer

Maximizer

Terminal node

Terminal values

Hinh 1.2 Vi du thuật toán Minimax

1.2.2 Cat tia Alpha-Beta

Thuật toán cắt tỉa Alpha-beta là một kỹ thuật tối ưu hóa được sử dụng trong thuật toán tìm kiếm Minimax, thường áp dụng trong lý thuyết trò chơi và trí tuệ nhân tạo Mục tiêu của thuật toán này là giảm bớt số lượng các trạng thái cần phải xem xét trong cây trò chơi,

giúp tăng hiệu quả và tốc độ tìm kiếm Cụ thể, thuật toán cắt tỉa

Alpha-beta hoạt động bằng cách loại bỏ những nhánh không cần thiết trong cây tìm kiếm Nó sử dụng hai giá trị, alpha và beta, để theo dõi giới hạn tốt nhất của người chơi MAX và MIN Nếu

một nhánh không thể cải thiện kết quả hiện tại, nó sẽ bị cắt bỏ, giúp

tiết kiệm thời gian và tài nguyên tính toán

10

Trang 12

Thuật toán cắt tỉa Alpha-beta hoạt động bằng cách duyệt qua cây trò chơi theo chiều sâu (depth-first search) và sử dụng hai giá trị

alpha và beta để cắt bỏ những nhánh không cần thiết Dưới đây là

chỉ tiết về cách hoạt động:

11

Trang 13

Nguyễn Dức Bảo — Mã SƯ: 95057

Lê Anh Tú T— Mã SV: 95213

Dương Xuân Hợp — Mã SV: 96645

1 Giá trị Alpha và Beta:

o Alpha: Giá trị tốt nhất mà người chơi MAX (người chơi

muốn tối đa hóa điểm số) có thể đảm bảo tại bất kỳ điểm

nào

o Beta: Gia trị tốt nhất mà người chơi MIN (người chơi muốn

tối thiểu hóa điểm số) có thể đảm bảo tại bất kỳ điểm

nào

2 Quy Trình Duyệt Cây:

øo_ Bắt đầu từ gốc cây, duyệt qua các nút con theo chiều sâu

o Tai mdi nut MAX, cap nhat giá trị alpha néu tim thay gia

trị lớn hơn

o Tai mdi nut MIN, cap nhat giá trị beta nếu tìm thấy giá trị nhỏ hơn

ø_ Nếu tại bất kỳ điểm nào, giá trị beta của một nút MIN nhỏ

hơn hoặc bằng giá trị alpha của một nút MAX, các nhánh

con của nút đó sẽ bị cắt bỏ vì chúng không thể ảnh hưởng đến quyết định cuối cùng

Thuật toán cắt tỉa Alpha-beta đảm bảo rằng bất kỳ nhánh nào bị cắt bỏ đều không thể chứa nước đi tốt hơn vì:

‹ồ Giá trị alpha và beta: Được cập nhật liên tục để phản ánh giá trị tốt nhất có thể đạt được

‹ Cat tỉa: Chỉ xảy ra khi chắc chắn rằng nhánh đó không thể cải

thiện kết quả hiện tại

12

Trang 14

Vì vậy, nếu có một nước đi tốt hơn ở nhánh đã bị bỏ qua, điều đó

có nghĩa là giá trị của nước đi đó không thể vượt qua giá trị alpha hoặc beta hiện tại, và do đó, không ảnh hưởng đến quyết định cuối cùng

từ lần lặp trước đề áp dụng vào việc sắp xếp nước đi ở lần lặp sau Nó giống như một

bộ phim về vòng lặp thời gian vậy:

Vĩ dụ: Nhân vật chính vì thua một ván cờ vua nên bị giết chết Tuy nhiên, anh

ta đã không chết mà lại quay trở về đúng lúc chuẩn bị đi ở nước đi thứ 69 Vì nhớ

được mình đã thua như thế nào, anh ta quyết định đi nước cò khác Tuy nhiên, đổi thủ

vẫn đi nước cờ giống hệt như lần trước và anh ta vẫn thua Tưởng như đã chết, anh ta lại quay trở về lúc mình sắp đi nước thứ 69 Rút kinh nghiệm, lần này anh ta quyết

13

Trang 15

Nguyễn Dức Bảo — Mã SƯ: 95057

Lê Anh Tú T— Mã SV: 95213

Dương Xuân Hợp — Mã SV: 96645

định suy nghĩ xem đối phương sẽ đi như thế nào nếu mình đi nước này, nước kia; va rồi chọn ra 1 nước đi khác Đối thủ thấy chiến thuật của mình bị phát hiện, liền thay đổi sang chiến thuật khác Nhân vật chính do không lường trước điều này nên vẫn thua cuộc Anh ta lại bị đưa về trước khi đi nước thứ 69 Điễu này cứ lặp đi lặp lại cho đến khi anh ta hoà cờ hoặc thắng trên thì mới kết thúc

Tuy nhiên thuật toán này sẽ khiến việc tìm kiếm trở nên mắt thời gian hơn bởi có nhiều nút sẽ được duyệt nhiều lần, gây lãng phí thời gian khả năng tính toán

1.2.4 Bảng trạng thái

Bảng trạng thái (transposition table) là một cầu trúc đữ liệu dé lưu thông tin có được trong qua trình tìm kiếm các thế cờ Trong cờ vua, các thế cờ giống nhau có thể xuất hiện từ các chuỗi nước đi khác nhau Vì vậy, bảng trạng thái về mặt lí thuyết sẽ giúp giảm số lượng nút cần tìm kiếm, nhất là ở các lần lặp tiếp theo Bảng trạng thái sẽ tiêu tốn bộ nhớ theo thời gian Bảng trạng thái về bản chất là m6t bang bam (trong Python gọi là "từ điển"), nên ta cần có cách để băm 1 thế cờ để làm khoá Vì lớp Board trong

Có 2 cách dé làm việc này:

e _ Cách 1: Chuyên thế cờ thành xâu FEN rồi đùng xâu này làm khoá, vi xâu trong

Python hỗ trợ băm FEN là Forsyth-Edwards Notation (kí hiệu Forsyth— Edwards), là một cách để biểu diễn thế cờ bằng kí hiệu (VD:

rnbqkbnr/pppppppp/5/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1)

nguyên, rồi dùng nó đề làm khoá Hàm băm Zobrist được dùng ở phần lớn bot cờ vua

Trong mã nguồn đã có cài đặt bảng trạng thái, dùng hàm băm Zobrist Tuy nhiên, hàm băm Zobrist lại chạy khá chậm, giảm được số nút phải xét đến nhưng lại tăng thời

gian tìm kiếm lên từ 1,3 đến 2 lần Vì vậy, bảng trạng thái mặc định sẽ bị tắt đi

Cập nhật ngày 06/10/2024: Đối tượng Board của thư viện python-chess có sẵn phương thức _transposition table() Hàm nảy trả về một tuple (bộ) chứa các bang bit,

14

Trang 16

và băm bằng tuple này nhanh hơn nhiều so với hàm băm Zobrist Sau khi điều chỉnh thì bảng trạng thái mặc định sẽ được bật lên

Một mục trong bảng trạng thái sẽ chứa các thông tin sau:

4 sẽ bị xoá sau khi tìm xong ở nước thir ba (minh đi nước lẻ do di trước)

1.2.5 Phương án chính và tìm kiếm phương án chính (PV_SEARCH) Phương án chính (principle variation - PV) là chuỗi nước đi tốt nhất mà bot tìm được Giả sử cả 2 bên đều chọn nước đi tốt nhất thì các nước đi này sẽ trùng với phương án chính Nước đi nằm trong phương án chính gọi là nước đi phương án chính (nước đi PV) Nước đi được chọn ở mỗi lần lặp chính là nước di đầu tiên của phương

án chính Ta sẽ dùng phương án chính của lần lặp gần nhất để dẫn hướng cho lần lặp tiếp theo Cần phải chắc rằng phương án chính của lần lặp trước không khác lần lặp này quá nhiều Bằng cách đảo phương án chính lên đầu, ta sẽ cắt tỉa sớm hơn so với trước

15

Trang 17

Nguyễn Dức Bảo — Mã SƯ: 95057

Lê Anh Tú T— Mã SV: 95213

Dương Xuân Hợp — Mã SV: 96645

Tìm kiếm phương án chính (principle variation search - PVS) là việc tận dụng phương án chính của lần lặp trước để cắt tỉa nhiều các

nước đi nhất có thể Thay vì chỉ đơn thuần ưu tiên tìm trong nước đi

PV đầu tiên, đặt nước đi PV là nước đi tiên quyết, các nước đi còn lại

sẽ là nước đi với độ ưu tiên thấp hơn Ta sẽ thử chứng minh rằng PV

là nước đi tốt nhất bằng cách gọi thuật toán tương ứng nhưng với alpha-beta cực hẹp là alpha- alpha+1 (ở nút MAX) Trong alpha-beta, khoảng cách giữa alpha và beta được gọi là cửa sổ (window); cửa sổ càng hẹp thì cắt tỉa được càng nhiều, nhưng độ chính xác sẽ giảm

Thông thường, ta để cửa sổ ban đầu là vô cực để alpha và beta dần

dần thu hẹp lại Gọi hàm với cửa sổ cực hẹp sẽ nhanh hơn nhiều so

với thông thường Sau bước này nếu phát hiện có nước đi tốt hơn, ta

lại gọi hàm với alpha và beta như thường; nếu không thì dừng tìm kiếm

Trong mã nguồn, tất cả kĩ thuật sẽ được cài đặt hết vào thuật toán này

1.2.6 Mở rộng tìm kiếm

Mở rộng tìm kiếm (search extension) là việc tăng độ sâu tại một nút nào đó nếu thế cờ ở nút đó cần đặc biệt chú ý Trong mã nguồn thì ta sẽ tăng độ sâu lên 1 ở những thế cờ đang bị chiếu hoặc chuẩn

bị có nước phong

1.2.7 Nước đi huỷ diệt

Trong cờ vua, có những nước đi tuy không bắt quân nhưng lại doạ

bắt quân hoặc gây khó dễ cho đối thủ (chẳng hạn như Mã chiếu Hậu

và Tượng cùng lúc) Những nước đi như thế này thường giảm bớt số

nước đi mà đối thủ sẽ lựa chọn (vì đối thủ sẽ ưu tiên chạy Hậu mà bị chậm nhịp phát triển) nên cũng là nước đi khá tốt Nước đi như vậy được gọi là nước đi huỷ diệt (killer move) Trong thuật toán alpha- beta, nước đi huỷ diệt sẽ gây ra sự cắt tỉa, bỏ qua những nước đi còn

Trang 18

lại Vì vậy, mỗi khi có nước đi huỷ diệt ở một thế cờ, ta sẽ lưu nó lại rồi nhóm theo số thứ tự của nước đi (ply) Khi sắp xếp các nước đi ở cùng ply, ta sẽ xếp nước đi huỷ diệt trước, chỉ sau nước đi PV và nước

đi bắt quân

1.2.8 Giao thức UCI

Giao diện cờ vua chung (UCI - Universal Chess Interface) là 1 giao

thức cho phép các phần mềm cờ vua và bot cờ vua kết nối với nhau

Dự án này cài đặt 1 chương trình UCI đơn giản nằm ở tệp uci.py để kết nối với phần mềm khác, cho phép đấu tự động với các bot cờ vua khác

s8: Human - Human = B x

File Soạn Thiđấu Phântích Kếtnốổi Côngcu Cửasổ Ngônngữ

váncØ thắng hoà thua điểm elo + -

E | 1 Siêu cấp VIP Pro (PVS) | 34 28) 4 2 300 191, 90| 73

B 2 Siéu cap VIP Pro (lặp sâu) | 20} 2) +2 16, 30) -71| 93/120

5.3 Siêu cấp VIP Pro (alphabeta) 14) o| 2 12) 190 a0] no)

Hinh 1.4 Giao thie UCI

17

Ngày đăng: 06/02/2025, 16:08

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w