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

Báo cáo chuyên Đề học phần trí tuệ nhân tạo Đề tài xây dựng game cờ caro bằng giải thuật minimax

22 0 0
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 Game Cờ Caro Bằng Giải Thuật Minimax
Tác giả Phạm Xuân Cường, Phạm Quang Huy
Người hướng dẫn Vũ Văn Định
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 3,2 MB

Nội dung

Mặc dù cho đến nay, theo quanniệm của người viết, ước mơ này vẫn còn xa mới thành hiện thực, tuy vậynhững thành tựu đạt được cũng không hề nhỏ: chúng ta đã làm được các hệthống phần mềm

Trang 1

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

BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN TRÍ TUỆ NHÂN TẠOĐỀ

TÀI : XÂY DỰNG GAME CỜ CARO BẰNG GIẢI

THUẬT MINIMAX Sinh viên thực hiện : PHẠM XUÂN CƯỜNG

: PHẠM QUANG HUY Giảng viên hướng dẫn: VŨ VĂN ĐỊNH

Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM

\Lớp : Công nghệ phần mềm 5

Khóa : D16

Hà Nội, tháng 11 năm 2023

Trang 3

MỤC LỤC

MỤC LỤC

LỜI MỞ ĐẦU

CHƯƠNG 1: TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO VÀ THUẬT TOÁN MINMAX

1.1 Tổng quan về trí tuệ nhân tạo

1.1.1 Trí tuệ nhân tạo là gì?

1.1.2 Lịch sử phát triển của trí tuệ nhân tọa:

1.1.3 Ứng dụng vai trò của trí tuệ nhân tạo

1.2 Giới thiệu về giải thuật MINMAX

1.2.1 Tư tưởng:

1.2.2 Phương pháp:

1.2.3.Mô hình bài toàn: 10

1.3 Ưu điểm và nhược điểm 11

CHƯƠNG 2: BÀI TOÁN CỜ CARO 11

2.1 Bài toán: 11

2.2 Giải quyết bài toán: 12

CHƯƠNG 3: ĐÁNH GIÁ VÀ THỬ NGHIỆM 15

3.1 Công nghệ và sử dụng: 15

3.2 Triển khai: 15

3.3 Giao diện khi bắt đầu trò chơi 18

3.4 Giao diện sau khi chơi 19

KẾT LUẬN 20

Trang 4

DANH MỤC HÌNH ẢNH

Hình 1.1: Hình minh họa thuật toán………

Hình 2.1: Hình minh họa bài toán………

Hình 2.2: Hình minh họa giải quyết bài toán 1………

Hình 2.3: Hình minh họa giải quyết bài toán 2………

Hình 2.4: Hình minh họa giải quyết bài toán 3………

Hình 2.5: Hình minh họa giải quyết bài toán 4………

Hình 3.1: Code thuật toán minmax………

Hình 3.2: Hình minh họa triển khai code………

Hình 3.3: Hình minh họa triển khai code………

Hình 3.4: Hình minh họa triển khai code………

Hình 3.5 Giao diện trò chơi khi bắt đầu………

Hình 3.600: Giao diện trò chơi sau khi kết thúc………

4

Trang 5

Chính vì vậy chúng em đã đi đến việc lựa chọn đề tài “XÂY DỰNGGAME CỜ CARO BẰNG GIẢI THUẬT MINIMAX” cho bài tập lớn môntrí tuệ nhân tạo Chúng em xin cảm ơn thầy Vũ Văn Định, người trực tiếpgiảng dạy, hướng dẫn nhiệt tình cho chúng em trong quá trình nghiên cứu vàthực hiện đề tài.

Mặc dù đã hoàn thành, nhưng chắc chắn vẫn không thể chánh đượcnhững thiếu sót, vì vậy chúng em mong được nhận thêm nhiều những góp ý

từ thầy cô để hoàn thiện tốt hơn

Chúng em xin chân thành cảm ơn!

Trang 6

CHƯƠNG 1: TỔNG QUAN VỀ TRÍ TUỆ NHÂN TẠO VÀ THUẬT

TOÁN MINMAX 1.1 Tổng quan về trí tuệ nhân tạo

1.1.1 Trí tuệ nhân tạo là gì?

