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

bài báo cáo giữa kỳ môn trí tuệ nhân tạo

21 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 đề Bài báo cáo giữa kỳ môn trí tuệ nhân tạo
Tác giả Cao Thị Thùy Giang, Nguyễn Hòa An, Trần Thị Thảo Nguyên, Đào Thụy Bảo Hân
Trường học Trường Đại học Tôn Đức Thắng
Chuyên ngành Trí tuệ nhân tạo
Thể loại Bài báo cáo
Năm xuất bản 2023
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 0,98 MB

Nội dung

13 ban đầu thực hiện di chuyên tất cả hoạt động có thẻ xảy ra, tính toán chỉ phí và đưa vào hàng đợi.. Lấy trạng thái có chi phi thấp nhất ra khỏi hàng đợi để tiếp tục tính toán và thay

Trang 1

TONG LIEN DOAN LAO DONG VIET NAM

TRUONG DAI HOC TON DUC THANG

KHOA CONG NGHE THONG TIN

BAI BAO CAO GIỮA KỲ

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

Người hướng dẫn: Người thực hiện: Cao Thị Thùy Giang - 52200138

Nguyễn Hòa An -

Trần Thị Thảo Nguyên -

Dao Thuy Bao Han - Lop: 22050301 Khoa: 26

THANH PHO HO CHi MINH, NAM 2023

Trang 2

TONG LIEN DOAN LAO DONG VIET NAM

TRUONG DAI HOC TON DUC THANG

KHOA CONG NGHE THONG TIN

BAI BAO CAO GIU'A KY

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

Người hướng dẫn: Người thực hiện: Cao Thị Thùy Giang - 52200138

Trang 3

THANH PHO HO CHi MINH, NAM 2023

Trang 4

LOI CAM ON

Đề có thê hoàn thành bài báo cáo này, chúng em xin chân thành cảm ơn sự giúp đỡ của các thầy cô khoa công nghệ thông tin của trường đại học Tôn Đức Thắng

Vì kiến thức bản thân còn hạn chế, trong quá trình thực hiện, hoàn thiện bài báo cáo

này chúng em không tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ phía thầy cô

Em xin chân thành cảm ơn

Trang 5

BAI BAO CAO DUOC HOAN THANH

TAI TRUONG DAI HOC TON DUC THANG

Chúng tôi xin cam đoan đây là bài báo cáo của riêng nhóm chúng tôi tôi Các nội dung nghiên cứu, kết quả trong dé tai này là trung thực và chưa công bố dưới bat

kỳ hình thức nào trước đây Những số liệu trong các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giá thu thập từ các nguồn khác nhau có ghi rõ trong phân tài liệu tham khảo

Nếu phát hiện có bất kỳ sự gian lận nào chúng tôi xin hoàn toàn chịu trách nhiệm về nội dung bài báo cáo của mình Trường đại học Tôn Đức Thắng không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra trong quá trình thực hiện

(nếu có)

TP Hồ Chí Minh, ngày 13 tháng 03 năm 2024

Tác giả (ky tén va ghỉ rõ họ tên)

Trang 6

PHAN XAC NHAN VA DANH GIA CUA GIANG VIEN

Phần xác nhận của GV hướng dẫn

Tp Hồ Chí Minh ngày tháng năm (ký và ghi họ tên)

Phần đánh giá của GV chấm bài

Tp Hồ Chí Minh ngày tháng năm (ký và ghi họ tên)

Trang 7

MUC LUC

Trang 8

DANH MUC BANG CHU CAI VIET TAT

e BFS: Breath — First —- Search

e A*:A- Start

e UCS: Uniform — Cost — Search

Trang 9

PHAN 1: TOM TAT

| Vấn đề nghiên cứu

Các kiến thức đã được tiếp cận trong quá trình học môn trí tuệ nhân tạo

ll - Cách giải quyết vấn đề

©_ Tham khảo tài liệu trén internet

o Tham khao slide bài giảng môn học và ghi chép trong quá trình học

o_Áp dụng những hiểu biết qua các kiến thức đã được tiếp cận trong quá trình

học tập

II - Kết quả đạt được

o Hoan thanh các câu hỏi nội dung được đưa ra trong bai bao cáo

o Hé thong lại toàn bộ những kiến thức đã được học trong suốt thời gian học

tập

o Bao dam kién thức nên tảng phục vụ cho các môn học sau cũng như công VIỆC Sau này

Trang 10

10

PHAN 2: NOI DUNG

1 Câu hỏi 1: 8-Puzzle

Trò chơi 8-puzzle có mục tiêu là di chuyên các khói só từ trạng thái bát đầu để

đạt được trạng thái kết quả Trong đó:

e_ Trạng thái bắt đầu có thẻ là một cách sắp xếp bát kỳ 8 khói só và ô trồng trên

Trạng thái bắt đầu | Trạng thái đích

