Giáo trình Thiết kế & Đánh giá thuật toán - Bài giảng 11: Tham ăn - Lê Nguyên Khôi

Xóa một cạnh bất kỳ (u, v) ∈ T. Thì, cây T được chia thành 2 cây con T_1 và T_2 Định lý. Cây con T_1 là cây bao trùm nhỏ nhất của G_1=(V_1, E_1) là đồ thị con của G bao gồm các đỉnh của T_1 V_1 = đỉnh của T_1 E_1= {(x,y)∈E:x,y ∈ V_1 } Tương tự với T_2 Thuật Toán Prim U: tập các đỉnh kề các cạnh trong tập cạnh T Ban đầu tập U chứa một đỉnh tuỳ chọn của đồ thị G , còn T rỗng. Tại mỗi bước lặp: 1. Chọn (u, v) ngắn nhất, u ∈ U, v ∈ - V - U 2. Thêm đỉnh v vào tập đỉnh U 3. Thêm cạnh (u, v) vào tập cạnh T Tiếp tục phát triển cây T cho tới khi U = V , ta nhận được T là cây bao trùm Tập T các cạnh được xây dựng dần từng bước xuất phát từ T rỗng. Tại mỗi bước cạnh (u, v) được chọn thêm vào T là cạnh ngắn nhất trong các cạnh còn lại và không tạo thành chu trình với các cạnh đã có trong T

pdf25 trang | Chia sẻ: thucuc2301 | Lượt xem: 619 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Giáo trình Thiết kế & Đánh giá thuật toán - Bài giảng 11: Tham ăn - Lê Nguyên Khôi, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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ỏ nhất  Thuật toán Prim  Thuật toán Kruskal 1 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, sao cho số lượng đồng xu là ít nhất.  Ví dụ: trả lại 189c  189 xu 1c => 189  18 xu 10c, 1 xu 5c, 4 xu 1c => 23 2 Bài Toán Trả Tiền Thừa  Số lượng đồng xu trả lại là ít nhất?  Ý tưởng:  Sử dụng lần lượt các đồng xu có mệnh giá từ lớn nhất đến nhỏ nhất  Hy vọng số lượng đồng xu là ít nhất  Ví dụ: trả lại 189c  1 xu 100c, 3 xu 25c, 1 xu 10c, 4 xu 1c => 9  9 xu đã ít nhất chưa 3 Lập Trình Động – Nhắc Lại  Thường áp dụng cho bài toán tối ưu  Xác định được lời giải tối ưu  Dựa trên lời giải tối ưu các bài toán con  Có thể phức tạp hóa vấn đề  Không khả thi với bài toán thực tế  Không gian tìm kiếm rộng  Thời gian tìm kiếm lâu 4 Chiến Lược Tham Ăn  Xác định phương án (lời giải) tốt nhất tại thời điểm quyết định  Chọn tối ưu cục bộ (local optimal)  Hi vọng tìm được tối ưu toàn cục (global optimum)  Có thể tìm được lời giải tối ưu với một số bài toán  Hiệu quả trong thực tế 5 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ế dưới lên (bottom-up design) 1. Giải bài toán nhỏ 2. Sau đó xác định phương án lời giải  Tham ăn  Thiết kế trên xuống (top-down design) 1. Xác định phương án lời giải 2. Sau đó giải bài toán nhỏ 6 Trả Tiền Thừa – Lập Trình Động  Giải bài toá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ừ 0  Thiết kế bảng 2 chiều  Gần tương tự bài toán ba lô? 7 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, sao cho số lượng đồng xu là ít nhất.  Ví dụ: trả lại 133c  Kỹ thuật tham ăn? 1 xu 100c, 1 xu 25c, 8 xu 1c => 10  1 xu 100c, 3 xu 10c, 3 xu 1c => 7  Tham ăn có thể không cho lời giải tối ưu 8 Bài Toán Ba Lô  Nhặt đầy đồ vật vào ba lô sao 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 toán:  Có N đồ vật, với khối lượng wi và giá trị ti  Khối lượng ba lô không vượt quá M  Xác định tập đồ vật để tổng giá trị lớn nhất  Sử dụng kỹ thuật tham ăn 9 Bài Toán Ba Lô – Tham Ăn N = 5, M = 100 i A B C D E wi 10 20 30 40 50 ti 20 30 66 40 50 10 Bài Toán Ba Lô – Tham Ăn N = 5, M = 100 i A B C D E wi 10 20 30 40 50 ti 20 30 66 40 50 Tham ăn theo cân nặng (wi) Xi 1 1 1 1 0  = 156 11 Bài Toán Ba Lô – Tham Ăn N = 5, M = 100 i A B C D E wi 10 20 30 40 50 ti 20 30 66 40 50 Tham ăn theo giá trị (ti) Xi 0 1 1 0 1  = 146 12 Bài Toán Ba Lô – Tham Ăn N = 5, M = 100 i A B C D E wi 10 20 30 40 50 ti 20 30 66 40 50 Tham ăn theo tỉ trọng (ti / wi) Xi 1 1 1 1 0  = 156 13 Đồ Thị – Định Nghĩa Đồ thị có hướng  = ( , ) bao gồm  Tập các đỉ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 15 ĐHQG Cầu Giấy BX Kim Mã Ngã tư Sở ĐHQG Cầu Giấy BX Kim Mã Ngã tư Sở Đồ Thị – Ví Dụ trọng số không trọng số 16 ĐHQG Cầu Giấy BX Kim Mã Ngã tư Sở 5 7 11 15 ĐHQG Cầu Giấy BX Kim Mã Ngã tư Sở Đồ 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, ,  , là ma trận !"1 . . , 1 . . $ ! %, &  '1 nếu %, & ∈ 0 nếu %, & ∉ 18   lưu trữ 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 2 – một cây kết nối tất cả các đỉnh với trọng số nhỏ nhất . 2 =  .(, ) 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 một cạnh bất kỳ (, ) ∈ 2. Thì, cây 2 được chia thành 2 cây con 26 và 2 Định lý. Cây con T6 là cây bao trùm nhỏ nhất của 6 = ( 6, 6), 6 là đồ thị con của bao gồm các đỉnh của 26 6 = đỉnh của 26 6 = 8, 9 ∈ : 8, 9 ∈ 6 Tương tự với 2 22 Thuật Toán Prim :: tập các đỉnh kề các cạnh trong tập cạnh 2 Ban đầu tập : chứa một đỉnh tuỳ chọn của đồ thị , còn 2 rỗng. Tại mỗi bước lặp: 1. Chọn (, ) ngắn nhất,  ∈ :,  ∈ − : 2. Thêm đỉnh  vào tập đỉnh : 3. Thêm cạnh (, ) vào tập cạnh 2. Tiếp tục phát triển cây 2 cho tới khi : = , ta nhận được 2 là cây bao trùm 23 Thuật Toán Kruskal Tập 2 các cạnh được xây dựng dần từng bước xuất phát từ 2 rỗng. Tại mỗi bước cạnh (, ) được chọn thêm vào 2 là cạnh ngắn nhất trong các cạnh còn lại và không tạo thành chu trình với các cạnh đã có trong 2. 24

Các file đính kèm theo tài liệu này:

  • pdfthiet_ke_danh_gia_thuat_toanbaigiang11_thaman_9848_2032098.pdf