Để hiểu trí tuệ nhân tạo (artificial intelligence) là gì chúng ta bắt đầu vớikhái niệm sự bay nhân tạo (flying machines), tức là cái máy bay Đã từ lâu,loài người mong muốn làm ra một cái máy mà có thể di chuyển được trênkhông trung mà không phụ thuộc vào địa hình ở dưới mặt đất, hay nói cáchkhác là máy có thể bay được Không có gì ngạc nhiên khi những ý tưởng đầutiên làm máy bay là từ nghiên cứu cách con chim bay Những chiếc máy biếtbay được thiết kế theo nguyên lý “vỗ cánh” như con chim chỉ có thể bayđược quãng đường rất ngắn và lịch sử hàng không thực sự sang một trangmới kể từ anh em nhà Wright thiết kế máy bay dựa trên các nguyên lý củakhí động lực học (aerodynamics) Các máy bay hiện nay, như đã thấy, có sứctrở rất lớn và bay được quãng đường có thể vòng quanh thế giới Nó khôngnhất thiết phải có nguyên lý bay của con chim nhưng vẫn bay được nhưchim (dáng vẻ), và còn tốt hơn chim Quay lại câu hỏi Trí tuệ nhân tạo là gì.Trí tuệ nhân tạo là trí thông minh của máy do con người tạo ra Ngay từ khichiếc máy tính điện tử đầu tiên ra đời, các nhà khoa học máy tính đã hướngđến phát hiển hệ thống máy tính (gồm cả phần cứng và phần mềm) sao cho

nó có khả năng thông minh như loài người Mặc dù cho đến nay, theo quanniệm của người viết, ước mơ này vẫn còn xa mới thành hiện thực, tuy vậynhững thành tựu đạt được cũng không hề nhỏ: chúng ta đã làm được các hệthống (phần mềm chơi cờ vua chạy trên siêu máy tinh GeneBlue) có thểthắng được vua cờ thế giới; chúng ta đã làm được các phần mềm có thểchứng minh được các bài toán hình học; v.v Hay nói cách khác, trong một

số lĩnh vực, máy tính có thể thực hiện tốt hơn hoặc tương đương con người(tất nhiên không phải tất cả các lĩnh vực) Đó chính là các hệ thống thông

6

Trang 7

minh Có nhiều cách tiếp cận để làm ra trí thông minh của máy (hay là trí tuệnhân tạo), chẳng hạn là nghiên cứu cách bộ não người sản sinh ra trí thôngminh của loài người nhưthế nào rồi ta bắt chước nguyên lý đó, nhưng cũng

có những cách khác sử dụng nguyên lý hoàn toàn khác với cách sản sinh ratrí thông minh của loài người mà vẫn làm ra cái máy thông minh như hoặchơn người; cũng giống như máy bay hiện nay bay tốt hơn con chim do nó có

cơ chế bay không phải là giống như cơ chế bay của con chim

Như vậy, trí tuệ nhân tạo ở đây là nói đến khả năng của máy khi thựchiện các công việc mà con người thường phải xử lý; và khi dáng vẻ ứng xửhoặc kết quả thực hiện của máy là tốt hơn hoặc tương đương với con ngườithì ta gọi đó là máy thông minh hay máy đó có trí thông minh Hay nói cáchkhác, đánh giá sự thông minh của máy không phải dựa trên nguyên lý nóthực hiện nhiệm vụ đó có giống cách con người thực hiện hay không mà dựatrên kết quả hoặc dáng vẻ ứng xử bên ngoài của nó có giống với kết quảhoặc dáng vẻ ứng xử của con người hay không Các nhiệm vụ của con ngườithường xuyên phải thực hiện là: giải bài toán (tìm kiếm, chứng minh, lậpluận), học, giao tiếp, thể hiện cảm xúc, thích nghi với môi trường xungquanh, v.v., và dựa trên kết quả thực hiện các nhiệm vụ đó để kết luận rằngmột ai đó có là thông minh hay không Môn học Trí tuệ nhân tạo nhằm cungcấp các phương pháp luận để làm ra hệ thống có khả năng thực hiện cácnhiệm vụ đó: giải toán, học, giao tiếp, v.v bất kể cách nó làm có như conngười hay không mà là kết quả đạt được hoặc dáng vẻ bên ngoài như conngười Trong môn học này, chúng ta sẽ tìm hiểu các phương pháp để làmcho máy tính biết cách giải bài toán, biết cách lập luận, biết cách học, v.v

1.1.2 Lịch sử phát triển của trí tuệ nhân tọa:

