• 沒有找到結果。

Algorithm Design and Analysis Greedy Algorithms (2)

N/A
N/A
Protected

Academic year: 2022

Share "Algorithm Design and Analysis Greedy Algorithms (2)"

Copied!
22
0
0

加載中.... (立即查看全文)

全文

(1)

Greedy Algorithms (2)

(2)

Outline

• Greedy Algorithms

• Greedy #1: Activity-Selection / Interval Scheduling

• Greedy #2: Coin Changing

• Greedy #3: Fractional Knapsack Problem

• Greedy #4: Breakpoint Selection

• Greedy #5: Huffman Codes

• Greedy #6: Task-Scheduling

• Greedy #7: Scheduling to Minimize Lateness

(3)

Algorithm Design Strategy

• Do not focus on “specific algorithms”

• But “some strategies” to “design” algorithms

• First Skill: Divide-and-Conquer (各個擊破/分治)

• Second Skill: Dynamic Programming (動態規劃)

• Third Skill: Greedy (貪婪法則)

(4)

Greedy #6: Task-Scheduling

Textbook Exercise 16.2-2

(5)

Task-Scheduling Problem

• Input: a finite set 𝑆 = 𝑎

1

, 𝑎

2

, … , 𝑎

𝑛

of 𝑛 unit-time tasks, their

corresponding integer deadlines 𝑑

1

, 𝑑

2

, … , 𝑑

𝑛

(1 ≤ 𝑑

𝑖

≤ 𝑛), and nonnegative penalties 𝑤

1

, 𝑤

2

, … , 𝑤

𝑛

if 𝑎

𝑖

is not finished by time 𝑑

𝑖

• Output: a schedule that minimizes the total penalty

Job 1 2 3 4 5 6 7

Deadline (𝑑𝑖) 1 2 3 4 4 4 6

Penalty (w𝑖) 30 60 40 20 50 70 10

𝑎2 𝑎3 𝑎6 𝑎5

Penalty 30

𝑎7 𝑎1 𝑎4

20

(6)

Task-Scheduling Problem

• Let a schedule 𝐻 is the OPT

• A task 𝑎

𝑖

is late in 𝐻 if 𝑓 𝐻, 𝑖 > 𝑑

𝑗

• A task 𝑎

𝑖

is early in 𝐻 if 𝑓 𝐻, 𝑖 ≤ 𝑑

𝑗

• We can have an early-first schedule 𝐻′ with the same total penalty (OPT)

Task-Scheduling Problem

Input: 𝑛 tasks with their deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 and penalties 𝑤1, 𝑤2, … , 𝑤𝑛 Output: the schedule that minimizes the total penalty

𝑎2 𝑎3 𝑎6 𝑎5

0 n

Penalty 2

𝑎7 𝑎04

Task 1 2 3 4 5 6 7

𝑑𝑖 1 2 3 4 4 4 6

w𝑖 30 60 40 20 50 70 10

𝑎1 30 𝑎2 𝑎3 𝑎6 𝑎5

0 n

Penalty 3

𝑎7 𝑎01 𝑎4

20

𝐻′

𝐻

If the late task proceeds the early task, switching them makes the early one earlier and late one still late

(7)

Possible Greedy Choices

• Rethink the problem: “maximize the total penalty for the set of early tasks”

• Greedy idea

• Largest-penalty-first w/o idle time?

• Earliest-deadline-first w/o idle time?

𝑎2 𝑎3 𝑎6 𝑎5

0 n

Penalty 2

𝑎7 𝑎04 𝑎1 30

Task 1 2 3 4 5 6 7

𝑑𝑖 1 2 3 4 4 4 6

w𝑖 30 60 40 20 50 70 10 60 40 70 50 10

Task-Scheduling Problem

Input: 𝑛 tasks with their deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 and penalties 𝑤1, 𝑤2, … , 𝑤𝑛 Output: the schedule that minimizes the total penalty

(8)

Prove Correctness

• Greedy choice: select the largest-penalty task into the early set if feasible

• Proof via contradiction

• Assume that there is no OPT including this greedy choice

• If OPT processes 𝑎𝑖 after 𝑑𝑖, we can switch 𝑎𝑗 and 𝑎𝑖 into OPT’

• The maximum penalty must be equal or lower, because 𝑤

𝑖

≥ 𝑤

𝑗

𝑎𝑗

0 n

Penalty 𝑤𝑖

𝑎𝑖 𝑑𝑖

𝑎𝑖

0 n

Penalty

𝑎𝑗 𝑑𝑖

𝑤𝑗

