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

Môn trí tuệ nhân tạo Đề t i xây dựng trí tuệ nhân tạo giải mê cung 0o7

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 Trí Tuệ Nhân Tạo Giải Mê Cung
Tác giả Nguyễn Tất Đạt, Nguyễn Minh Đức, Đỗ Huy Mạnh
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 Chuyên Đề
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 22
Dung lượng 3,85 MB

Nội dung

Thực ra nguồn gốc ra đời trí tuệ nhân tạo AI không hề sớm như đã nói, nhưng nó là thành quả tất yếu của sự phát triển khoa học và công nghệ, là giải pháp giảiquyết những bài toán khó của

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

MÔN TRÍ TUỆ NHÂN TẠO

ĐỀ T I:

XÂY DỰNG TRÍ TUỆ NHÂN TẠO GIẢI MÊ CUNG

Sinh viên thực hiện : NGUYỄN TẤT ĐẠT

NGUYỄN MINH ĐỨC

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

Trang 2

T

Họ và tên sinh viên Nội dung thực hiện Điể

m Chữ ký

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 1

CHƯƠNG I GIỚI THIỆU VỀ AI V THUẬT TOÁN A* 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ì? 2

1.1.2 Lịch sử AI 5

1.2 Thuật toán A* 6

1.2.1 Giới thiệu thuật toán 6

1.2.2 Mô tả thuật toán 6

CHƯƠNG II B I TOÁN GIẢI MÊ CUNG 8

2.1 Giới thiệu bài toán 8

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

2.2.1 Ý tưởng 9

2.2.2 Thiết kế thuật toán 9

CHƯƠNG III C I ĐẶT B I TOÁN 11

3.1 Cài đặt với C# 11

3.2 Phần mềm demo 16

3.2.1 Giao diện 16

3.2.2 Kết quả 17

3.3 Nhận xét 17

KẾT LUẬN 18

T I LIỆU THAM KHẢO 19

Trang 4

LỜI NÓI ĐẦU

Đây là tài liệu để biểu diễn cơ bản thiết kế và giải quyết bài toàn “Giải mêcung” sử dụng nhiều thuật toàn như là: thuật toàn chọn đường ngẫu nhiên, bámtheo tường, thuật toàn Pledge, thuật toàn Trémaux, lấp kín đường cụt do nhóm thiết

kế và lập trình Tài liệu này giúp ta có cái nhìn toàn vẹn về các chức năng của phầnmềm cũng như ứng dụng của các thuật toàn trên để giải bài toàn này Do thời gian

có hạn nên đồ án không thể tối ưu được toàn bộ không gian trạng thái bài toàn Tuynhiên, nhón sẽ nghiên cứu hoàn thiện trong thời gian sớm nhất

Nhóm thực hiện đề tài nhằm mục đích xây dựng một hệ thống giải quyết mộtbài toàn thực tế xây dựng một trò chơi ứng dụng giải trí Trong quá trình thực hiện

đề tài không tránh khỏi sai sót, nhóm mong sẽ nhận được sự góp ý và đánh giá củathầy

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

Trang 5

CHƯƠNG I GIỚI THIỆU VỀ AI V THUẬT TOÁN A*1.1 Giới thiệu về trí tuệ nhân tạo

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

Thực ra nguồn gốc ra đời trí tuệ nhân tạo AI không hề sớm như đã nói, nhưng

nó là thành quả tất yếu của sự phát triển khoa học và công nghệ, là giải pháp giảiquyết những bài toán khó của sự phát triển loài người trong tương lai Dưới đâychúng ta cùng điểm lại những cột mốc của lịch sử phát triển trí tuệ nhân tạo AINgày nay, việc tiếp tục nghiên cứu và cải tiến trí tuệ nhân tạo AI về các côngnghệ nền tảng đã thể hiện rõ trong các kỹ năng tự động hóa và lý luận có thể đượctích rí tuệ nhân tạo hay trí thông minh nhân tạo (Artificial intelligence – viết tắt làAI) là một ngành thuộc lĩnh vực khoa học máy tính (Computer science) Là trí tuệ

do con người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóa cáchành vi thông minh như con người

Trí tuệ nhân tạo khác với việc lập trình logic trong các ngôn ngữ lập trình là ởviệc ứng dụng các hệ thống học máy (machine learning) để mô phỏng trí tuệ củacon người trong các xử lý mà con người làm tốt hơn máy tính

