Giải thuật tham lam

14 607 0
Giải thuật tham lam

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Giải thuật tham lam Phần 1: Bài toán chọn/xếp lịch hoạt động Bài toán xếp lịch cho nhiều hoạt động với ý nghĩa để sử dụng chung tài nguyên (mỗi thời điểm có hoạt động sử dụng tài nguyên chung), với mục tiêu xếp cho có nhiều hoạt động tương thích sử dụng tài nguyên tốt Giảng viên: ThS Bùi Thị Thủy Nhóm thực hiện: Nguyễn Văn Huấn Lê Thị Hiến Nguyễn Thanh Thảo Nguyễn Thu Thủy Nguyễn Thị Ngọc Yến 4/4/2012 Mục lục 1.Giới thiệu toán Bài toán xếp lịch cho nhiều hoạt động với ý nghĩa để sử dụng chung tài nguyên (mỗi thời điểm có hoạt động sử dụng tài nguyên chung), với mục tiêu xếp có nhiều hoạt động tương thích sử dụng tài nguyên tốt Giả sử ta có tập hợp S = {a1,a2, an } tập hoạt động muốn sử dụng tài nguyên, ví dụ hội trường, hoạt động thời điểm.Mỗi hoạt động có thời điểm bắt đầu si thời điểm kết thúc fi, với điều kiện ≤ si < fi < ∞.Nếu hoạt động chọn, độc chiếm tài nguyên khoảng thời gian [si, fi) Hoạt động aj gọi tương thích lẫn khoảng thời gian [si, fi) [sj, fj) không giao (Ví dụ aj tương thích si ≥ fj sj ≥ fi).Trong toán chọn hoạt động ta phải chọn tập lớn hoạt động tương thích lẫn Chẳng hạn, xem tập S hoạt động sau, mà ta xếp tăng dần theo thời điểm kết thúc i S i F i 1 1 5 8 2 1 1 4 Ta thấy cách ngắn gọn thuận lợi để xem xét hoạt động trình tự xếp Chẳng hạn như, tập {a3, a9, a11 } bao gồm hoạt động tương thích lẫn Nó tập lớn nhất, tập {a1, a4, a8, a11} lớn hơn.Thật {a1, a4, a8, a11} tập lớn hoạt động tương thích lẫn nhau; tập lớn khác {a2, a4, a9, a11} Ta giải toán vài bước Ta bắt đầu việc đưa công thức giải pháp quy hoạch động toán ta tổng hợp giải pháp tối ưu hai toán để thiết lập giải pháp tối ưu toán gốc Ta có lựa chọn định toán để sử dụng giải pháp tối ưu.Sau đó, ta nhận thấy ta cần lựa chọn - lựa chọn tham lam - sau ta lựa chọn toán con, toán lại rỗng Dựa nhận xét này, ta xây dựng giải thuật tham lam đệ quy để giải toán lập lịch hoạt động Ta hoàn thành trình xây dựng giải thuật tham lam việc biến đổi giải thuật đệ quy sang giải thuật lặp Mặc dù bước ta thực phần thể mối liên quan nhiều tiêu biểu cho phát triển phương pháp tham lam, chúng minh hoạ cho mối quan hệ phương pháp tham lam quy hoạch động Cấu trúc tối ưu toán chọn hoạt động Như đề cập trên, ta bắt đầu phương quy hoạch động để giải toán lựa chọn hoạt động.Như chương 15, bước tìm cấu trúc tối ưu sau sử dụng để xây dựng giải pháp tối ưu cho toán từ giải pháp tối ưu cho toán Ta nhận thấy chương 15 ta cần định nghĩa không gian thích hợp toán Ta bắt đầu việc định nghĩa tập hợp: Sij = {ak ∈S : fi ≤ sk < fk ≤ sj } Sao cho Sij tập hoạt động tập S mà bắt đầu sau hoạt động a i kết thúc kết thúc trước hoạt động aj bắt đầu.Thật ra, Sij chứa tất hoạt động tương thích với aj tương thích với tất hoạt động hoàn thành không trễ tất hoạt động bắt đầu không sớm aj bắt đầu.Để thuận tiện việc biểu diễn toán, không tính tổng quát, ta thêm vào hoạt động giả sử a0 an+1 với qui ước f0 = Sn+1 = ∞ Sau S = S0 n+1, phạm vi i j cho ≤ i, j ≤n+1 Ta giới hạn phạm vi i j sau Giả sử hoạt động xếp theo thứ tự tăng dần thời điểm kết thúc: f0 ≤ f1 ≤ f2 ≤ ≤fn ≤ fn+1 (16.1) Ta dễ dàng thấy Sij = Ø với i ≥ j Tại sao? Giả sử tồn hoạt động a k Sij cho i ≥ j, aj thứ tự xếp Sau ta có fi ≤ sk < fk ≤ sj < fj.Vì vậy, fi < fj, điều mâu thuẫn với giả thiết aj thứ tự xếp Ta kết luận rằng, ta xếp hoạt động theo thứ tự tăng dần thời điểm kết thúc, phạm vi toán ta chọn tập cực đại hoạt động tương thích lẫn từ S ij với ≤ i < j ≤ n+1, biết tất Sij khác rỗng Để nhận cấu trúc toán chọn hoạt động, ta xét toán khác rỗng Sij, giả sử giải pháp Sij tồn hoạt động ak, mà fi ≤ sk < fk ≤ sj Việc chọn hoạt động ak phát sinh hai toán con, Sik (những hoạt động mà bắt đầu sau kết thúc kết thúc trước ak bắt đầu) Skj (những hoạt động mà bắt đầu sau ak kết thúc kết thúc trước aj bắt đầu), hoạt bao gồm tập hoạt động Sij Giải pháp ta toán Sij tổng hợp hai giải pháp cho hai toán Sik Skj, ứng với hoạt động ak Vì số hoạt động giải pháp Sij ta kích thước toán Sik, cộng với kích thước toán Skj, cộng với (cho ak) Cấu trúc tối ưu toán sau Nếu Aij giải pháp tối ưu cho toán có chứa hoạt động ak.Thì giải pháp Aik cho Sik Akj cho Skj sử dụng Sij tối ưu.Lý luận cắt dán thông thường áp dụng.Thật vậy, tồn giải pháp A'ik cho Sik chứa nhiều hoạt động Aik, ta thay Aik A'ik Aij, ta tìm giải pháp khác Sij có nhiều hoạt động Aij.Điều trái với giả thiết ta co Aij giải pháp tối ưu Sij.Tương tự, ta có giải pháp A'kj Skj với nhiều hoạt động Akj, ta thay Akj A'kj để đưa giải pháp cho Sij với nhiều hoạt động Aij Bây ta sử dụng cấu trúc tối ưu để xây dựng giải pháp tối ưu cho toán từ giải pháp tối ưu toán Ta thấy giải pháp cho toán khác rỗng Sij có chứa hoạt động ak, giải pháp tối ưu chứa giải pháp tối ưu toán Sik Skj Vì vậy, ta xây dựng tập cực đại hoạt động tương thích lẫn Sij việc phân chia toán thành hai toán (tìm tập lớn hoạt động tương thích lẫn Sik Skj ), tìm tập lớn Aik Akj hoạt động tương thích lẫn toán này, thành lập tập lớn Aij hoạt động tương thích lẫn như: Aij = Aik U {ak } U Akj (16.2) Giải pháp tối ưu cho toán giải pháp cho S0,n+1 Giải pháp đệ quy Bước thứ hai việc phát triển giải pháp quy hoạch động định nghĩa cách đệ quy giá trị giải pháp tối ưu.Đối với toán chọn hoạt động, gọi c[i,j] số hoạt động tập lớn chứa hoạt động tương thích lẫn Sij Ta có c[i,j] = Sij = Ø, c[i,j] = i ≥ j Xét tập Sij khác rỗng Như ta thấy, ak sử dụng tập lớn hoạt động tương thích lẫn Sij, Ta sử dụng tập lớn hoạt động tương thích lẫn cho toán Sik Skj Dùng công thức (16.2), ta có công thức c[i,j] = c[i,k] + c[k,j] + Công thức đệ quy cho thấy ta biết giá trị k, mà ta không biết.Ta có i-j-1 giá trị chấp nhận cho k, cụ thể k = i+1, , j-1 Vì tập lớn S ij phải dùng giá trị k, ta phải kiểm tra tất chúng để tìm giá trị tốt Vì công thức đệ quy đầy đủ c[i,j] trở thành: (16.3) Biến đổi giải pháp quy hoạch động thành giải pháp tham lam Tại điểm này, tập dễ hiểu lập bảng, từ lên, thuật toán quy hoạch động dựa công thức (16.3).Thực ra, tập 16.1-1 yêu cầu bạn thực điều Có hai xác định then chốt, nhiên, điều cho phép ta đơn giản hoá giải pháp ta Định lý 16.1 Xét toán khác rỗng Sij,và am hoạt động Sij có thời điểm kết thúc sớm nhất: fm = min{fk : ak ϵSij} Thì: Hoạt động am sử dụng tập lớn hoạt động tương thích lẫn Sij Bài toán Sim rỗng, chọn am toán khác rỗng Smj Chứng minh Ta chứng minh phần hai trước đơn giản Giả sử Sim khác rỗng, có hoạt động ak cho fi ≤ sk < fk ≤ sm < fm Mà ak nằm Sij có thời gian kết thúc sớm am, điều mâu thuẫn với việc chọn am Ta kết luận Sim rỗng Để chứng minh phần thứ nhất, ta giả sử rằng, Aij tập lớn hoạt động tương thích lẫn Sij, ta xếp hoạt động Aij theo thứ tự tăng dần thời điểm kết thúc Gọi ak hoạt động Aij Nếu ak = am, ta chứng minh được, am sử dụng tập lớn hoạt động tương thích lẫn S ij Nếu ak ≠ am, ta xây dựng tập A’ij = Aij – {ak} ∪ {am} hoạt động A’ij tách rời nhau, hoạt động Aij thì, ak hoạt động kết thúc Aij, fm ≤ fk Chú ý A’ij có số hoạt động giống Aij, ta thấy A’ij tập lớn hoạt động tương thích lẫn S ij mà có chứa am Tại định lý 16.1 có giá trị?Quay phần 15.3 cấu trúc tối ưu làm thay đổi cách nhiều toán sử dụng giải pháp tối ưu để đến toán gốc nhiều cách chọn ta có xác định toán để sử dụng Trong giải pháp quy hoạch động, hai toán sử dụng giải pháp tối ưu, có j-i-1 cách chọn giải toán Sij Định lý 16.1 giảm số lượng lớn đáng kể này: toán sử dụng giải pháp tối ưu (một toán khác rỗng), giải toán Sij, ta cần xem cách chọn: cách với thời gian kết thúc sớm Sij.May mắn thay, ta dễ dàng xác định hoạt động Cùng với việc giảm số toán số cách chọn, định lý 16.1 cung cấp lợi ích khác: ta giải toán theo kiểu từ xuống (top-down), kiểu từ lên (bottom-up) sử dụng điển hình quy hoạch động Để giải toán Sij, ta chọn hoạt động am Sij với thời gian kết thúc sớm thêm vào giải pháp tập hoạt động dùng giải pháp tối ưu toán Sij Bởi ta biết rằng, có chọn am, ta sử dụng giải pháp cho Smj giải pháp tối ưu ta cho Sij, ta không cần giải Smj trước việc giải Sij Để giải Sij, ta chọn am trước tiên hoạt động Sij với thời điểm kết thúc sớm sau giải Smj Cũng ý có mô hình toán mà ta giải Bài toán ban đầu ta S =S0,n+1 Giả sử chọn am1 hoạt động S0,n+1 với thời điểm kết thúc sớm (Từ việc xếp hoạt động theo thứ tự thời điểm kết thúc tăng dần f0 = 0, ta phải có m1 = 1.) Bài toán Sm1,n+1 Bây giả sử ta chọn am2 hoạt động Sm1,n+1 với thời điểm kết thúc sớm (Nó không cần thiết trường hợp m2 = 2) Bài toán Sm2,n+1 Tiếp theo, ta thấy toán có dạng S ,n+1 cho số hoạt động mi đó.Tóm lại, toán gồm có hoạt động cuối để kết thúc, số hoạt động biến đổi từ toán đến toán khác Cũng có mô hình hoạt động mà ta chọn.Bởi ta luôn chọn hoạt động với thời điểm kết thúc sớm S ,n+1, thời điểm kết thúc hoạt động chọn qua tất toán làm gia tăng nghiêm trọng thời gian.Tuy nhiên, ta xem hoạt động toàn diện, việc xếp tăng dần thời điểm kết thúc Hoạt động am mà ta chọn giải toán hoạt động với thời điểm kết thúc sớm mà lập lịch hợp lý Hoạt động chọn chọn lựa “tham lam” hướng này, qua trực giác, để lại nhiều hội cho hoạt động lại để lập lịch.Đó là, lựa chọn tham lam cách mà cực đại hoá số lượng đáng kể thời gian lại chưa lập lịch Giải pháp tham lam đệ quy Bây ta thấy cách tổ chức hiệu giải pháp quy hoạch động, cách xử lý theo phương pháp từ xuống, ta xem giải thuật mà hoạt động cách tuý thuật toán tham lam, kiểu từ xuống.Dễ hiểu, giải thuật đệ quy thủ tục RECURSIVE-ACTIVITY-SELECTOR Nó lấy thời điểm bắt đầu kết thúc hoạt động, trình bày mảng s f, xem số bắt đầu i n mà định nghĩa toán Si,n+1 để giải (Tham số n hoạt động thực tế cuối an toán không hoạt động thật an+1 mà toán con) Nó trả tập lớn hoạt động tương thích lẫn S i,n+1 Ta cho n hoạt động đưa vào xếp theo thời điểm kết thúc tăng dần, theo công thức (16.1) không, ta xếp chúng theo thứ tự với độ phức tạp O(n lgn), phá vỡ ràng buộc cách tuỳ tiện Lời gọi ban đầu RECURSIVE-ACTIVITY-SELECTOR(s,f, 0, n) RECURSIVE-ACTIVITY-SELECTOR (s ,f ,i, n) mi+1 while m < n and sm < fi Tìm hoạt động Si,n+1 m m+1 if m < n then return {am} U RECURSIVE-ACTIVITY-SELECTOR(s ,f ,m ,n) else return Ø Minh hoạ 16.1 thực thuật toán.Trong việc gọi đệ quy RECURSIVEACTIVITY-SELECTOR(s,f,i,n), vòng lặp while dòng 2-3 tìm kiếm hoạt động vòng lặp ví dụ ai+1, ai+2, …, an, tím thấy hoạt động am mà tương thích với ai, hoạt động có Sm fi Nếu vòng lặp giới hạn tìm thấy hoạt động giải thuật quay lại dòng kết hợp {am} tập cực đại Sm,n+1 quay lại việc gọi đệ quy RECURSIVE-ACTIVITYSELECTOR(s,f,m,n).Một cách lựa chọn, vòng lặp giới hạn m>n, trường hợp ta có kiểm tra tất hoạt động mà không tìm thấy hoạt động tương thích với Trong trường hợp Si,n+1= Ø, giải thuật trả Ø dòng Giải pháp tham lam lặp Ta dễ dàng chuyển đổi giải thuật đệ quy thành giải thuật lặp Giải thuật RECURSIVE-ACTIVITYSELECTOR “đệ qui yếu“ (xem toán 7-4): kết thúc với lời gọi đệ quy theo thực kết hợp.Dễ dàng để thay đổi giải thuật đệ qui yếu thành giải thuật lặp, thật ra, số trình biên dịch cho ngôn ngữ lập trình thực công việc cách tự động Như viết, RECURSIVE-ACTIVITY-SELECTOR thực cho toán S i,n+1…, toán mà có hoạt động kết thúc cuối Giải thuật GREEDY-ACTIVITY-SELECTOR phiên lặp giải thuật RECURSIVEACTIVITY-SELECTOR, giả sử hoạt động đầu vào xếp theo thời điểm kết thúc tăng dần Nó tập hợp hoạt động chọn vào tập A quay lại tập thực xong 10 Hình 16.1 Sự thực RECURSIVE-ACTIVITY-SELECTOR hoạt động 11 cho sớm hơn.Các hoạt động xem lời đệ quy xuất đường kẻ ngang.Hoạt động thật a0 kết thúc thời điểm 0, lời gọi ban đầu RECURSIVE-ACTIVITY-SELECTOR (s,f,0,11), hoạt động a1 chọn.Trong lời gọi đệ quy, hoạt động mà chọn tô đen, hoạt động tmàu tô trắng xem xét Nếu thời gian bắt đầu hoạt động xảy trước thời gian kêt thúc hoạt động chọn (mũi tên chúng sang trái), bị loại Trái lại(mũi tên trực tiếp hay qua phải), chọn Lời gọi đệ quy cuối cùng, RECURSIVE-ACTIVITYSELECTOR (s, f, 0, 11) trả Ø Tập kết hoạt động chọn là{a1, a4, a8, a11} GREEDY-ACTIVITY-SELECTOR(s,f) n ← length[s] A ← {a1} i←1 for m ← to n if sm ≥ fi then i←m A ← A ∪ {am} return A Giải thuật thực sau.Biến i đánh số phần tử thêm vào A gần nhất, tương ứng hoạt động phiên đệ quy.Giả sử hoạt động xếp theo thứ tự tăng dần thời điểm kết thúc, fi thời điểm kết thúc lớn hoạt động A Điều là: fi = max{fk : ak ϵA} (16.4) Dòng 2-3 chọn hoạt động ai, ban đầu A chứa hoạt động này, khởi đầu i số hoạt động này.Vòng lặp for dòng 4-7 tìm thấy hoạt động kết thúc sớm Si,n+1 Vòng lặp xem xét hoạt động am vòng lặp thêm am vào A tương thích với tất hoạt động 11 chọn trước Một hoạt động hoạt động kết thúc sớm Si,n+1 Để thấy hoạt động am tương thích với hoạt động A, đáp ứng phương trình (16.4) để kiểm tra (dòng 5) thời điểm bắt đầu Sm không sớm thời điểm kết thúc fi hoạt động thêm vào A gần hoạt động am tương thích, dòng 6-7 thêm hoạt động am vào A thiết lập i đến m Tập A quay lại lời gọi GREEDY-ACTIVITY-SELECTOR(s,f) xác tập quay lại lời gọi RECURSIVE-ACTIVITY-SELECTOR(s,f, 0, n ) Giống phiên đệ quy, GREEDY-ACTIVITY-SELECTOR lập lịch tập n hoạt động với độ phức tạp O(n) thời gian, giả sử hoạt động ban đầu xếp theo thời điểm kết thúc chúng 7.Bài tập Exercises 16.1-1 Give a dynamic-programming algorithm for the activity-selection problem, based on the recurrence (16.3) Have your algorithm compute the sizes c[i, j] as defined above and also produce the maximum-size subset A of activities Assume that the inputs have been sorted as in equation (16.1) Compare the running time of your solution to the running time of GREEDY-ACTIVITY-SELECTOR Bài tập 16.1-1 Cho thuật toán chương trình-động vấn đề lựa chọn hoạt động, dựa tái diễn (16.3).Tính toán kích cỡ c[i,j] định nghĩa tạo tập A hoạt động với kích cỡ lớn Giả định đầu vào xếp phương trình (16.1).So sánh thời gian chạy giải pháp với thời gian chạy GREEDY-ACTIVITY-SELECTOR Exercises 16.1-2 Suppose that instead of always selecting the first activity to finish, we instead select the last activity to start that is compatible with all previously selected activities Describe how this approach is a greedy algorithm, and prove that it yields an optimal solution Bài tập 16.1-2 12 Giả sử thay chọn hoạt động để kết thúc, ta chọn hoạt động cuối để bắt đầu cho tương thích với tất hoạt động chọn trước đó.Mô tả phương pháp tiếp cận thuật toán tham lam chứng minh mang lại giải pháp tối ưu Exercises 16.1-3 Suppose that we have a set of activities to schedule among a large number of lecture halls We wish to schedule all the activities using as few lecture halls as possible Give an efficient greedy algorithm to determine which activity should use which lecture hall (This is also known as the interval-graph coloring problem We can create an interval graph whose vertices are the given activities and whose edges connect incompatible activities The smallest number of colors required to color every vertex so that no two adjacent vertices are given the same color corresponds to finding the fewest lecture halls needed to schedule all of the given activities.) Bài tập 16.1-3 Giả sử ta có tập hoạt động để lập lịch lượng lớn giảng đường.Ta muốn lập lịch hoạt động sử dụng giảng đường.Hãy cho thuật toán tham lam hiệu để xác định hoạt động nên dùng giảng đường (Điều gọi tô màu đồ thị -thời gian).Ta tạo đồ thị -thời gian ,các đỉnh hoạt động cạnh nối hoạt động không tương ứng.Xác định số màu nhỏ cần thiết tô cho đỉnh để đỉnh liền kề màu tương đương với việc tìm số giảng đường cần cho việc lên lịch hoạt động Exercises 16.1-4 Not just any greedy approach to the activity-selection problem produces a maximum-size set of mutually compatible activities Give an example to show that the approach of selecting the activity of least duration from those that are compatible with previously selected activities does not work Do the same for the approaches of always selecting the compatible activity that overlaps the fewest other remaining activities and always selecting the compatible remaining activity with the earliest start time Bài tập 16.1-4 Không có thuật toán tham lam tiếp cận đến vấn đề lựa chọn hoạt động tạo tập hợp kích cỡ lớn hoạt động tương thích.Hãy cho ví dụ phương pháp tiếp cận lựa chọn hoạt động 13 thời gian ngắn từ chúng tương thích với hoạt động lựa chọn trước không thực được.Làm tương tự với pp tiếp cận chọn hoạt động tương thích chồng chéo hoạt động khác lại chọn hoạt động lại tương thích với thời gian bắt đầu sớm [1] We will sometimes speak of the sets Sij as subproblems rather than just sets of activities It will always be clear from the context whether we are referring to Sij as a set of activities or the subproblem whose input is that set [1] Đôi ta nói tập hợp Sij toán không tập hợp hoạt động.Điều rõ ràng từ ngữ cảnh cho dù đề cập tới Sij tập hoạt động hay toán có đầu vào tập hợp Tài liệu tham khảo 16.1 An activity-selection problem -Chapter 16-The MIT Press Introduction to Algorithms 2nd Phân công công việc nhóm 1.Nguyễn Thị Ngọc Yến: Mô tả toán ; Cấu trúc tối ưu toán chọn hoạt động 2.Lê Thị Hiến: Giải pháp đệ quy quy hoạch động ; Biến đổi giải pháp quy hoạch động thành giải pháp tham lam (Định lý 16.1) 3.Nguyễn Thu Thủy: Giải pháp tham lam đệ quy;Phân tích hình 16.1 4.Nguyễn Văn Huấn: Giải pháp tham lam lặp;Phân tích hình 16.1 5.Nguyễn Thanh Thảo: Tổng hợp tài liệu word,làm slide power point, thuyết trình 14 [...]... liệu tham khảo 16.1 An activity-selection problem -Chapter 16-The MIT Press Introduction to Algorithms 2nd Phân công công việc trong nhóm 1.Nguyễn Thị Ngọc Yến: Mô tả bài toán ; Cấu trúc con tối ưu của bài toán chọn hoạt động 2.Lê Thị Hiến: Giải pháp đệ quy trong quy hoạch động ; Biến đổi một giải pháp quy hoạch động thành một giải pháp tham lam (Định lý 16.1) 3.Nguyễn Thu Thủy: Giải pháp tham lam đệ... hoạt động đầu tiên để kết thúc, ta chọn hoạt động cuối để bắt đầu sao cho nó tương thích với tất cả các hoạt động đã chọn trước đó.Mô tả phương pháp tiếp cận này là một thuật toán tham lam như thế nào và chứng minh rằng nó mang lại một giải pháp tối ưu Exercises 16.1-3 Suppose that we have a set of activities to schedule among a large number of lecture halls We wish to schedule all the activities using... selecting the compatible activity that overlaps the fewest other remaining activities and always selecting the compatible remaining activity with the earliest start time Bài tập 16.1-4 Không chỉ có thuật toán tham lam tiếp cận đến vấn đề lựa chọn hoạt động tạo ra tập hợp kích cỡ lớn nhất các hoạt động tương thích.Hãy cho một ví dụ chỉ ra rằng phương pháp tiếp cận của lựa chọn hoạt động 13 về thời gian ngắn... activities.) Bài tập 16.1-3 Giả sử ta có một tập các hoạt động để lập lịch trong một lượng lớn các giảng đường.Ta muốn lập lịch mọi hoạt động sử dụng ít nhất có thể các giảng đường.Hãy cho một thuật toán tham lam hiệu quả để xác định hoạt động nào nên dùng giảng đường nào (Điều này còn được gọi là tô màu đồ thị -thời gian).Ta có thể tạo ra đồ thị -thời gian ,các đỉnh của nó là các hoạt động và các cạnh... quy trong quy hoạch động ; Biến đổi một giải pháp quy hoạch động thành một giải pháp tham lam (Định lý 16.1) 3.Nguyễn Thu Thủy: Giải pháp tham lam đệ quy;Phân tích hình 16.1 4.Nguyễn Văn Huấn: Giải pháp tham lam lặp;Phân tích hình 16.1 5.Nguyễn Thanh Thảo: Tổng hợp tài liệu word,làm slide power point, thuyết trình 14 ... running time of GREEDY-ACTIVITY-SELECTOR Bài tập 16.1-1 Cho một thuật toán chương trình-động về vấn đề lựa chọn hoạt động, dựa trên sự tái diễn (16.3).Tính toán kích cỡ c[i,j] như định nghĩa ở trên và tạo ra tập con A các hoạt động với kích cỡ lớn nhất Giả định rằng đầu vào đã được sắp xếp như trong phương trình (16.1).So sánh thời gian chạy của giải pháp này với thời gian chạy của GREEDY-ACTIVITY-SELECTOR... về Ø Tập kết quả của các hoạt động được chọn là{a1, a4, a8, a11} GREEDY-ACTIVITY-SELECTOR(s,f) 1 n ← length[s] 2 A ← {a1} 3 i←1 4 for m ← 2 to n 5 do if sm ≥ fi 6 then i←m 7 8 A ← A ∪ {am} return A Giải thuật thực hiện như sau.Biến i đánh số các phần tử thêm vào A gần nhất, tương ứng đối với hoạt động ai trong phiên bản đệ quy.Giả sử các hoạt động được sắp xếp theo thứ tự tăng dần của thời điểm kết ... i 1 1 5 8 2 1 1 4 Ta thấy cách ngắn gọn thuận lợi để xem xét hoạt động trình tự xếp Chẳng hạn như, tập {a3, a9, a 11 } bao gồm hoạt động tương thích lẫn Nó tập lớn nhất, tập {a1, a4, a8, a 11} ... an +1 với qui ước f0 = Sn +1 = ∞ Sau S = S0 n +1, phạm vi i j cho ≤ i, j ≤n +1 Ta giới hạn phạm vi i j sau Giả sử hoạt động xếp theo thứ tự tăng dần thời điểm kết thúc: f0 ≤ f1 ≤ f2 ≤ ≤fn ≤ fn +1 (16 .1) ... ta S =S0,n +1 Giả sử chọn am1 hoạt động S0,n +1 với thời điểm kết thúc sớm (Từ việc xếp hoạt động theo thứ tự thời điểm kết thúc tăng dần f0 = 0, ta phải có m1 = 1. ) Bài toán Sm1,n +1 Bây giả sử

Ngày đăng: 30/12/2015, 20:20

Mục lục

    1.Giới thiệu bài toán

    2. Cấu trúc con tối ưu của bài toán chọn hoạt động

    3. Giải pháp đệ quy

    4. Biến đổi một giải pháp quy hoạch động thành một giải pháp tham lam

    5. Giải pháp tham lam đệ quy

    6. Giải pháp tham lam lặp

    Tài liệu tham khảo

    Phân công công việc trong nhóm

Tài liệu cùng người dùng

Tài liệu liên quan