𝑤𝑖 ≥ 𝑤𝑘 for all 𝑎𝑘 in the early set Task-Scheduling Problem

Input: 𝑛 tasks with their deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 and penalties 𝑤1, 𝑤2, … , 𝑤𝑛 Output: the schedule that minimizes the total penalty

(9)

Prove Correctness

• Greedy algorithm

Task-Scheduling(n, d[], w[])

sort tasks by penalties s.t. w[1] ≥ w[2] ≥ … ≥ w[n]

for i = 1 to n

find the latest available index j <= d[i]

if j > 0

A = A ∪ {i}

mark index j unavailable

return A // the set of early tasks

Can it be better?

Task-Scheduling Problem

Input: 𝑛 tasks with their deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 and penalties 𝑤1, 𝑤2, … , 𝑤𝑛 Output: the schedule that minimizes the total penalty

(10)

Example Illustration

Job 1 2 3 4 5 6 7

Deadline (𝑑

𝑖

) 4 2 4 3 1 4 6

Penalty (w

𝑖

) 70 60 50 40 30 20 10

𝑎1 𝑎3

𝑎4 𝑎2

0 1 2 3 4 5 6 7

Total penalty = 30 + 20 = 50

2 𝑎7 𝑎5 𝑎06

30

Practice: how about the greedy algorithm using “earliest-deadline-first”

(11)

Greedy #7:

Scheduling to Minimize Lateness

(12)

Scheduling to Minimize Lateness

• Input: a finite set 𝑆 = 𝑎

1

, 𝑎

2

, … , 𝑎

𝑛

of 𝑛 tasks, their processing time 𝑡

1

, 𝑡

2

, … , 𝑡

𝑛

, and integer deadlines 𝑑

1

, 𝑑

2

, … , 𝑑

𝑛

• Output: a schedule that minimizes the maximum lateness

Job 1 2 3 4

Processing Time (𝑡𝑖) 3 5 3 2

Deadline (𝑑𝑖) 4 6 7 8

𝑎4 𝑎1 𝑎3 𝑎2

0 2 5 8 13

Lateness 0 1 1 7

(13)

Scheduling to Minimize Lateness

• Let a schedule 𝐻 contains 𝑠 𝐻, 𝑗 and 𝑓 𝐻, 𝑗 as the start time and finish time of job 𝑗

• 𝑓 𝐻, 𝑗 − 𝑠 𝐻, 𝑗 = 𝑡

𝑗

• Lateness of job 𝑗 in 𝐻 is 𝐿 𝐻, 𝑗 = max 0, 𝑓 𝐻, 𝑗 − 𝑑

𝑗

• The goal is to minimize max

𝑗

𝐿 𝐻, 𝑗 = max

𝑗

0, 𝑓 𝐻, 𝑗 − 𝑑

𝑗

Scheduling to Minimize Lateness Problem

Input: 𝑛 tasks with their processing time 𝑡1, 𝑡2, … , 𝑡𝑛, and deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 Output: the schedule that minimizes the maximum lateness

(14)

Possible Greedy Choices

• Greedy idea

• Shortest-processing-time-first w/o idle time?

• Earliest-deadline-first w/o idle time?

Practice: prove that any schedule w/ idle is not optimal

Scheduling to Minimize Lateness Problem

Input: 𝑛 tasks with their processing time 𝑡1, 𝑡2, … , 𝑡𝑛, and deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 Output: the schedule that minimizes the maximum lateness

(15)

Possible Greedy Choices

• Idea

• Shortest-processing-time-first w/o idle time?

Job 1 2

Processing Time (𝑡𝑖) 1 2

Deadline (𝑑𝑖) 10 2

𝑎1 𝑎2

0 1 3

Lateness 0 1

𝑎2 𝑎1

0 2 3

Lateness 0 0

Scheduling to Minimize Lateness Problem

Input: 𝑛 tasks with their processing time 𝑡1, 𝑡2, … , 𝑡𝑛, and deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 Output: the schedule that minimizes the maximum lateness

(16)

Possible Greedy Choices

• Idea

• Earliest-deadline-first w/o idle time?

• Greedy algorithm

Min-Lateness(n, t[], d[])

sort tasks by deadlines s.t. d[1]≤d[2]≤ ...≤d[n]

ct = 0 // current time for j = 1 to n

assign job j to interval (ct, ct + t[j]) s[j] = ct

f[j] = s[j] + t[j]

ct = ct + t[j]

return s[], f[]

Scheduling to Minimize Lateness Problem

Input: 𝑛 tasks with their processing time 𝑡1, 𝑡2, … , 𝑡𝑛, and deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 Output: the schedule that minimizes the maximum lateness