Cụ thể, trí tuệ nhân tạo giúp máy tính có được những trí tuệ của con người như:biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ,tiếng nói, biết học và tự thích nghi

- Công nghệ AI được chia làm 4 loại chính:

Trang 6

Loại 2: Công nghệ AI với bộ nhớ hạn chế

Đặc điểm của công nghệ AI với bộ nhớ hạn chế là khả năng sử dụng nhữngkinh nghiệm trong quá khứ để đưa ra những quyết định trong tương lai Công nghệ

AI này thường kết hợp với cảm biến môi trường xung quanh nhằm mục đích dựđoán những trường hợp có thể xảy ra và đưa ra quyết định tốt nhất cho thiết bị

Ví dụ như đối với xe không người lái, nhiều cảm biến được trang bị xung quanh

xe và ở đầu xe để tính toán khoảng cách với các xe phía trước, công nghệ AI sẽ dựđoán khả năng xảy ra va chạm, từ đó điều chỉnh tốc độ xe phù hợp để giữ an toàncho xe

Loại 3: Lý thuyết trí tuệ nhân tạo

Công nghệ AI này có thể học hỏi cũng như tự suy nghĩ, sau đó áp dụng những

gì học được để thực hiện một việc cụ thể Hiện nay, công nghệ AI này vẫn chưa trởthành một phương án khả thi

Loại 4: Tự nhận thức

Công nghệ AI này có khả năng tự nhận thức về bản thân, có ý thức và hành xửnhư con người Thậm chí, chúng còn có thể bộc lộ cảm xúc cũng như hiểu đượcnhững cảm xúc của con người Đây được xem là bước phát triển cao nhất của côngnghệ AI và đến thời điểm hiện tại, công nghệ này vẫn chưa khả thi

- AI được ứng dụng nhiều lĩnh vực trong cuộc sống:

+ Trong ngành vận tải: Trí tuệ nhân tạo được ứng dụng trên những phương tiệnvận tải tự lái, điển hình là ô tô Sự ứng dụng này góp phần mang lại lợi ích kinh tếcao hơn nhờ khả năng cắt giảm chi phí cũng như hạn chế những tai nạn nguy hiểmđến tính mạng

+ Trong sản xuất: Trí tuệ nhân tạo được ứng dụng để xây dựng những quy trìnhsản xuất tối ưu hơn Công nghệ AI có khả năng phân tích cao, làm cơ sở địnhhướng cho việc ra quyết định trong sản xuất

Trang 7

+ Trong y tế Ứng dụng tiêu biểu của trí tuệ nhân tạo trong lĩnh vực y tế là máy:

bay thiết bị bay không người lái được sử dụng trong những trường hợp cứu hộkhẩn cấp Thiết bị bay không người lái có tốc độ nhanh hơn xe chuyên dụng đến40% và vô cùng thích hợp để sử dụng ở những nơi có địa hình hiểm trở

+ Trong giáo dục: Sự ra đời của trí tuệ nhân tạo giúp tạo ra những thay đổi lớntrong lĩnh vực giáo dục Các hoạt động giáo dục như chấm điểm hay dạy kèm họcsinh có thể được tự động hóa nhờ công nghệ AI Nhiều trò chơi, phần mềm giáodục ra đời đáp ứng nhu cầu cụ thể của từng học sinh, giúp học sinh cải thiện tìnhhình học tập theo tốc độ riêng của mình AI còn có thể chỉ ra những vấn đề mà cáckhóa học cần phải cải thiện Chẳng hạn như khi nhiều học sinh được phát hiện làgửi đáp án sai cho bài tập, hệ thống sẽ thông báo cho giáo viên đồng thời gửi thôngđiệp đến học sinh để chỉnh sửa đáp án phù hợp Công nghệ AI còn có khả năngtheo dõi sự tiến bộ của học sinh và thông báo đến giáo viên khi phát hiện ra vấn đềđối với kết quả học tập của học sinh

+ Trong truyền thông: Đối với lĩnh vực truyền thông, sự phát triển của trí tuệnhân tạo góp phần làm thay đổi cách thức tiếp cận đối với khách hàng mục tiêu.Nhờ những ưu điểm của công nghệ AI, các công ty có thể cung cấp quảng cáo vàođúng thời điểm, đúng khách hàng tiềm năng, dựa trên việc phân tích các đặc điểm

