Giải quyết vấn đề bằng phương pháp tìm kiếm – Tìm kiếm không có thông tin Giải quyết vấn đề bằng phương pháp tìm kiếm – Tìm kiếm không có thông tin Môn học Trí tuệ nhân tạo Giảng viên TS Nguyễn Thiên Bảo Các agent có khả năng giải quyết vấn đề Phát biểu bài toán Các loại vấn đề Các thuật toán tìm kiếm cơ bản Vấn đề tìm kiếm Vấn đề tìm kiếm, một cách tổng quát, có thể hiểu là tìm một đối tượng thỏa mãn một số đòi hỏi nào đó Chúng ta có thể kể ra rất nhiều vấn đề mà việc giải quyết nó được quy về.
Trang 1Giải quyết vấn đề bằng
phương pháp tìm kiếm –
Tìm kiếm không có thông tin
Môn học: Trí tuệ nhân tạo
Giảng viên: TS Nguyễn Thiên Bảo
Trang 2Các agent có khả
Các loại vấn đề Các thuật toán tìm kiếm cơ bản
Trang 3Vấn đề tìm kiếm
- Vấn đề tìm kiếm, một cách tổng quát, có
thể hiểu là tìm một đối tượng thỏa mãn một
số đòi hỏi nào đó
-Chúng ta có thể kể ra rất nhiều vấn đề mà
việc giải quyết nó được quy về vấn đề tìm
kiếm.
Trang 4Problem -
Solving agents
Simple reflex agents Model-based
reflex agents
Goal-based agents
Utility-based
agents
Problem -
Solving agents
Trang 5PROBLEM - SOLVING AGENTS
• Là một loại goal - based agent
• Nó giải quyết vấn đề bằng cách tìm ra chuỗi
hành động dẫn đến trạng thái mong muốn
(mục tiêu)
Trang 7PROBLEM FORMULATION
Initial State
Actions Goal Test
Path cost Transition
Model
Trang 8Tìm kiếm (Search): Nó xác định tất cả các chuỗi
hành động tốt nhất có thể, chứng minh, tìm ra thuật toán tốt nhất, tối ưu nhất trong số các thuật toán khác nhau để đạt được mục tiêu
Thực thi (Execution): Nó thực thi giải pháp tối ưu
tốt nhất từ các thuật toán tìm kiếm để đạt được trạng thái mục tiêu từ trạng thái hiện tại
Trang 9PROBLEM - SOLVING AGENT
-Goal Formulation: mọi người phải băng qua dòng
sông
-Problem Formulation:
State: đang ở bên đây bờ sông
Action: Băng qua sông
Transition Model: lên bè chèo qua sông
Goal Test: chưa đạt trạng thái mục tiêu
-Search: Phải có ít nhất 1 người lớn đi cùng
-Execution: qua sông
Trang 10CÁC VẤN ĐỀ TÌM KIẾM
Các vấn đề tìm kiếm bao gồm:
• Không gian trạng thái
• Hàm chuyển đổi trạng thái
• Trạng thái ban đầu và trạng thái kết thúc
• Giải pháp (solution) là một chuỗi hành động chuyển từ
trạng thái ban đầu đến trạng thái kết thúc
Trang 11KHÔNG GIAN TRẠNG THÁI
▪ Không gian trạng thái bao gồm tất cả thông tin chi tiết cần mô tả môi trường
▪ Trạng thái tìm kiếm chỉ lưu lại thông tin cần thiết để lập kế hoạch
Trang 12BÀI TOÁN NGƯỜI ĐƯA THƯ
Trang 13CÁC LOẠI VẤN ĐỀ
Đơn định/ nắm toàn bộ
không gian trạng thái
Đơn định/nắm được bộ phận trong không gian trạng thái
Không đơn định/nắm được 1
bộ phận của không gian trạng thái
Không đơn định/không nắm
được bộ phận của không
gian trạng thái
Trang 14BREADTH FIRST SEARCH
Trang 15Ý tưởng thuật toán
Việc tìm kiếm bắt đầu tại nút gốc và tiếp tục bằng cách duyệt các nút tiếp theo
Giá trị của hàm đánh giá
là thấp nhất so với các nút còn lại nằm trong hàng đợi
Tìm kiếm theo bề rộng
(Breadth First Search)
được hướng dẫn bởi hàm
đánh giá
Trang 16ƯU ĐIỂM
Kỹ thuật vét cạn ->tìm được
lời giải nếu có
Tìm kiếm lời giải theo thuật toán đã định trước-> tìm kiếm máy móc, không có thông tin hỗ trợ
Đường đi tìm được đi qua ít
đỉnh nhất
Không phù hợp với không gian bài toán kích thước lớn
NHƯỢC ĐIỂM
Trang 17● Hàng đợi ưu tiên cũng có những tính chất giống như hàng đợi đó là chèn phần tử vào phía cuối và lấy ra từ phía đầu Nhưng có điểm khác đó là thứ tự các phần tử trong hàng đợi ưu tiên phụ thuộc vào độ ưu tiên của phần tử đó Còn hàng đợi bình thường thì tuân theo tính chất FIFO (First in first out)
● Phần tử với độ ưu tiên cao nhất sẽ được xếp lên đầu hàng đợi và phần tử với độ ưu tiên thấp nhất
sẽ được chuyển xuống cuối
● Có sẵn trong thư viên của C++ và một số ngôn ngữ
Priority queue (hàng đợi ưu tiên)
Trang 18UNIFORM COST SEARCH
Thuật toán UCS tìm
đường đi từ root tới đích
với chi phí ít nhất
Ý tưởng thuật toán
❖ Tìm kiếm chi phí thống nhất tương tự như thuật toán Dijkstra Từ điểm bắt đầu, cho vào hàng đợi ưu tiên (priority queue)
❖ Sau đó pop phần tử top của priority queue này ra,
đồng thời chọn ra các điểm kề nó cho vào hàng đợi
ưu tiên (priority queue) Những điểm đang được cho vào priority queue này gọi là biên Quá trình này lặp lại cho đến khi queue trở về rỗng hoặc đã tìm ra điểm đích.
Trang 19UNIFORM COST SEARCH
Trang 20Phân biệt thuật toán UCS và Dijkstra
_ Thuật toán Dijkstra khởi tạo và lưu trữ tất cả các
_ Dijkstra tốn bộ nhớ hơn vì phải lưu trữ tất cả các
đỉnh _ UCS chỉ cần lưu trữ các đỉnh cần thiết.
Trang 21● https://luwxmta.wordpress.com/2014/03/02/ai-chuong-i-cac-chien-luoc-tim-kiem-mu/?fbclid=IwAR2qm9t 7GpTeKZz_vkq-qJosGr2iZCCEUzQ7IG07s1q2mlCoOS3afkrrDUg
Artificial face recognition abstract technology
Trang 22Do you have any questions?
GROUP 3