Download - CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Transcript
Page 1: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

CompSci 102CompSci 102Spring 2012Spring 2012

Prof. RodgerProf. Rodger

January 11, 2012January 11, 2012

Page 2: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Announcements/LogisticsAnnouncements/Logistics

No recitation Friday the 13No recitation Friday the 13thth (tomorrow) (tomorrow)

Read the information/policies about Read the information/policies about this course on the course web site.this course on the course web site.

www.cs.duke.edu/courses/spring12/cps102

Page 3: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Please feel free to ask questions!

((( )))

Page 4: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Pancakes With A Problem!Pancakes With A Problem!

Lecture adapted from Bruce Maggs/Lecture developed at Carnegie Mellon, primarily by Prof. Steven Rudich.

Page 5: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

The chef at our place is sloppy, and when he prepares a stack of

pancakes they come out all different sizes.

Therefore, when I deliver them to a customer, on the way to the

table I rearrange them (so that the smallest winds up on top, and so

on, down to the largest at the bottom).

I do this by grabbing several from the top and flipping them over,

repeating this (varying the number I flip) as many times as necessary.

Page 6: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Developing A Notation:Developing A Notation:Turning pancakes into numbersTurning pancakes into numbers

Page 7: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Developing A Notation:Developing A Notation:Turning pancakes into numbersTurning pancakes into numbers

1

2

3

4

5

Page 8: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Developing A Notation:Developing A Notation:Turning pancakes into numbersTurning pancakes into numbers

2

3

4

5

1

Page 9: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Developing A Notation:Developing A Notation:Turning pancakes into numbersTurning pancakes into numbers

52341

Page 10: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

How do we sort this stack?How do we sort this stack?How many flips do we need?How many flips do we need?

52341

Page 11: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

4 Flips Are Sufficient4 Flips Are Sufficient

12345

52341

43215

23415

14325

Page 12: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Algebraic RepresentationAlgebraic Representation

52341

X = The smallest number of flips required to sort:

? X ?Upper Bound

Lower Bound

Page 13: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Algebraic RepresentationAlgebraic Representation

52341

X = The smallest number of flips required to sort:

? X 4Upper Bound

Lower Bound

Page 14: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

4 Flips Are Necessary4 Flips Are Necessary

52341

41325

14325

If we could do it in 3 flips

Flip 1 has to put 5 on bottom

Flip 2 must bring 4 to top (if it didn’t we’d need more than 3 flips).

Page 15: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

? X 4Lower Bound

Page 16: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Upper Bound

Lower Bound

4 X 4

X = 4

Page 17: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

55thth Pancake Number Pancake Number

P5 = The number of flips required to sort the

worst case stack of 5 pancakes.

? P5 ?Upper Bound

Lower Bound

Page 18: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

55thth Pancake Number Pancake Number

P5 = The number of flips required to sort the

worst case stack of 5 pancakes.

4 P5 ?Upper Bound

Lower Bound

Page 19: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

55thth Pancake Number Pancake Number

P5 = The number of flips required to sort the

worst case stack of 5 pancakes.

4 P5 ?Upper Bound

Lower Bound

How many different pancake stacks are there with 5 unique

elements?

Page 20: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

The 5The 5thth Pancake Number: Pancake Number: The MAX of the X’sThe MAX of the X’s

120

1119

32 . . . . . . .

X1 X2 X3 X119 X120

52341

4

Page 21: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

P5 = MAX over s stacks of 5 of MIN # of flips to sort s

120

1119

32 . . . . . . .

X1 X2 X3 X119 X120

52341

4

Page 22: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Pn

MAX over s stacks of n pancakes of

MIN # of flips to sort s

Or,

The number of flips required to sort a

worst-case stack of n pancakes.

Page 23: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Be Cool.

Learn Math-speak.

Pn = The number of flips required to sort a worst-case stack of n

pancakes.

Page 24: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

What is Pn for small n?

Can you do n = 0, 1, 2, 3 ?

Page 25: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Initial Values Of Pn

