1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Giải thuật tham lam

14 611 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 14
Dung lượng 1,71 MB

Nội dung

Giải thuật tham lamPhần 1: Bài toán chọn/xếp lịch các hoạt động Bài toán sắp xếp lịch cho nhiều hoạt động với ý nghĩa để có thể sử dụng chung một tài nguyên mỗi thời điểm chỉ có một hoạ

Trang 1

Giải thuật tham lam

Phần 1: Bài toán chọn/xếp lịch các hoạt động

Bài toán sắp xếp lịch cho nhiều hoạt động với ý nghĩa để có thể sử dụng chung một tài nguyên (mỗi thời điểm chỉ có một hoạt động sử dụng tài nguyên chung), với mục tiêu là sắp xếp sao cho càng có nhiều hoạt động tương thích sử dụng tài nguyên càng tốt

Giảng viên: ThS Bùi Thị Thủy Nhóm thực hiện:

1 Nguyễn Văn Huấn

2 Lê Thị Hiến

3 Nguyễn Thanh Thảo

4 Nguyễn Thu Thủy

5 Nguyễn Thị Ngọc Yến

Trang 2

Mục lục

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

Bài toán sắp xếp lịch cho nhiều hoạt động với ý nghĩa để có thể sử dụng chung một tài nguyên (mỗi thời điểm chỉ có một hoạt động sử dụng tài nguyên chung), với mục tiêu là sắp xếp sao càng có nhiều hoạt động tương thích sử dụng tài nguyên càng tốt

Trang 3

[si, fi) và [sj, fj) là không giao nhau (Ví dụ ai và aj là tương thích nếu si ≥ fj hoặc sj ≥ fi).Trong bài toánchọn hoạt động ta phải chọn tập con lớn nhất của các hoạt động tương thích lẫn nhau Chẳng hạn, xem tập S của các hoạt động sau, mà ta có thể sắp xếp tăng dần theo thời điểm kết thúc

0

1 1

S

2

F

0

1 1

1 2

1 3

1 4

Ta sẽ thấy một cách ngắn gọn là tại sao nó thuận lợi để xem xét các hoạt động trong trình tự sắp xếp

Ta sẽ giải quyết bài toán này trong một vài bước Ta bắt đầu bởi việc đưa ra công thức của giải pháp quy hoạch động đối với bài toán này trong đó ta tổng hợp các giải pháp tối ưu đối với hai bài toán con để thiết lập giải pháp tối ưu của bài toán gốc Ta có các lựa chọn khi quyết định các bài toán để sử dụng trong một giải pháp tối ưu.Sau đó, ta sẽ nhận thấy rằng ta chỉ cần một lựa chọn duy nhất - lựa chọn tham lam - và sau khi ta lựa chọn chỉ còn một bài toán con, một bài toán con còn lại sẽ rỗng Dựa trên những nhận xét này, ta sẽ xây dựng một giải thuật tham lam đệ quy để giải quyết bài toán lập lịch hoạt động Ta

sẽ hoàn thành quá trình xây dựng giải thuật tham lam bởi việc biến đổi giải thuật đệ quy sang giải thuật lặp Mặc dù những bước ta thực hiện trong phần này thể hiện mối liên quan nhiều hơn là tiêu biểu cho sự phát triển của phương pháp tham lam, chúng minh hoạ cho mối quan hệ của phương pháp tham lam và quy hoạch động

Trang 4

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

Như đã đề cập ở trên, ta bắt đầu bằng phương quy hoạch động để giải quyết bài toán lựa chọn hoạt động.Như ở chương 15, bước đầu tiên là tìm ra cấu trúc con tối ưu và sau đó sử dụng nó để xây dựng một giải pháp tối ưu cho bài toán từ các giải pháp tối ưu cho các bài toán con

Ta nhận thấy rằng ở chương 15 ta cần định nghĩa một không gian thích hợp của bài toán con Ta hãy bắt đầu bằng việc định nghĩa các tập hợp:

Sij = {ak∈S : fi ≤ sk <fk ≤ sj }

f0 ≤ f1 ≤ f2 ≤ ≤fn ≤ fn+1.(16.1)

fi ≤ sk < fk ≤ sj < fj.Vì vậy, fi < fj, điều này mâu thuẫn với giả thiết rằngai kế tiếp aj trong thứ tự sắp xếp Ta

Trang 5

giải pháp cho hai bài toán con Sik và Skj, ứng với hoạt độngak Vì vậy số các hoạt động trong giải pháp đối