về nhân khẩu học, thói quen hoạt động trực tuyến và những nội dung mà kháchhàng thường xem trên quảng cáo

+Trong ngành dịch vụ: Công nghệ AI giúp ngành dịch vụ hoạt động tối ưu hơn

và góp phần mang đến những trải nghiệm mới mẻ hơn và tốt hơn cho kháchhàng Thông qua việc thu thập và phân tích dữ liệu, công nghệ AI có thể nắm bắtthông tin về hành vi sử dụng dịch vụ của khách hàng, từ đó mang lại những giảipháp phù hợp với nhu cầu của từng khách hàng

Trang 8

1.1.2 Lịch sử AI

Lịch sử của AI bắt nguồn từ thời cổ đại với các nhà triết học nghiền ngẫm ýtưởng rằng các sinh vật nhân tạo, người máy và các robot tự động khác đã tồn tạihoặc có thể tồn tại theo một cách nào đó

Nhờ những nhà tư tưởng ban đầu, trí tuệ nhân tạo ngày càng trở nên hữu hìnhhơn trong suốt những năm 1700 và hơn thế nữa Các nhà triết học đã suy nghĩ vềviệc làm thế nào mà suy nghĩ của con người có thể được máy móc hóa và điềukhiển một cách nhân tạo bởi những cỗ máy thông minh không phải của con người.Các quá trình suy nghĩ thúc đẩy sự quan tâm đến AI bắt nguồn từ khi các nhà triếthọc, toán học và logic học cổ điển xem xét việc vận dụng các ký hiệu (một cáchmáy móc), cuối cùng dẫn đến việc phát minh ra máy tính kỹ thuật số có thể lậptrình được, Atanasoff Berry Computer (ABC) vào những năm 1940 Phát minh cụthể này đã truyền cảm hứng cho các nhà khoa học tiến lên với ý tưởng tạo ra “bộnão điện tử” hay một sinh vật thông minh nhân tạo

Gần một thập kỷ trôi qua trước khi các biểu tượng trong AI hỗ trợ sự hiểu biết

về khoa học máy tính mà chúng ta có ngày nay Alan Turing, một nhà toán học đã

đề xuất một bài kiểm tra đo lường khả năng của máy móc trong việc tái tạo hànhđộng của con người ở một mức độ không thể phân biệt được với hành vi của conngười Cuối thập kỷ đó, lĩnh vực nghiên cứu AI được thành lập trong một hội nghịmùa hè tại Đại học Dartmouth vào giữa những năm 1950, nơi John McCarthy, nhàkhoa học máy tính và nhận thức, đặt ra thuật ngữ “trí tuệ nhân tạo”

Từ những năm 1950 trở đi, nhiều nhà khoa học, nhà lập trình, nhà logic và nhà

lý thuyết đã hỗ trợ củng cố sự hiểu biết hiện đại về trí tuệ nhân tạo nói chung Cứmỗi thập kỷ trôi qua, những đổi mới và phát hiện đã thay đổi kiến thức cơ bản củamọi người về lĩnh vực trí tuệ nhân tạo và cách những tiến bộ lịch sử đã đưa AI từmột điều tưởng tượng không thể đạt được thành một thực tế hữu hình cho các thế

hệ hiện tại và tương lai

Trang 9

1.2 Thuật toán A*

1.2.1 Giới thiệu thuật toán

Thuật toán A* được mô tả lần đầu tiên năm 1986 bởi Peter Hart, NilsNilson và Bertram Raphael Trong báo cáo của họ, thuật toán được gọi là thuậttoán A, khi sử dụng thuật toán này với một hàm đánh giá heuristic thích hợp sẽthu được hoạt động tối ưu, do đó mà có tên là A*

Trong khoa học máy tính, A* là một thuật toán tìm kiếm trong đồ thị.Thuật toán này tìm một đường đi từ nút khởi đầu tới một nút đích cho trước(hoặc tới một nút thỏa mãn điếều kiện đích) Thuật toán này sử dụng một đánhgiá heuristic để xếp loại từng nút theo ước lượng về tuyến đường tốt nhất đến nút

