1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm kiếm dựa trên thỏa mãn ràng buộc

22 2 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 1,68 MB

Nội dung

11/16/2022 VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG SCHOOL OF INFORMATION AND COMMUNICATIONS TECHNOLOGY IT3160 Nhập mơn Trí tuệ nhân tạo Artificial Intelligence PGS.TS Phạm Văn Hải & PGS.TS Lê Thanh Hương & Team AI lecturer Trường Công nghệ thông tin Truyền thông Đại Học Bách Khoa Hà Nội Nội dung mơn học • Chương - Giới thiệu Trí tuệ nhân tạo • Chương - Tác tử • Chương - Giải vấn đề • Các kỹ thuật tìm kiếm • Tìm kiếm với tri thức bổ sung (Informed search) • Các kỹ thuật tìm kiếm có đối thủ • Tìm kiếm dựa thỏa mãn ràng buộc • Chương - Logic suy diễn • Chương - Học máy https://users.soict.hust.edu.vn/haipv 11/16/2022 Ràng buộc • Một ràng buộc (constraint) quan hệ tập biến • Mỗi biến có (gắn với) tập giá trị nhận – gọi miền giá trị (domain) • Trong mơn học này, xét miền hữu hạn giá trị rời rạc • Một ràng buộc biểu diễn • Một biểu thức (tốn học / logic) • Một bảng liệt kê phép gán giá trị phù hợp cho biến • Ví dụ ràng buộc • • • • • Tổng góc tam giác 180o Độ dài từ W 10 ký tự X nhỏ Y Tuấn tham dự buổi seminar vào thứ sau 14h … https://users.soict.hust.edu.vn/haipv Bài tốn thỏa mãn ràng buộc • Một tốn thỏa mãn ràng buộc (Constraint Satisfaction Problem – CSP) bao gồm: • Một tập hữu hạn biến X • Miền giá trị (một tập hữu hạn giá trị) cho biến D • Một tập hữu hạn ràng buộc C • Một lời giải (solution) toán thỏa mãn ràng buộc phép gán đầy đủ giá trị biến cho thỏa mãn tất ràng buộc • Một tốn thỏa mãn ràng buộc biểu diễn đồ thị (graph) Ví dụ: Các biến x1,…,x6 Miền giá trị {0,1} Các ràng buộc: •x1+x2+x6=1 •X1-x3+x4=1 •x4+x5-x6>0 •x2+x5-x6=0 https://users.soict.hust.edu.vn/haipv 11/16/2022 Ví dụ: Bài tốn tơ màu đồ (1) • Các biến: WA, NT, Q, NSW, V, SA, T • Các miền giá trị: D = {red, green, blue} • Các ràng buộc: Các vùng liền kề phải có màu khác • Ví dụ: • WA ≠ NT • (WA,NT) = {(red,green), (red,blue), (green,red), (green,blue), (blue,red), (blue,green)} https://users.soict.hust.edu.vn/haipv Ví dụ: Bài tốn tơ màu đồ (2) • Các lời giải phép gán đầy đủ xác (thỏa mãn tất ràng buộc) • Ví dụ: WA=red, NT=green, Q=red, NSW=green, V=red, SA=blue, T=green https://users.soict.hust.edu.vn/haipv 11/16/2022 Đồ thị ràng buộc • Đối với tốn thỏa mãn ràng buộc nhị phân (binary CSP): Mỗi ràng buộc liên quan đến biến • Đồ thị ràng buộc (constraint graph) • Các nút biểu diễn biến • Các cạnh biểu diễn ràng buộc https://users.soict.hust.edu.vn/haipv Các kiểu tốn thỏa mãn ràng buộc • Các biến rời rạc • Các miền giá trị hữu hạn • Với n biến kích thước miền giá trị d, số lượng phép gán đầy đủ giá trị cần xét O(dn) • Ví dụ: Các tốn thỏa mãn ràng buộc nhị phân (Boolean CSPs) • Các miền giá trị vơ hạn • Miền giá trị số ngun, chuỗi, • Ví dụ: Trong tốn xếp lịch cơng việc, biến ngày bắt đầu kết thúc công việc • Cần ngơn ngữ biểu diễn ràng buộc (constraint language), ví dụ: StartJob1 + ≤ StartJob3 • Các biến liên tục • Ví dụ: Các mốc thời gian bắt đầu kết thúc quan sát kính viễn vọng khơng gian Hubble • Bài tốn với ràng buộc tuyến tính giải mức chi phí thời gian đa thức https://users.soict.hust.edu.vn/haipv 11/16/2022 Các kiểu ràng buộc • Ràng buộc đơn (unary constraint) liên quan đến biến • Ví dụ: SA ≠ green • Ràng buộc nhị phân (binary constraint) liên quan đến biến • Ví dụ: SA ≠ WA • Ràng buộc bậc cao (higher-order constraint) liên quan đến nhiều biến • Ví dụ: Các ràng buộc toán mật mã số học (trình bày slide tiếp theo) https://users.soict.hust.edu.vn/haipv Ví dụ: Bài tốn mật mã số học • Các biến: F T U W R O X1 X2 X3 (các nhớ phép +) • Miền giá trị: {0,1,2,3,4,5,6,7,8,9} • Các ràng buộc: Giá trị biến (F,T,U,W,R,O) khác • • • • • • O + O = R + 10 * X1 X1 + W + W = U + 10 * X2 X2 + T + T = O + 10 * X3 X3 = F T≠0 F≠0 https://users.soict.hust.edu.vn/haipv 10 11/16/2022 Vài tốn CSP thực tế • Các tốn giao nhiệm vụ • Ví dụ: Giáo viên dạy lớp nào? • Các tốn lập thời khóa (gian) biểu • Ví dụ: Lớp học dạy vào thời gian đâu? • Các tốn lập lịch vận tải (giao hàng) cơng ty • Các toán lập lịch sản xuất nhà máy • Lưu ý: Nhiều tốn thực tế liên quan đến biến có giá trị thực (liên tục) https://users.soict.hust.edu.vn/haipv 11 Sắp lịch tàu điện ngầm Tokyo 12 11/16/2022 Tìm kiếm lời giải kiểm thử (1) • Là phương pháp giải vấn đề tổng quát • Phương pháp giải kiểm thử (Generate and Test) • Sinh khả (candidate) lời giải • Kiểm tra xem khả có thực lời giải • Áp dụng phương pháp kiểm thử tốn CSP • Bước Gán giá trị cho tất biến • Bước Kiểm tra xem tất ràng buộc thỏa mãn hay khơng • Lặp lại bước tìm phép gán thỏa mãn https://users.soict.hust.edu.vn/haipv 13 Tìm kiếm lời giải kiểm thử (2) • Điểm yếu nghiêm trọng phương pháp tìm kiếm kiểm thử việc phải xét nhiều khả gán mà không thỏa mãn ràng buộc • Ví dụ • Các biến X,Y,Z lấy giá trị {1,2} • Các ràng buộc: X=Y, XZ, Y>Z • Các phép (khả năng) gán: (1,1,1); (1,1,2); (1,2,1); (1,2,2); (2,1,1); (2,1,2); (2,2,1) https://users.soict.hust.edu.vn/haipv 14 11/16/2022 Tìm kiếm lời giải kiểm thử (3) • Làm để cải thiện phương pháp kiểm thử? • Sinh khả (các phép gán giá trị) cách thông minh • Khơng theo thứ tự • Sử dụng kết (thông tin) thu từ bước kiểm tra (bước 2) • Phát sớm (từ trước) mâu thuẫn • Các ràng buộc kiểm tra sau biến gán giá trị (chứ đợi đến tất biến gán giá trị) 15 Tìm kiếm quay lui (1) • Tìm kiếm quay lui (backtracking) giải thuật tìm kiếm sử dụng phổ biến CSP • Dựa giải thuật tìm kiếm theo chiều sâu (depth-first search) • Mỗi lần gán, làm việc (gán giá trị) cho biến • (Tìm kiếm kiểm thử: lần gán xác định giá trị cho tất biến) • Phương pháp tìm kiếm quay lui tốn CSP • Gán giá trị cho biến – Việc gán giá trị biến làm sau hoàn thành việc gán giá trị biến khác • Sau phép gán giá trị cho biến đó, kiểm tra ràng buộc có thỏa mãn tất biến gán giá trị thời điểm – Quay lui (backtrack) có lỗi (không thỏa mãn ràng buộc) https://users.soict.hust.edu.vn/haipv 16 11/16/2022 Tìm kiếm quay lui (2) • Các yếu tố ảnh hưởng đến phương pháp tìm kiếm quay lui • Thứ tự xét biến? • Ưu tiên biến quan trọng (được định nghĩa tùy vào tốn cụ thể) • Ưu tiên xét trước biến có giá trị (miền giá trị nhỏ) • Ưu tiên xét trước biến tham gia vào nhiều ràng buộc • Với biến, thứ tự xét giá trị? • Thứ tự ưu tiên giá trị với biến định nghĩa tùy thuộc vào toán cụ thể https://users.soict.hust.edu.vn/haipv 17 Giải thuật tìm kiếm quay lui 18 11/16/2022 Tìm kiếm quay lui: Ví dụ (1) NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 19 Tìm kiếm quay lui: Ví dụ (2) NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 20 10 11/16/2022 Tìm kiếm quay lui: Ví dụ (3) NT WA Q SA NSW V 21 Tìm kiếm quay lui: Ví dụ (4) NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 22 11 11/16/2022 Tìm kiếm quay lui: Các vấn đề (1) • Lặp lặp lại lỗi • Lý do: Bỏ qua (khơng khai thác) lý mâu thuẫn • Ví dụ: • Các biến A,B,C,D,E lấy giá trị miền 10 • Ràng buộc: A>E • Phương pháp tìm kiếm quay lui thử tất khả gán giá trị cho biến B,C,D phát A1 • Giải pháp: Phương pháp Backjumping (chuyển đến xét từ chỗ sinh lỗi) https://users.soict.hust.edu.vn/haipv 23 Tìm kiếm quay lui: Các vấn đề (2) • Các thao tác (kiểm tra) khơng cần thiết • Lặp lại kiểm tra ràng buộc khơng cần thiết • Ví dụ: • Các biến A,B,C,D,E lấy giá trị miền 10 • Các ràng buộc: B+82 • Giải pháp: Phương pháp Forward checking (kiểm tra trước ràng buộc) https://users.soict.hust.edu.vn/haipv 25 Tìm kiếm quay lui: Cải thiện • Hiệu phương pháp tìm kiếm quay lui CSP cải thiện • Thứ tự xét biến (để gán giá trị) • Thứ tự xét (gán) giá trị biến • Phát sớm lỗi (vi phạm ràng buộc) xảy https://users.soict.hust.edu.vn/haipv 26 13 11/16/2022 Biến bị ràng buộc nhiều • Quy tắc lựa chọn thứ tự xét biến: Ưu tiên biến bị ràng buộc nhiều (most constrained variable) • Chọn biến có số lượng giá trị hợp lệ • Ví dụ: Tại bước S2, biến NT chọn có số lượng giá trị hợp lệ (2) (S2) NT WA Q SA NSW V • Cịn gọi quy tắc ưu tiên biến có tập giá trị hợp lệ nhỏ (Minimum Remaining Values – MRV) https://users.soict.hust.edu.vn/haipv 27 Biến ràng buộc biến khác nhiều • Khi có ≥ biến có số lượng giá trị hợp lệ nhất, chọn biến nào? • Ví dụ: Trong ví dụ trước, biến NT va SA có số lượng giá trị hợp lệ (2) • Chọn biến ràng buộc (khống chế) biến khác (chưa gán giá trị) nhiều • Ví dụ: Tại bước S2, mức độ bị ràng buộc, biến SA nên xét trước biến NT – SA ràng buộc biến khác, NT ràng buộc biến khác S2 NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 28 14 11/16/2022 Giá trị ràng buộc biến khác • Đối với biến, giá trị xét (để gán) theo thứ tự nào? • Chọn giá trị ràng buộc (khống chế) biến khác (chưa gán giá trị) • Giá trị gây hạn chế tối thiểu khả gán giá trị biến khác NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 29 Kiểm tra tiến (Forward checking) • Mục đích: Tránh thất bại, kiểm tra trước ràng buộc • Kiểm tra tiến đảm bảo phù hợp (consistency) biến xét gán giá trị biến khác có liên quan (ràng buộc) trực tiếp với • Ý tưởng: • Ở bước gán giá trị, theo dõi giá trị hợp lệ (có thể gán) biến chưa gán giá trị • Loại bỏ (dừng) hướng tìm kiếm có biến (chưa gán giá trị) khơng cịn giá trị hợp lệ https://users.soict.hust.edu.vn/haipv 30 15 11/16/2022 Kiểm tra tiến: Ví dụ (1) NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 31 Kiểm tra tiến: Ví dụ (2) NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 32 16 11/16/2022 Kiểm tra tiến: Ví dụ (3) NT WA Q SA NSW V 33 Kiểm tra tiến: Ví dụ (4) NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 34 17 11/16/2022 Lan truyền ràng buộc • Kiểm tra tiến giúp lan truyền thông tin (ràng buộc) từ biến gán giá trị đến biến chưa gán giá trị • Nhưng: phương pháp kiểm tra tiến phát trước (ngăn chặn) tất thất bại • Ví dụ: NT SA màu xanh! NT WA Q SA NSW V  Lan truyền ràng buộc đảm bảo tính phù hợp cục (local consistency) ràng buộc https://users.soict.hust.edu.vn/haipv 35 Phù hợp cạnh đồ thị ràng buộc (1) • Trong đồ thị ràng buộc, cạnh (X  Y) gọi phù hợp (consistent) ràng buộc, giá trị x biến X có giá trị y biến Y cho ràng buộc biến X Y thỏa mãn • Định nghĩa phù hợp cạnh khơng có tính đối xứng • (X  Y) phù hợp khơng có nghĩa (Y  X) phù hợp! • Ví dụ: (SA  NSW) phù hợp, (NSW  SA) không NT WA Q SA NSW V 36 18 11/16/2022 Phù hợp cạnh đồ thị ràng buộc (2) • Để cạnh (X  Y) phù hợp ràng buộc, cần loại bỏ giá trị x biến X mà khơng có giá trị y biến Y làm cho ràng buộc biến X Y thỏa mãn • Để cạnh (NSW  SA) phù hợp ràng buộc, cần phải loại bỏ giá trị màu xanh (blue) khỏi danh sách giá trị hợp lệ biến NSW NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 37 Phù hợp cạnh đồ thị ràng buộc (3) • Sau loại bỏ giá trị x khỏi danh sách giá trị hợp lệ biến X, cần xét lại tất cạnh ràng buộc trực tiếp tới biến X: xét lại cạnh (…  X) • Ví dụ: Sau loại bỏ giá trị màu xanh (blue) biến NSW, cần xét lại cạnh (V  NSW), (SA  NSW) (Q  NSW) … Để cạnh (V  NSW) phù hợp ràng buộc, cần loại bỏ giá trị màu đỏ (red) biến V NT WA Q SA NSW V https://users.soict.hust.edu.vn/haipv 38 19 11/16/2022 Phù hợp cạnh đồ thị ràng buộc (4) • Phương pháp phù hợp cạnh (Arc consistency) phát thất bại sớm so với phương pháp kiểm tra tiến (Forward checking) • Kiểm tra phù hợp cạnh sử dụng trước sau phép gán giá trị biến NT WA Q SA NSW V 39 Giải thuật phù hợp cạnh AC-3 https://users.soict.hust.edu.vn/haipv 40 20 11/16/2022 Tìm kiếm cục cho CSP (1) • Mục đích: Để sử dụng phương pháp tìm kiếm cục (ví dụ: hill-climbing, simulated annealing) cho tốn thỏa mãn ràng buộc • Mỗi trạng thái (của khơng gian tìm kiếm) ứng với phép gán đầy đủ giá trị cho tất biến • Khơng gian tìm kiếm bao gồm trạng thái ràng buộc bị vi phạm • Dịch chuyển trạng thái = Gán giá trị cho biến • Trạng thái đích = Trạng thái tất ràng buộc thỏa mãn https://users.soict.hust.edu.vn/haipv 41 Tìm kiếm cục cho CSP (2) • Quá trình tìm kiếm • Lựa chọn biến để gán giá trị mới?  Chọn ngẫu nhiên biến mà giá trị vi phạm ràng buộc • Đối với biến, lựa chọn giá trị mới?  Dựa theo chiến lược min-conflicts: chọn giá trị mà vi phạm ràng buộc • Ví dụ: Áp dụng phương pháp tìm kiếm cục Hill-climbing, với hàm ước lượng h(n) = tổng số ràng buộc bị vi phạm • Trạng thái (lân cận) chuyển đến (được xét) trạng thái ứng với giá trị hàm h(n) tốt (=ít ràng buộc bị vi phạm hơn) https://users.soict.hust.edu.vn/haipv 42 21 11/16/2022 Ví dụ tốn qn hậu • Các trạng thái: ứng với vị trí quân hậu nằm cột • Chỉ có quân hậu cột • Khơng gian trạng thái gồm tổng cộng (4x4x4x4=) 256 trạng thái • Các hành động: di chuyển quân hậu (nào đó) cột (của nó) • Trạng thái đích: khơng có qn hậu ăn • Hàm ước lượng: h(n) = tổng số cặp hậu ăn https://users.soict.hust.edu.vn/haipv 43 Thỏa mãn ràng buộc: Tổng kết • Trong tốn thỏa mãn ràng buộc (CSP) : • Mỗi trạng thái tương ứng với phép gán giá trị cho biến • Kiểm tra trạng thái đích = Kiểm tra tập ràng buộc giá trị biến • Phương pháp quay lui (Backtracking) = Tìm kiếm theo chiều sâu (Depthfirst search) với nút tương ứng với phép gán giá trị cho biến • Các chiến lược chọn thứ tự xét biến thứ tự xét giá trị biến ảnh hưởng quan trọng đến hiệu trình tìm lời giải • Phương pháp tìm kiếm tiến (Forward checking) cho phép ngăn chặn phép gán giá trị đưa đến thất bại sau • Lan truyền ràng buộc (ví dụ: phương pháp phù hợp cạnh – Arc consistency) cho phép giới hạn giá trị hợp lệ cho phép phát mâu thuẫn • Phương pháp tìm kiếm cục sử dụng chiến lược Min-conflicts thường hiệu nhiều toán thực tế https://users.soict.hust.edu.vn/haipv 44 22 ... toán thỏa mãn ràng buộc phép gán đầy đủ giá trị biến cho thỏa mãn tất ràng buộc • Một tốn thỏa mãn ràng buộc biểu diễn đồ thị (graph) Ví dụ: Các biến x1,…,x6 Miền giá trị {0,1} Các ràng buộc: ... xem tất ràng buộc thỏa mãn hay khơng • Lặp lại bước tìm phép gán thỏa mãn https://users.soict.hust.edu.vn/haipv 13 Tìm kiếm lời giải kiểm thử (2) • Điểm yếu nghiêm trọng phương pháp tìm kiếm kiểm... Mỗi ràng buộc liên quan đến biến • Đồ thị ràng buộc (constraint graph) • Các nút biểu diễn biến • Các cạnh biểu diễn ràng buộc https://users.soict.hust.edu.vn/haipv Các kiểu tốn thỏa mãn ràng buộc

Ngày đăng: 19/12/2022, 16:04