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 NHẬP MÔ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 NGÔ TRUNG HIẾU NGUYỄN HU[.]
Trang 1TRƯỜ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 NHẬP MÔ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 : NGÔ TRUNG HIẾU
: NGUYỄN HUY HOÀNG
Hà Nội, tháng năm 2022
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 1
CHƯƠNG 1: GIỚI THIỆU VỀ AI VÀ THUẬT TOÁN MINIMAX 2
1.1 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO 2
1.1.1 Trí tuệ nhân tạo là gì ? 3
1.1.2 Vai trò của trí tuệ nhân tạo 5
1.1.3 Lĩnh vực của AI 6
1.1.4 Hạn chế của AI 7
1.2 GIỚI THIỆU VỀ KỸ THUẬT MINIMAX 8
1.2.1 Tư tưởng 8
1.2.2 Một thuật toán minimax 9
1.2.3 Phương pháp 9
1.3 Mô hình bài toán 10
1.4 KẾT LUẬN 11
CHƯƠNG 2: BÀI TOÁN CỜ CARO 12
2.1 BÀI TOÁN: 12
2.2 GIẢI QUYẾT BÀI TOÁN 13
2.2.1 Ý tưởng: 13
2.2.2 Phương pháp giải quyết nước đi: 14
2.3 Mô tả bài toán cờ caro theo minmax 15
CHƯƠNG 3: ĐÁNH GIÁ THỬ NGIỆM 17
3.1 Cặt đặt với C# Winform 17
3.1.1 Giao diện khi chạy chương trình 17
3.1.2 Giao diện khi bắt đầu chơi (sau khi bắt đầu chúng ta sẽ bắt đầu tích vào những ô trống để chơi 18
3.1.3 Giao diện sau khi chơi ( chúng ta sẽ tích vào ô trống cho đến khi một trong hai người hoặc máy hoàn thành 5 kí tự thẳng hàng và sau đó hệ thống sẽ thông báo người thắng cuộc và hỏi xem chúng ta có muốn chơi ván mới không) 19
3.2 Code 20
KẾT LUẬN 22
TÀI LIỆU THAM KHẢO 23
Trang 4MỤC LỤC HÌNH ẢNH
Hình 1: minh họa thuật toán 10
Hình 2 Mô tả cờ 15
Hình 3: Giao diện khi chạy chương trình 17
Hình 4: bàn cờ khi bắt đầu chơi 18
Hình 5: ván đấu kết thúc 19
Hình 6 Code 21
Trang 5LỜI MỞ ĐẦU
Trí tuệ nhân tạo là trí tuệ được biểu diễn bởi bất cứ một hệ thống nhân tạo nào.Thuật ngữ này thường dùng để nói đến các máy tính có mục đích không nhất định vàngành khoa nghiên cứu về các lý thuyết và ứng dụng của trí tuệ nhân tạo
Tuy rằng trí thông minh nhân tạo có nghĩa rộng như là trí thông minh trongkhoa học viễn tưởng, nó là một trong những ngành trọng yếu của tin học Trí thôngminh nhân tạo liên quan đến cách cư xử, sự học hỏi và khả năng thích ứng thôngminh của máy móc Ngày nay, các hệ thống nhân tạo được dùng thường xuyên
trong kinh tế, y dược, các ngành kỹ thuật và quân sự, cũng như trong các phần mềmmáy tính thông dụng trong gia đình và trò chơi điện tử
Để áp dụng những kiến thức về AI được học trên lớp cũng như tìm hiểu qua internet,nhóm chúng em đi đến quyết định chung là xây dựng trò chơi cờ ca rô
Trong quá trình làm bài tập lớn, chúng em xin chân thành cảm ơn thầy đãtận tình hướng dẫn, cảm ơn các bạn đã đóng góp những ý kiến bổ ích để trò chơiđược tốt hơn Do chưa có nhiều kinh nghiệm cũng như kiến thức về AI còn hạn hẹpnên trò chơi chưa được tối ưu lắm Mong thầy và các bạn góp ý để game được tốthơn
Trang 6CHƯƠNG 1: GIỚI THIỆU VỀ AI VÀ THUẬT TOÁN MINIMAX
1.1 GIỚI THIỆU VỀ TRÍ TUỆ NHÂN TẠO
Trong công nghệ thông tin, trí tuệ nhân tạo là một ngành mới, nhưng phát triểnmạnh mẽ và đem lại nhiều kết quả to lớn Con người thường tự cho mình là sinh vậtthông minh vì khả năng trí tuệ đóng vai trò quan trọng trong cuộc sống.Trong vănhọc cũng đã từng có những câu chuyện đề cao về trí thông minh của con người
Vào năm 1943, Warren McCulioch và Walter Pitts bắt đầu thực hiện nghiên cứ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ác noron thần kinh; phân tích các mệnh đề logic; và lý thuyết dự đoán của Turing Các tác giả đã nghiên cứu
đề xuât mô hình noron nhân tạo, mỗi noron đặ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
Thuật ngữ “Trí tuệ nhân tạo” (Artificial Intelligence - AI) được thiết lập bở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 trong nhữ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ểm chứng hành vi thông minh
Thập kỷ 60, 70 Joel Moses viết chương trình Macsyma - 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ới hạ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ành cô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 đầu nhữ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 tri thứ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
Trang 7Và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 trong logic, khai phá dữ liệu, chẩn đoán y học và nhiều lĩnh vực ứng dụng khác trong công nghiệp Sự thành công dựa vào nhiều yếu tố: tăng khả năng tính toá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ác mố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áp toán học vững chắc và chuẩn khoa học chính xác
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ới kháiniệ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ên không trung mà không phụ thuộc vào địa hình ở dưới mặt đất, hay nóicách khá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ết bayđượ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 trang mới kể từ anh em nhàWright thiết kế máy bay dựa trên các nguyên lý của khí động lực học(aerodynamics)
Các máy bay hiện nay, như đã thấy, có sức trở rất lớn và bay được quãngđường có thể vòng quanh thế giới Nó không nhất thiết phải có nguyên lý bay củacon 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ủamáy do con người tạo ra Ngay từ khi chiếc máy tính điện tử đầu tiên ra đời, cácnhà 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
Trang 8cứ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 quan niệm của người viết, ước mơ này vẫn còn xa mới thànhhiện thực, tuy vậy nhữ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ứngminh đượ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ôngphải tất cả các lĩnh vực) Đó chính là các hệ thống thông 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ântạo), chẳng hạn là nghiên cứu cách bộ não người sản sinh ra trí thông minh của loàingườ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 ra trí thông minh của loàingười mà vẫn làm ra cái máy thông minh như hoặc hơ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ốngnhư 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ực hiệncá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ười thì ta gọi đó là máythông minh hay máy đó có trí thông minh Hay nói cách khác, đánh giá sự thôngminh 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ốngcách con người thực hiện hay không mà dựa trên kết quả hoặc dáng vẻ ứng xử bênngoà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ười thường xuyên phải thực hiện là: giải bài toán(tìm kiếm, chứng minh, lập luận), học, giao tiếp, thể hiện cảm xúc, thích nghi vớimôi trường xung quanh, v.v., và dựa trên kết quả thực hiện các nhiệm vụ đó để kếtluận rằng một ai đó có là thông minh hay không Môn học Trí tuệ nhân tạo nhằm
Trang 9cung cấ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ư con ngườihay không mà là kết quả đạt được hoặc dáng vẻ bên ngoài như con người.
1.1.2 Vai trò của trí tuệ nhân tạo
Trí tuệ nhân tạo bao quát rất nhiều lĩnh vực nghiên cứu hẹp Nó nghiên cứu từ cáclĩnh vực tổng quát như máy nhận biết, suy luận logic, đến các bài toán như chơi cờ,chứng minh định lý, tim kiểm đường đi Thường thì các nhà khoa học ở các lĩnh vựckhác tìm đến với trí tuệ nhân tạo ở các kỹ thuật hệ thống hóa và tự động hóa các xử
lý trí thức cũng như các phương pháp thuộc lĩnh vực mang tính người
Trí tuệ nhân tạo nghiên cứu kỹ thuật làm cho máy tính có thể “suy nghĩ mộtcách thông minh" và mô phỏng quá trình suy nghĩ của con người khi đưa ra nhữngquyết định, lời giải Trên cơ sở đó, thiết kế các chương trình cho máy tính để giảiquyết bài toán
Sự ra đời và phát triển của trí tuệ nhân tạo đã tạo ra một bước nhảy vọt vềchất trong kỹ thuật và kỹ nghệ xử lý thông tin Trí tuệ nhân tạo chính là cơ sở củacông nghệ xử lý thông tin mới, độc lập với công nghệ xử lý thông tin truyền thốngdựa trên văn bản giấy tờ Điều này được thể hiện qua các mặt sau:
- Nhờ những công cụ hình thức hóa (các mô hình logic ngôn ngữ, logic mở ),các tri thức thủ tục và tri thức mô tả có thể diễn được trong máy Do vậy quá trìnhgiải bài toán được tiến hành hữu hiệu hơn
- Mô hình logic ngôn ngữ đã mở rộng khả năng ứng dụng của máy tính tronglĩnh vực đòi hỏi tri thức chuyên gia ở trình độ cao, rất khó như: Y học, sinh học, địa
lý, tự động hóa
Trang 10- Một số phần mềm trí tuệ nhân tạo thể hiện tính thích nghi và tính mềm dẻođối với các lớp bài toán thuộc nhiều lĩnh vực khác nhau Khi máy tính được trang bịcác phần mềm trí tuệ nhân tạo ghép mạng sẽ cho phép giải quyết những bài toán cỡlớn và phân tán.
1.1.3 Lĩnh vực của AI
⮚ Lập luận, suy diễn tự động: Khái niệm lập luận (reasoning), và suy diễn
(reference) được sử dụng rất phổ biến trong lĩnh vực AI Lập luận là suy diễn logic, dùng để chỉ một tiến trình rút ra kết luận (tri thức mới) từ những giả thiết đã cho (được biểu diễn dưới dạng cơ sở tri thức) Như vậy, để thực hiện lập luận người ta cần có các phương pháp lưu trữ cơ sở tri thức và các thủ tục lập luận trên cơ sở tri thức đó
⮚ Biểu diễn tri thức: Muốn máy tính có thể lưu trữ và xử lý tri thức thì cần có các phương pháp biểu diễn tri thức Các phương pháp biểu diễn tri thức ở đây bao gồm các ngôn ngữ biểu diễn và các kỹ thuật xử lý tri thức Một ngôn ngữ biểu diễn tri thức được đánh giá là “tốt” nếu nó có tính biểu đạt cao và các tính hiệu quả của thuật toán lập luận trên ngôn ngữ đó Tính biểu đạt của ngôn ngữ thể hiện khả năng biểu diễn một phạm vi rộng lớn các thông tin trong một miền ứng dụng Tính hiệu quả củacác thuật toán lập luận thể hiện chi phí về thời gian và không gian dành cho việc lập luận Tuy nhiên, hai yếu tố này dường như đối nghịch nhau, tức là nếu ngôn ngữ có tínhbiểu đạt cao thì thuật toán lập luận trên đó sẽ có độ phức tạp lớn (tính hiệu quả thấp)và ngược lại (ngôn ngữ đơn giản, có tính biểu đạt thấp thì thuật toán lập luận trên đó sẽ có hiệu quả cao) Do đó, một thách thức lớn trong lĩnh vực AI là xây dựng các ngôn ngữ biểu diễn tri thức mà có thể cân bằng hai yếu tố này, tức là ngôn ngữ cótínhbiểu đạt đủ tốt (tùy theo từng ứng dụng) và có thể lập luận hiệu quả
Trang 11⮚ Lập kế hoạch: khả năng suy ra các mục đích cần đạt được đối với các nhiệm vụ đưa ra, và xác định dãy các hành động cần thực hiện để đạt được mục
đích đó
⮚ Học máy: là một lĩnh vực nghiên cứu của AI đang được phát triển mạnh mẽ và cónhiều ứng dụng trong các lĩnh vực khác nhau như khai phá dữ liệu, khám phá tri thức,…
⮚ Xử lý ngôn ngữ tự nhiên: là một nhánh của AI, tập trung vào các ứng dụng trên ngôn ngữ của con người Các ứng dụng trong nhận dạng tiếng nói, nhận dạng chữ viết, dịch tự động, tìm kiếm thông tin,…
⮚ Hệ chuyên gia: cung cấp các hệ thống có khả năng suy luận để đưa ra những kết luận Các hệ chuyên gia có khả năng xử lý lượng thông tin lớn và cung cấp các kết luận dựa trên những thông tin đó Có rất nhiều hệ chuyên gia nổi tiếng như các hệ chuyên gia y học MYCIN, đoán nhận cấu trúc phân tử từ công thức hóa học
Rất nhiều chuyên gia lo lắng rằng khi trí tuệ nhân tạo đạt tới một ngưỡng nào
đó thì đó cũng là thời điểm loài người bị tận diệt Rất nhiều các bộ phim đã khai thác
đề tài này với nhiều góc nhìn, nhưng qua đó đều cảnh báo mọi người về mối nguy hạiđặc biệt này
Trang 12Dự báo trong 5 đến 10 năm tới ngành khoa học máy tính này sẽ phát triển lên tớiđỉnh cao.Lúc này sẽ là đỉnh điểm của những thành tựu tương lai.
1.2 GIỚI THIỆU VỀ KỸ THUẬT MINIMAX
Giải thuật Minimax là một thuật toán đệ quy lựa chọn bước đi kế tiếp trongmột trò chơi có hai người Xét một trò chơi đối kháng trong đó hai người thayphiên đi nước đi của mình như tic-tac-toe, cờ vua, cờ tướng, cờ caro, cờ vây… Khichơi bạn có thể khai triển hết không gian trạng thái nhưng khó khăn chủ yếu là bạnphả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ạn cũng sử dụng kiến thức về không gian trạngthái giống
bạn Giải thuật Minimax á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 lựa chọn bước đi kế tiếp trong một trò chơi có hai người Xét một trò chơi đối kháng trong đó hai ngườ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ái như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ạn cũng sửdụng kiến thức về không gian trạng thái giống bạn Giải thuật Minimax áp dụng giả thuyết này để tìm kiếm không gian trạng thái của trò chơi
Trang 131.2.2 Một thuật toán 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 cho mỗ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ằng mộ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, A sẽ cho một giá trị cho mỗi bước đi hợp pháp của anh ta.
1.2.3 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ạng thá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ây trò chơi:
Node thuộc lớp MAX thì gán cho nó giá trị lớn nhất của con Node đó
Node thuộc lớp MIN thì gán cho nó giá trị nhỏ nhất của con Node đó
Từ các giá trị này người chơi sẽ lựa chọn cho mình nước đi tiếp theo hợp lý nhất