Vào năm 1943, Warren McCulioch và Walter Pitts bắt đầu thực hiệnnghiêncứu ba cơ sở lý thuyết cơ bản: triết học cơ bản và chức năng của cácnoron thần kinh; phân tích các mệnh đề logic; và lý thuyết dự đoán củaTuring Các tác giả đã nghiên cứu đề xuât mô hình noron nhân tạo, mỗinoron đặc trưng bởi hai trạng thái “bật”, “tắt” và phát hiện mạng noron cókhả năng học

Trang 8

Thuật ngữ “Trí tuệ nhân tạo” (Artificial Intelligence - AI) được thiết lậpbởi John McCarthy tại Hội thảo đầu tiên về chủ đề này vào mùa hè năm

1956 Đồng thời, ông cũng đề xuất ngôn ngữ lập trình Lisp – một trongnhững ngôn ngữ lập trình hàm tiêu biểu, được sử dụng trong lĩnh vực AI.Sau đó, Alan Turing đưa ra "Turing test" như là một phương pháp kiểmchứng hành vi thông minh Thập kỷ 60, 70 Joel Moses viết chương trìnhMacsyma - chương trình toán học sử dụng cơ sở tri thức đầu tiên thành công.Marvin Minsky và Seymour Papert đưa ra các chứng minh đầu tiên về gi[ihạn của các mạng nơ-ron đơn giản Ngôn ngữ lập trình logic Prolog ra đời

và được phát triển bởi Alain Colmerauer Ted Shortliffe xây dựng thànhcông một số hệ chuyên gia đầu tiên trợ giúp chẩn đoán trong y học, các hệthống này sử dụng ngôn ngữ luật để biểu diễn tri thức và suy diễn Vào đầunhững năm 1980, những nghiên cứu thành công liên quan đến AI như các hệchuyên gia (expert systems) – một dạng của chương trình AI mô phỏng trithức và các kỹ năng phân tích của một hoặc nhiều chuyên gia con người.Vào những năm 1990 và đầu thế kỷ 21,

AI đã đạt được những thành tựu to lớn nhất, AI được áp dụng tronglogic, khai phá dữ liệu, chẩn đoán y học và nhiều lĩnh vực ứng dụng kháctrong công nghiệp Sự thành công dựa vào nhiều yếu tố: tăng khả năng tínhtoán của máy tính, tập trung giải quyết các bài toán con cụ thể, xây dựng cácmối quan hệ giữa AI và các lĩnh vực khác giải quyết các bài toán tương tự,

và một sự chuyển giao mới của các nhà nghiên cứu cho các phương pháptoán học vững chắc và chuẩn khoa học chính xác

1.1.3 Ứng dụng vai trò của trí tuệ nhân tạo

Các thuật toán AI của ngày nay có khả năng thực hiện các nhiệm vụ của

nó tốt hơn rất nhiều so với con người Chúng đã phát triển đến mức hiệuquả hơn nhiều và chính xác như con người Họ cũng đưa ra một cáchtiếp cận dễ tiếp cận hơn để các công ty mở rộng quy mô và cung cấp nhânlực cho các nhiệm vụ lao động lặp đi lặp lại với chi phí thấp Chúng cũng cónhững lợi ích khác, chẳng hạn: Giảm tỉ lệ lỗi, hiệu quả chi phí, trải nghiệmđược cá nhân hóa,…

-Vai trò của trí tuệ nhân tạo trong y tế: ứng dụng tiêu biểu nhất của trí

8

Trang 9

tuệ nhân tạo trong lĩnh vực y tế phải kể đến chính là máy bay không ngườilái, được dung trong những trường hợp cấp cứu khẩn cấp Đây là thiết bị baykhông có người lái với tốc độ nhanh hơn xe chuyên dụng đến 40% và thíchhợp sử dụng tại những vị trí có địa hình hiểm trở.

-Vai trò của trí tuệ nhân tạo trong kinh doanh:Vai trò của trí tuệnhân tạo trong kinh doanh:

+ Riêng trong lĩnh vực kinh doanh, trí tuệ nhân tạo AI góp phần mangđến những trải nghiệm tốt hơn cho hệ thống khách hàng Thông qua việc thuthập cũng như phân tích dữ liệu, trí tuệ AI có thể nắm bắt thông tin cũngnhư hành vi sử dụng dịch vụ của khách hàng, từ đó mang lại những giảipháp hữu ích trong kinh doanh

+ Còn với lĩnh vực truyền thông, trí tuệ nhân tạo trong marketing đóngvai trò quan trọng, góp phần làm thay đổi những cách thức tiếp cận vớikhách hàng mục tiêu Với những ưu điểm của công nghệ AI, các công ty, tổchức có thể triển khai những chiến dịch quảng cáo đúng thời điểm, đúngkhách hàng mục tiêu dựa trên những phân tích chính xác về nhân khẩu học,thói quen, hành vi và nhu cầu

-Vai trò của trí tuệ nhân tạo trong giáo dục:

+ Các hoạt động giáo dục như chấm điểm, dạy kèm có thể được tự độnghóa nhờ công nghệ AI

Rất nhiều trò chơi, phần mềm giáo dục ra đời phổ biến để đáp ứngnhững nhu cầu của các em học sinh, sinh viên để cải thiện và nâng cao trình

độ học tập của mỗi người

+ Chúng còn có thể chỉ ra những vấn đề mà các khóa học nên cải thiện:Nếu nhiều học sinh gửi đáp án sai cho bài tập, hệ thống sẽ thông báo cho cácgiáo viên đồng thời gửi thông điệp đến với các em học sinh để chỉnh sửađáp án cho phù hợp nhất

+ Trí tuệ nhân tạo thay thế con người bởi còn có khả năng theo dõi sựtiến bộ của học sinh để từ đó đưa ra những thông báo đến với các giáo viênkhi phát hiện ra nhiều vấn đề đối với kết quả học tập của học sinh

Trang 10

+ Trí tuệ nhân tạo cung cấp nhiều dữ liệu bổ ích để giúp các em sinh viên lựa chọn được những khóa học tốt nhất cho mình.

1.2 Giới thiệu về giải thuật MINMAX

Giải thuật MINIMAX là một thuật toán đệ quy lựa chọn bước đi kế tiếptrong một trò chơi có hai người Xét một trò chơi đối kháng trong đó haingười thay phiên đi nước đi của mình như tic-tac-toe, cờ vua, cờ tướng, cờcaro, cờ vây… Khi chơi bạn có thể khai triển hết không gian trạng tháinhưng khó khăn chủ yếu là bạn phải tính toán được phản ứng và nước đi củađối thủ mình như thế nào? Cách xử lý đơn giản là bạn giả sử đối thủ của bạncũng sử dụng kiến thức về không gian trạng thái giống bạn Giải thuậtMinimax áp dụng giả thuyết này để tìm kiếm không gian trạng thái của tròchơi

1.2.1 Tư tưởng:

Giải thuật Minimax là một thuật toán đệ quy cho việc lựa chọn bước đi

kế tiếp trong một trò chơi có hai người chơi Một giá trị được gán chomỗi vị trí hay một trạng thái của trò chơi Giá trị này được tính toán bằngmột hàm tính giá trị vị trí và nó cho biết độ tốt nếu như một người chơi đạtđược đến đó Người chơi sau đó đi một bước làm tối đa giá trị tối thiểu của

vị trí là kết quả từ tập hợp những bước đi có thể của đối thủ Nếu đó là phiên

A sẽ đi, sẽ cho một giá trị cho mỗi bước đi hợp pháp của anh ta A 1.2.2 Phương pháp:

Hai đối thủ trong trò chơi được gọi là MIN và MAX luân phiên thay thếnhau đi MAX đại diện cho người quyết dành thắng lợi và cố gắng tối đa hóa

ưu thế của mình, ngược lại người chơi đại diện cho MIN lại cố gắng giảmđiểm số của MAX và cố gắng làm cho điểm số của mình càng âm càng tốt.Giả thiết đưa ra MIN và MAX có kiến thức như nhau về không gian trạngthái trò chơi và cả hai đối thủ đều cố gắng như nhau

Mỗi Node biểu diễn cho một trạng thái trên cây trò chơi Node lá làNode chứa trạng thái kết thúc của trò chơi

Giải thuật MINIMAX thể hiện bằng cách định trị các Node trên câytrò chơi:

10

Trang 11

- Node thuộc lớp MAX thì gán cho nó giá trị lớn nhất của conNode đó.

- Node thuộc lớp MIN thì gán cho nó giá trị nhỏ nhất của conNode đó.Từ các giá trị này người chơi sẽ lựa chọn cho mìnhnước đi tiếp theo hợp lý nhất

1.2.3.Mô hình bài toàn:

Trong ví dụ sau đây của một trò chơi tổng bằng 0, khi A và B đi các bướccùng một lúc, minh họa cho thuật toán MINIMAX Nếu như mỗi người chơi có

3 lựa chọn và ma trận có lợi cho A là:

Hình 1.1: Hình minh họa thuật toán

Và B có ma trận lợi như nhau nhưng ngược dấu (i.e nếu các lựa chọn làA1 và B1 thì B trả 3 cho A) sau đó lựa chọn minimax đơn giản cho A là A2bởi vì kết quả xấu nhất là sau khi phải trả 1, trong khi lựa chọn minimax đơngiản cho B là B2 bởi vì kết quả xấu nhất là sau đó không phải trả gì cả Tuyvậy, lời giải này là không ổn định, bởi vì nếu B tin rằng A sẽ chọn A2 thì B

sẽ chọn B1 để thắng 1; sau đó nếu A tin rằng B sẽ chọn B1 thì A sẽ chọn A1

để thắng 3; và sau đó B sẽ chọn B2; và cuối cùng cả hai người chơi sẽ nhận

ra sự khó khăn của việc chọn lựa Do đó một chiến lược ổn định hơn là cần

B chọn B1 B chọn B2 B chọn B3

Trang 12

1.3 Ưu điểm và nhược điểm

Ưu điểm: Tìm kiếm được mọi nước đi tiếp theo sau đó lựa chọn nước đitốt nhất, vì giải thuật có tính chất vét cạn nên không bỏ soát trạng thái.Nhược điểm: Đối với các trò chơi có không gian trạng thái lớn như caro,

cờ tướng… việc chỉ áp dụng giải thuật Minimax có lẽ không còn hiệu quảnữa do sự bùng nổ tổ hợp quá lớn

Giải thuật áp dụng nguyên lý vét cạn không tận dụng được thông tin củatrạng thái hiện tại để lựa chọn nước đi, vì duyệt hết các trạng thái nên tốnthời gian

12

Trang 13

CHƯƠNG 2: BÀI TOÁN CỜ CARO 2.1.Bài toán:

Giới thiệu đề tài “Game Caro” Game gồm có 2 người chơi, một ngườicầm quân X, một người cầm quân O Hai người chơi sẽ lần lượt đưa đánhquân tương ứng của mình trên một bàn cờ MxN ô (thường thì M = N).Luật chơi: Quân X là quân được đánh trước Hai người chơi có thể đánhvào bất kỳ ô nào trên bàn cờ miễn là ô đó chưa được đánh Trò chơi kết thúckhi một trong hai người chơi có 3 quân thằng hàng liên tiếp nhau (ngang,dọc hoặc chéo)

Trang 14

Hình 2.1: Hình minh hoạt bài toán

2.2 Giải quyết bài toán:

Có 2 người chơi là Min và Max

- Một chiến lược tối ưu là một chuỗi các nước đi giúp đưa đếntrạng thái đích mong muốn

- Chiến lược của MAX bị ảnh hưởng ( phụ thuộc ) vào các nước đicủa MIN –và ngược lại

- MAX cần chọn một chiến lược giúp cực đại hóa giá trị của hàmmục tiêu – với giả sử là MIN đi các nước đi tối ưu

- Chiến lược này được xác định bằng việc xét các giá trịMINIMAX đối với mỗi nút trong cây biểu diễn trò chơi

- MAX chọn các nước đi tương ứng với giá trị MINIMAX cực đại( MIN chọn các nước đi ứng với giá trị MINIMAX cực tiểu

14

Trang 15

Áp dụng vào game Caro: Người chơi cầm quân X đóng vai trò như Max,người chơi cầm quân O đóng vai trò như Min Để quyết định nước đi tiếptheo, ta xây dựng một thủ tục đệ quy gồm 2 hàm max_value() để tìmnước đi tiếp theo cho quân X, min_value() để tìm nước đi tiếp theo choquân O Để giảm thời gian của giải thuật đệ quy, ta giới hạn độ sâu của giảithuật bằng 4.

Minh họa các hình dưới đây:

Hình 2.2: Hình minh họa giải quyết bài toán 1

Ngày đăng: 26/12/2024, 17:05

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

TÀI LIỆU LIÊN QUAN

w