Bài giảng Cơ sở Trí tuệ nhân tạo: Chương 2 trình bày các nội dung: Thuật toán là gì? Thuật toán và thuật giải, thuật giải Heuristic & các nguyên lý, tìm kiếm chiều sâu & tìm kiếm chiều rộng, tìm kiếm leo đồi, tìm kiếm ưu tiên tối ưu, một số thuật giải cơ bản. Mời các bạn cùng tham khảo để nắm bắt các nội dung chi tiết.
Chương Thuật toán – Thuật giải TRẦN MINH THÁI Email: minhthai@huflit.edu.vn Website: www.minhthai.edu.vn Cập nhật: 05 tháng 09 năm 2015 Nội dung #2 Thuật toán? Thuật toán vs Thuật giải Thuật giải Heuristic & nguyên lý Tìm kiếm chiều sâu & Tìm kiếm chiều rộng Tìm kiếm leo đồi Tìm kiếm ưu tiên tối ưu Một số thuật giải Thuật tốn? #3 Là thủ tục tính tốn xác định nhận giá trị tập giá trị (input) sinh vài giá trị tập giá trị (output) Cách thức/ quy trình thực hồn thành cơng việc xác định cụ thể VD Cộng số, tính tổng dãy Fibonaci, … Đặc trưng Thuật tốn #4 Tính đắn Tính dừng Tính xác định Tính hiệu Tính phổ quát ??? Đặc trưng quan trọng ??? Đặc trưng Thuật toán … #5 [1] Tính đắn * Đảm bảo kết sau thực liệu đầu vào [2] Tính dừng Dừng Sau vài bước thực Đặc trưng Thuật toán … #6 [3] Tính xác định - Rõ ràng, cụ thể - Không nhập nhằng, gây hiểu lầm hiểu, cài đặt [4] Tính hiệu - Giải thời gian, điều kiện cho phép - Đáp ứng yêu cầu người dùng [5] Tính phổ qt Có thể giải lớp toán tương tự Cách biểu diễn thuật tốn #7 02 cách phổ biến [1] Mơ tả bước thực thuật toán [2] Sử dụng sơ đồ thuật toán Cách biểu diễn thuật toán #8 [1] Mơ tả bước thực thuật tốn - Ngôn ngữ tự nhiên - Mã giả (Pseudocode): Lai ghép ngôn ngữ tự nhiên với mã ngôn ngữ lập trình VD Mơ tả bước thực thuật tốn tìm USCLN hai số ngun – NN tự nhiên #9 Input: Hai số nguyên a, b Output: USCLN a b Thuật toán: Bước 1: Nếu a = b USCLN a Bước 2: Nếu a > b tìm USCLN a - b b, quay lại Bước Bước 3: Nếu a < b tìm USCLN a b - a, quay lại Bước VD Mô tả bước thực thuật tốn tìm USCLN hai số nguyên – Mã giả #10 Input: Hai số nguyên a, b Output: USCLN a b Thuật toán: WHILE (a ≠ b) DO IF (a > b) THEN a = a – b; ELSE b = b – a; END WHILE RETURN a; Bài tốn tơ màu đồ thị #69 Vấn đề cài đặt: Loại bỏ đỉnh tô Đánh dấu màu bị cấm tơ đỉnh Bài tốn tơ màu đồ thị #70 Gọi k số màu dùng để tô màu k=1; Trong chưa tô hết đỉnh { Chọn đỉnh p có bậc cao Lặp từ màu đến màu k Nếu tồn màu i khơng bị cấm tơ màu tơ p = i Nếu đỉnh p chưa tơ màu k=k+1, màu tơ p = k Với đỉnh q có nối với p Hạ bậc q, thêm màu tô p vào danh sách màu cấm tô q Gán bậc đỉnh p = } Bài tốn tơ màu đồ thị - Ví dụ #71 Áp dụng tơ màu cho đồ thị sau A I C E D H B G F Đỉnh Bậc C D F E H I A B G Bài tốn tơ màu đồ thị - Ví dụ #72 Bước 1: Chọn đỉnh C Các đỉnh nối với C: A, B, D, E, G, H, G A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô C D F 4 E H I 3 A 1 B 1 G 1 Bài tốn tơ màu đồ thị - Ví dụ #73 Bước 2: Chọn đỉnh D Các đỉnh nối với D: E, F, H, I A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô D F E 1, H 1, I 2 A 1 B 1 G 1 C 0 Bài tốn tơ màu đồ thị - Ví dụ #74 Bước 3: Chọn đỉnh F Các đỉnh nối với F: B, H, G A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô F E 1 1, H 1, I 2 A 1 B 1 G 1 C D Bài tốn tơ màu đồ thị - Ví dụ #75 Bước 4: Chọn đỉnh I Các đỉnh nối với I: A, E A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô I 2 A 1 E 1, B 0 H 0 1, G 0 C D F Bài tốn tơ màu đồ thị - Ví dụ #76 Bước 5: Chọn đỉnh A A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô A 0 B 0 E 0 1, H 0 1, G 0 C D F I Bài tốn tơ màu đồ thị - Ví dụ #77 Bước 6: Chọn đỉnh B A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô B 0 E 0 1, H 0 1, G 0 C D F I A Bài tốn tơ màu đồ thị - Ví dụ #78 Bước 7: Chọn đỉnh E A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô E 0 1, H 0 1, G 0 C D F I A B Bài tốn tơ màu đồ thị - Ví dụ #79 Bước 8: Chọn đỉnh H A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô H 0 1, G 0 C D F I A B E Bài tốn tơ màu đồ thị - Ví dụ #80 Bước 9: Chọn đỉnh G A I C E D H B G F Đỉnh Bậc Bậc Màu cấm tô Màu tô G 0 C D F I A B E H Bài tốn tơ màu đồ thị - Bài tập #81 A I C E D H B F G Bài tập #82 Áp dụng giải thuật A* cho tốn Ta-Canh Áp dụng giải thuật tơ màu đồ thị cho toán xếp lịch, họp bố trí đèn tín hiệu giao thơng Cài đặt thuật toán Q&A #83 ... đường đi? #27 Bài tốn phân việc #28 Một cơng ty nhận hợp đồng gia công m chi tiết máy J1, J2, ,Jm Cơng ty có n máy gia cơng P1, P2, Pn Mọi chi tiết gia cơng máy Một gia công chi tiết máy, cơng việc... J1 M2 J4 M3 J2 J3 Bài tập # 32 Giả sử có máy M1, M2, M3 cơng việc có thời gian thực tương ứng sau: j1=3, j2 = 2, j3 = 2, j4 = 3, j5 = Áp dụng nguyên lý thứ tự phân công công việc vào máy Bài. .. trạng thái T0 Hàm Fk = tổng d(i, j) ô (i, j) khác trống: Hàm trạng thái Tk Bài toán Ta-canh #36 Số 1: d(1, 2) = Số 7: d (2, 1) = Số 6: d (2, 3) = Số 5: d(3, 3) = … Fk = + + + + + + + = 12