Pancakes With A Problem!

Slides:



Advertisements
Similar presentations
Midwestern State University Department of Computer Science Dr. Ranette Halverson CMPS 2433 – CHAPTER 4 GRAPHS 1.
Advertisements

Great Theoretical Ideas in Computer Science
CompSci 102 Discrete Math for Computer Science April 19, 2012 Prof. Rodger Lecture adapted from Bruce Maggs/Lecture developed at Carnegie Mellon, primarily.
Lecture 12: Lower bounds By "lower bounds" here we mean a lower bound on the complexity of a problem, not an algorithm. Basically we need to prove that.
Cooking for Computer Scientists. I understand that making pancakes can be a dangerous activity and that, by doing so, I am taking a risk that I.
Bioinformatics Chromosome rearrangements Chromosome and genome comparison versus gene comparison Permutations and breakpoint graphs Transforming Men into.
Finite Automata Great Theoretical Ideas In Computer Science Anupam Gupta Danny Sleator CS Fall 2010 Lecture 20Oct 28, 2010Carnegie Mellon University.
Counting II: Recurring Problems And Correspondences Great Theoretical Ideas In Computer Science Steven RudichCS Spring 2004 Lecture 10Feb 12, 2004Carnegie.
Counting I: One To One Correspondence and Choice Trees Great Theoretical Ideas In Computer Science Steven RudichCS Spring 2004 Lecture 9Feb 10,
Introduction to Bioinformatics Algorithms Greedy Algorithms And Genome Rearrangements.
Discrete Structures & Algorithms EECE 320 : UBC : Spring 2009 Matei Ripeanu 1.
Genome Rearrangements CSCI : Computational Genomics Debra Goldberg
Prof. Bart Selman Module Probability --- Part e)
Pancakes With A Problem! Great Theoretical Ideas In Computer Science Steven Rudich CS Spring 2004 Lecture 1 Jan 13, 2004 Carnegie Mellon University.
Pancakes With A Problem Steven Rudich The chef at our place is sloppy, and when he prepares a stack of pancakes they come out all different sizes.
Pancakes With A Problem! Great Theoretical Ideas In Computer Science Vince Conitzer COMPSCI 102 Fall 2007 Lecture 1 August 27, 2007 Duke University.
Cooking for Computer Scientists. I understand that making pancakes can be a dangerous activity and that, by doing so, I am taking a risk that I.
CompSci 102 Discrete Math for Computer Science March 22, 2012 Prof. Rodger Lecture adapted from Bruce Maggs/Lecture developed at Carnegie Mellon, primarily.
CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.
CS 103 Discrete Structures Lecture 01 Introduction to the Course
Pancakes With A Problem! Great Theoretical Ideas In Computer Science Anupam Gupta CS Fall 2O05 Lecture 1 Aug 29 th, 2OO5 Aug 29 th, 2OO5 Carnegie.
Pancakes With A Problem! Great Theoretical Ideas In Computer Science Anupam Gupta CS Fall 2006 Lecture 1 Aug 29 th, 2OO6 Aug 29 th, 2OO6 Carnegie.
Basic Counting. This Lecture We will study some basic rules for counting. Sum rule, product rule, generalized product rule Permutations, combinations.
Great Theoretical Ideas in Computer Science.
CS216: Program and Data Representation University of Virginia Computer Science Spring 2006 David Evans Lecture 2: Orders of Growth
Greedy Algorithms And Genome Rearrangements An Introduction to Bioinformatics Algorithms (Jones and Pevzner)
Greedy Algorithms And Genome Rearrangements
Andrew’s Leap 2011 Pancakes With A Problem Steven Rudich.
Graph Colouring L09: Oct 10. This Lecture Graph coloring is another important problem in graph theory. It also has many applications, including the famous.
Inductive Reasoning Great Theoretical Ideas In Computer Science Victor AdamchikCS Spring 2010 Lecture 2Jan 14, 2010Carnegie Mellon University.
Analysis of Algorithms CS 477/677 Instructor: Monica Nicolescu Lecture 7.
CompSci 102 Discrete Math for Computer Science March 20, 2012 Prof. Rodger Lecture adapted from Bruce Maggs/Lecture developed at Carnegie Mellon, primarily.
Pancakes With A Problem! Great Theoretical Ideas In Computer Science Steven Rudich CS Spring 2005 Lecture 3 Jan 18, 2005 Carnegie Mellon University.
Counting II: Recurring Problems And Correspondences Great Theoretical Ideas In Computer Science John LaffertyCS Fall 2005 Lecture 7Sept 20, 2005Carnegie.
Introduction to Bioinformatics Algorithms Chapter 5 Greedy Algorithms and Genome Rearrangements By: Hasnaa Imad.
The material in this lecture should be review. If you have not seen it before, you should be able to learn it quickly – and on your own. So we are going.
Sporadic and Related groups Lecture 15 Introduction to Fusion.
Theory of Computational Complexity Probability and Computing Chapter Hikaru Inada Iwama and Ito lab M1.
Chapter 1 Logic and Proof.
CMPT 438 Algorithms.
L14: Permutations, Combinations and Some Review
Greedy Algorithms.
Lecture 5.2: Special Graphs and Matrix Representation
Pancakes With A Problem!
Lectures on Network Flows
The first Few Slides stolen from Boaz Barak
CSE 5290: Algorithms for Bioinformatics Fall 2009
Algorithm design and Analysis
Counting I: Bijection and Choice Trees
Richard Anderson Lecture 25 NP-Completeness
Counting I: One-To-One Correspondence and Choice Trees
Basic Counting.
Advanced Analysis of Algorithms
Discrete Mathematics CMP-101 Lecture 12 Sorting, Bubble Sort, Insertion Sort, Greedy Algorithms Abdul Hameed
Induction: One Step At A Time
Induction: One Step At A Time
Chapter 11 Limitations of Algorithm Power
Instructor: Joel Grodstein
Cooking for Computer Scientists.
Counting II: Recurring Problems And Correspondences
BIT 115: Introduction To Programming
CPSC 121: Models of Computation
Mathematical Analysis of Algorithms
Counting II: Recurring Problems And Correspondences
Induction: One Step At A Time
Counting I: Choice Trees and Correspondences
Bounds for Sorting by Prefix Reversal -- Pancake Problem
CS 232 Geometric Algorithms: Lecture 1
Presentation transcript:

