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 1TONG 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 2TONG 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 3THANH PHO HO CHi MINH, NAM 2023
Trang 4LOI 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 5BAI 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 6PHAN 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 7MUC LUC
Trang 8DANH MUC BANG CHU CAI VIET TAT
e BFS: Breath — First —- Search
e A*:A- Start
e UCS: Uniform — Cost — Search
Trang 9PHAN 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 1010
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 1111
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 1212
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 1313
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 1414
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 1515
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 16explored — 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 1717
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 1818
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 19e 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 20Trự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 21TAI LIEU THAM KHAO
21