n 0 1 2 3

Pn 0 0 1 3

Page 26: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

PP33 = 3 = 3

11332 requires 3 Flips, hence 2 requires 3 Flips, hence PP33 ¸̧ 3. 3.

ANYANY stack of 3 can be done in stack of 3 can be done in 33 flips. flips.

Get the big one to the bottom (Get the big one to the bottom (·· 2 flips). 2 flips).

Use Use ·· 1 more flip to handle the top two. 1 more flip to handle the top two.

Hence, Hence, PP33 ·· 3. 3.

Page 27: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

nth Pancake Number

Pn = Number of flips required to sort a worst case stack of n

pancakes.

? Pn ?Upper Bound

Lower Bound

Page 28: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

? Pn ?

Take a few minutes to try

and prove bounds on Pn,

for n>3.

Page 29: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Bring To Top Method

Bring biggest to top. Place it on bottom. Bring next largest to

top. Place second from

bottom. And so on…

Page 30: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Upper Bound On PUpper Bound On Pnn::Bring To Top Method For n Bring To Top Method For n

PancakesPancakesIf n=1, no work - we are done.If n=1, no work - we are done.

Else: Else: flip pancake n to topflip pancake n to top and then and then flip it to position nflip it to position n..

Now use: Now use: Bring To Top Method Bring To Top Method For n-1 PancakesFor n-1 Pancakes

Total Cost: at most 2(n-1) = 2n –2 flips.

Page 31: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Better Upper Bound On PBetter Upper Bound On Pnn::Bring To Top Method For n Bring To Top Method For n

PancakesPancakesIf n=2, use one flip and we are done.If n=2, use one flip and we are done.

Else: flip pancake n to top and then Else: flip pancake n to top and then flip it to position n.flip it to position n.

Now use: Now use: Bring To Top Method Bring To Top Method For n-1 PancakesFor n-1 Pancakes

Total Cost: at most 2(n-2) + 1 = 2n –3 flips.

Page 32: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Bring to top not always optimal Bring to top not always optimal for a particular stackfor a particular stack

5 flips, but can be done in 4 flips5 flips, but can be done in 4 flips

32145

52341

23145

41325

14325

Page 33: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

? Pn 2n - 3

What bounds can you prove on

Pn?

Page 34: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

9

16

Breaking Apart ArgumentBreaking Apart Argument

Suppose a stack S contains a pair Suppose a stack S contains a pair of adjacent pancakes that will not of adjacent pancakes that will not be adjacent in the sorted stack. be adjacent in the sorted stack.

Any sequence of flips that sorts Any sequence of flips that sorts stack S must involve one flip that stack S must involve one flip that inserts the spatula between that inserts the spatula between that pair and breaks them apart. pair and breaks them apart.

Page 35: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

916

Breaking Apart ArgumentBreaking Apart Argument

Suppose a stack S contains a pair Suppose a stack S contains a pair of adjacent pancakes that will not of adjacent pancakes that will not be adjacent in the sorted stack. be adjacent in the sorted stack.

Any sequence of flips that sorts Any sequence of flips that sorts stack S must involve one flip that stack S must involve one flip that inserts the spatula between that inserts the spatula between that pair and breaks them apart. pair and breaks them apart.

Furthermore, this same principle is Furthermore, this same principle is true of the “pair” formed by the true of the “pair” formed by the bottom pancake of S and the plate.bottom pancake of S and the plate.

Page 36: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

n n P Pnn

Suppose n is even. Suppose n is even.

Such a stack S contains n Such a stack S contains n pairs that must be broken pairs that must be broken apart during any apart during any sequence that sorts stack sequence that sorts stack S.S.

2468..n1357..

n-1

S

Page 37: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

n n P Pnn

Suppose n is even. Suppose n is even.

Such a stack S contains n Such a stack S contains n pairs that must be broken pairs that must be broken apart during any apart during any sequence that sorts stack sequence that sorts stack S.S.

21

S

Detail: This construction only works when n>2

Page 38: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

