greedy algorithms, part 1: introduction and examples

16
GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES Marcus Ritt CMP 601 – Algorithms and Theory of Computation — <2020-04-14 ter> 1

Upload: others

Post on 14-Apr-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

GREEDY ALGORITHMS, PART 1:INTRODUCTION AND EXAMPLES

Marcus RittCMP 601 – Algorithms and Theory of Computation —<2020-04-14 ter>

1

Page 2: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLESOutline

1. Introduction

2. Examples

2

Page 3: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

1 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

INTRODUCTION

Definition

• There’s no universal definition of a greedy algorithm• Construct solution via series of local (myopic) decisions.• Usually: build solution elementwise.• Also possible: elementwise removal until solution remains.

3

tikopro
tikopro
tikopro
Page 4: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

1 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

INTRODUCTION

Example: TSP

Greedy construction of a TSP tour: Greedy, Nearestneighbor

Greedy chiseling of a TSP tour

4

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 5: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

1 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

INTRODUCTION

Example: TSP

(Johnson, McGeoch, 1995)

5

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 6: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

1 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

INTRODUCTION

Tree view

• Related view: search tree• Take local, myopic best choice• This selects a single path to a full solution.

6

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 7: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

1 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

INTRODUCTION

Subset systems

• Universe U , familiy V of subsets of U

• V closed under inclusion• Corresponding optimization problem: given wu ≥ 0, u ∈ U ,

findargmax

S∈Vw(S)

7

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 8: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

1 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

INTRODUCTION

Subset systems

• Corresponding (natural) greedy algorithm

S := ∅while U 6= ∅

select u ∈ U with wu maximalU := U \ {u}if S ∪ {u} ∈ V

S := S ∪ {u}end if

end whilereturn S

8

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 9: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

2 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

EXAMPLES

Interval scheduling

• Intervals [s1, f1], . . . , [sn, fn]• Find largest non-overlapping set• Solution: order intervals by non-increasing fi, repeatedly take

first, remove overlapping• Main argument: The greedy algorithm stays ahead.

9

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Maximum independent set on an interval graph
Page 10: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

2 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

EXAMPLES

Interval coloring 1

• Extended interval scheduling: find the smallest number ofprocessors to do all intervals

• Equivalent: find the smallest coloring of the intervals (eachprocessor is a color)

• (Coloring = partition into independent sets.)

10

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Minimum coloring of an interval graph
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 11: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

2 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

EXAMPLES

Interval coloring 2

• Define depth as the maximum number of simultaneouslyoverlapping intervals

• Observation: depth d is a lower bound: we need at least dprocessors.

• Now: if an algorithm that uses at most d it’s optimal!

11

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 12: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

2 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

EXAMPLES

Interval coloring 3

• Work with "colors" 1, 2, . . . , d

GIC()Sort intervals by non-decreasing start times si

for i = 1, 2, . . . , nassign the first free color to interval i (*)

end

• Here: color is free for i, of no overlapping predecessor uses it• Claim: (*) never fails: otherwise we’d have d overlapping

intervals with i, and thus depth > d.• By construction: overlapping intervals have different colors.• Consequence: GIC is optimal.

12

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 13: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

2 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

EXAMPLES

1 ||∑

wjCj

• n jobs with some weights wj and time pj , j ∈ [n].• Find a schedule such that

∑j wjCj is minimal.

• Observation: optimal schedule is a left-shift schedule.• Exchange argument shows: no pair i, i + 1 has

wi/pi < wi+1/pi+1

• Thus: optimal schedule is free of inversions of that kind.• And: all inversion-free left-shift schedules have the same value.• Thus: sorting by non-increasing wi/pi solves the problem.

13

tikopro
tikopro
tikopro
Page 14: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

2 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

EXAMPLES

1 || Lmax 1

• Schedule n jobs on a single processor• Each job: processing time pj and due date dj

• If job completes at time Cj its lateness isLj = max{Cj − dj , 0}.

• Find a schedule that minimizes the maximum lateness

Lmax = maxj∈[n]

Lj

• Observation: optimal schedule is left-shift (no idle time).

14

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 15: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

2 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

EXAMPLES

1 || Lmax 2

• Claim: We can always order the jobs by earliest due dated1 ≤ · · · ≤ dn

• Proof: an exchange argument: for contraduction, assume twoconsecutive jobs i and j, with di > dj

• We have Lmax = max{L, Li, Lj} for remaining latenesses L

• After swapping:

L′i = max{0, C ′

i − di} (1)= max{0, Cj − di} ≤ max{0, Cj − dj} = Lj (2)

L′j ≤ Lj (3)

• Thus: L′max = max{L, L′

i, L′j} ≤ Lmax.

15

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
Page 16: GREEDY ALGORITHMS, PART 1: INTRODUCTION AND EXAMPLES

2 GREEDY ALGORITHMS, PART1: INTRODUCTION ANDEXAMPLES

EXAMPLES

1 || Lmax 3

• So: an optimal schedule is left-shift, and has no inversiondi > dj .

• All such schedules have the same maximum lateness (Proof:another simple exchange argument)

• Thus: a greedy EDD (earliest due date) order is optimal.

16

tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro
tikopro