Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 41 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
41
Dung lượng
223 KB
Nội dung
Bài toán chọn hoạt động (activity-selection problem) ° Cho – Một tập hoạt động S = {1, 2,…, n} – Một tài nguyên chung mà thời điểm dùng nhiều hoạt động – Hoạt động i có thời điểm bắt đầu si thời điểm chấm dứt fi – Nếu hoạt động i chọn i tiến hành thời gian [si , fi ) – Hai hoạt động i j tương thích (“compatible”) [si , fi ) [sj , fj ) không chạm ° Bài toán chọn hoạt động tìm tập hoạt động tương thích mà có số phần tử lớn 29.01.04 Giải thuật greedy cho toán chọn hoạt động ° Giải thuật – Giả sử: f1 ≤ f2 ≤ … ≤ fn GREEDY-ACTIVITY-SELECTOR(s, f) n ← length[s] A ← {1} j←1 for i ← to n if si ≥ fj then A ← A ∪ {i} j←i return A 29.01.04 Chaïy GREEDY-ACTIVITY-SELECTOR lên ví dụ i si fi 1 10 8 11 12 10 13 11 12 14 vòng lặp for với i = vòng lặp for với i = 4 4 10 29.01.04 4 11 8 11 10 11 12 13 14 thời gian Correctness giải thuật greedy cho toán chọn hoạt động ° ° Định lý Giải thuật GREEDY-ACTIVITY-SELECTOR tìm lời giải tối ưu cho toán chọn hoạt động Chứng minh – Gọi S = {1, 2,…, n} tập hợp hoạt động Các hoạt động xếp thứ tự theo thời điểm chấm dứt Do hoạt động có thời điểm chấm dứt sớm – Ta chứng minh có lời giải tối ưu bắt đầu hoạt động chọn lựa greedy, tức bắt đầu hoạt động 1: • Giả sữ A ⊆ S lời giải tối ưu, ta xếp thứ tự hoạt động A theo thời điểm chấm dứt Giả sữ k hoạt động A • Nếu k = ta xong Nếu k ≠ 1, ta xét B = A − {k} ∪ {1} Vì f1 ≤ fk, nên B lời giải tối ưu – Nếu A lời giải tối ưu cho toán nguyên thủy S, A’ = A − {1} lời giải tối ưu cho toán S’ = {i ∈ S : si ≥ f1} 29.01.04 ... GREEDY-ACTIVITY-SELECTOR lên ví dụ i si fi 1 10 8 11 12 10 13 11 12 14 vòng lặp for với i = vòng lặp for với i = 4 4 10 29. 01. 04 4 11 8 11 10 11 12 13 14 thời gian Correctness giải thuật greedy cho... sử: f1 ≤ f2 ≤ … ≤ fn GREEDY-ACTIVITY-SELECTOR(s, f) n ← length[s] A ← {1} j? ?1 for i ← to n if si ≥ fj then A ← A ∪ {i} j←i return A 29. 01. 04 Chạy GREEDY-ACTIVITY-SELECTOR lên ví dụ i si fi 1 10... đầu hoạt động 1: • Giả sữ A ⊆ S lời giải tối ưu, ta xếp thứ tự hoạt động A theo thời điểm chấm dứt Giả sữ k hoạt động A • Nếu k = ta xong Nếu k ≠ 1, ta xeùt B = A − {k} ∪ {1} Vì f1 ≤ fk, nên B