n n P Pnn

Suppose n is odd. Suppose n is odd.

Such a stack S contains n Such a stack S contains n pairs that must be broken pairs that must be broken apart during any apart during any sequence that sorts stack sequence that sorts stack S.S.

1357..n2468..

n-1

S

Page 39: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

n n P Pnn

Suppose n is odd. Suppose n is odd.

Such a stack S contains n Such a stack S contains n pairs that must be broken pairs that must be broken apart during any apart during any sequence that sorts stack sequence that sorts stack S.S.

132

S

Detail: This construction only works when n>3

Page 40: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

n ≤ Pn ≤ 2n – 3 (for n ≥ 3)

Bring To Top is within a factor

of two of optimal!

Page 41: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

So starting from ANY stack we can get to

the sorted stack using no more than Pn

flips.

n ≤ Pn ≤ 2n – 3 (for n ≥ 3)

Page 42: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

From ANY stack to sorted stack in · Pn.

Reverse the sequences we use

to sort.

From sorted stack to ANY stack in · Pn ?

((( )))

Page 43: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

From ANY stack to sorted stack in · Pn.

From sorted stack to ANY stack in · Pn.

Hence,

From ANY stack to ANY stack in · 2Pn.

Page 44: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

From ANY stack to ANY stack in · 2Pn.

Can you find a faster way

than 2Pn flips to go from

ANY to ANY?

((( )))

Page 45: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

From ANY Stack S to ANY stack T in · Pn

Rename the pancakes in T to be 1,2,3,..,n. T : 5, 2, 4, 3, 1Tnew : 1, 2, 3, 4, 5 π(5), π(2), π(4), π(3), π(1)

Rewrite S using (1),(2),..,(n)S : 4, 3, 5, 1, 2Snew : π(4), π(3), π(5), π(1), π(2) 3, 4, 1, 5, 2

Page 46: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

From ANY Stack S to ANY stack T in · Pn

T : 5, 2, 4, 3, 1Tnew : 1, 2, 3, 4, 5

S : 4, 3, 5, 1, 2Snew : 3, 4, 1, 5, 2

The sequence of steps that brings Snew to Tnew (sorted stack) also brings S to T

Page 47: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

The Known Pancake NumbersThe Known Pancake Numbers

112233445566778899

1010111112121313

0011334455

n Pn

778899

10101111131314141515

Page 48: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

PP1414 Is Unknown Is Unknown

14! Orderings of 14 pancakes.14! Orderings of 14 pancakes.

14! = 87,178,291,20014! = 87,178,291,200

Page 49: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Is This Really Computer Science?Is This Really Computer Science?

Page 50: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Posed in Amer. Math. Monthly 82 (1) (1975), “Harry Dweighter” a.k.a. Jacob Goodman

Page 51: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

(17/16)n Pn (5n+5)/3

Bill Gates & Christos

Papadimitriou:

Bounds For Sorting By Prefix

Reversal.

Discrete Mathematics,

vol 27, pp 47-57, 1979.

Page 52: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

(15/14)n Pn (5n+5)/3

H. Heydari & Ivan H. Sudborough.

On the Diameter of the Pancake

Network.

Journal of Algorithms, vol 25, pp 67-94,

1997.

Page 53: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

PermutationPermutation

Any particular ordering of all n Any particular ordering of all n elements of an n element set S is elements of an n element set S is called a called a permutationpermutation on the set S. on the set S.

Example:Example: S = {1, 2, 3, S = {1, 2, 3, 4, 5}4, 5}

Example permutation:Example permutation: 5 3 2 4 1 5 3 2 4 1

120 possible permutations on S120 possible permutations on S

Page 54: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

PermutationPermutation

Any particular ordering of all n Any particular ordering of all n elements of an n element set S is elements of an n element set S is called a called a permutationpermutation on the set S. on the set S.

Each different stack of n pancakes is Each different stack of n pancakes is one of the permutations on [1..n].one of the permutations on [1..n].

Page 55: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Representing A PermutationRepresenting A Permutation

