Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
1,33 MB
Nội dung
Chương Kỹ thuật giải vấn đề Lê Thanh Hương Viện CNTT &TT – ĐHBKHN Nội dung môn học Chương Tổng quan Chương Tác tử thông minh Chương Giải vấn đề • Tìm kiếm • Tìm kiếm dựa thỏa mãn ràng buộc Chương Tri thức suy diễn • • • • Logic mệnh đề, logic vị từ Chứng minh phản chứng Suy diễn với logic mệnh đề, logic vị từ Biểu diễn tri thức Chương Học máy 3.1 Khoa học TTNT • TTNT quan tâm đến việc tạo đối tượng có thể… – Hành động – sở hoàn cảnh cụ thể thứ mà biết Lê Thanh Hương – Khoa CNTT - ĐHBKHN 3.2 Phân loại vấn đề • GQVĐ trình xuất phát từ hình trạng đầu, tìm kiếm khơng gian tốn để tìm dãy toán tử hay dãy hành động cho phép dẫn tới đích • BT phát biểu chỉnh: BT biết rõ đầu vào, đầu với lời giải giả định đó, áp dụng thuật tốn để xác định xem có phải lời giải BT ban đầu hay khơng • BT phát biểu khơng chỉnh: ngược lại Lê Thanh Hương – Khoa CNTT - ĐHBKHN 3.2 Phân loại vấn đề BT phát biểu chỉnh ĐPT đa thức O(n) Giải thuật ĐPT hàm mũ BT phát biểu không chỉnh giải ko giải O(n) Mẹo giải Lê Thanh Hương – Khoa CNTT - ĐHBKHN Ví dụ Bài tốn đố chữ • Hãy thay chữ chữ số từ đến cho khơng có hai chữ thay số thỏa mãn ràng buộc sau: SEND CROSS + MORE + ROADS MONEY DANGER Lê Thanh Hương – Khoa CNTT - ĐHBKHN Ví dụ Bài tốn rót nước • Cho bình A(m lít), B(n lít) Làm cách để đong k lít ( k max(m,n) ) bình A, B bình trung gian C • Các thao tác rót (how): C → A; C → B; A → B; A → C; B → A; B → C • Điều kiện: khơng tràn, đổ hết • Ví dụ: m = 5, n = 6, k = (what) • Mơ hình tốn học: (x, y) → (x’, y’) A B A B Lê Thanh Hương – Khoa CNTT - ĐHBKHN Ví dụ Bài tốn trị chơi n2 – số • Trong bảng ô vuông n hàng, n cột, ô chứa số nằm phạm vi từ → n2 -1 cho khơng có có giá trị Cịn bị trống Xuất phát từ cách xếp đó số bảng, dịch chuyển ô trống sang phải, sang trái, lên trên, xuống để đưa bảng: Lê Thanh Hương – Khoa CNTT - ĐHBKHN Ví dụ Bài tốn tháp Hà Nội • Cho cọc 1,2,3 Ở cọc ban đầu có n đĩa, theo thứ tự to dần từ xuống Hãy tìm cách chuyển n đĩa sang cọc cho: – Mỗi lần chuyển đĩa – Ở cọc không cho phép đĩa to nằm đĩa 3 Bài toán tháp Hà Nội với n = Lê Thanh Hương – Khoa CNTT - ĐHBKHN Ví dụ Bài tốn đố: Quan tịa - Hề - Trộm • Có người ngồi quanh bàn trịn Một người qua đường nghe thấy ba người nói chuyện với nhau: – người nói quan tịa – người nói – người nói trộm • Biết rằng: – ln nói đùa – quan tịa nói thật – trộm nói dối • Hỏi ai? Lê Thanh Hương – Khoa CNTT - ĐHBKHN 10 Đỉnh giải Đỉnh kết thúc ( toán sơ cấp) giải n Giả sử n có n1,…,nk – n1, …, nk NV n giải ni giải – n1, …, nk NH n giải ni giải Lê Thanh Hương – Khoa CNTT - ĐHBKHN n1 n2 nk n n1 n2 nk 62 Cây lời giải T • đồ thị G – n0 T – đỉnh nT, n giải E E1 E11 E2 E12 E21 E22 E*111 Eo112 E*121 E*122 Eo211 E*212 E*221 E*222 Lê Thanh Hương – Khoa CNTT - ĐHBKHN 63 Đỉnh không giải n ((n) = ), n khơng kết thúc n có n1,…,nk – – ni NV , nkgd ni không giải ni NH , nkgd ni không giải Qui ước: n N tốn nhan(n) = true đỉnh n giải false đỉnh n không giải kxd đỉnh n không xác định n n1 n2 nk n n1 n2 nk Với toán P, cần xác định nhan(n0), kéo theo đồ thị lời giải Lê Thanh Hương – Khoa CNTT - ĐHBKHN 64 Thuật toán gán nhãn đỉnh giải procedure GD(n) /* n gd hay nhan(n) = true tuỳ thuộc vào thông tin gd đỉnh n */ {1 if kt(n) then nhan(n)=true else {2 if n có đỉnh đỉnh VÀ n1,…,nk then {3 gd(n1);…; gd(nk); if(nhan(n1) and … and nhan(nk) then nhan(n) = true }3 if n có đỉnh đỉnh HOẶC n1,…,nk then {4 gd(n1);…;gd(nk); if(nhan(n1) or … or nhan(nk) then nhan(n) = true }4 }2 }1 Lê Thanh Hương – Khoa CNTT - ĐHBKHN 65 Thuật toán gán nhãn đỉnh K giải procedure KGD(n) {1 if not kt(n) then nhan(n)=false else {2 if n có đỉnh đỉnh VÀ n1,…,nk then {3 gd(n1);…; gd(nk); false}3 if(not nhan(n1) or… or not nhan(nk) then nhan(n) = if n có đỉnh đỉnh HOẶC n1,…,nk then {4 gd(n1);…;gd(nk); false}4 }2 }1 if(not nhan(n1) and … and not nhan(nk) then nhan(n) = Lê Thanh Hương – Khoa CNTT - ĐHBKHN 66 Thuật toán gán nhãn đỉnh giải procedure GD(n) /* n gd hay nhan(n) = true tuỳ thuộc vào thông tin gd đỉnh n */ {1 if kt(n) then nhan(n)=true else {2 if n có đỉnh đỉnh VÀ n1,…,nk then {3 gd(n1);…; gd(nk); if(nhan(n1) and … and nhan(nk) then nhan(n) = true }3 if n có đỉnh đỉnh HOẶC n1,…,nk then {4 gd(n1);…;gd(nk); if(nhan(n1) or … or nhan(nk) then nhan(n) = true }4 }2 }1 Lê Thanh Hương – Khoa CNTT - ĐHBKHN 67 TK rộng Vào: Cây V/H G=(N,A) với đỉnh đầu n0 Ra: lời giải PP:/* sử dụng d/s queue MO, DONG*/ TK sâu mới: MO stack {1 MO = {n0}; DONG = ; while MO {2 n get(MO); DONG DONG {n}; if (n) then {3 MO MO (n); if (n) có đỉnh m kết thúc then {4 nhan(m) = true; gd(n0); if nhan(n0) then exit(‘thanh cong’) else Loại khỏi MO đỉnh có tổ tiên đỉnh giải }4 }3 else{5 nhan(n) = false; kgd(n0); if not nhan(n0) then exit(‘khong cong’) else Loại khỏi MO đỉnh có tổ tiên đỉnh khơng giải }5 }2 }1 Lê Thanh Hương – Khoa CNTT - ĐHBKHN 68 Bài tập • Áp dụng thuật tốn tìm kiếm rộng mới, xác định lời giải cho và/hoặc đây: 69 Tìm kiếm cực tiểu Đặt vấn đề: Tìm T* để chi phí C(T*) Thực tiễn đưa mơ hình giá T • Giá tổng cộng: C (T ) = c(a) aT • Giá max: Cmax (T ) = max (c( p)) p:n0 →leaves Giá tối ưu để giải tốn h(n), h(n) có tính chất sau: n • Nếu n đỉnh kết thúc, h(n) = • Nếu n có n1, …, nk • ni NH: h(n) = min[h(ni) + c(n,ni)] n1 n2 … nk • ni NV: – Giá : h(n) = [ h(ni) + c(n,ni)] – Giá max: h(n) = max[h(ni) + c(n,ni)] T1 T2 Tk • Nếu n đỉnh khơng giải được, h(n) = Lê Thanh Hương – Khoa CNTT - ĐHBKHN 70 KGTT tic-tac-toe MAX nước -1 -2 MIN e(p) 1 -1 -1 Lê Thanh Hương – Khoa CNTT - ĐHBKHN -1 -2 71 Tìm kiếm cực tiểu • Trong q trình tìm kiếm, bước có tập gốc n0 cho chúng thành phần lời giải cuối - lời giải tiềm tàng T0 • Xây dựng T0 dựa theo h’ Lê Thanh Hương – Khoa CNTT - ĐHBKHN 72 Tìm kiếm cực tiểu Cách xác định lời giải tiềm tàng T0 Đỉnh đầu n0 T0 Nếu n T0 có đỉnh n1 → nk là: đỉnh HOẶC: • chọn ni: c(n,ni) + h’(ni) min, nhan(ni) kgd đỉnh VÀ: • chọn n1, …,nk vào T0 ni: nhan(ni) kgd Nhận xét: – – – Nếu V/H chứa đỉnh → TKCT Nếu c = h’=0 với nút sử dụng giá max → TKRM Nếu h’(n) h(n) với n : a A, c(a) TKCTM dừng cho kết lời giải tối ưu Lê Thanh Hương – Khoa CNTT - ĐHBKHN TKCT MO = {n0}; DONG = ; T0 = n0 Chọn n MO (T0): DONG DONG {n}; if kt(n) then { nhan(n) = true; gd(n0); if nhan(n0) then exit(‘thanh cong’) else Loại khỏi MO đỉnh có tổ tiên đỉnh giải } else { // n không kết thúc if (n) then { MO MO (n); Với mỡi m (n), tính h’(m) Với mỡi m MO DONG, tính h’(m) else{ // n khơng kết thúc khơng có nhan(n) = false; kgd(n0); if not nhan(n0) then exit(‘khong cong’) else Loại khỏi MO đỉnh có tổ tiên đỉnh khơng giải } } 74 Lặp lại đến MO = TKCT b 5 c a a f g 7 i0 j* T2 T1 e d 8 h a k* l* c c m* f T T1 T2 C 23 22 Cmax 18 19 g k* l* m* n* o* n a b c d e f g h i j k l m n o h 22 ∞ 13 16 ∞ 12 12 11 ∞ 0 0 0 hmax 18 ∞ 13 ∞ ∞ 0 0 0 h’ 3 2 2 ∞ 0 0 0 j* Lê Thanh Hương – Khoa CNTT - ĐHBKHN 75 n 10 11 12 13 14 15 16 h’ 3 1 2 1 50 12* 130 10* 14* 70 11 15* Lê Thanh Hương – Khoa CNTT - ĐHBKHN 160 ... máy? Lê Thanh Hương – Khoa CNTT - ĐHBKHN 11 3.3.Những yếu tố GQVĐ Bài toán Biểu diễn + Tri thức Giải thuật tìm kiếm Chiến lược điều khiển Kỹ thuật Heuristic Kỹ thuật suy diễn CSDL Hệ thống giải vấn. .. Kỹ thuật suy diễn CSDL Hệ thống giải vấn đề CSTT Cấu trúc hệ thống giải vấn đề Lê Thanh Hương – Khoa CNTT - ĐHBKHN 12 3.4.Các phương pháp biểu diễn vấn đề Biểu diễn nhờ KGTT • Mỗi hình trạng... trắng Lê Thanh Hương – Khoa CNTT - ĐHBKHN 17 3.4.Các phương pháp biểu diễn vấn đề Biểu diễn máy • dùng cấu trúc danh sách Ví dụ: nghiệm phương trình bậc − b + (b − 4ac) x1 = 2a 2 Lê Thanh Hương