Pancakes With A Problem! Great Theoretical Ideas In Computer Science Steven Rudich CS 15-251 Spring 2004 Lecture 1 Jan 13, 2004 Carnegie Mellon University Pancakes With A Problem!

Magic Trick At 3:00pm Sharp! Be punctual. Sit close-up: some of the tricks are hard to see from the back.

Course Staff Profs: Steven Rudich Anupam Gupta TAs: Yinmeng Zhang Bella Voldman Brendan Juba Andrew Gilpin Susmit Sarkar Adam Wierman

((( ))) Please feel free to ask questions!

Course Document You must read this carefully. Grading formula for the course. 40% homework 30% quizes 30% final Seven points a day late penalty. Collaboration/Cheating Policy You may NOT share written work. We reuse homework problems.

My Low Vision and You. I have a genetic retinal condition called Stargardt’s disease. My central vision is going, one pixel at a time, to zero. I have working peripheral vision. I can’t recognize faces – so please introduce yourself to me every time! I detect motion really well so please move your hand when you raise it in class.

Pancakes With A Problem! Great Theoretical Ideas In Computer Science Steven Rudich CS 15-251 Spring 2004 Lecture 1 Jan 13, 2004 Carnegie Mellon University Pancakes With A Problem!

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) 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 1 2 3 4 5

Developing A Notation: Turning pancakes into numbers 5 2 3 4 1

Developing A Notation: Turning pancakes into numbers 52341

How do we sort this stack? How many flips do we need? 5 2 3 4 1

4 Flips Are Sufficient 52341 14325 23415 43215 12345

Algebraic Representation 52341 X = The smallest number of flips required to sort: Upper Bound ?  X  ? Lower Bound

Algebraic Representation 52341 X = The smallest number of flips required to sort: Upper Bound ?  X  4 Lower Bound

4 Flips Are Necessary Flip 1 has to put 5 on bottom 52341 14325 41325 Flip 1 has to put 5 on bottom Flip 2 must bring 4 to top.

?  X  4 Lower Bound

4  X  4 Lower Bound Upper Bound 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 52341 199 120 . . . . . . . X1 X2 X3 4 X119 X120

P5 = MAX over s2 stacks of 5 of MIN # of flips to sort s 1 2 3 52341 199 120 . . . . . . . X1 X2 X3 4 X119 X120

Pn = MAX over s2 stacks of n pancakes of MIN # of flips to sort s Pn = The number of flips required to sort the worst-case stack of n pancakes.