Bây giờ ta sử dụng cấu trúc con tối ưu để chỉ ra rằng có thể xây dựng một giải pháp tối ưu cho bài

động tương thích lẫn nhau như:

Aij = Aik U {ak } U Akj (16.2)

3 Giải pháp đệ quy

Bước thứ hai trong việc phát triển giải pháp quy hoạch động là định nghĩa một cách đệ quy giá trị của giải pháp tối ưu.Đối với những bài toán chọn hoạt động, gọi c[i,j] là số các hoạt động trong tập con lớn

Công thức đệ quy này cho thấy rằng ta biết giá trị của k, mà ta không biết.Ta có i-j-1 giá trị có thể

Trang 6

này của k, ta phải kiểm tra tất cả chúng để tìm ra giá trị tốt nhất Vì vậy công thức đệ quy đầy đủ của c[i,j] trở thành:

(16.3)

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

Tại điểm này, nó sẽ là một bài tập dễ hiểu lập một cái bảng, từ dưới lên, thuật toán quy hoạch động dựa trên công thức (16.3).Thực ra, bài tập 16.1-1 yêu cầu bạn thực hiện điều này Có hai sự xác định then chốt, tuy nhiên, điều này cho phép ta đơn giản hoá giải pháp của ta

Định lý 16.1

nhất: fm = min{fk : ak ϵSij} Thì:

Chứng minh

conA’ij = Aij – {ak} ∪ {am} các hoạt động trong A’ij thì tách rời nhau, các hoạt động trong Aij thì, ak là hoạt

Trang 7

động kết thúc đầu tiên trong Aij, và fm ≤ fk Chú ý rằng A’ij có sốhoạt động giống như Aij, ta thấy rằng A’ij

Tại sao định lý 16.1 có giá trị?Quay về phần 15.3 cấu trúc con tối ưu làm thay đổi cách nhiều bài toán được sử dụng trong giải pháp tối ưu để đến bài toán gốc và trong nhiều cách chọn ta có xác định những bài toán con để sử dụng Trong giải pháp quy hoạch động, hai bài toán con được sử dụng trong giải pháp