đó Thuật toán này duyệt các nút theo thứ tự của đánh giá heuristic này Do đó,thuật toán A* là một ví dụ của tìm kiếm theo lựa chọn tốt nhất (best-first search).Xét bài toán tìm đường – bài toán mà A* thường được dùng để giải A* xâydựng tăng dần tất cả các tuyến đường từ điểm xuất phát cho tới khi nó thấy mộtđường đi chạm tới đích Tuy nhiên, cũng như tất cả các thuật toán tìm kiếm cóthông tin nó chỉ xây dựng các tuyến đường có vẻ dần về đích

Để biết những tuyến đường nào có khả năng sẽ dẫn tới đích, A* sử dụng mộthàm đánh giá heuristic về khoảng cách từ điểm bất kỳ cho tới đích Trongtrường hợp tìm đường đi, đánh giá này có thể là khoảng cách đường chim bay -một đánh giá xấy xỉ thường dùng cho khoảng cách của đường giao thông.Điểm khác biệt của A* đối với tìm kiếm theo lựa chọn tốt nhất là nó tính đếnkhoảng cách đã đi qua Điều đó làm cho A* đầy đủ và tối ưu, nghĩa là A* sẽluôn tìm thấy đường đi ngắn nhất nếu tồn tại một đường đi như thế A* khôngđảm bảo sẽ chạy nhanh hơn các thuật toán tìm kiếm đơn giản hơn Trong một môitrường dạng mê cung, cách duy nhất để đến đích có thể là trước hết phải đi vềphía xa đích và cuối cùng mới quay trở lại Trong trường hợp đó, việc thử các núttheo thứ tự “gấn đích hơn thì được thử trước” có thể gây tốn thời gian

1.2.2 Mô tả thuật toán

Giả sử n là một trạng thái đạt tới (có đường đi từ trạng thái ban đầu n0 tớin) Ta xác định hàm đánh giá: f = g + h(n) (n) (n)

• g là chi phí từ nút gốc n0 tới nút hiện tại n(n)

• h chi phí ước lượng từ nút hiện tại n tới đích(n)

Trang 10

• f chi phí tổng thể ước lượng của đường đi qua nút hiện tại n đến(n)

Trang 11

CHƯƠNG II B I TOÁN GIẢI MÊ CUNG

2.1 Giới thiệu bài toán

Mê cung hay còn gọi là mê lộ, mê đạo thường được hiểu là một hệ thống đườngngầm gồm nhiều nhánh ngang dọc nối chằng chịt với nhau Mê cung được dùng đểchỉ những công trình gồm rất nhiều hành lang, lối đi được bao bọc xung quanh với

vô vàn ngã ba, ngã tư, ngõ cụt Người bị dẫn vào mê cung chỉ nhìn thấy một phầncủa đường đi nên rất khó định hướng và có thể không tìm được lối ra Mê cung làhình dạng tiêu biểu của đa giác đơn

Các thuật toán tìm đường đi trong mê cung là những phương pháp được tựđộng hóa để giải một mê cung Các thuật toán chọn đường ngẫu nhiên, bám theotường, Pledge, và Trémaux được xây dựng để một đối tượng sử dụng chạy bêntrong mê cung mà hoàn toàn không có biết trước về mê cung, còn các thuật toánlấp kín đường cụt và đường đi ngắn nhất được thiết kế để sử dụng khi đã biếttrước toàn bộ mê cung

Mê cung không chứa các vòng lặp được gọi là mê cung "tiêu chuẩn" hoặc

"hoàn hảo", và nó tương đương với một cây trong lý thuyết đồ thị Vì vậy, nhiềuthuật toán tìm đường đi trong mê cung có liên quan chặt chẽ với lý thuyết đồ thị.Một cách trực quan, nếu ta kéo dài các đường trong mê cung ra một cách thíchhợp, kết quả thu được có thể trông giống như một cây

Thuật toàn tìm đường đi trong mê cung góp phần quan trọng trong lĩnh vực tựđộng hóa như thiết kế và điều khiển Robot tự dò đường trong mê cung bằng cácphương pháp đã lập trình sẵn Ngoài ra, tìm đường đi trong mê cung có vai trògiải trí rất thú vị, nó giúp chúng ta rèn luyện đầu óc, chúng ta muốn đi vào tậncùng của nó

