Microsoft PowerPoint BaiGiang11 ThamAn Thiết Kế & Đánh Giá Thuật Toán Tham Ăn TS Lê Nguyên Khôi Trường Đại Học Công Nghệ ĐHQGHN Nội Dung � Bài toán � Trả tiền thừa � Ba lô � Chiến lược tham ăn � Cây b[.]
Thiết Kế & Đánh Giá Thuật Toán Tham Ăn TS Lê Nguyên Khôi Trường Đại Học Công Nghệ - ĐHQGHN Nội Dung Bài toán Trả tiền thừa Ba lô Chiến lược tham ăn Cây bao trùm nhỏ Thuật toán Prim Thuật toán Kruskal Bài Toán Trả Tiền Thừa Các loại đồng xu 100c, 25c, 10c, 5c, 1c Với khoản tiền cần trả lại, cho số lượng đồng xu Ví dụ: trả lại 189c 189 xu 1c => 189 18 xu 10c, xu 5c, xu 1c => 23 Bài Toán Trả Tiền Thừa Số lượng đồng xu trả lại nhất? Ý tưởng: Sử dụng đồng xu có mệnh giá từ lớn đến nhỏ Hy vọng số lượng đồng xu Ví dụ: trả lại 189c xu 100c, xu 25c, xu 10c, xu 1c => xu chưa Lập Trình Động – Nhắc Lại Thường áp dụng cho toán tối ưu Xác định lời giải tối ưu Dựa lời giải tối ưu tốn Có thể phức tạp hóa vấn đề Khơng khả thi với tốn thực tế Khơng gian tìm kiếm rộng Thời gian tìm kiếm lâu Chiến Lược Tham Ăn Xác định phương án (lời giải) tốt thời điểm định Chọn tối ưu cục (local optimal) Hi vọng tìm tối ưu tồn cục (global optimum) Có thể tìm lời giải tối ưu với số toán Hiệu thực tế Tham Ăn – Lập Trình Động Đều áp dụng tìm lời giải tối ưu Lập trình động Thiết kế lên (bottom-up design) Giải tốn nhỏ Sau xác định phương án lời giải Tham ăn Thiết kế xuống (top-down design) Xác định phương án lời giải Sau giải tốn nhỏ Trả Tiền Thừa – Lập Trình Động Giải tốn nhỏ Có sử dụng loại xu xxx hay khơng (co/khơng) Số tiền trả tăng dần từ Thiết kế bảng chiều Gần tương tự toán ba lô? Trả Tiền Thừa – Tham Ăn Các loại đồng xu 100c, 25c, 10c, 1c Với khoản tiền cần trả lại, cho số lượng đồng xu Ví dụ: trả lại 133c Kỹ thuật tham ăn? 1 xu 100c, xu 25c, xu 1c => 10 xu 100c, xu 10c, xu 1c => Tham ăn khơng cho lời giải tối ưu Bài Tốn Ba Lơ Nhặt đầy đồ vật vào ba lô cho tối ưu Điều kiện khối lượng ba lô Mục tiêu tối ưu lợi nhuận Bài tốn: Có N đồ vật, với khối lượng wi giá trị ti Khối lượng ba lô không vượt M Xác định tập đồ vật để tổng giá trị lớn Sử dụng kỹ thuật tham ăn Bài Tốn Ba Lơ – Tham Ăn N = 5, M = 100 i A B wi 10 20 ti 20 30 C 30 66 D 40 40 E 50 50 10 Bài Toán Ba Lô – Tham Ăn N = 5, M = 100 i A B wi 10 20 ti 20 30 C 30 66 D 40 40 Tham ăn theo cân nặng (wi) Xi 1 1 E 50 50 = 156 11 Bài Tốn Ba Lơ – Tham Ăn N = 5, M = 100 i A B wi 10 20 ti 20 30 C 30 66 Tham ăn theo giá trị (ti) Xi 1 D 40 40 E 50 50 = 146 12 Bài Tốn Ba Lơ – Tham Ăn N = 5, M = 100 i A B wi 10 20 ti 20 30 C 30 66 D 40 40 Tham ăn theo tỉ trọng (ti / wi) Xi 1 1 E 50 50 = 156 13 Đồ Thị – Định Nghĩa Đồ thị có hướng = ( , ) bao gồm Tập đỉnh Tập ⊆ × cạnh Đồ thị vơ hướng Cặp cạnh khơng có thứ tự , = (, ) Đồ thị định hướng Cặp cạnh có thứ tự , ≠ , Cả hai trường hợp, = ( ) Nếu liên thông, ≥ − 1, ⟹ log = log 14 Đồ Thị – Ví Dụ vơ hướng định hướng Cầu Giấy Cầu Giấy BX Kim Mã ĐHQG Ngã tư Sở BX Kim Mã ĐHQG Ngã tư Sở 15 Đồ Thị – Ví Dụ trọng số khơng trọng số Cầu Giấy Cầu Giấy ĐHQG 11 Ngã tư Sở BX Kim Mã BX Kim Mã ĐHQG 15 Ngã tư Sở 16 Đồ Thị – Ví Dụ liên thơng khơng liên thơng 17 Đồ Thị – Biểu Diễn Biểu diễn = ( , , với 1, 2, … , , ma trận !"1 , $ %, & ∈ ! %, & ' %, & ∉ lưu trữ 18 Bài Toán Cây Bao Trùm Nhỏ Nhất Input: Đồ thị liên thông, vô hướng ( , ) có trọng số : → ℝ Output: Cây bao trùm – kết nối tất đỉnh với trọng số nhỏ = (, ) 3,4 ∈5 19 Cây Bao Trùm Nhỏ Nhất – Ví Dụ Input: 20 Cây Bao Trùm Nhỏ Nhất – Ví Dụ Output 21 Cấu Trúc Con Tối Ưu Xóa cạnh (, ) ∈ Thì, chia thành 26 2 Định lý Cây T6 bao trùm nhỏ 6 = ( 6 , ), 6 đồ thị bao gồm đỉnh 26 = đỉnh 26 = 8, ∈ : 8, ∈ Tương tự với 2 22 Thuật Toán Prim :: tập đỉnh kề cạnh tập cạnh Ban đầu tập : chứa đỉnh tuỳ chọn đồ thị , rỗng Tại bước lặp: Chọn (, ) ngắn nhất, ∈ :, ∈ − : Thêm đỉnh vào tập đỉnh : Thêm cạnh (, ) vào tập cạnh Tiếp tục phát triển : = , ta nhận bao trùm 23 Thuật Toán Kruskal Tập cạnh xây dựng dần bước xuất phát từ rỗng Tại bước cạnh (, ) chọn thêm vào cạnh ngắn cạnh lại khơng tạo thành chu trình với cạnh có 24