này: chỉ duy nhất một bài toán con được sử dụng trong giải pháp tối ưu (một bài toán con khác thì là

thể giải quyết mỗi bài toán con theo kiểu từ trên xuống (top-down), hơn là kiểu từ dưới lên (bottom-up)

thời gian kết thúc sớm nhất và thêm vào giải pháp này một tập của các hoạt động dùng trong giải pháp tối

Smj

Cũng chú ý rằng có một mô hình đối với những bài toán con mà ta giải quyết Bài toán ban đầu của ta

Sm1,n+1. Bây giờ giả sử rằng ta chọn am2 là hoạt động trong Sm1,n+1 với thời điểm kết thúc sớm nhất (Nó

cuối cùng để kết thúc, và một số các hoạt động biến đổi từ bài toán con này đến bài toán con khác

Cũng có một mô hình đối với các hoạt động mà ta chọn.Bởi vì ta luôn luôn chọn hoạt động với thời

diện, trong việc sắp xếp tăng dần của thời điểm kết thúc

Trang 8

Hoạt động am mà ta chọn khi giải quyết một bài toán con thì luôn là một hoạt động với thời điểm kết thúc sớm nhất mà có thể được lập lịch hợp lý Hoạt động được chọn như vậy là chọn lựa “tham lam” trong hướng này, qua trực giác, nó để lại nhiều cơ hội có thể cho những hoạt động còn lại để lập lịch.Đó

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

Bây giờ ta đã thấy cách tổ chức hiệu quả giải pháp quy hoạch động, và cách xử lý nó theo phương pháp từ trên xuống, ta xem một giải thuật mà nó hoạt động một cách thuần tuý trong thuật toán tham lam, kiểu từ trên xuống.Dễ hiểu, một giải thuật đệ quy như là thủ tục RECURSIVE-ACTIVITY-SELECTOR

Nó lấy thời điểm bắt đầu và kết thúc của các hoạt động, được trình bày như các mảng s và f, xem như

n hoạt động đưa vào được sắp xếp theo thời điểm kết thúc tăng dần, theo công thức (16.1) nếu không, ta

có thể sắp xếp chúng theo thứ tự này với độ phức tạp O(n lgn), phá vỡ sự ràng buộc một cách tuỳ tiện

RECURSIVE-ACTIVITY-SELECTOR (s ,f ,i, n)

1 mi+1

3 do m m+1

4 if m < n

6 else return Ø

Minh hoạ 16.1 chỉ ra sự thực hiện của thuật toán.Trong việc gọi đệ quy của

RECURSIVE-ACTIVITY-SELECTOR(s,f,i,n), vòng lặp while của dòng 2-3 tìm kiếm hoạt động đầu tiên trong vòng lặp

RECURSIVE-ACTIVITY-SELECTOR(s,f,m,n).Một cách lựa chọn, vòng lặp có thể giới hạn bởi m>n, trong trường hợp này ta đã có

Trang 9

6 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-ACTIVITY-SELECTOR thì hầu như “đệ qui yếu“ (xem bài toán 7-4): nó kết thúc với lời gọi đệ quy chính nó theo một sự thực hiện kết hợp.Dễ dàng để thay đổi một giải thuật đệ qui yếu thành giải thuật lặp, thật ra, một

số trình biên dịch cho ngôn ngữ lập trình bất kỳ thực hiện công việc này một cách tự động Như đã được

mà có các hoạt động kết thúc cuối cùng

Giải thuật GREEDY-ACTIVITY-SELECTOR là một phiên bản lặp của giải thuật RECURSIVE-ACTIVITY-SELECTOR, ở đây cũng giả sử các hoạt động đầu vào được sắp xếp theo thời điểm kết thúc tăng dần Nó tập hợp các hoạt động được chọn vào một tập A và quay lại tập này khi nó đã được thực hiện xong

Trang 11

Hình 16.1 Sự thực hiện của RECURSIVE-ACTIVITY-SELECTOR trong hoạt động 11 được cho sớm

hơn.Các hoạt động đã được xem trong mỗi lời đệ quy xuất hiện giữa những đường kẻ ngang.Hoạt động không có thật a 0 kết thúc tại thời điểm 0, và trong lời gọi ban đầu RECURSIVE-ACTIVITY-SELECTOR (s,f,0,11), hoạt động a 1 được chọn.Trong mỗi lời gọi đệ quy, những hoạt động mà đã được chọn được tô đen, và các hoạt động tmàu tô trắng đang được xem xét Nếu thời gian bắt đầu của một hoạt động xảy ra trước thời gian kêt thúc của hoạt động mới được chọn (mũi tên giữa chúng chỉ sang trái), nó bị loại Trái lại(mũi tên chỉ trực tiếp hay qua phải), nó được chọn Lời gọi đệ quy cuối cùng, RECURSIVE-ACTIVITY-SELECTOR (s, f, 0, 11) trả về Ø Tập kết quả của các hoạt động được chọn là{a 1 , a 4 , a 8 , a 11 }.

GREEDY-ACTIVITY-SELECTOR(s,f)

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

fi = max{fk : ak ϵA}(16.4)

Trang 12

chọn trước đó Một hoạt động như vậy là hoạt động kết thúc sớm nhấttrong S i ,n+1 Để thấy nếu hoạt

m Tập A quay lại bởi lời gọi GREEDY-ACTIVITY-SELECTOR(s,f) là chính xác tập được quay lại bởi lời gọi RECURSIVE-ACTIVITY-SELECTOR(s,f, 0, n ).

Giống như phiên bản đệ quy, GREEDY-ACTIVITY-SELECTOR lập lịch một tập của n hoạt động

thúc của 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 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

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

Trang 13

Giả sử rằng thay vì luôn chọn 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 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ó 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 nối các hoạt động không tương ứng.Xác định số màu nhỏ nhất cần thiết tô cho các đỉnh để không có 2 đỉnh liền kề cùng màu tương đương với việc tìm số giảng đường ít nhất cần cho việc lên lịch các 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 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

Trang 14

về thời gian ngắn nhất từ chúng tương thích với các hoạt động đã lựa chọn trước đó không thực hiện được.Làm tương tự với các pp tiếp cận luôn chọn hoạt động tương thích chồng chéo các hoạt động khác ít nhất còn lại và luôn chọn hoạt động còn lại tương thích với thời gian bắt đầu sớm nhất

[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 khi ta nói về các tập hợp Sij như bài toán con không chỉ là các tập hợp hoạt động.Điều đó sẽ luôn rõ ràng từ ngữ cảnh cho dù chúng ta đang đề cập tới Sij như tập các hoạt động hay bài toán con có đầu vào

là 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 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 đệ 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

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

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w