Điển hình trong lĩnh vực này là việc xây dựng chương trình chơi cờ vua với thuật toán Minimax va Alpha-Beta.. Ly do chon dé tài này không chỉ là một quyết định đơn giản mà còn là sự đánh
Trang 1
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC ĐẠI NAM
ĐẠI NAM
BÀI TẬP LỚN TÊN HỌC PHẢN: HỌC MÁY
ĐÈ TÀI: XÂY DỰNG CHƯƠNG TRÌNH CHƠI CỜ VUA VỚI
THUẬT TOÁN MINIMAX VÀ ALPHA-BETA
Giáo viên hướng dẫn: Tạ Đăng Chí
Sinh viên thực hiện:
Trang 2
TÊN HỌC PHAN: HOC MAY
DE TAI: XAY DUNG CHUONG TRINH CHOI CO VUA VOI
THUAT TOAN MINIMAX VA ALPHA-BETA
Trang 3LỜI NÓI ĐẦU
Đề hoàn thành bài tập lớn môn “Học Máy” với đề tài: “Xây dựng chương chỉnh chơi cờ vua với thuật toán Minimax và Alpha - Beta” Ngoài sự cố gắng của nhóm, chúng em xin chân thành cảm ơn thầy/cô giáo “khoa CNTT” trường Đại học Đại Nam
đã đóng góp ý kiến đề chúng em hoàn thành tiêu luận này!
Đặc biệt em xin bảy tỏ lòng biết ơn đến Thầy Tạ Đăng Chí, là người trực tiếp hướng dẫn khóa học trong suốt quá trình chúng em thực hiện đề tài
Mặc dù cố gắng song không tránh khỏi những thiếu sót, chúng em rất mong nhận được ý kiến đóng góp đề luận văn của em được hoàn thiện hơn!
Em xin chân thành cảm ơn!
Trang 4MỤC LỤC
Lớp CNTT 14-03| Trang 3
Trang 5CHUONG 1 TONG QUAN 2 S2 2122112211211 rre 8
1 Mục đích chọn đề tài 0 0 cty tru 8
1.2 GiGi han cia dQ tab cece cccccccccccsesecssesscsssecsesssscssessvseesevsusevscsesesensvesvenseeees 8
2.3 Ưu và nhược điểm ctia thuat toai ccc ccccccccccscesessecsessesseserssesseseesevstseeeeees II 2.4 Quy trình làm việc của thuật toán KNN Q Q2 Q22 Hà 12 2.5 Ví dụ mình họa - 2 Q00 1221111112111 121 111115111115 1111011115111 1 91211111 ke 12
3 Các bước mô tả thuật toán của chương trình - 2: c2 22211222 21x22 s2 14 KSN 6,1 Ấ.::iia 15 3.1.1 Các bước cua churong trinh cc 2c 2211221131211 1211 1121111111111 18111181118 xk 15
3.1.2 Churong trinh tong quate ccccccscccccsessesesecsessesseessessesesessssesseevevesscsnenseseeess 17
3.2 Thử nghiệm kết quả của chương trình s12 E1 112117111115211212 1E ga 19
3.2.0 Nhận đạng số Ô 52-52 1 2111511111111111111211 1111 1121101110121 112tr rưg 19 3.2.1 Nhận đạng số Lic ccccccccccscsessesessessesessessssessesessesessesessesessessssessisessisesseessseees 19
kg ng 20 3.2.3 Nhận đạng số 3 2-52 1 211111111111111121211 1111210112111 2121 1111 te g 20
EU NAÀH.('Ỷ 21 ESI\Igddđi(‹‹‹ỆÁÁÁIÃ ổ 21
Lớp CNTT 14-03| Trang 4
Trang 63.2.6 Nhận đạng SỐ 6 22-5221 21111121111111111211 1111211021211 211112 rag 22 3.2.7 Nhận đạng SỐ 7 - 5-5221 221511111111111111211 1111211211211 21211111 te ờg 22 3.2.8 Nhận dạng số 8 5-5 1 2111111111111121211 1112122121111 2 1111 ng 23
Trang 76
MỤC LỤC HÌNH ẢNH
Hình 1 Ảnh ví dụ ¿- 5: 21 21 2122211212211 22 21 2n n HH e 11 l;00108:6)))6.)011515EHHldỶỶỶỒIIỶIẶỶÝÁÝÁẢ 12 Hình 3 Ảnh Digits - - 5á 21221 212271121 211 11 1 1 H21 re e 14 Hình 4 Thông tin ảnh 2000 x1000 555 2 2211222112711 11221122112 122 22a 14 Hình 5 Kết quả thử nghiệm nhận dạng số Ô - 5 21 221 2112211211221 21 1211211 rve 18 Hình 6 Kết quả thử nghiệm nhận dạng số 1 - 5 5c 2E E1 1 12212 errtre 19 Hình 7 Kết quả thử nghiệm nhận dạng sỐ 2 -.52- 1 CS 2E 2221 1.212 1E errtg 19 Hình 8 Kết quả thử nghiệm nhận dạng số 3 -52- 125 SE E221 1 12121 tra 19 Hình 9 Kết quả thử nghiệm nhận dạng số 4 2 52 SE 2 222112112122 1101 1t errg 19 Hình 10 Kết quả thử nghiệm nhận dạng số 5 2 2121 2112711221271 201 2221222222 1 xe 19 Hình 11 Kết quả thử nghiệm nhận dạng số 6 2-5 S21 211 E2112711221211211 22112212 xe 19 Hình 12 Kết quả thử nghiệm nhận dạng số 7 2-52 21 2E E21127112212711 201 22122122 xe 19 Hình 13 Kết quả thử nghiệm nhận dạng số 8 1 S1 E22 122122112 1221 errtg 19 Hình 14 Kết quả thử nghiệm nhận dạng số 9 2 St SE E 12E12112211 2.2122 1errg 19
Lớp CNTT 14-03| Trang 6
Trang 87
BANG CAC TU VIET TAT
Trang 9
§
CHUONG I TONG QUAN VE DE TAI
1.1, Ly do chon dé tai
Trong thế giới ngày nay, sự kết hợp giữa công nghệ và trí tuệ nhân tạo không chỉ
mở ra những cánh cửa mới về sự sáng tạo mà còn mang lại những trải nghiệm tuyệt vời trong các lĩnh vực giải trí Điển hình trong lĩnh vực này là việc xây dựng chương trình chơi cờ vua với thuật toán Minimax va Alpha-Beta Ly do chon dé tài này không chỉ là một quyết định đơn giản mà còn là sự đánh giá cao về tiềm năng của những thuật toán này trong việc tôi ưu hóa trải nghiệm chơi cờ vua cho người dùng
Thứ nhát, thuật toán Minimax, với tư duy "tối ưu cho bản thân, tối thiêu hóa cho đối thủ," là một giải pháp tự nhiên cho việc mô phỏng chiến thuật trong cờ vua Điều này mang lại cho chương trình khả năng đưa ra những nước đi chiến lược, phản ánh khả năng chiến thắng và phòng thủ, tạo nên một đối thủ máy mạnh mẽ và thách thức cho người chơi
Thứ hai, việc tích hợp Alpha-Beta Pruning là một bước tiến quan trọng trong việc cải thiện hiệu suất tính toán Khả năng loại bỏ các nút không cần thiết từ cây trò chơi giúp giảm đáng kê thời gian xử lý, từ đó tăng cường khả năng đáp ứng và giữ cho trải nghiệm chơi cờ vua trở nên mượt mả và thú vỊ
Cuối cùng, việc xây dựng chương trình cờ vua với thuật toán Minimax và Alpha- Beta không chỉ là việc đơn thuần làm giàu nội dung giải trí mà còn là một cơ hội đề hiểu sâu hơn về cách máy tính có thê "nghĩ" và ra quyết định trong môi trường chiến thuật Điều này không chỉ mang lại trải nghiệm thú vị cho người chơi mà còn khám phá sức mạnh và tính linh hoạt của trí tuệ nhân tạo trong thế giới của trò chơi trí tuệ
Lớp CNTT 14-03| Trang 8
Trang 101.2 Mục Tiêu của đề tài
Trong quá trình xây dựng chương trình chơi cờ vua với thuật toán Minimax và Alpha-Beta, có một số mục tiêu chính mà bạn có thể đề cập trong đề tài của mình Dưới đây là một số mục tiêu quan trọng mà bạn nên xem xét:
> Hiểu Rõ Thuật Toán:
«Trình bày sự hiểu biết sâu sắc về thuật toán Minimax và Alpha-Beta Pruning
« M6 ta cach thuat toan hoạt động và tại sao chúng là lựa chọn lý tưởng cho việc xây dựng chương trình chơi cờ vua
>3 Hiệu Suất Tối Ưu:
‹ Nghiên cứu và áp dụng Minimax và Alpha-Beta để tối ưu hóa hiệu suất tính toán
«Ổ “Đo lường và so sánh hiệu suất giữa việc sử dụng và không
sử dụng Alpha-Beta Pruning
>> Chất Lượng Chiến Thuật:
‹ồ Phát triển chương trình có khả năng tạo ra nước đi chiến
lược và đáp ứng linh hoạt với nhiều tình huống trên bàn cờ
‹ Đánh giá chất lượng của chiến thuật được áp dụng trong trò chơi và khả năng thách thức mức độ chơi của người dùng
>> Giao Diện Người Dùng:
‹ - Tích hợp giao diện người dùng thân thiện và dễ sử dụng
‹ Cung cấp các tùy chọn và tính năng tương tác để người chơi
có trải nghiệm thoải mái và thú vị
>> Khả Nẵng Tương Tác Người Dùng:
«Tích hợp khả năng tương tác với người chơi, bao gồm việc
điều chỉnh độ khó, chia sẻ kết quả và phản hồi về các nước
đi của máy
> Kiểm Thử và Đánh Giá:
Lớp CNTT 14-03| Trang 9
Trang 11> Phát triển Tương Lai:
‹ Đề cập đến khả năng mở rộng và phát triển tương lai của chương trình, bao gồm việc tích hợp các tính năng mới và cải thiện thuật toán
Bằng cách nắm vững những mục tiêu này, bạn có thể đảm bảo
rằng đề tài của mình không chỉ chú trọng vào việc triển khai thuật toán
mà còn tập trung vào trải nghiệm chơi và sự hài lòng của người dùng
1.3 Giới hạn của đề tài
Mặc dù đề tài "Xây dựng chương trình chơi cờ vua với thuật toán Minimax và Alpha- Beta" rộng lớn và hứa hẹn nhiêu tiêm năng, nhưng cũng cân xác định rõ giới hạn của nó
đề giữ cho dự án có sự tập trung và khả thi Dưới đây là một số giới hạn mà bạn có thê xem xét:
>> Kích Thước Ban Co:
« Han chê việc xây dựng cho một loại bàn cờ cụ thê (ví dụ: bàn cờ tiêu chuân 8x8)
« - Không mở rộng đê hồ trợ các biên thê của cờ vua hoặc kích thước bàn cờ khác
> Sau cua Cay Trò Chơi:
« Xac dinh mot mic d6 sau cy thé cho cây trò chơi đề giới hạn thời gian tính toán và tôi ưu hóa hiệu suat
« - Không thực hiện việc mở rộng cây trò chơi đến mức không thực tế
> Chiến Thuật và Đánh Giá:
« _ Tập trung vào một số chiến thuật cụ thê đề giảm phức tạp trong việc xây dựng và đánh giá chât lượng
« Khong mo rong dé bao g6m moi chiên thuật có thê có trong cờ vua
>> Giao Diện Người Dùng:
« - Xác định một số tính năng cơ bản và giao diện dé tap trung phát triển
Lớp CNTT 14-03| Trang 10
Trang 1211
« - Không mở rộng để bao gồm tất cả các tính năng phức tạp của các ứng dụng chơi cờ vua trực tuyên
= Thời Gian Thực Hiện:
» - Đặt một khung thời g1an cụ thể để hoàn thành dự án đề đảm bảo tính khả thi của nó
« - Không mở rộng thời gian thực hiện để tránh rơi vào nguy cơ mắt kiểm soát
> Kiém Thi:
« Xac dinh pham vi cua bai kiểm thử để đảm bảo tính ôn định và hiệu suất cơ bản
« - Không mở rộng để bao gồm mọi trường hợp kiếm thử có thê có
Xác định những giới hạn nảy sẽ giúp bạn tập trung vào những khía cạnh quan trọng nhât của dự án và đảm bảo rắng bạn có thê đạt được mục tiêu một cách hiệu quả trong phạm vị đã đê ra
Lop CNTT 14-03] Trang 11
Trang 13CHUONG 2 K-NEAREST NEIGHBORS
2 Giới thiệu về thuật toán KNN
Nguyên tắc hoạt động của KNN như sau:
1 Định nghĩa K và khoảng cách: K là số lượng láng giềng gần nhất mà chúng ta muốn sử dụng đề dự đoán nhãn của một điểm dữ liệu mới Khoảng cách được tính dựa trên một phương pháp đo khoảng cách như khoảng cách Euclid hoặc khoang cach Manhattan
2 Xác định K láng giềng gần nhất: Đề dự đoán nhãn của một điểm dữ liệu mới, KNN tìm K điểm đữ liệu trong tập dữ liệu huấn luyện gần nhất với điểm đó dựa trên khoảng cách Khoảng cách này có thê được tính bằng cách so sánh các đặc trưng của các điểm dữ liệu
Lớp CNTT 14-03| Trang 12
Trang 1413
3 Xác định nhãn dự đoán: Sau khi xác định được K láng giềng gần nhất, KNN sẽ
sử dụng đa số phiếu bầu (voting) dé xác định nhãn dự đoán cho điểm dữ liệu mới Các láng giềng gần nhất đóng vai trò như các phiếu bầu và nhãn của láng giềng xuất hiện nhiều nhất sẽ được chọn là nhãn dự đoán
4 Đánh giá và dự đoán: Sau khi xác định nhãn dự đoán cho điểm dữ liệu mới, KNN có thể đánh giá độ chính xác của mô hình bằng cách so sánh nhãn dự đoán với nhãn thực tê của điểm dữ liệu
KNN có thể được áp dụng vào nhiều loại bài toán phân loại và dự đoán, từ nhận dạng chữ viết tay đến hệ thống khuyến nghị Điêm mạnh của KNN là đễ đàng hiểu và triên khai, đồng thời có khả năng xử lý các tập đữ liệu lớn Tuy nhiên, KNN cũng có
nhược điểm là đòi hỏi tính toán khoảng cách giữa các điểm đữ liệu, có thể ảnh hưởng đến hiệu suất với các tập dữ liệu lớn
2.2 Ý tưởng của thuật toán KNN
Thuật toán KNN cho rằng những dữ liệu tương tự nhau sẽ tồn tại gần nhau trong một không gian, từ đó công việc của chúng ta là sẽ tìm k điểm gần với dữ liệu cần kiểm tra nhất Việc tìm khoảng cách giữa 2 điểm cũng có nhiều công thức có thê sử dụng, tùy trường hợp mà chúng ta lựa chọn cho phù hợp Đây là 3 cách cơ bản đề tính khoảng cách
2 điểm đữ liệu x, y có k thuộc tính:
Khoảng cách Euclid
Đây không là gì ngoài khoảng cách cartesian giữa hai điểm trong mặt phẳng / siêu mặt phẳng Khoảng cách Euclid cũng có thê được hình dung là chiều dài của đường
thắng nối hai điểm đang được xem xét Số liệu này giúp chúng ta tính toán sự địch
chuyên ròng được thực hiện giữa hai trạng thái của một đối tượng
V3 6-7 i=1
Céng thc Euclidean Khoang cach Manhattan
Lop CNTT 14-03] Trang 13
Trang 1514
Chỉ số khoảng cách Manhattan thường được sử dụng khi chúng ta quan tâm đến tổng quãng đường đi chuyên của vật thê thay vì dịch chuyên Số liệu này được tính băng cách tính tông sự khác biệt tuyệt đối giữa tọa độ của các điểm trong n chiều
k
6X¡—y¡Vbo
¡=1 i=
Công thức Manhattan
Lớp CNTT 14-03| Trang 14
Trang 16Dễ thực hiện vì độ phức tạp của thuật toán không cao
Thích ứng dễ dàng - Theo hoạt động của thuật toán KNN, nó lưu trữ tất cả dữ liệu trong bộ nhớ lưu trữ và do đó bất cứ khi nào một ví dụ hoặc điểm dữ liệu mới được thêm vào thì thuật toán sẽ tự điều chỉnh theo ví dụ mới đó và cũng có đóng góp cho các dự đoán trong tương lai
Vài siêu tham số - Các tham số duy nhất được yêu cầu trong việc đào tạo thuật toán KNN là giá trị của k và lựa chọn số liệu khoảng cách mà chúng tôi muốn chọn từ sô liệu đánh giá của mình
Nhược điểm
Khong chia ty lệ - Như chúng ta đã nghe về điều này rằng thuật toán KNN cũng được coi là một Thuật toán lười biếng Y nghĩa chính của thuật ngữ này là điều này cần rất nhiều sức mạnh tính toán cũng như lưu trữ đữ liệu Điều nảy làm cho thuật toán này vừa tốn thời gian vừa cạn kiệt tải nguyên
Lời nguyễn của tính chiều hướng - Có một thuật ngữ được gọi là hiện tượng đạt đỉnh, theo thuật toán KNN bị ảnh hưởng bởi lời nguyễn của tính chiều hướng, ngụ
ý thuật toán phải đối mặt với một thời gian khó khăn dé phan loai cac điểm đữ liệu đúng cách khi tính chiều quá cao
Dé bi Overfitting - Vi thuật toán bị ảnh hưởng do lời nguyễn của tính chiều hướng,
nó cũng dé gặp phải vấn đề overfiting Do đó, nhìn chung, lựa chọn tính năng cũng như các kỹ thuật giảm kích thước được áp dụng để giải quyết van dé nay
Lớp CNTT 14-03| Trang l5