1.1 Mô hình boá bài toán dưới dạng không gian trạng thái

e Trang thai bat dau: Ban cờ được biểu diễn dưới dạng ma trận 3x3n, mỗi ô chứa các giá trị ngẫu nhiên gồm các phan tir tir 1 đến 8, với 1 là ô trống

e Trang thai dich: Ma tran 3x3 duoc s 4p xép theo thir ty ty 1 đến 8, với ô đầu

tiên hoặc ô cuối cùng là ô trống theo như yêu cầu của đề bài

e Hành động: Di chuyền lên, xuống, qua trái, qua phái

e_ Chỉ phí đường đi: Mỗi bước di chuyên tiêu tốn I đơn vị, không di chuyên tiêu tốn 0 đơn vị

Trang 11

11

1.2.1 Thuật toán BFS

e Khái niệm

-_ Tìm kiếm theo chiều rộng (BFS) là một thuật toán để duyệt đồ thị hoặc cây BFS sử dụng cấu trúc dữ liệu hàng đợi (queue) đề tìm đường đi ngắn nhát trong biêu đà

e_ Ý tưởng thuật toán:

o_ Giả sử thuật toán là 1 dé thi G = (V, E) Thực hiện lập lịch duyệt cho các đỉnh của đỏ thị G Việc duyệt các đinh sẽ được ưu tiên sao cho

đỉnh nào gàn với nó nhất sẽ được duyệt trước

e Giai thuật

o_ Bước †1: Lấy một đinh bát kỳ trong đồ thị thêm vào cuối hàng đợi.

Trang 12

12

o_ Bước 2: Lấy phân tử đầu tiên của hàng đợi và thêm nó vào danh sách

đã duyệt

o_ Bước 3: Tạo một danh sách các đính liền kề của đính đang xét Thêm

những đỉnh không có trong danh sách đã duyệt vào cuối hàng đợi o_ Bước 4: Tiếp tục lặp lại bước 2 và 3 cho đến khi hàng đợi trồng

add node.STATE to explored

for each action in problem.ACTIONS(node.STATE) do

child — CHILD-NODE(problem, node, action)

if child STATE is not in explored or frontier then

if problem.GOAL-TEST(child.STATE) then return SOLUTION(child)

frontier — INSERT(child, frontier) 1.2.2 Thuat toan A*

e Y tuéng thuật toán

Thuật toán A* sẽ tạo một hàng đợi ưu tién Tao | ham heuristic dé tinh chi phí sau mỗi lần thay đổi trạng thái kê cả trạng thái ban đầu Từ trạng thái

Trang 13

13

ban đầu thực hiện di chuyên tất cả hoạt động có thẻ xảy ra, tính toán chỉ phí

và đưa vào hàng đợi Lấy trạng thái có chi phi thấp nhất ra khỏi hàng đợi để tiếp tục tính toán và thay đổi trạng thái cho đến khi đạt được trạng thái đích

Giải thuật

o_ Bước 1: Xác định các trạng thái tiếp theo có thê xảy ra của bài toán

o_ Bước 2: So sánh xem trạng thái nào có chỉ phí đường đi ngắn nhất để

xác định trạng thái tiếp theo

o_ Bước 3: Tiếp tục lặp lại cho đến khi đạt được trạng thái đích

Ma gia

Function AStartSearch(problem, h, g) returns list of actions and path cost explored — an empty set

frontier — a priority queue

startNode — anode with STATE = problem.INTIAL-STATE, cost = 0, heuristic(start,goal)

frontier — INSERT(startNode)

loop do

if EMPTY ?(frontier) then return failure

curr node — POP(frontier)

curr_state — curr_node.state

if curr_state isGoal then

path <— an array empty

loop do

Trang 14

14

if None(curr_node.parent) then return failure

append curr_node.action to path curr node ©— curr_node.parent

return reverse of path add curr_state to explored

for each action in problem.ACTION(curr_state) succ_ state — problem.getResult(curr_state, action)

if succ_ state not in explored then

succ_cost <— curr_node.cost +

problem.getCost(curr_state,action)

