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

bài tập lớn đề tài xây dựng chương trình chơi cờ vua với thuật toán minimax và alpha beta

30 1 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 chơi cờ vua với thuật toán Minimax và Alpha - Beta
Tác giả Nguyễn Đức Toàn, Trần Đức Tuấn, Ngụ Thành Đức
Người hướng dẫn Tạ Đăng Chớ
Trường học Trường Đại học Đại Nam
Chuyên ngành Học Máy
Thể loại Bài tập lớn
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 30
Dung lượng 7,32 MB

Nội dung

Đ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 3

LỜ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 4

MỤC LỤC

Lớp CNTT 14-03| Trang 3

Trang 5

CHUONG 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 6

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

6

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 8

7

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 10

1.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 12

11

« - 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 13

CHUONG 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 14

13

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 15

14

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 16

Dễ 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

Ngày đăng: 26/09/2024, 16:32

w