Trang 12

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

2.2.1 Ý tưởng

- Đặt điểm xuất phát A là N Tìm đường đến D.0

- Giả sử giá trị mỗi đường là 1, đặt ước lượng chi phí từ A tới D là 4

- Nếu gặp ngõ cụt (ví dụ B) thì rút về điểm trước đó

- Nếu giá trị chi phí thực tế lớn hơn giá trị chi phí ước lượng (Ví dụ AC = 7) quaylại tìm đầu mối khác với giá trị chi phí thực tế thấp hơn giá trị chi phí ước lượng

- Nếu không có đường nào có giá trị chi phí thực tế thấp hơn giá trị chi phí ướclượng, tăng giá trị chi phí ước lượng

2.2.2 Thiết kế thuật toán

OPEN(FRINGE): tập chứa các trạng thái đã được sinh ra nhưng chưa được xétđến OPEN là một hàng đợi ưu tiên mà trong đó phần tử có độ ưu tiên cao nhất làphần tử tốt nhất

CLOSE: tập chứa các trạng thái đã được xét đến Chúng ta cần lưu trữ nhữngtrạng thái này trong bộ nhớ để phòng trường hợp khi có một trạng thái mới đượctạo ra lại trùng với một trạng thái mà ta đã xét đến trước đó

Khi xét đến một trạng thái ni trong OPEN bên cạnh việc lưu trữ 3 giá trị cơbản g, h, f để phẩn ánh độ tốt của trạng thái đó, A* còn lưu trữ thêm hai thông sốsau:

• Trạng thái cha của trạng thái n (ký hiệu Cha ): cho biết trạng thái dẫn đếni (n i )

Trang 13

trạng thái n i

• Danh sách các trạng thái tiếp theo của n : danh sách này lưu trữ các trạng tháii

kế tiếp n của ni sao cho chi phí đến n thông qua n từ trạng thái ban đều là thấpk k inhất Thực chất danh sách này có thể được tính từ thuộc tính Cha của các trạngthái đã được lưu trữ Tuy nhiên việc tính toán này có thể mất nhiều thời gian (khitập OPEN, CLOSE được mở rộng) nên người ta thường lưu trữ ra một danh sáchriêng

Thuật toán A*:

Function Astar (n , n0 goal)

1 Đặt OPEN chỉ chứ n Đặt g0 (n 0 ) = h(n 0 ) = f(n 0 ) = 0 Đặt CLOSE là tập rỗng

2 Lặp lại các bước sau cho đến khi gặp điều kiện dừng

2.a Nếu OPEN rỗng: bài toán vô nghiệm, thoát

2.b Ngược lại, chọn ni trong OPEN sao cho f(ni) sao cho f(ni)min

2.b.1 Lấy n ra khỏi OPEN và đưa ni vào CLOSEi

2.b.2 Nếu n chính là đích ngoal thì thoát và thông báo lời giải là nii2.b.3 Nếu n không phải là đích Tạo danh sách tất cả các trạng tháii

Trang 14

CHƯƠNG III C I ĐẶT B I TOÁN

3.1 Cài đặt với C#

- Bước 1: Khởi tạo Node các trạng thái, các hàng các cột của mê cung

Khởi tạo các giá trị

Trang 15

Hàm khởi tạo giá trị cho mê cung trong A*

Gửi giá trị mê cung cho thuât toán A*

Trang 16

- Bước 2: Đánh giấu các ô tường và ô không phải là tường trong mê cung

Nếu không có tường, đặt thêm điểm có thể di chuyển được cho con trỏ A*

Trang 17

- Bước 3: Tạo các hàm di chuyển giữa các điểm trong mê cung

Các điểm di chuyển được được thêm vào cây tìm kiếm của A*

Trang 18

- Bước 4: Giải mê cung

+ Nếu tìm đc đầu mối mới thì thêm đầu mỗi vào danh sách (neighbor)+ Nếu chi phí ước lượng từ nút (N đến N0) (hiện tại) nhỏ hơn một đầu

N(neighbor) khác, chuyển đầu con trỏ sang N(neighbor)

+ Tiếp tục tới khi tìm được đường tối ưu đi từ N tới đích0

Hàm giải mê cung bằng thuật toán A*

Ngày đăng: 14/01/2025, 15:53