succ_node — Node(succ_state,curr_node,action,succ_cost,heuristic(succ_state,goal)

frontier INSERT(succ_node)

e Nhận xét

1.3 _ Mã nguồn

1.3.1 Chương trình 1

o_ Input: trạng thái bắt đầu tuỳ ý do người dùng nhập; tên thuật toán mong muốn

o Output: Danh sach actions dé giải trò choi (Left, Right, Up, Down); tong chi phi

o Visualization: Str dung thu vién graphviz dé vẽ đường đi từ trạng thái bắt đầu

đến trạng thái kết thúc

Trang 15

15

1.3.2 Chương trình 2

o_ Phát sinh ngẫu nhiên 1000 trang thai bat dau

o_ Chạy thuật toán BFS và A* để tìm ra giải pháp, tính tông chỉ phí

o_ Lấy trung bình chi phí của 1000 lần thí nghiệm cho mỗi thuật toán o_ Vẽ biểu đồ cột đề đối sánh hiệu suất của các thuật toán

2 Câu 2 Pacman

Cài đặt các thuật toán thông tin để giúp pacman ăn hết các điểm mồi trong bản

đồ và đi qua bốn góc của bản đồ theo thứ tự bất kỳ

2.1 Mô hình hoá bài toán dưới dạng không gian trạng thái

2.2 Thuật toán UCS và A* để giải trò chơi

2.2.1 Thuật toán UCS

o_ Ý tưởng thuật toán

=_ UCS sử dụng một hàng đợi ưu tiên đề duyệt các trạng thái theo thứ tự tăng dân của chỉ phí với trạng thái ban đầu được thêm vào

hàng đợi trước tiên

“_ Mỗi làn lặp, node với chi phí thấp nhất được đưa ra khỏi hàng đợi

đề duyệt Các trạng thái tiếp theo được thêm vào hàng đợi với chi

phí được tính từ trạng thái hiện tại

©_ Giải thuật

= Bude 1: Thêm trạng thái ban đầu vào cuôi hàng đợi ưu tiên

= Bude 2: Lấy phản tử đầu tiên của hàng đợi ưu tiên và thêm vào

danh sách đã duyệt

“_ Bước 3: Tạo một danh sách các trạng thái kè của trạng thái

đang xét Thêm những trạng thái chưa được duyệt vào cuối hàng đợi ưu tiên với chỉ phí tính từ trạng thái ban đầu.

Trang 16

explored — an empty set

frontier — a priority queue

startNode < a node with STATE = problem.INTIAL-STATE,

if curr_state isGoal then

path <— an array empty

loop do

if None(curr_node.parent) then return failure

append curr_node.action to path

if succ_ state not in explored then

succ_cost — curr_node.cost +

problem.getCost(curr_state,action)

Trang 17

17

succ_node — Node(succ_state,curr_node,action,succ_cost)

frontier INSERT(succ_node)

o Nhan xét

2.2.2 Thuật toán A*

o_ Ý tưởng thuật toán

A* sử dụng một hàng đợi ưu tiên đề lưu trữ và duyệt các trạng thái

Tạo một hàm heuristic đê ước lượng chỉ phí từ trạng thái hiện tại đến trạng thái đích

Chi phí tính toán của A* sẽ được tính từ chỉ phí thực tế (tính từ

trạng thái ban đầu đến trạng thái hiện tại) cộng với heuristic

(ước lượng từ trạng thái hiện tại đến trạng thái đích)

Mỗi lần lặp, node với chỉ phí thấp nhát được đưa ra khỏi hàng đợi để duyệt Các trạng thái tiếp theo được thêm vào hàng đợi

với chi phí được tính từ trạng thái hiện tại

©_ Giải thuật

Bước 1: Thêm trạng thái ban đầu vào cuối hàng đợi ưu tiên Bước 2: Lấy phần tử đầu tiên của hàng đợi ưu tiên và thêm vào

danh sách đã duyệt

Bước 3: Tạo một danh sách các trạng thái kề của trạng thái

đang xét Thêm những trạng thái chưa được duyệt vào cuối hàng đợi ưu tiên với chỉ phí tính từ trạng thái ban đầu

Bước 4: Lặp lại từ Bước 2 đến khi hàng đợi trồng

o Magia

Trang 18

18

Function AStartSearch(problem,start,goal) returns list of actions and path cost

explored — an empty set

frontier — a priority queue

startNode — anode with STATE = problem INTIAL-STATE, cost = 0, heuristic(start,goal)

frontier — INSERT(startNode)

loop do

if EMPTY ?(frontier) then return failure

curr node — POP(frontier)

curr_state — curr_node.state

if curr_state isGoal then

path — an array empty loop do

if None(curr_node.parent) then return failure append curr_node.actio n to path curr node ©— curr_node.parent return reverse of path add curr_state to explored

for each action in problem.ACTION(curr_state)

succ_ state — problem.getResult(curr_state, action)

Trang 19

e Admissibility (tinh thu nap):

e Consistency (tinh nhat quan):

o Nhan xét

2.3 Chương trình để thực thi các thuật toán

-_ Input: đường dẫn đến tập tin chứa bán đồ; tên thuật toán cần chạy

- Output: danh sách các actions (North, East, West, South, Stop) cần thực

hiện;

- tong chi phí

- _ Cấu trúc bản đồ như sau:

o_ % là vật cản, tường, không thể qua

o_ Pà vị trí ban đầu của pacman

o la vi tri điểm mồi, số lượng bất kỳ

o Cac 6 tréng còn lại pacman có thé di qua

Trang 20

Trực quan hoá các bước chạy của trò chơi trên màn hình console

3 Câu 3 Graphical Pacman

Trang 21

TAI LIEU THAM KHAO

21

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