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

Nhập Môn Trí Tuệ Nhân Tạo Giải Quyết Bài Toán Ghép Tranh Bằng Thuật Toán A.pdf

40 1 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 đề Giải Quyết Bài Toán Ghép Tranh Bằng Thuật Toán A*
Tác giả Tống Sỹ An, Nguyễn Tiến Dũng
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 đề học phần
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 40
Dung lượng 4,44 MB

Nội dung

Một ngôn ngữbiểu diễn tri thXc được đánh giá là “tốt” nếu nó có tính biểu đạt cao và các tính hiệuquả của thuật toán lập luận trên ngôn ngữ đó.. khả năng biểu diễn một phạm vi rộng lớn c

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

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

ĐỀ T!I: GIẢI QUYẾT B!I TOÁN GHÉP TRANH

BẰNG THUẬT TOÁN A*

Sinh viên thực hiện : TỐNG SỸ AN

: NGUYỄN TIẾN DŨNG Giảng viên hướng dẫn : VŨ VĂN ĐỊNH

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

Trang 2

PHIẾU CHẤM ĐIỂM

Sinh viên thực hiện:

STT Sinh viên thực hiện Nhiệm vụ Chữ ký

Msv: 20810320138

Msv: 20810340181

Giảng viên chấm thi:

Họ tên giảng viên Chữ ký Ghi chú

Giảng viên số 1

Giảng viên số 2

MỤC LỤC

Trang 3

LỜI MỞ ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU VỀ AI 2

1.1 Khái niệm 2

1.2 Lịch sử 2

1.3 Lĩnh vực AI 3

CHƯƠNG 2: CÁC THUẬT TOÁN TÌM KIẾM TRONG AI 5

2.1 Giơi thiệu 5

2.2 Những thuật ngữ thông dụng trên cây và đồ thị tìm kiếm 5

2.3 Tìm kiếm trên cây và tìm kiếm trên đồ thị cây 9

2.4 Phân loại các giải thuật tìm kiếm 10

CHƯƠNG 3: Tìm kiếm thông tin đánh giá heuristic 11

3.1 Thông tin đánh giá heuristic 11

3.2 Thuật giải A* 16

