NHẬP MÔN TRÍ TUỆ NHÂN TẠO
@copyrights by Dr Nguyễn Xuân Hoài
Nội Dung
Giải quyết vấn đề:
•
Một số vấn đề về giải quyết vấn đề.
•
Biểu diễn không gian lời giải bằng không gian trạng thái.
•
Giải quyết vấn đề bằng tìm kiếm.
Tìm kiếm cơ bản không dựa vào thông tin thu thập trong
quá trình tìm kiếm: (uninformed/blind search).
•
Breadth-first search
•
Uniform-cost search
•
Depth-first search
•
Depth-limited search
•
Iterative deepening search
Giải quyết vấn đề
Giải quyết vấn đề là gì?
Để giải quyết vấn đề:
1. Phát biểu chính xác bài toán (Hiện trạng ban đầu, kết
quả mong muốn,..)
2. Phân tích bài toán.
3. Thu thập và biểu diễn dữ liệu, tri thức cần thiết để giải
bài toán.
4. Lựa chọn kỹ thuật giải quyết thích hợp.
Không gian trạng thái
Ví dụ: Tìm đường đi, Robot xếp hình, Máy hút bụi tự động,
tính tích phân bất định, chương trình chơi cờ, chương
trình chuẩn đoán bệnh, chương trình nhận dạng vân tay,
mặt người, chương trình tự sản sinh ra chương trình máy
tính...
Đi nghỉ tại Romania; hiện ở Arad.
+ Trạng thái hiện thời: Tại Arad.
+ Trạng thái đích: Tới Bucharest
+Biểu diễn dưới dạng không gian trạng thái:
trạngthái: tại các thành phố khác nhau
hành động: lái xe đến các thành phố khác nhau.
+ Tìm lời giải: Chuỗi các thành phố, từ Arad, đến Bucharest.
Không gian trạng thái
Không gian trạng thái
Không gian trạng thái
Yếu tố xác định không gian TT
1. Trạng thái.
2. Hành động.
3. Kiểm tra trạng thái thoả đích.
4. Chi phí cho mỗi bước chuyển trạng thái.
Không gian trạng thái
Không gian trạng thái
Các đặc trưng của vấn đề
1. Tính khả tách.
2. Có thể huỷ bỏ hay lần ngược bước giải?
3. Không gian bài toán có đoán định được trước? (sau mỗi
bước giải).
4. Cần lời giải tốt hay tối ưu?
5. Lời giải là trạng thái hay dãy chuyển trạng thái?
6. Vai trò của tri thức?
7. Quá trình giải có cần tương tác người máy?
Phân 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 một 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
Giải quyết vấn đề
Tìm kiếm trên cây trạng thái
•
Ý tưởng cơ bản:
–
Tìm kiếm trên không gian trạng thái dưới dạng cây,
dùng toán tử EXPAND sinh các trạng thái có thể
đến được trực tiếp từ một trạng thái đã được kiểm
tra (trạng thái con).
Ví dụ
Ví dụ
Ví dụ
Khung tìm kiếm tổng quát
Trạng thái vs. Nodes
•
Trạng thái biểu diễn cho một cấu hình vật lý của bài toán
•
node thành phần cơ bản của cây tìm kiếm trạng thái, node
cha, hành động , giá đường đi g(x), độ sâu
•
Toán tử Expand tạo ra nodes mới, sủ dụng hàm
SuccessorFn (phụ thuộc vào từng bài toán) để tạo ra
các trạng thái tương ứng.
Chiến lược tìm kiếm
•
Chiến lược tìm kiếm là chiến lược lựa chọn thứ tự xét
các nodes tạo ra bởi toán tử Expand
•
Các tiêu chuẩn để đáng giá chiến lược :
–
đủ : Liệu có tìm được lời giải (nếu có)?
–
độ phức tạp thời gian: số lượng node phải xét.
–
độ phức tạp lưu trữ: Tổng dung lượng bộ nhớ phải lưu trữ
(các nodes trong quá trình tìm kiếm.
–
tối ưu: Có luôn cho lời giải tối ưu.
•
Độ phực tạp thời gian vàlưu trữ của bài toán có thể
được đo bằng:
–
b: Độ phân nhánh của cây
–
d: Độ sâu của lời giải ngắn nhất
–
m: Độ sâu tối đa của không gian trạng thái (có thể vô hạn).
Các chiến lược tìm kiếm yếu
(weak/uninformed/blind search)
•
Những chiến thuật tìm kiếm chỉ sử dụng thông
tin từ định nghĩa của bài toán:
•
Tìm kiếm theo chiều rộng
•
Tìm kiếm đều giá (uniform-cost search).
•
Tím kiếm theo chiều sâu.
•
Tìm kiếm theo chiều sâu có hạn
•
Tìm kiếm sâu dần.
Tìm kiếm theo chiều rộng
•
Tìm kiếm theo từng tầng. Expand node gần nút nhất.
•
Cài đặt:
–
fringe (danh sách các node chờ được duyệt) được
cài đặt dưới dạng danh sách FIFO, i.e., Các node
con được sinh ra (bởi EXPAND) sẽ được đặt ở
dưới cùng của fringe.
Tìm kiếm theo chiều rộng
•
Tìm kiếm theo từng tầng. Expand node gần nút nhất.
•
Cài đặt:
–
fringe (danh sách các node chờ được duyệt) được cài đặt
dưới dạng danh sách FIFO, i.e., Các node con được sinh ra
(bởi EXPAND) sẽ được đặt ở dưới cùng của fringe.
Tìm kiếm theo chiều rộng
•
Tìm kiếm theo từng tầng. Expand node gần nút nhất.
•
Cài đặt:
–
fringe (danh sách các node chờ được duyệt) được cài
đặt dưới dạng danh sách FIFO, i.e., Các node con
được sinh ra (bởi EXPAND) sẽ được đặt ở dưới cùng
của fringe.
Tìm kiếm theo chiều rộng
•
Tìm kiếm theo từng tầng. Expand node gần nút nhất.
•
Cài đặt:
–
fringe (danh sách các node chờ được duyệt) được cài
đặt dưới dạng danh sách FIFO, i.e., Các node con
được sinh ra (bởi EXPAND) sẽ được đặt ở dưới cùng
của fringe.