lecture01_pancakes

lecture01_pancakes - Discrete Mathematics for Computer...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: Discrete Mathematics for Computer Science Bruce Maggs Lecture 1 COMPSCI 102 Duke University Pancakes With A Problem! Course Staff Prof: Bruce Maggs TA: Bala Chandrasekaran Lectures developed at Carnegie Mellon, primarily by Prof. Steven Rudich. ((( Please feel free to ask questions! ))) Course Document You must read this carefully. 1. Grading formula for the course. 1. 40% homework 2. 30% quizzes 3. 30% final 2. 3. 1. You may NOT share written work. 2. We reuse homework problems. Seven points a day late penalty. Collaboration/Cheating Policy 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. Developing A Notation: Turning pancakes into numbers Developing A Notation: Turning pancakes into numbers 5 2 3 4 1 Developing A Notation: Turning pancakes into numbers 5 2 3 4 1 Developing A Notation: Turning pancakes into numbers 5 2 3 4 1 How do we sort this stack? How many flips do we need? 5 2 3 4 1 4 Flips Are Sufficient 5 2 3 4 1 1 4 3 2 5 2 3 4 1 5 4 3 2 1 5 1 2 3 4 5 Algebraic Representation 5 2 3 4 1 Upper Bound X= The smallest number of flips required to sort: ? X ? Lower Bound Algebraic Representation 5 2 3 4 1 Upper Bound X= The smallest number of flips required to sort: ? X 4 Lower Bound 4 Flips Are Necessary 5 2 3 4 1 1 4 3 2 5 4 1 3 2 5 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). ? X 4 Lower Bound 4 X Lower Bound Upper Bound 4 X=4 5th Pancake Number P5 = The number of flips required to sort the worst case stack of 5 pancakes. Upper Bound ? P5 ? Lower Bound 5th Pancake Number P5 = The number of flips required to sort the worst case stack of 5 pancakes. Upper Bound 4 P5 ? Lower Bound The 5th Pancake Number: The MAX of the X's 1 2 3 .. 5 2 .3. 4 1 ... 1 1 9 1 2 0 X1 X2 X3 4 X119 X120 P5 = MAX over s 2 stacks of 5 of MIN # of flips to sort s 1 2 3 .. 5 2 .3. 4 1 ... 1 9 9 1 2 0 X1 X2 X3 4 X119 X120 Pn MAX over s stacks of n pancakes of MIN # of flips to sort s Or, The number of flips required to sort a worstcase stack of n pancakes. Pn = The number of flips required to sort a worst case stack of n pancakes. Be Cool. Learn Math-speak. What is Pn for small n? Can you do n = 0, 1, 2, 3 ? Initial Values Of Pn n Pn 0 0 1 0 2 1 3 3 P3 = 3 1 3 2 requires 3 Flips, hence P3 3. ANY stack of 3 can be done in 3 flips. Get the big one to the bottom ( 2 flips). Use 1 more flip to handle the top two. Hence, P3 3. n Pancake Number th Pn = Number of flips required to sort a worst case stack of n pancakes. Upper Bound ? Pn ? Lower Bound ? Pn ? Take a few minutes to try and prove bounds on Pn, for n>3. Bring To Top Method Bring biggest to top. Place it on bottom. Bring next largest to top. Place second from bottom. And so on... Upper Bound On Pn: Bring To Top Method For n Pancakes If n=1, no work we are done. Else: flip pancake n to top and then flip it to position n. Now use: Bring To Top Method For n1 Pancakes Total Cost: at most 2(n-1) = 2n 2 flips. Better Upper Bound On Pn: Bring To Top Method For n Pancakes If n=2, use one flip and we are done. Else: flip pancake n to top and then flip it to position n. Now use: Bring To Top Method For n1 Pancakes Total Cost: at most 2(n-2) + 1 = 2n 3 flips. Bring to top not always optimal for a particular stack 5 2 3 4 1 1 4 3 2 5 4 1 3 2 5 2 3 1 4 5 3 2 1 4 5 5 flips, but can be done in 4 flips ? Pn 2n 3 What bounds can you prove on Pn? Breaking Apart Argument Suppose a stack S contains a pair of adjacent pancakes that will not be adjacent in the sorted stack. Any sequence of flips that sorts stack S must involve one flip that inserts the spatula between that pair and breaks them apart. 9 16 Breaking Apart Argument Suppose a stack S contains a pair of adjacent pancakes that will not be adjacent in the sorted stack. Any sequence of flips that sorts stack S must involve one flip that inserts the spatula between that pair and breaks them apart. Furthermore, this same principle is true of the "pair" formed by the bottom pancake of S and the plate. 9 16 n Pn Suppose n is even. Such a stack S contains n pairs that must be broken apart during any sequence that sorts stack S. S 2 4 6 8 . . n 1 3 5 7 . . n-1 n Pn Suppose n is even. Such a stack S contains n pairs that must be broken apart during any sequence that sorts stack S. Detail: This construction only works when n>2 S 2 1 n Pn S up p o s e n is o d d . S uc h a s ta c k S c o nta ins n p a irs th a t m us t b e b ro ke n a p a rt d uring a ny s e q ue nc e th a t s o rts s ta c k S . S 1 3 5 7 . . n 2 4 6 8 . . n-1 n Pn Suppose n is odd. Such a stack S contains n pairs that must be broken apart during any sequence that sorts stack S. Detail: This construction only works when n>3 S 1 3 n Pn 2n 3 (for n 3) Bring To Top is within a factor of two of optimal! n Pn 2n 3 (for n 3) So starting from ANY stack we can get to the sorted stack using no more than Pn flips. From ANY stack to sorted stack in Pn. From sorted stack to ANY stack in Pn ? ((( ))) Reverse the sequences we use to sort. 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. From ANY stack to ANY stack in 2Pn. ((( ))) Can you find a faster way than 2Pn flips to go from ANY to ANY? 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, 1 Tnew : 1, 2, 3, 4, 5 (5), (2), ... ..., (1) Rewrite S using (1),(2),..,(n) S : 4, 3, 5, 1, 2 Snew : (4), (3), ... ..., (2) 3, 4, 1, 5, 2 From ANY Stack S to ANY stack T in Pn T : 5, 2, 4, 3, 1 Tnew : 1, 2, 3, 4, 5 S : 4, 3, 5, 1, 2 Snew : 3, 4, 1, 5, 2 The sequence of steps that brings Snew to Tnew (sorted stack) also brings S to T The Known Pancake Numbers n 1 2 3 4 5 6 7 8 9 10 11 12 13 Pn 0 1 3 4 5 7 8 9 10 11 13 14 15 P14 Is Unknown 1 4 ! O rd e ring s o f 1 4 p a nc a ke s . 1 4 ! = 8 7 ,1 7 8 ,2 9 1 ,2 0 0 Is T h is R e a lly C o m p ute r S c ie nc e ? Posed in Amer. Math. Monthly 82 (1) (1975), "Harry Dweighter" a.k.a. Jacob Goodman (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. (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. Permutation Any particular ordering of all n elements of an n element set S is called a permutation on the set S. Example: S = {1, 2, 3, 4, 5} Example permutation: 5 3 2 4 1 120 possible permutations on S Permutation Any particular ordering of all n elements of an n element set S is called a permutation on the set S. Each different stack of n pancakes is one of the permutations on [1..n]. Representing A Permutation We have many choices of how to specify a permutation on S. Here are two methods: 1) List a sequence of all elements of [1..n], each one written exactly once. Ex: 6 4 5 2 1 3 2) Give a function on S s.t. (1) (2) (3) .. (n) is a sequence listing [1..n], each one exactly once. Ex: (6)=3 (4)=2 (5)=1 (2)=4 (1)=6 (3)=5 A Permutation is a NOUN An ordering S of a stack of pancakes is a permutation. A Permutation is a NOUN Permute is also a VERB An ordering S of a stack of pancakes is a permutation. We can permute S to obtain a new stack S'. Permute also means to rearrange so as to obtain a permutation of the original. Permute A Permutation. I start with a permutation S of pancakes. I continue to use a flip operation to permute my current permutation, so as to obtain the sorted permutation. UltraUseful Fact There are n! = n*(n1)*(n2) ... 3*2*1 permutations on n elements. Proof: in the first counting lecture. Pancake Network This network has n! nodes Assign each node the name of one of the possible n! stacks of pancakes. Put a wire between two nodes if they are one flip apart. Network For n=3 1 2 3 2 1 3 3 1 2 3 2 1 2 3 1 1 3 2 Network For n=4 Pancake Network: Routing Delay What is the maximum distance between two nodes in the pancake network? Pn Pancake Network: Reliability If up to n2 nodes get hit by lightning the network remains connected, even though each node is connected to only n1 other nodes. The Pancake Network is optimally reliable for its number of edges and nodes. Mutation Distance One "Simple" Problem A host of problems and applications at the frontiers of science You must read the course document carefully. You must hand-in the signed cheating policy page. Study Bee Definitions of: nth pancake number lower bound upper bound permutation Proof of: ANY to ANY in Pn Study Bee High Level Point This lecture is a microcosm of mathematical modeling and optimization. References Bill Gates & Christos Papadimitriou: Bounds For Sorting By Prefix Reversal. Discrete Mathematics, vol 27, pp 4757, 1979. H. Heydari & H. I. Sudborough: On the Diameter of the Pancake Network. Journal of Algorithms, vol 25, pp 6794, 1997 ...
View Full Document

Ask a homework question - tutors are online