CHƯƠNG 4: Giải quyết trò chơi ''8-puzzle''' thông qua các thuật toán tìm kiếm trong AI 22

4.1 Tổng quan 22

4.2 Thiết kế giao diện, chức năng bài toán 22

4.3 Kết quả bài toán 29

T!I LIỆU THAM KHẢO 35

KẾT LUẬN 36

Trang 4

LỜI MỞ ĐẦU

Game ghép tranh (N-Puzzle) là một trò chơi khá hay và trí tuệ, nó được biếtđến với nhiều phiên bản và tên gọi khác nhau như: 8-puzzle, 15-puzzle, Bosspuzzle Bài toán N-puzzle là vấn đề cổ điển cho mô hình thuật toán liên quan đếntrí tuệ nhân tạo Bài toán đặt ra là phải tìm đường đi từ trạng thái hiện tại tới trạngthái đích Ở đây ta xét bài toán ghép tranh với giao diện đơn giản nhất là bài toán 8số

BaTi toaUn gôm mô Wt ma trận 3x3 caUc tranh được đaUnh thX tự từ 1 đến 8 TraWngthaUi ban đâu, caUc ô số được đaUnh thX tự ngâu nhiên, 1 ô trống đánh số 0 Nhiê Wm vuWcu[a ta laT pha[i săp xếp từ vị trí 0 với các ô lân cận sao cho đưa chuUng tr^ về đuUngthX tự (traWng thaUi điUch)

Chính vì vâ Wy ch`ng em đa đi đến viê Wc lựa chọn đề tài “ Giải quyết bài toán ghép tranh(8-puzzle) bằng thuật toán A*” cho bài tâ Wp lớn môn “ nhập môn trí tuệ

nhân tạo ” Ch`ng em vô cùng biết ơn Thây Vũ Văn Định, người trực tiếp giảngdạy, hướng dân nhiệt tình cho ch`ng em trong quá trình nghiên cXu và thực hiện đềtài này

Mặc dù đề tài đa hoàn thành, nhưng chăc chăn sẽ không thể tránh khỏi nhữngthiếu sót, vì vậy ch`ng em mong muốn nhận được các ý kiến đóng góp của các thây

cô để có thể hoàn thiện đề tài này một cách hoàn chỉnh hơn nữa

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

Trang 5

CHƯƠNG 1 GIỚI THIỆU VỀ AI1.1 Khái niệm

M.Minsky : ‘‘Trí tuệ nhân tạo nhằm mô phỏng bằng máy tính về hành độngthông minh của con người’’

Hai quan điểm về vai trò của máy tính trong ngành trí tuệ nhân tạo :

- Máy tính là phương tiện mô phỏng để thử một mô hình hay một định lý

- Máy tính có nhiều khả năng chủ động Do vậy cân cố găng tạo ra các máy

tính có khả năng thông minh như con người, như khả năng thu nhận trithXc, nhận dạng, suy luận hoặc ra quyết định

1.2 Lịch sử

Vào năm 1943, Warren McCulioch và Walter Pitts băt đâu thực hiện nghiêncXu ba cơ s^ lý thuyết cơ bản: triết học cơ bản và chXc năng của các noron thânkinh, phân tích các mệnh đề logic và lý thuyết dự đoán Turing Các tác giả đanghiên cXu đề xuất mô hình noron nhân tạo, mỗi noron đặc trưng b^i hai trạngthá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^iJohn McCarthy tại Hội thảo đâu tiên về chủ đề này vào mùa hè năm 1956 Đôngthời, ông cũng đề xuất ngôn ngữ lập trình Lisp – một trong những ngôn ngữ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 chXng 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

sử dụng cơ s^ tri thXc đâu tiên thành công Marvin Minsky và Seymour Papertđưa ra các chXng 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

Trang 6

Ted Shortliffe xây dựng thành công một số hệ chuyên gia đâu tiên trợ gi`pchuẩn đoán y học, các hệ thống này sử dụng ngôn ngữ luật để biểu diễn tri thXc

và suy diễn

Vào đâu những năm 1980, những nghiên cXu thành công liên quan đến AInhư các hệ chuyên gia (expert systems) – một dạng của chương trình AI môphỏng tri thXc và 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 đa đạt được những thành tựu tolớn nhất, AI được áp dụng trong logic, khai phá dữ liệu, chuẩn đoán y học vànhiều lĩnh vực Xng dụng khác trong công nghiệp Sự thành công dựa vào nhiềuyế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áncon cụ thể, xây dựng mối quan hệ giữa AI và cá lĩnh vực khác giải quyết các bàitoán tương tự và một sự chuyển giao mới của các nhà nghiên cXu cho cácphương pháp toán học vững chăc và chuẩn khoa học chính xác

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à suydiễn (reference) được sử dụng rất phổ biến trong lĩnh vực AI Lập luận là suy diễnlogic, dùng để chỉ một tiến trình r`t ra kết luận (tri thXc mới) từ những giả thiết đacho (được biểu diễn dưới dạng cơ s^ tri thXc) 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 thXc và các thủ tục lập luận trên cơ s^tri thXc đó

⮚ Biểu diễn tri thXc: Muốn máy tính có thể lưu trữ và xử lý tri thXc thìcân có các phương pháp biểu diễn tri thXc Các phương pháp biểu diễn tri thXc ^đây bao gôm các ngôn ngữ biểu diễn và các kỹ thuật xử lý tri thXc Một ngôn ngữbiểu diễn tri thXc được đánh giá là “tốt” nếu nó có tính biểu đạt cao và các tính hiệuquả 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

Trang 7

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 Xng dụng.Tính hiệu quả của các thuật toán lập luận thể hiện chi phí về thời gian và khônggian 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,tXc 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ó độphXc 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 đạtthấp thì thuật toán lập luận trên đó sẽ có hiệu quả cao) Do đó, một thách thXc lớntrong lĩnh vực AI là xây dựng các ngôn ngữ biểu diễn tri thXc mà có thể cân bằnghai yếu tố này, tXc là ngôn ngữ có tínhbiểu đạt đủ tốt (tùy theo từng Xng dụng) và

có thể lập luận hiệu quả

⮚ Lập kế hoạch: khả năng suy ra các mục đích cân đạt được đối với cácnhiệm vụ đưa ra, và xác định day 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 cXu của AI đang được phát triểnmạnh mẽ và có nhiều Xng dụng trong các lĩnh vực khác nhau như khai phá dữ liệu,khám phá tri thXc,…

⮚ Xử lý ngôn ngữ tự nhiên: là một nhánh của AI, tập trung vào các Xngdụng trên ngôn ngữ của con người Các Xng dụng trong nhận dạng tiếng nói, nhậndạ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 ranhữ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à cungcấ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ếngnhư các hệ chuyên gia y học MYCIN, đoán nhận cấu tr`c phân tử từ công thXc hóahọc DENDRAL, …

Trang 8

CHƯƠNG 2: Các thuật toán tìm kiếm trong AI

2.1 Giới thiệu

Tìm kiếm đóng vai trò chủ đạo trong phân lớn các khái niệm liên quan đếntrí tuệ nhân tạo Giải thuật này cung cấp một bộ khung có tính chất khái niệm củahâu hết mọi phương pháp tiếp cận đến sự khám phá có tính hệ thống của những sựchọn lựa

Ch`ng ta sẽ băt đâu với một vài yếu tố nền tảng, thuật ngữ, và các chiến lượcthực hiện cơ bản sau đó sẽ tìm hiểu bốn nhóm giải thuật tìm kiếm khác nhau về haikhía cạnh

- Sự khác nhau giữa tìm kiếm thông tin không đây đủ (uninformed search

hay lind search) và tìm kiếm thông tin đây đủ (informed search hayheuristic earch) Trong đó informed search sẽ truy xuất đến những thôngtin mang tính hất tác vụ chuyên biệt mà có thể được sử dụng nhằm mụcđích làm cho tiến trình tìm kiếm hữu hiệu hơn

- Sự khác nhau giữa phương pháp tìm kiếm theo một đương bất kỳ

(any-path earch) và tìm kiếm tối ưu (optional search) Optimal search tìm kiếmđối với một vài trường hợp

2.2 Những thuật ngữ thông dụng trên cây và đồ thị tìm kiếm

Những phương pháp tìm kiếm mà ch`ng ta sẽ gặp được định nghĩa trêncây(tree) là đô thị (graph) nên ch`ng ta phải nhăc lại một số thuật ngữ cân chonhững cấu tr`c ấy

- Cây được tạo ra từ những hình tròn và đường thẳng gọi là n`t(node) và

đường nối (link) được kết nối với nhau sao cho không tạo thành vòng

Trang 9

khép kín N`t thỉnh thoảng được hiểu như là những đỉnh và đường nối làđường biên (Điều này thường gặp phổ biến khi xét một đô thị).

- Một cây có n`t gốc (root node) tại vị trí kh^i đâu của cây Mỗi n`t ngoại

trừ n`t gốc có một n`t cha (parent) n`t ngay trước nó, ^ mXc cao hơn nó

- Một cây có n`t gốc (root node) tại vị trí kh^i đâu của cây Mỗi nut ngoại

trừ n`t gốc có một n`t cha (parent) nut ngay trước nó, ^ mXc cao hơn nó

- Mỗi n`t ngoại trừ n`t cuối cùng (^ xa n`t gốc nhất) đối với mỗi nhánh,

đều có một n`t được nối tiếp sau nó (^ mXc thấp hơn nó) gọi là n`t con(children) N`t không có con như ^ trên gọi là n`t lá (leaf)

B là cha (parent) của C

C là con (child) của B

A là ông (ancestor) của C

C là cháu (descendant) của A

- Đô thị cũng là tập những n`t được nối với nhau bằng các đường nối (link)

và cho phép tạo thành vòng Bên cạnh đó, một n`t (node) có thể có nhiềucha (parent)

- Ch`ng ta có hai loại đô thị:

Trang 10

+ Đô thị có hướng (directed graph): các đường nối có hướng (gân giốngnhư những đường một chiều)

Directed graph

+ Đô thị vô hương (undirected graph): các đường nối không xác định hướng (có thể

đi theo cả hai hướng)

Undirected graph

- Ví dụ: Xét mạng lưới đường giao thông hoặc lộ trình chuyến bay hoặc mạngmáy tính Điều ch`ng ta quan tâm ^ đây trong tất cả mọi trường hợp là tìm kiếmmột đường đi trên đô thị thoả man một vài yêu câu nào đó Chẳng hạn như ch`ng ta

có thể tìm kiếm một đường bất kỳ nào đó mà có số chặng là ít nhất

Lộ trình chuyến bay

Trang 11

Tuy nhiên đô thị còn có thể trừu tượng hơn Xét một đô thị được định nghĩa nhưsau:

Đồ thị biểu thị những trạng thái có thể của thế giới khối

- Các n`t biểu thị sự mô tả trạng thái của thế giới khối, chẳng hạn một khối có thể

^ trên đỉnh một khối khác Và ^ đây các đường nối sẽ đại diện cho những hànhđộng thay đổi từ trạng thái này sang trạng thái khác

- Một đường xuyên suốt đô thị ( từ n`t kh^i đâu đến n`t đích ) được gọi là “một kếhoạch hành động (plan of action)” để đạt được một vài trạng thái đích mong đợi từmột vài trạng thái khư^i đâu đa biết

- Đô thị dạng này thường gặp rất nhiều trong AI

Trang 12

2.3 Tìm kiếm trên cây và tìm kiếm trên đồ thị

Cây là một lớp con của đô thị có hướng mặc dù đường kết nối giữa các n`t trong cây không có mũi tên định hướng Các kết nối trong cây không tạo thành vòng và mỗi n`t (ngoài trừ gốc) có một cha

Khi được yêu câu tìm kiếm trên một đô thị ch`ng ta có thể chuyển đổi sang tìm kiếm tương đương trên cây thông qua 2 bước sau:

- Chuyển kết nối vô hướng thành hai kết nối có hướng

- Tránh tạo thành vòng, hay tốt hơn là không được thăm một n`t hai lân.Ch`ng ta có thể xem xét một ví dụ chuyển đổi một đô thị thành một cây Giả

sử ^ đây, S là kh^i đâu của quá trình tìm kiếm và từ đó ch`ng ta cố găng để tìm ramột đường đến G thì ch`ng ta sẽ đi xuyên suốt đô thị và tạo ra những kết nối từmỗi n`t đến mỗi n`t được kết nối sao cho không tạo thành vòng và ngững bất cXkhi nào ch`ng ta tìm được G Lưu ý rằng mỗi cây như vậy có một lá cho mỗiđường không có vòng lặp trên đô thị kh^i đâu từ S

Tuy nhiên, cũng cân lưu ý rằng, mặc dù ch`ng ta tránh được những vòng lặphưng một vài n`t (được minh hoạ có cùng màu trong hình) lại được gặp lại hai lânrên cây Nói rõ hơn, những n`t trùng nhau này nằm ^ những đường không tạo thành

Trang 29

4.2.6 Chức năng giải BFS.

- Click vào button giải BFS thì người dừng phải đợi một ch`t để máy có thể

tự giải Tới khi nào phân đếm bước đi hiển thị số bước:

- Thì khi đó thuật toán đa được giải và sẽ hiển thị ra màn hình cả thời gian và

số bước duyệt để chọn ra được những trạng thái cuối cùng để người chơi có thể đi đến chiến thăng

4.2.7 Chức năng giải tối ưu.

- Khi bạn click vào button giải tối ưu thì người dùng sẽ chờ một ch`t Tới khi

mà phân đến bước đi hiển thị ra số bước đi thì khi đó trò chơi mới tự đượcmáy giải xong

Trang 30

- ChXc năng này cũng sẽ hiển thi ra các thời gian và số trạng thái đa được

duyệt qua để đi đến trạng thái kết th`c

- Việc hiển thị số bước để duyệt hay còn gọi là số trạng thái để đi đến trạng

thái cuối cùng, sẽ gi`p người dùng so sánh được hai phương pháp giải vớinhau

4.2.8 Chức năng thoát.

- Khi muốn tăt chương trình thì người dùng sẽ có chXc năng thoát Khí bạn

click vào thì sẽ hiển thị một thông báo xác nhận là bạn có muốn thoát haykhông

Trang 31

- Người dùng chọn có thì chương trình sẽ thoát còn chọn không thì chương

trình vân sẽ tiếp tục

4.2.9 Chức năng đi lui và đi tới.

- Khi bạn đa chọn chXc năng giải BFS hoặc giải tối ưu chương trình đa thực

thi xong thì bạn sẽ chọn chXc năng đi tới và đi lui để đi từng bước tới trạngthái kết th`c

- ChXc năng này gi`p người chơi có thể hiểu được các bước giải của máy

thông qua việc đi từng bước từng bước

- Khi đa đi hết tất cả các bước thì bạn sẽ tới trạng thái kêt th`c.

Trang 32

4.2.10 Chức năng tính thời gian.

- Khi băt đâu vào trò chơi thì thời gian vân sẽ chưa được tính, cho đến khi

bạn băt đâu di chuyển trạng thái đâu tiên của một ô trên khung thì thời gian

sẽ băt đâu tính Hiểu nôm na sẽ là bạn di chuyển một ô thì thời gian sẽ bătđâu tính kể cả khi sau đó bạn không di chuyển thêm một ô nào khác thì thờigian vân sẽ tính

- ChXc năng tính thời gian cũng sẽ là một chXc năng đánh giá khả năng của

bạn tương tự như đếm bước đi của bạn vậy Bạn hoàn thành trong thời giancàng ngăn thì chXng tỏ bạn rất thông minh và chơi game này rất tốt

- Thời gian sẽ dừng khi trạng thái bạn hoàn thành sẽ là trạng thái kết th`c.

Hay nói cách khác là bạn đa xếp đ`ng hình thì thời gian sẽ dừng lại

4.3 Kết quả code.

4.3.1 Khởi tạo các mảng có thể phát sinh

Trang 35

4.3.2 Phân tách và kiểm tra đích.

Trang 36

4.3.3 Kiểm tra trạng thái.

Trang 37

4.3.4 Hàng đợi.

4.3.5 Sắp xếp các trạng thái.

Trang 38

4.3.6 In ra đường đi

Trang 39

T!I LIỆU THAM KHẢO

1. Implementation,-Advantages,-Disadvantages_8881/

https://www.brainkart.com/article/Best-First-Search Concept,-Algorithm,-2. https://en.wikibooks.org/wiki/Artificial_Intelligence/Search/Exhaustive_search/Breadth-first_search

Trang 40

https://stackoverflow.com/questions/6068856/c-sharp-swapping-objects-KẾT LUẬN

Sau một thời gian tìm hiểu và nghiên cXu cùng với sự chỉ dân của cô, ch`ng

em đa hoàn thành đề tài ghép tranh với thuật toán tìm kiếm A* Xong vân khôngthể tránh được những thiếu sót, mong thây có thể chỉ dân để báo cáo được hoànthiện

Bài ghép tranh trên thực hiện với ma trận 3X3 và có độ khó không cao Ch`ng

em sẽ tiếp tục nghiên cXu áp cho bài toán ghép tranh mXc độ khó hơn 4X4, 5X5,nXn,…

Ngày đăng: 04/05/2024, 12:47

HÌNH ẢNH LIÊN QUAN

Đồ thị biểu thị những trạng thái có thể của thế giới khối - Nhập Môn Trí Tuệ Nhân Tạo Giải Quyết Bài Toán Ghép Tranh Bằng Thuật Toán A.pdf
th ị biểu thị những trạng thái có thể của thế giới khối (Trang 11)

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

TÀI LIỆU LIÊN QUAN

w