Các phương pháp giải quyết vấn đề cơ bản2.1 2.2 2.3 Biểu diễn bài toán trong không gian trạng thái Tìm kiếm lời giải trong không gian trạng thái Tìm kiếm lời giải trên đồ thị và/hoặc...
Trang 1KHOA KHOA HỌC MÁY TÍNH
-*** -TRÍ TUỆ NHÂN TẠO
(Artificial Intelligence - AI)
Nguyễn Thanh Cẩm
Trang 2Tổng quan về khoa học trí tuệ nhân tạo
Trang 3Các phương pháp giải quyết vấn đề cơ bản
2.1 2.2 2.3
Biểu diễn bài toán trong không gian trạng thái
Tìm kiếm lời giải trong không gian trạng thái Tìm kiếm lời giải trên đồ thị và/hoặc
Trang 42.1.1 2.1.2 2.1.3 2.1.4
Đặt vấn đề
Mô tả trạng thái Toán tử chuyển trạng thái Không gian trạng thái của bài toán
Biểu diễn không gian trạng thái dưới dạng đồ thị
2.1.5
Trang 5Khi giải quyết bài toán bằng phương pháp tìm kiếm: phải xác định không gian tìm kiếm
Phương pháp giải quyết vấn đề dựa trên:
được gọi là cách tiếp cận giải quyết vấn đề nhờ không gian trạng thái.
2.1.1 Đặt vấn đề
Trang 62.1.1 2.1.2 2.1.3 2.1.4
Trang 7Mô tả trạng thái bài toán:
Mỗi trạng thái là một hình trạng của bài toán:
2.1.2 Mô tả trạng thái
Trang 8Ví dụ: Bài toán đong nước
Cần đong k lit nước giả thiết k <= min(m,n).
Trang 9Ví dụ: Bài toán đong nước
Gọi x là lượng nước hiện có trong bình dung tích m
và y là lượng nước hiện có trong bình dung tích n
bộ có thứ tự (x,y) có thể xem là trạng thái của bài toán
Trạng thái đầu: (0,0)
Trạng thái cuối: (x,k) hoặc (k,y), 0 x m , 0 y n
2.1.2 Mô tả trạng thái
Trang 11Có thể mô tả trạng thái của bài toán bằng một ma trận
7
4 6
1
3 8
7
4 0
8
3 2
1
Trạng thái cuối Trạng thái đầu
Trang 12 Hãy dịch chuyển n đĩa ở cọc 1 sang cọc 3 sao cho:
Mỗi lần chỉ chuyển một đĩa.
Trong mỗi cọc không cho phép đĩa to nằm trên đĩa nhỏ hơn.
Ví dụ: Bài toán tháp Hà Nội
Trang 13Ví dụ: Bài toán tháp Hà Nội
Bài toán xác định khi biết từng đĩa đang nằm ở cọc nào.
Cách 1:
Cách 2:
(i = 1 n)
2.1.2 Mô tả trạng thái
Trang 14Cách 1 ta phải dùng 3 danh sách động
Cách 2 mô tả bài toán hiệu quả hơn
x i {1, 2, 3}, i{1 n}
Khi đó bộ có thứ tự (x 1 , x 2 , ,x n ) là dạng mô tả trạng thái đang xét của bài toán
Trang 152.1.1 2.1.2 2.1.3 2.1.4
Đặt vấn đề
Mô tả trạng thái
Toán tử chuyển trạng thái
Không gian trạng thái của bài toán
Biểu diễn không gian trạng thái dưới dạng đồ thị
2.1.5
Trang 16Là các phép biến đổi đưa từ trạng thái này sang trạng thái khác
Có hai cách biểu diễn các toán tử:
và nhận giá trị cũng trong tập này.
có nghĩa là nếu có trạng thái S thì có thể đưa đến trạng thái A.
Trang 17Ví dụ: Bài toán đong nước
Các thao tác sử dụng để chuyển trạng thái này sang trạng thái khác gồm:
2.1.2 Mô tả trạng thái
Trang 18 Nếu trạng thái đang xét là (x,y) thì các trạng thái kế tiếp có thể chuyển đến sẽ là:
Trang 19Ví dụ: Trò chơi 8 số
Các thao tác để chuyển trạng thái tương ứng với việc chuyển ô trống sang phải, sang trái, lên, xuống nếu có thể được.
2.1.2 Mô tả trạng thái
Trang 20 Biểu diễn theo một hàm
Gọi fu là hàm biểu diễn toán tử chuyển ô trống lên trên;
Gọi B (B= (bij)) là trạng thái sau khi di chuyển ô trống
ở trạng thái A (A= (aij)) lên trên, nghĩa là: B= fu(A), giả sử ô trống đang ở vị trí (i0, j0) (hay nói cách khác
ai0 j0 = 0) thì hàm fu được xác định như sau:
Trang 212.1.2 Mô tả trạng thái
Phép chuyển ô trống xuống dưới fd, qua trái fl, qua phải fr như sau:
Trang 22Ví dụ: Bài toán Tháp Hà Nội với n = 3
Mỗi trạng thái là một bộ ba (i, j, k) Có các trường hợp như sau:
Hai đĩa cùng nằm trên hai cọc: (i, i, j), (i, j, i), (j, i, i),
Trang 232.1.2 Mô tả trạng thái
Trang 242.1.1 2.1.2 2.1.3 2.1.4
Đặt vấn đề
Mô tả trạng thái Toán tử chuyển trạng thái
Không gian trạng thái của bài toán
Biểu diễn không gian trạng thái dưới dạng đồ thị
2.1.5
Trang 26Ví dụ: KHTT của bài toán đong nước là bộ bốn
T, S, G, F xác định như sau:
T = {(x,y) | 0 <= x <= m; 0 <= y <= n }
S = (0,0)
G = {(x,k) hoặc (k,y) | 0 <= x <= m; 0 <= y <= n}
F = Tập các thao tác đong đầy, đổ ra hoặc đổ sang bình khác thực hiện trên một bình.
Trang 27 Ví dụ: KGTT của bài toán Tháp Hà nội với n = 3
Trang 28 Ví dụ: KGTT của bài toán trò chơi 8 số
T = {(aij)3x3 | 0<= aij<= 8 và aij<> akl với i<> j hoặc
k <> l}
S = Ma trận xuất phát của bài toán,
G = Ma trận cuối cùng của bài toán (các số nằm theo vị trí yêu cầu)
F = {fl, fr, fu, fd}
Tìm kiếm lời giải trong kGTT là quá trình tìm kiếm:
xuất phát từ trạng thái đầu,
chuyển trạng thái
gặp trạng thái đích
Trang 292.1.1 2.1.2 2.1.3 2.1.4
Đặt vấn đề
Mô tả trạng thái Toán tử chuyển trạng thái Không gian trạng thái của bài toán
Biểu diễn không gian trạng thái dưới dạng đồ thị
2.1.5
Trang 30a.Các khái niệm
Đồ thị G = (V, E) trong đó V: tập đỉnh, E: tập cung
(EV*V)
Chú ý
như là (j, i) (tức là:(i, j)E thì (j,i)E)
toàn khác với cung (j, i).
Trang 31 Ví dụ: xét đồ thị vô hướng G 1 và đồ thị có hướng G 2
2.1.5 Biểu diễn không gian trạng thái dưới dạng đồ thị
Trang 32 Tập đỉnh kề:
nV, T(n) = {mV| (n,m)E} được gọi là tập các đỉnh
kề của n
Đường đi:
p = (n1, ,nk) được gọi là đường đi từ đỉnh n1 nk nếu
niV, i=1,k ; (n i , ni+1)E i=1, k -1
Cây là đồ thị có đỉnh gốc n0V thoả:
nV, nT(n0), trong đó T(n0): tập các đỉnh thuộc dòng dõi của n0 (n0 là tổ tiên của n)
nV, mV sao cho nT(m); m là cha của n
Trang 33b.Biểu diễn không gian trạng thái bằng đồ thị
KGTT tương ứng với một đồ thị định hướng trong đó:
Trang 340 , trong trường hợp ngược lại
G là đồ thị vô hướng thì ma trận kề A là ma trận đối xứng.
Trang 35Ví dụ:
2.1.5 Biểu diễn không gian trạng thái dưới dạng đồ thị
Trang 36(2) Biểu diễn bằng danh sách kề.
tất cả các đỉnh kề với i, ký hiệu là List(i)
tập hợp hay kiểu con trỏ
Trang 37(2) Biểu diễn bằng danh sách kề.
Trang 38Ví dụ: Bài toán đong nước m =3, n =2, k =1
Trang 39Ví dụ: Tháp Hà Nội với n = 3
2.1.5 Biểu diễn không gian trạng thái dưới dạng đồ thị
Trang 40Các phương pháp giải quyết vấn đề cơ bản
2.1 2.2 2.3
Biểu diễn bài toán trong không gian trạng thái
Tìm kiếm lời giải trong không gian trạng thái
Tìm kiếm lời giải trên đồ thị và/hoặc
Trang 41Tìm kiếm lời giải trong không gian trạng thái làquá trình tìm trên đồ thị
Cần quan tâm đến các vấn đề sau:
(mô tả trạng thái bài toán)
Trang 42 Tìm kiếm theo chiều rộng (Breadth – First Search)
Trang 432.2.1 2.2.2 2.2.3 2.2.4
Phương pháp tìm kiếm theo chiều rộng
Phương pháp tìm kiếm theo chiều sâu
Phương pháp tìm kiếm tốt nhất đầu tiên (BFS) Phương pháp tìm kiếm leo đồi (HCS)
Trang 44a.Ý tưởng
Tìm kiếm rộng là tìm kiếm trên tất cả các nút của một mức trong không gian bài toán trước khi chuyển sang các nút của mức tiếp theo
Trang 46}
Trang 47c.Đánh giá độ phức tạp của giải thuật tìm kiếm rộng
Giả sử rằng, mỗi trạng thái khi được xét sẽ sinh ra k trạng thái kế tiếp Khi đó ta gọi k là nhân tố nhánh
Nếu bài toán tìm được nghiệm theo phương pháp tìm kiếm rộng có độ dài d Như vậy, đỉnh đích sẽ nằm ở mức d+1, do đó số đỉnh cần xét lớn nhất là:
1 + k + k 2 + + k d
Như vậy độ phức tạp thời gian của giải thuật là O(k d ) Độ phức tạp không gian cũng là O(k d ), vì tất cả các đỉnh của cây tìm kiếm ở mức d+1 đều phải lưu vào danh sách.
2.2.1 Phương pháp tìm kiếm theo chiều rộng
Trang 48d.Ưu và nhược điểm của phương pháp tìm kiếm rộng
(1)Ưu điểm
trạng thái bài toán vì vậy sẽ tìm được lời giải nếu có.
Trang 49 (2)Nhược điểm
Tìm kiếm lời giải theo thuật toán đã định trước.
Không phù hợp với không gian bài toán kích thước lớn
2.2.1 Phương pháp tìm kiếm theo chiều rộng
Trang 512.2.1 Phương pháp tìm kiếm theo chiều rộng
i T(i) MO DONG
(0;0) (0;0) (5;0) (0;4) (5;0) (0;4) (0;0) (5;0) (5;4) (0;0) (1;4) (0;4) (5;4) (1;4) (0;0) (5;0) (0;4) (5;4) (0;0) (4;0) (5;4) (1;4) (4;0) (0;0) (5;0) (0;4) (5;4) (0;4) (5;0) (1;4) (4;0) (0;0) (5;0) (0;4) (5;4) (1;4) (5;4) (0;4) (1;0) (5;0) (4;0) (1;0) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0) (5;0) (4;4) (0;0) (0;4) (1;0) (4;4) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0) (1;0) (5;0) (1;4) (0;1) (4;4) (0;1) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0) (1;0) (4;4) (5;4) (0;4) (4;0) (5;3) (0;1) (5;3) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0) (1;0) (4;4) (0;1) (5;1) (0;4) (0;0) (1;0) (5;3) (5;1) (0;0) (5;0) (0;4) (5;4) (1;4) (4;0) (1;0) (0;1) (5;3)
Trang 52 Ví dụ 2 Bài toán trò chơi 8 số
Trang 54 Mức 2: Có ba trạng thái
Trang 55 Mức 3: Có năm trạng thái
2.2.1 Phương pháp tìm kiếm theo chiều rộng
Trang 56 Mức 4: Có mười trạng thái
Trang 57 Mức 6: Có 12 trạng thái
2.2.1 Phương pháp tìm kiếm theo chiều rộng
Trang 58 Mức 6: Có 24 trạng thái
…
Ở mức này ta gặp được trạng thái đích
Trang 592.2.1 2.2.2 2.2.3 2.2.4
Phương pháp tìm kiếm theo chiều rộng
Phương pháp tìm kiếm theo chiều sâu
Phương pháp tìm kiếm tốt nhất đầu tiên (BFS) Phương pháp tìm kiếm leo đồi (HCS)
Trang 60a.Ý tưởng
Thuật toán tìm kiếm theo chiều sâu như việc khảo sát một cây bắt đầu từ gốc đi theo mọi cành có thể được, khi gặp cành cụt thì quay lại xét cành chưa đi qua
Trang 61Ở bước tổng quát, giả sử đang xét đỉnh i, khi đó các đỉnh kề với i có các trường hợp:
đỉnh này (nó trở thành đỉnh đã xét) và bắt đầu từ đó tiếp tục quá trình tìm kiếm với đỉnh này
i coi như duyệt xong và quay trở lại tìm kiếm
từ đỉnh mà từ đó ta đi đến được i
2.2.2 Phương pháp tìm kiếm theo chiều sâu
Trang 62b.Giải thuật
Input: Đồ thị G = (V,E) đỉnh gốc là n0 (trạng thái đầu); Tập đích Goals
Output: Một đường đi p từ n0 đến một đỉnh n* Goals
Method: Sử dụng hai danh sách hoạt động theo nguyên tắc LIFO (Stack)
MO và FIFO (queue) DONG void DFS; (Depth First Search) { Push (MO,n 0 )
Trang 63c.độ phức tạp của thuật toán tìm kiếm sâu
Đó độ phức tạp thời gian của thuật toán tìm kiếm theo chiều sâu trong trường hợp xấu nhất
Trang 64d.Ưu và nhược điểm của phương pháp tìm kiếm sâu
Do cách tìm của kỹ thuật này, nếu lời giải ở rất sâu, kỹ thuật tìm sâu sẽ tiết kiệm thời gian.
Trang 65(2)Nhược điểm
Tìm sâu khai thác không gian bài toán để tìm lời giải theo thuật toán đơn giản một cách cứng nhắc Trong quá trình tìm nó không có thông tin nào hổ trợ để phát hiện lời giải Nếu chọn nút ban đầu không thích hợp có thể không dẫn đến đích của bài toán.
Không phù hợp với không gian bài toán lớn, kỹ thuật tìm kiếm sâu có thể không đến lời giải trong khoảng thời gian vừa phải
2.2.2 Phương pháp tìm kiếm theo chiều sâu
Trang 66e.Các ví dụ
Ví dụ: Bài toán đong nước với m = 5, n = 4, k = 3
Nếu ta chọn nhánh ưu tiên đổ đầy bình thứ hai thì sẽ tìm thấy lời giải rất nhanh
(0;0) (0;0) (5;0) (0;4) (5;0) (0;4) (0;0) (0;4) (5;4) (0;0) (4;0) (5;0) (5;4) (4;0) (0;0) (0;4) (4;0) (5;0) (4;4) (0;0) (0;4) (5;0) (5;4) (4;4) (0;0) (0;4) (4;0) (4;4) (5;4) (0;4) (4;0) (5;3) (5;0) (5;4) (5;3) (0;0) (0;4) (4;0) (4;4) (5;3)
Lời giải tìm được: (0;0) (0;4) (4;0) (4;4) (5;3)
Trang 67Ví dụ: Bài toán Tháp Hà nội với n = 3
Nhắc lại, dùng bộ ba (x1; x2; x3) biểu diễn trạng thái bài toán, với xi là cọc chứa đĩa lớn thứ i
2.2.2 Phương pháp tìm kiếm theo chiều sâu
Trang 68 Ví dụ: Bài toán Tháp Hà nội với n = 3
i T(i) MO DONG
(1;1;1) (1;1;1) (1;1;2) (1;1;3) (1;1;2) (1;1;3) (1;1;1) (1;1;3) (1;1;1)(1;1;2) (1;2;3) (1;1;2)(1;2;3) (1;1;1)(1;1;3) (1;2;3) (1;1;3)(1;2;1) (1;2;2) (1;1;2)(1;2;1)(1;2;2) (1;1;1)(1;1;3)(1;2;3) (1;2;2) (1;2;3)(1;2;1) (3;2;2) (1;1;2)(1;2;1)(3;2;2) (1;1;1)(1;1;3)(1;2;3)(1;2;2) (3;2;2) (1;2;2) (3;2;3) (3;2;1) (1;1;2)(1;2;1)(3;2;1) (1;1;1)(1;1;3)(1;2;3)(1;2;2) (3;2;2) (3;2;1) (3;2;2) (3;2;3) (3;3;1) (1;1;2)(1;2;1)(3;3;1) (1;1;1)(1;1;3)(1;2;3)(1;2;2) (3;2;2)
(3;2;1) (3;3;1) (3;2;1) (3;3;2) (3;3;3) (1;1;2)(1;2;1)(3;3;3) (1;1;1)(1;1;3)(1;2;3)(1;2;2) (3;2;2)
(3;2;1) (3;3;1) (3;3;3)
Lời giải của bài toán:
(1;1;1) (1;1;3) (1;2;3) (1;2;2) (3;2;2) (3;2;1) (3;3;1) (3;3;3)
Trang 69Ví dụ: Bài toán tìm dãy hợp lý với số hạng đầu
Trang 712.2.1 2.2.2 2.2.3 2.2.4
Phương pháp tìm kiếm theo chiều rộng Phương pháp tìm kiếm theo chiều sâu
Phương pháp tìm kiếm tốt nhất đầu tiên (BFS) Phương pháp tìm kiếm leo đồi (HCS)
Trang 72Tìm kiếm rộng và tìm kiếm sâu đều là “kỹ thuật tìm kiếm mù”
Trang 73Sử dụng hàm đánh giá gọi là trọng số của nút
2.2.2 Phương pháp tìm kiếm tốt nhất đầu tiên (BFS)
Trang 74b.Giải thuật
void BeFS; {Best First Search}
{ Push(MO,n0);
while MO <> null { i = Pop(MO);
if i Goals exit;
for j T(i) do Push(MO,j);
Sort(MO); //theo thứ tự của hàm đánh giá }
cout(‘Khong co loi giai’);
}
Trang 752.2.2 Phương pháp tìm kiếm tốt nhất đầu tiên (BFS)
Trang 76Tìm kiếm trong KGTT có sử dụng hàm đánh giá gồm các bước cơ bản sau:
tử chuyển trạng thái
bước
Trang 77d.Ưu và nhược điểm của phương pháp tìm kiếm tốt nhất đầu tiên
và cách tốt nhất để tiến hành tìm lời giải.
Tuân theo cách suy lý của một chuyên gia.
2.2.3 Phương pháp tìm kiếm tốt nhất đầu tiên (BFS)
Trang 78(2)Nhược điểm
giải
Trang 79e.Các ví dụ
Ví dụ1: Bài toán tìm kiếm đường đi trên bản đồ giao thông, ta
có thể lấy độ dài của đường chim bay từ một thành phố đang xét tới một thành phố đích làm giá trị của hàm đánh giá của thành phố đang xét.
Ví dụ2: Bài toán 8 số Có thể đưa ra hai cách đánh giá
Trang 80 Hàm h 1: Với mỗi trạng thái u thì h1(u) là số quân không nằm đúng vị trí của nó trong trạng thái đích
ví dụ: h1(u) = 4
Hàm h 2: Gọi h2(u) là tổng khoảng cách vị trí của các quân ở trạng thái u và vị trí của nó trong trạng thái đích khoảng cách được hiểu là số lần dịch chuyển ít nhất theo hàng hoặc cột để đưa một quân ở vị trí hiện tại tới trạng thái đích
ví dụ: h2(u) = 2+3+1+3 = 9 (vì quân 3 cần ít nhất 2 dịch chuyển, quân 8 cần ít nhất 3 dịch chuyển, quân 6 cần ít nhất 1 dịch chuyển và quân 1 cần ít nhất 3 dịch chuyển)
Trang 812.2.1 2.2.2 2.2.3 2.2.4
Phương pháp tìm kiếm theo chiều rộng Phương pháp tìm kiếm theo chiều sâu
Phương pháp tìm kiếm tốt nhất đầu tiên (BFS) Phương pháp tìm kiếm leo đồi (HCS)
Trang 83b.Giải thuật
Input: Đồ thị G = (V,E), đỉnh xuất phát n0 Hàm đánh giá h(n) Tập đỉnh đích DICH
Output: Đường đi từ đỉnh n0 đến DICH
void HLC; (Hill Climbing Search) { Push(MO,n 0 );
while MO <> null do { i = Pop(MO);
if T(i) DICH <> null then { L= null;
Trang 84c.Nhận xét.
Chú trọng tìm hướng đi dễ dẫn đến trạng thái đích nhất
giảm công sức tìm kiếm
Thuật toán tìm kiếm leo đồi thực chất là thuật toán tìm kiếm theo chiều sâu song, tại mỗi bước ưu tiên chọn trạng thái có khả năng nhanh tới đích nhất để phát triển
Nếu trạng thái hiện thời là u thì trạng thái v sẽ được phát triển tiếp theo nếu v kề với u và hàm đánh giá của v đạt giá trị max (hoặc min).
Trang 86d.Các ví dụ
Ví dụ: Bài toán trò chơi 8 số.
Trạng thái đầu Trạng thái đích
Trang 87Hàm đánh giá h(u) cho biết số các chữ số trong trạng thái u không trùng với vị trí của nó trong trạng thái đích
Trạng thái có tiềm năng dẫn đến đích nhanh nhất là trạng thái có hàm đánh giá h đạt giá trị min
Trạng thái được chọn đi tiếp ở hướng mũi tên
Ở mức 3 ta thấy có hai trạng thái cùng giá trị
2.2.4 Phương pháp tìm kiếm leo đồi (HCS)
Trang 89Các phương pháp giải quyết vấn đề cơ bản
2.1 2.2 2.3
Biểu diễn bài toán trong không gian trạng thái Tìm kiếm lời giải trong không gian trạng thái
Tìm kiếm lời giải trên đồ thị và/hoặc
Trang 902.3.1 2.3.2 2.3.3
Đặt vấn đề
Đồ thị Và/Hoặc Tìm kiếm lời giải trên đồ thị Và/Hoặc
Trang 91Ý tưởng chủ yếu là xuất phát từ bài toán ban đầu, tách thành các bài toán con, quá trình này tiếp tục đối với các bài toán con cho đến khi gặp các bài toán sơ cấp (bài toán có lời giải ngay).
2.3.1 Đặt vấn đề
Trang 92Ví dụ: Xét bài toán tính tích phân
dx x
x
Trang 93Trong bài toán tích phân, các tích phân cơ bản
Trang 94Ví dụ: Bài toán tìm đường đi trên bản đồ giao thông.
phố này với thành phố khác.
Trang 952.3.1 Đặt vấn đề
Trang 96Giả sử ta cần tìm đường đi từ thành phố A đến thành phố B mọi đường đi từ A đến B đều phải
đi qua E hoặc G Khi đó bài toán tìm đường đi từ
A đến B được quy về một trong hai bài toán:
Bài toán tìm đường đi từ A đến B qua E
Bài toán tìm đường đi từ A đến B qua G
Trang 97 Bài toán tìm đường đi từ A đến B qua E được