Bài giảng Giải thuật - Chương 2: Greedy Algos

° Bài toán chọn hoạt động (activity-selection problem)

° Cho

– Một tập các hoạt động S = {1, 2, , n}

– Một tài nguyên chung mà tại mọi thời điểm nó được dùng bởi nhiều lắm là một hoạt động

– Hoạt động i có thời điểm bắt đầu là si và thời điểm chấm dứt là fi

– Nếu hoạt động i được chọn thì i tiến hành trong thời gian [si , fi )

– Hai hoạt động i và j là tương thích nhau (“compatible”) nếu

 [si , fi ) và [sj , fj ) không chạm nhau.

° Bài toán chọn hoạt động là tìm một tập các hoạt động tương thích nhau mà có số phần tử lớn nhất.

 

ppt4 trang | Chia sẻ: tranluankk2 | Ngày: 21/03/2022 | Lượt xem: 370 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Bài giảng Giải thuật - Chương 2: Greedy Algos, để tải tài liệu về máy bạn click vào nút TẢI VỀ ở trên
Bài toán chọn hoạt động (activity-selection problem) 
Cho 
Một tập các hoạt động S = {1, 2,, n } 
Một tài nguyên chung mà tại mọi thời điểm nó được dùng bởi nhiều lắm là một hoạt động 
Hoạt động i có thời điểm bắt đầu là s i và thời điểm chấm dứt là f i 
Nếu hoạt động i được chọn thì i tiến hành trong thời gian [ s i , f i ) 
Hai hoạt động i và j là tương thích nhau (“ compatible ”) nếu 
[ s i , f i ) và [ s j , f j ) không chạm nhau. 
Bài toán chọn hoạt động là tìm một tập các hoạt động tương thích nhau mà có số phần tử lớn nhất. 
29.01.04 
1 
Giải thuật greedy cho bài toán chọn hoạt động 
Giải thuật 
Giả sử: f 1  f 2    f n . 
G REEDY -A CTIVITY -S ELECTOR ( s , f ) 
1	 n  length [ s ] 
2	 A  {1} 
3	 j  1 
4	 for i  2 to n 
5	 do if s i  f j 
6	 then A  A  { i } 
7	 j  i 
8	 return A 
29.01.04 
2 
Chạy G REEDY -A CTIVITY -S ELECTOR lên một ví dụ 
 1 1 4 
 2 3 5 
 3 0 6 
 4 5 7 
 5 3 8 
 6 5 9 
 7 6 10 
 8 8 11 
 9 8 12 
 10 2 13 
 11 12 14 
1 
1 
1 
1 
1 
1 
1 
1 
1 
1 
1 
4 
4 
4 
4 
4 
4 
4 
4 
8 
8 
8 
8 
11 
2 
4 
3 
5 
6 
7 
8 
9 
10 
11 
 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 thời gian 
 i s i f i 
vòng lặp for với i = 2 
vòng lặp for với i = 3 
29.01.04 
3 
Correctness của giải thuật greedy cho bài toán chọn hoạt động 
Định lý Giải thuật G REEDY -A CTIVITY -S ELECTOR tìm được lời giải tối ưu cho bài toán chọn hoạt động. 
Chứng minh 
Gọi S = {1, 2,, n } là tập hợp các hoạt động. Các hoạt động được xếp thứ tự theo thời điểm chấm dứt. Do đó hoạt động 1 có thời điểm chấm dứt sớm nhất. 
Ta chứng minh có lời giải tối ưu bắt đầu bằng hoạt động do chọn lựa greedy, tức là bắt đầu bằng hoạt động 1: 
Giả sữ A  S là lời giải tối ưu, ta xếp thứ tự các hoạt động trong A theo thời điểm chấm dứt. Giả sữ k là hoạt động đầu tiên trong A . 
Nếu k = 1 thì ta xong. Nếu k  1, ta xét B = A  { k }  {1}. Vì f 1  f k , nên B cũng là lời giải tối ưu. 
Nếu A là lời giải tối ưu cho bài toán nguyên thủy S , thì A’ = A  {1} là lời giải tối ưu cho bài toán S’ = { i  S : s i  f 1 }. 
29.01.04 
4 

File đính kèm:

  • pptbai_giang_giai_thuat_chuong_2_greedy_algos.ppt