(17)

Prove Correctness – Greedy-Choice Property

• Greedy choice: first select the task with the earliest deadline

• Proof via contradiction

• Assume that there is no OPT including this greedy choice

• If OPT processes 𝑎1 as the 𝑖-th task (𝑎𝑘), we can switch 𝑎𝑘 and 𝑎1 into OPT’

• The maximum lateness must be equal or lower → 𝐿 OPT′ ≤ 𝐿 OPT exchange argument

Scheduling to Minimize Lateness Problem

Input: 𝑛 tasks with their processing time 𝑡1, 𝑡2, … , 𝑡𝑛, and deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 Output: the schedule that minimizes the maximum lateness

(18)

Prove Correctness – Greedy-Choice Property

𝑎𝑘 𝑎1

L(OPT, k)

𝑎1 𝑎𝑘

L(OPT’, 1) L(OPT’, k) L(OPT, 1) OPT

OPT’

If 𝑎𝑘 is not late in OPT’: If 𝑎𝑘 is late in OPT’:

Generalization of this property?

Scheduling to Minimize Lateness Problem

Input: 𝑛 tasks with their processing time 𝑡1, 𝑡2, … , 𝑡𝑛, and deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 Output: the schedule that minimizes the maximum lateness

(19)

Prove Correctness – No Inversions

• There is an optimal scheduling w/o inversions given 𝑑

1

≤ 𝑑

2

≤ ⋯ ≤ 𝑑

𝑛

• 𝑎

𝑖

and 𝑎

𝑗

are inverted if 𝑑

𝑖

< 𝑑

𝑗

but 𝑎

𝑗

is scheduled before 𝑎

𝑖

• Proof via contradiction

• Assume that OPT has 𝑎

𝑖

and 𝑎

𝑗

that are inverted

• Let OPT’ = OPT but 𝑎

𝑖

and 𝑎

𝑗

are swapped

• OPT’ is equal or better than OPT → 𝐿 OPT′ ≤ 𝐿 OPT

Scheduling to Minimize Lateness Problem

Input: 𝑛 tasks with their processing time 𝑡1, 𝑡2, … , 𝑡𝑛, and deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 Output: the schedule that minimizes the maximum lateness

(20)

Prove Correctness – No Inversions

𝑎𝑗 𝑎𝑖

L(OPT, j)

𝑎𝑖 𝑎𝑗

L(OPT’, i) L(OPT’, j) L(OPT, i) OPT

OPT’

If 𝑎𝑗 is not late in OPT’: If 𝑎𝑗 is late in OPT’:

……

……

The earliest-deadline-first greedy algorithm is optimal

Optimal Solution

Greedy Choice

Subproble m Solution

= +

Scheduling to Minimize Lateness Problem

Input: 𝑛 tasks with their processing time 𝑡1, 𝑡2, … , 𝑡𝑛, and deadlines 𝑑1, 𝑑2, … , 𝑑𝑛 Output: the schedule that minimizes the maximum lateness

(21)

Concluding Remarks

• “Greedy”: always makes the choice that looks best at the moment in the hope that this choice will lead to a globally optimal solution

• When to use greedy

• Whether the problem has optimal substructure

• Whether we can make a greedy choice and remain only one subproblem

• Common for optimization problem

• Prove for correctness

• Optimal substructure

• Greedy choice property

Optimal Solution

Greedy Choice

Subproblem Solution

= +

(22)

Important announcement will be sent to

@ntu.edu.tw mailbox & post to the course website

Course Website: http://ada.miulab.tw Email: ada-ta@csie.ntu.edu.tw

參考文獻

相關文件

✓ Combining an optimal solution to the subproblem via greedy can arrive an optimal solution to the original problem.. Prove that there is always an optimal solution to the

Greedy-Choice Property : making locally optimal (greedy) choices leads to a globally optimal

 “Greedy”: always makes the choice that looks best at the moment in the hope that this choice will lead to a globally optimal solution.  When to

In this work, for a locally optimal solution to the NLSDP (2), we prove that under Robinson’s constraint qualification, the nonsingularity of Clarke’s Jacobian of the FB system

In this work, for a locally optimal solution to the nonlin- ear SOCP (4), under Robinson’s constraint qualification, we show that the strong second-order sufficient condition

● 應用 Greedy choice,將問題劃分成子問題,根據 optimal. substructure,可以持續應用

● 應用 Greedy choice ,將問題劃分成子問題,根據 optimal su bstructure ,可以持續應用 Greedy choice

 Combining an optimal solution to the subproblem via greedy can arrive an optimal solution to the original problem. Prove that there is always an optimal solution to the