We have many choices of how to specify a We have many choices of how to specify a permutation on S. Here are two methods:permutation on S. Here are two methods:

1)1) List a sequence of all elements of [1..n], List a sequence of all elements of [1..n], each one written exactly once. each one written exactly once. Ex: 6 4 5 2 1 3Ex: 6 4 5 2 1 3

2)2) Give a function Give a function on S s.t. on S s.t. (1) (1) (2) (2) (3) .. (3) .. (n) is a sequence listing [1..n], each one (n) is a sequence listing [1..n], each one exactly once.exactly once.

Ex: Ex: (6)=3 (6)=3 (4)=2 (4)=2 (5)=1 (5)=1 (2)=4 (2)=4 (1)=6 (1)=6 (3)=5(3)=5

Page 56: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

A Permutation is a NOUNA Permutation is a NOUN

An ordering S of a stack of pancakes An ordering S of a stack of pancakes is a permutation. is a permutation.

Page 57: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

A Permutation is a NOUNA Permutation is a NOUN

An ordering S of a stack of pancakes is An ordering S of a stack of pancakes is a permutation.a permutation.

We can permute S to obtain a new We can permute S to obtain a new stack S’.stack S’.

PermutePermute also means to rearrange so also means to rearrange so as to obtain a permutation of the as to obtain a permutation of the original.original.

Permute is also a VERBPermute is also a VERB

Page 58: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Permute A Permutation.Permute A Permutation.

I start with a I start with a permutationpermutation S of S of

pancakes. pancakes. I continue to use a flip I continue to use a flip operation to operation to permutepermute

my current my current permutationpermutation, , so as to obtain the so as to obtain the

sorted sorted permutationpermutation..

Page 59: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Ultra-Useful FactUltra-Useful Fact

There are There are n! = n*(n-1)*(n-2) … n! = n*(n-1)*(n-2) … 3*2*13*2*1 permutations on permutations on nn elements. elements.

Proof: in the first counting lecture.Proof: in the first counting lecture.

Page 60: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Pancake NetworkPancake Network

This network has n! nodes This network has n! nodes

Assign each node the name of one of Assign each node the name of one of the possible n! stacks of pancakes.the possible n! stacks of pancakes.

Put a wire between two nodes Put a wire between two nodes if they are one flip apart.if they are one flip apart.

Page 61: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Network For n=3Network For n=3

123

321

213

312

231

132

Page 62: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Network For n=4Network For n=4

Page 63: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Pancake Network: Routing Delay Pancake Network: Routing Delay

What is the maximum distance What is the maximum distance between two nodes in the pancake between two nodes in the pancake network?network?

Pn

Page 64: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Pancake Network: ReliabilityPancake Network: Reliability

If up to n-2 nodes get hit by If up to n-2 nodes get hit by lightning the network remains lightning the network remains connected, even though each node connected, even though each node is connected to only n-1 other is connected to only n-1 other nodes. nodes.

The Pancake Network is optimally reliable for its number of edges and

nodes.

Page 65: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Mutation DistanceMutation Distance

Combinatorial “puzzle” to find the shortest series of reversals to

transform one genome into another

Page 66: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Journal of the ACM, Vol. 46, No 1, 1999. Journal of the ACM, Vol. 46, No 1, 1999.

Over 350 citations!

Page 67: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

One “Simple” Problem

A host of problems and applications

at the frontiers of

science

Page 68: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

Study Bee

Definitions of:Definitions of:

nth pancake nth pancake numbernumber

lower boundlower bound

upper boundupper bound

permutationpermutation

Proof of:Proof of:

ANY to ANY in ANY to ANY in ·· P Pnn

Page 69: CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.

ReferencesReferences

Bill Gates & Christos Papadimitriou: Bounds For Sorting By Prefix Reversal. Discrete Mathematics, vol 27, pp 47-57, 1979.

H. Heydari & H. I. Sudborough: On the Diameter of the Pancake Network. Journal of Algorithms, vol 25, pp 67-94, 1997