algorithm design and analysis n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Algorithm Design and Analysis PowerPoint Presentation
Download Presentation
Algorithm Design and Analysis

Loading in 2 Seconds...

play fullscreen
1 / 14

Algorithm Design and Analysis - PowerPoint PPT Presentation


  • 102 Views
  • Uploaded on

L ECTURE 6 Greedy Algorithms Cont’d Minimizing lateness. Algorithm Design and Analysis. CSE 565. Adam Smith. Greedy Algorithms. Build up a solution to an optimization problem at each step shortsightedly choosing the option that currently seems the best. Sometimes good

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Algorithm Design and Analysis' - vine


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
algorithm design and analysis

LECTURE 6

  • Greedy Algorithms Cont’d
  • Minimizing lateness

Algorithm Design and Analysis

CSE

565

Adam Smith

A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne

greedy algorithms
Greedy Algorithms
  • Build up a solution to an optimization problem at each step shortsightedly choosing the option that currently seems the best.
    • Sometimes good
    • Often does not work
    • Proving correctness can be tricky, because algorithm is unstructured

A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne

last lecture kt chapter 4 1
Last lecture (KT, Chapter 4.1)

Two types of correctness arguments

  • “Greedy stays ahead”
    • Interval scheduling problem
  • “Structural argument”
    • Interval partitioning
  • Today: “exchange”

a

b

c

d

e

j

4

e

g

c

d

3

b

h

2

f

a

f

i

1

g

3

3:30

4

4:30

9:30

10

10:30

11

11:30

12

12:30

1

1:30

9

2

2:30

h

Time

0

1

2

3

4

5

6

7

8

9

10

11

A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne

scheduling to minimize lateness

Scheduling to minimize lateness

A. Smith; based on slides by E. Demaine, C. Leiserson, S. Raskhodnikova, K. Wayne

scheduling to minimizing lateness

1

2

3

4

5

6

tj

3

2

1

4

3

2

dj

6

8

9

9

14

15

Scheduling to Minimizing Lateness
  • Minimizing lateness problem.
    • Single resource processes one job at a time.
    • Job j requires tj units of processing time and is due at time dj.
    • If j starts at time sj, it finishes at time fj = sj + tj.
    • Lateness: j = max { 0, fj - dj }.
    • Goal: schedule all jobs to minimize maximumlateness L = max j.
  • Ex:

lateness = 2

lateness = 0

max lateness = 6

d3 = 9

d2 = 8

d6 = 15

d1 = 6

d5 = 14

d4 = 9

12

13

14

15

0

1

2

3

4

5

6

7

8

9

10

11

minimizing lateness greedy algorithms
Minimizing Lateness: Greedy Algorithms
  • Greedy template. Consider jobs in some order.
    • [Shortest processing time first] Consider jobs in ascending order of processing time tj.
    • [Earliest deadline first] Consider jobs in ascending order of deadline dj.
    • [Smallest slack] Consider jobs in ascending order of slack dj - tj.
minimizing lateness greedy algorithms1

1

1

2

2

1

1

10

10

2

100

10

10

Minimizing Lateness: Greedy Algorithms
  • Greedy template. Consider jobs in some order.
    • [Shortest processing time first] Consider jobs in ascending order of processing time tj.
    • [Smallest slack] Consider jobs in ascending order of slack dj - tj.

tj

counterexample

dj

tj

counterexample

dj

minimizing lateness greedy algorithm

d1 = 6

d2 = 8

d3 = 9

d4 = 9

d5 = 14

d6 = 15

Minimizing Lateness: Greedy Algorithm
  • Greedy algorithm. Earliest deadline first.

Sort n jobs by deadline so that d1 d2 …  dn

t  0

for j = 1 to n

Assign job j to interval [t, t + tj]

sj t, fj  t + tj

t  t + tj

output intervals [sj, fj]

max lateness = 1

12

13

14

15

0

1

2

3

4

5

6

7

8

9

10

11

minimizing lateness no idle time
Minimizing Lateness: No Idle Time
  • Observation. There exists an optimal schedule with noidle time.
  • Observation. The greedy schedule has no idle time.

d = 4

d = 6

d = 12

0

1

2

3

4

5

6

7

8

9

10

11

d = 4

d = 6

d = 12

0

1

2

3

4

5

6

7

8

9

10

11

minimizing lateness inversions
Minimizing Lateness: Inversions
  • Def. An inversion in schedule S is a pair of jobs i and j such that:i < j but j scheduled before i.
  • Observation. Greedy schedule has no inversions.
  • Observation. If a schedule (with no idle time) has an inversion, it has one with a pair of inverted jobs scheduled consecutively.

inversion

before swap

j

i

minimizing lateness inversions1
Minimizing Lateness: Inversions
  • Def. An inversion in schedule S is a pair of jobs i and j such that:i < j but j scheduled before i.
  • Claim. Swapping two adjacent, inverted jobs reduces the number of inversions by one and does not increase the max lateness.
  • Pf. Let  be the lateness before the swap, and let  ' be it afterwards.
    • 'k = k for all k  i, j
    • 'ii
    • If job j is late:

inversion

fi

before swap

j

i

after swap

i

j

f'j

minimizing lateness analysis of greedy algorithm
Minimizing Lateness: Analysis of Greedy Algorithm
  • Theorem. Greedy schedule S is optimal.
  • Pf. Define S* to be an optimal schedule that has the fewest number of inversions, and let's see what happens.
    • Can assume S* has no idle time.
    • If S* has no inversions, then S = S*.
    • If S* has an inversion, let i-j be an adjacent inversion.
      • swapping i and j does not increase the maximum lateness and strictly decreases the number of inversions
      • this contradicts definition of S* ▪
greedy analysis strategies
Greedy Analysis Strategies
  • Greedy algorithm stays ahead. Show that after each step of the greedy algorithm, its solution is at least as good as any other algorithm's.
  • Exchange argument. Gradually transform any solution to the one found by the greedy algorithm without hurting its quality.
  • Structural. Discover a simple "structural" bound asserting that every possible solution must have a certain value. Then show that your algorithm always achieves this bound.