Pn = MAX over s2 stacks of n pancakes of MIN # of flips to sort s Pn = The number of flips required to sort a worst-case 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 1 2 3 Pn

P3 = 3 1 3 2 requires 3 Flips, hence P3 ¸ 3. ANY stack of 3 can be done by getting the big one to the bottom (· 2 flips), and then using · 1 extra flip to handle the top two. Hence, P3 · 3.

nth Pancake Number ?  Pn  ? Pn = The number of flips required to sort a worst case stack of n pancakes. Upper Bound ?  Pn  ? Lower Bound

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. Otherwise, flip pancake n to top and then flip it to position n. Now use: Bring To Top Method For n-1 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, at most one flip, we are done. Otherwise, flip pancake n to top and then flip it to position n. Now use: Bring To Top Method For n-1 Pancakes Total Cost: at most 2(n-2) + 1 = 2n –3 flips.

Bring to top not always optimal for a particular stack 52341 14325 41325 23145 32145 Should be an example of stack that uses more than 5 flips with bring to top. It should show that P5=5 cant be concluded with bring to top. 5 flips, but can be done in 4 flips

What bounds can you prove on Pn? ?  Pn  2n - 3 What bounds can you prove on Pn?

Breaking Apart Argument 9 16 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.

Breaking Apart Argument 9 16 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.

n  Pn S 2 4 6 8 . . n 1 3 5 7 . . n-1 Suppose n is even. S contains n pairs that will need to be broken apart during any sequence that sorts stack S.

Detail: This construction only works when n>2 n  Pn S 2 1 Suppose n is even. S contains n pairs that will need to be broken apart during any sequence that sorts stack S. Detail: This construction only works when n>2

n  Pn S 1 3 5 7 . . n 2 4 6 8 . . n-1 Suppose n is odd. S contains n pairs that will need to be broken apart during any sequence that sorts stack S.

Detail: This construction only works when n>3 n  Pn S 1 3 2 Suppose n is odd. S contains n pairs that will need to be broken apart during any sequence that sorts stack S. Detail: This construction only works when n>3

Bring To Top is within a factor of two of optimal! n  Pn  2n – 3 for n¸ 3 Bring To Top is within a factor of two of optimal!

n  Pn  2n - 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 S to be 1,2,3,..,n. Rewrite T using the new naming scheme that you used for S. T will be some list: p(1),p(2),..,p(n). The sequence of flips that brings the sorted stack to p(1),p(2),..,p(n) will bring S to T. S: 4,3,5,1,2 T: 5,2,4,3,1 1,2,3,4,5 3,5,1,2,4

The Known Pancake Numbers Pn 1 2 3 4 5 6 7 8 9 10 11 12 13 0 1 3 4 5 7 8 9 10 11 13 14 15

P14 Is Unknown 14! Orderings of 14 pancakes. 14! = 87,178,291,200

Is This Really Computer Science?

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 & H. I. Sudborough: On the Diameter of he 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: We list a sequence of all the elements of [1..n], each one written exactly once. Ex: 6 4 5 2 1 3 We give a function  on S such that  (1) (2) (3) .. (n) is a sequence that lists [1..n], each one exactly once. Ex: (1)=6 (2)=4 (3) = 5 (4) = 2 (4) = 1 (6) =3

A Permutation is a NOUN An ordering of a stack of pancakes is a permutation.

A Permutation is a NOUN. A permutation can also be 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.

There are n! = 1*2*3*4*…*n permutations on n elements. Proof in the first counting lecture.

Pancake Network: Definition For n! Nodes For each node, assign it the name of one of the n! stacks of n pancakes. Put a wire between two nodes if they are one flip apart.

Network For n=3 213 123 312 321 132 231

Network For n=4

Pancake Network: Message Routing Delay What is the maximum distance between two nodes in the network? Pn

Pancake Network: Reliability If up to n-2 nodes get hit by lightning the network remains connected, even though each node is connected to only n-1 other nodes. The Pancake Network is optimally reliable for its number of edges and nodes.

Mutation Distance

A host of problems and applications at the frontiers of science One “Simple” Problem A host of problems and applications at the frontiers of science

Study Bee You must read the course document carefully. You must hand-in the signed cheating policy page. Study Bee

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 47-57, 1979. H. Heydari & H. I. Sudborough: On the Diameter of he Pancake Network. Journal of Algorithms, vol 25, pp 67-94, 1997