Không gian trạng thái KGTT là tập tất cả các trạng thái có thể có của bài toán.. Ví dụ Trạng thái đầu và cuối của bài toán 8 số Các toán tử: qua trái, phải, lên trên, xuống dưới...
Trang 1KHÔNG GIAN TRẠNG THÁI VÀ BÀI TOÁN TÌM
KIẾM
Th.S Dương Thị Thùy Vân
Trang 21.Khái niệm về không gian trạng thái
Trang 3Khái niệm về không gian trạng thái (tt)
Mô hình bài toán:
Trang 4Ví dụ (trò chơi 8 số)
Trang 5Khái niệm về không gian trạng thái (tt)
Sự sắp xếp các số tại mỗi thời điểm là một trạng thái (TT)
Hình bên trái là trạng thái ban đầu
Hình bên phải là trạng thái kết thúc hay
trạng thái đích (goal)
Trạng thái đích của một bài toán có thể
nhiều hơn một
Trang 6Khái niệm về không gian trạng thái (tt)
Toán tử chuyển trạng thái là một phép biển đổi hợp lệ chuyển từ trạng thái này sang
trạng thái khác
Không gian trạng thái (KGTT) là tập tất cả
các trạng thái có thể có của bài toán
Bằng các toán tử chuyển trạng thái, từ trạng thái ban đầu, tiếp tục phát triển, cuối cùng thu được một KGTT
Trang 7Ví dụ
Trạng thái đầu và cuối của bài toán 8 số
Các toán tử: qua trái, phải, lên trên, xuống dưới
Trang 92 Các cách biểu diễn KGTT
Không gian trạng thái có thể biểu diễn bằng
đồ thị có hướng: mỗi đỉnh là một trạng thái, mỗi cung là một toán tử
Đồ thị trạng thái xác định khi:
Biết trạng thái đầu
Biết hàm next(S)(tập hợp toán tử) trả về các trạng thái kế của S.
Biết trạng thái kết thúc (tập trạng thái kết thúc)
Trang 102 Các cách biểu diễn KGTT (tt)
Bài toán tìm được nghiệm nếu như ta tìm
được đường đi từ trạng thái bắt đầu đến một trong các trạng thái đích
Trong đồ thị của KGTT có thể xuất hiện chu trình gây khó khăn cho việc tìm kiếm
Có thể chuyển đồ thị trở thành cây, một cấu trúc dễ tìm kiếm hơn
VD KGTT của trò chơi caro là cây
Trang 11Ví dụ: chuyển đồ thị thành cây
Trang 12Ví dụ: chuyển đồ thị thành cây (tt)
Trang 13Ví dụ: Bài toán người quỷ qua
sông
Đặc tả: Tại một bờ sông có 3 người và 3 quỷ
và tất cả muốn qua sông Trên sông có 1
thuyền nhỏ chỉ chở tối đa 2 đối tượng Yêu cầu: số người không được ít hơn số quỷ
Trang 14Ví dụ: Bài toán người quỷ qua sông
Biểu diễn trạng thái bằng (a, b, k)
Với a, b là số người và quỷ ở bên bờ phải k=1 là thuyền ở bờ phải, k=0 thuyền ở bờ trái Không gian trạng thái
Trạng thái ban đầu (3, 3, 1) Các toán tử: chở 1 người, 1 quỷ, 2 người, 2 quỷ, (1 người và 1 quỷ)
Trạng thái kết thúc (0, 0, 1)
Trang 15Ví dụ: Bài toán người quỷ qua sông (tt)
3 , 3 , 1
3 , 2 , 0 3 , 1 , 0 2 , 2 , 0
Trang 16Lý thuyết đồ thị - Review
Trang 17Đặc tính đồ thị
định hướng, nghĩa là cặp nút có quan hệ thứ
tự trước sau theo từng cung Cung (Ni,Nj)
có hướng từ Ni đến Nj, Khi đó Ni là nút cha
Trang 18Đặc tính đồ thị (tt)
cho tất cả các path đều đi qua nút đó X là gốc - Root
lần
nút đó
Trang 193.Bài toán tìm kiếm
Vấn đề Tìm kiếm mục tiêu
Trang 20Chiến lược tìm kiếm?
Khi tìm kiếm lời giải, từ một trạng thái nào đó chưa phải là trạng thái đích, ta dựa theo toán tử sinh ra tập các trạng thái mới: mở rộng
Để được lời giải, ta phải liên tục chọn trạng thái
mới, mở rộng, kiểm tra cho đến khi tìm được trạng thái đích hoặc không mở rộng được KGTT
Tập các trạng thái được mở rộng sẽ có nhiều phần
tử, việc chọn trạng thái nào để tiếp tục mở rộng
được gọi là chiến lược tìm kiếm
Trang 21Đánh giá một chiến lược?
+ Tính đầy đủ: chiến lược phải đảm bảo tìm
được lời giải nếu có
+ Độ phức tạp thời gian: mất thời gian bao lâu
để tìm được lời giải
+ Độ phức tạp không gian: tốn bao nhiêu đơn
vị bộ nhớ để tìm được lời giải
+ Tính tối ưu: tốt hơn so với một số chiến lược khác hay không
Trang 22Thông tin mỗi nút?
+ Nội dung trạng thái mà nút hiện hành đang biểu diễn
Trang 23Thuật toán
Thuật toán là giải pháp viết dưới dạng thủ tục
và thỏa 3 tiêu chuẩn:
Xác định : không mập mờ và có thể thực thi được
Hữu hạn
Đúng
Thuật toán là một dãy hữu hạn các bước
không mập mờ và có thể thực thi được, quá trình hành động theo các bước này phải
dừng và cho kết quả mong muốn
Trang 2423/02/24 Nhập môn Trí tuệ nhân tạo 24
Thuật toán
2
2 2
O(log n) O(n)
Trang 25Một số ví dụ về bài toán có độ phức tạp cao
Bài toán phân công công việc
Một đề án gồm n công việc và các việc sẽ đưọc
thực hiên bởi m máy như nhau.
Giả sử biết thời gian để 1 máy thực hiện viêc thứ j là tj
Yêu cầu: Tìm phương án phân công sao cho thời gian hoàn thành toàn bộ công việc là thấp nhất.
Mẫu số liệu
n=10, m=3
tj = 4 9 5 2 7 6 10 8 7 5
Trang 26Một số ví dụ về bài toán có độ phức
tạp cao
Bài toán tô màu
Giả sử ta có bản đồ các
quốc gia trên thế giới, ta
muốn tô màu các quốc
gia này sao cho các
nước khác nhau được tô
Trang 2723/02/24 Nhập môn Trí tuệ nhân tạo 27
Thuật giải
Thuật giải: giải pháp được viết dưới dạng thủ tục tương tự như thuật toán nhưng không đòi hỏi các tiêu chuẩn như thuật toán
Tính đúng: chấp nhận các thuật giải đơn giản có thể cho kết quả đúng hay gần đúng nhưng có khả năng thành công cao hơn
Trang 28Thuật giải heuristic
Để có thể được chấp nhận thuật giải phải thể hiện một giải pháp hợp lý nhất có thể trong tình huống hiện tại bằng cách:
Tận dụng mọi thông tin hữu ích
Sử dụng tri thức, kinh nghiệm trực giác của con người
Tự nhiên đơn giản nhưng cho kết quả chấp nhận được
Thuật giải Heuristic
Trang 2923/02/24 Nhập môn Trí tuệ nhân tạo 29
Thuật giải heuristic (tt)
Trang 3023/02/24 Nhập môn Trí tuệ nhân tạo 30
Các nguyên lý của thuật giải heuristic
Trang 3123/02/24 Nhập môn Trí tuệ nhân tạo 31
Các nguyên lý của thuật giải heuristic
Vét cạn thông minh
Hạn chế vùng không gian tìm kiếm và có
sự định hướng để nhanh chóng tìm đến mục tiêu
Tạo miền D’ rất nhỏ so với DVét cạn trên D’
Trang 3223/02/24 Nhập môn Trí tuệ nhân tạo 32
Các nguyên lý của thuật giải heuristic
Trong quá trình hành đông để thực hiện việc chọn lọc các cách làm các trạng thái ta
có thể dựa trên một thứ tự hợp lý để giải
pháp đạt tính hiệu quả cao
Trang 3323/02/24 Nhập môn Trí tuệ nhân tạo 33
Các nguyên lý của thuật giải heuristic
Nhiều vấn đề cần phải đạt đến 1 mục tiêu tối ưu toàn cục mà không nhìn thấy được toàn bộ quá trình hành động
Hơn nữa trong từng bước ta phải lựa chọn hành động dựa trên những thông tin cục bộ.
Khi đó trong từng bước của quá trình hành động người ta dựa trên mục tiêu tối ưu toàn cục để định ra mục tiêu cục bộ và dựa theo đó chọn lựa hành động.
Trang 3423/02/24 Nhập môn Trí tuệ nhân tạo 34
Các nguyên lý của thuật giải heuristic
Trang 3523/02/24 Nhập môn Trí tuệ nhân tạo 35
Ví dụ1: bài toán phân công
Thuật giải cho bài toán phân công đơn giản
Chọn việc J chưa phân công có thời gian thực hiện cao nhất phân công cho máy có thời gian làm việc thấp nhất
for(k=0;k<n;k++)
{
Chọn việc J chưa phân công có thời gian thực hiện cao nhất.
Chọn máy M có thời gian làm việc thấp nhất
Bố trí việc J cho máy M.
}
Trang 3623/02/24 Nhập môn Trí tuệ nhân tạo 36
Trang 3723/02/24 Nhập môn Trí tuệ nhân tạo 37
Ví dụ 2: bài toán tô màu
QT1: Chọn đỉnh có số đỉnh chưa tô ở cạnh nó là lớn nhất (bậc lớn nhất)
QT2: Chọn màu:Với một đỉnh N đang xét, trước tiên thử tô bằng những màu đã tô, nếu không
được thì sử dụng màu mới
Sau khi tô màu cho đỉnh N thì ta xóa các cạnh
có nối đến N và đánh dấu các đỉnh kế bên không được tô màu vừa tô cho N
Trang 3823/02/24 Nhập môn Trí tuệ nhân tạo 38
Trang 3923/02/24 Nhập môn Trí tuệ nhân tạo 39
Ví dụ 3
Có một cuộc hội thảo khoa học với 9 chủ đề khác nhau: A, B, C…
AE, BC, ED, ABD, AHI, BHI, DFI, DHI, FGH
ít nhất
Trang 4023/02/24 Nhập môn Trí tuệ nhân tạo 40
Ví dụ: Bài toán người đưa thư
Thuật giải GST(Greedy
Chỉ chu trình tốt nhất trong p chu
trình được giữ lại.
Trang 4123/02/24 Nhập môn Trí tuệ nhân tạo 41
Ví dụ 5
xây dựng chương trình thiết kế tuyến đường ống nước cung cấp đến mọi nhà sao cho
tổng chiều dài đường ống phải dùng là ít
nhất Giả sử rằng các đường ống chỉ được nối giữa 2 điểm dân cư hoặc giữa trạm cấp nước với điểm dân cư
Trang 4223/02/24 Nhập môn Trí tuệ nhân tạo 42
Trang 4323/02/24 Nhập môn Trí tuệ nhân tạo 43
Trang 44II Các chiến lược tìm kiếm
mù
Trang 45Tìm kiếm mù?
Trạng thái được chọn để phát triển chỉ đơn thuần dựa theo cấu trúc của KGTT mà không
có thông tin hướng dẫn nào khác
Nói chung tìm kiếm mù sẽ không hiệu quả
Đây là cơ sở để chúng ta cải tiến và thu
được những chiến lược hiệu quả hơn
Trang 461 Tìm kiếm theo chiều
rộng (BFS)
Trạng thái được ưu tiên phát triển là trạng thái được sinh ra trước
sinh ra đang chờ phát triển
Danh sách closed chứa các trạng thái đã
được khảo sát
Trang 47Ví dụ
Trang 48loại tt ngoài cùng bên trái của open, gọi nó là u
if (u là một đích) then thông báo kết quả, thoát else begin
Đưa u vào closed Phát sinh các con v của u Loại các con đã có trong open+closed Đưa các con còn lại vào bên phải open (1) end
end Thông báo thất bại
End
Trang 49Nhận xét
Các trạng thái con phát sinh nhờ các toán tử hợp lệ
Danh sách open bổ sung phần tử bên phải, lấy
phần tử bên trái
Thuật tóan khảo sát tất cả các nút ở độ sâu d sau
đó mới đến mức d+1 nên chắc chắn tìm được
nghiệm
Nếu vô nghiệm và KGTT hữu hạn thì thuật toán sẽ dừng và thông báo vô nghiệm.
Trang 50Đánh giá
Giả sử mỗi trạng thái trung bình sinh ra b
trạng thái con (kề), b - gọi là nhân tố nhánh
Giả sử đường đi nghiệm có độ dài d Tình
trạng xấu nhất phải khảo sát là ?
Độ phức tạp thời gian là O(b^d), độ phức tạp không gian cũng là O(b^d)
Trang 522 Tìm kiếm theo chiều
sâu (DFS)
Mở rộng nút có độ sâu hơn trước các nút
khác đang chờ xử lý
quay lại nút ở độ sâu thấp hơn
Do đó, các nút mới được sinh ra chờ xử lý phải được bỏ bên trái của hàng đợi open (tại câu lệnh 1)
Trang 53loại tt u ngoài cùng bên trái của open
if (u là một đích) then thông báo kết quả, thoát else begin
Đưa u vào closed Phát sinh các con v của u Loại các con đã có trong open+closed
Đưa các con còn lại vào bên tr ái open (1) end
end Thông báo thất bại
End
Trang 54 Độ phức tạp thời gian của DFS vẫn là O(b^d) vì
trong trường hợp xấu nhất các nút được khảo sát vẫn như BFS
Cơ hội để tìm thấy đích nhanh hơn nếu nó nằm ở phần KGTT bên trái.
Trang 55 DFS là chiến lược không đầy đủ, không tối ưu
Không nên sử dụng khi KGTT có độ sâu lớn hoặc
vô hạn
Trang 563 Tìm kiếm với độ sâu
hạn chế
Vẫn như sử dụng chiến lược tìm kiếm theo chiều sâu nhưng giới hạn độ sâu của đường
đi nghiệm trên cây
Tức là sẽ không tiếp tục mở rộng nếu đã đến một độ sâu d cố định nào đó
Số d được gọi là bán kính trên KGTT
Trang 57Nhận xét
không phụ thuộc vào d
Nếu d được chọn thích hợp thì nó tìm được nghiệm, khi đó chiến lược là đầy đủ Tuy
nhiên nó không là chiến lược tối ưu
Tương tự như DFS, độ phức tạp thời gian là O(b^d) và độ phức tạp không gian là O(bd)
Trang 58loại u ngoài cùng bên trái open
if (u là một đích) then thbáo kết quả, thoát else
Trang 59Đưa u vào closed
If depth(u)<d then begin
Phát sinh các con v của u
Loại các con vừa phát sinh đã có trong open+ closed Gán độ sâu cho các v bằng depth(u)+1
Đưa các con v còn lại vào bên trái open
Trang 60Khó khăn d?
Vấn đề khó khăn là xác định độ sâu hạn chế
d
Hầu hết các bài tóan chúng ta không biết
trước d bằng bao nhiêu
Chiến lược sau đây giải quyết vấn đề này
Trang 62Nhận xét
Do sử dụng tìm kiếm sâu trong cây hạn chế nên ít tốn kém bộ nhớ hơn
Chiến lược này là đầy đủ và nếu KGTT là cây thì nó là chiến lược tối ưu
Trang 64Đánh giá
Thực tế số nút tăng lên nhưng độ phức tạp của thuật tóan vẫn là O(b^d), trong khi đó độ phức tạp không gian vẫn là O(bd)
Vì vậy, tìm kiếm sâu dần được đánh giá là chiến lược tìm kiếm thích hợp hơn khi KGTT lớn và không biết trước được độ sâu của
trạng thái đích