Pancakes With A Problem! Great Theoretical Ideas In Computer Science Steven Rudich CS 15-251 Spring 2005 Lecture 3 Jan 18, 2005 Carnegie Mellon University.

Slides:



Advertisements
Similar presentations
MATH 224 – Discrete Mathematics
Advertisements

22C:19 Discrete Structures Induction and Recursion Spring 2014 Sukumar Ghosh.
Midwestern State University Department of Computer Science Dr. Ranette Halverson CMPS 2433 – CHAPTER 4 GRAPHS 1.
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.
Recursion Lecture 18: Nov 18.
Copyright © Cengage Learning. All rights reserved. CHAPTER 5 SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION SEQUENCES, MATHEMATICAL INDUCTION, AND RECURSION.
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.
Introduction to Algorithms
CSC 2300 Data Structures & Algorithms March 16, 2007 Chapter 7. Sorting.
Counting III: Pascal’s Triangle, Polynomials, and Vector Programs Great Theoretical Ideas In Computer Science Steven RudichCS Spring 2003 Lecture.
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.
Lectures on Network Flows
Bioinformatics Chromosome rearrangements Chromosome and genome comparison versus gene comparison Permutations and breakpoint graphs Transforming Men into.
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
Pancakes With A Problem! Great Theoretical Ideas In Computer Science Steven Rudich CS Spring 2004 Lecture 1 Jan 13, 2004 Carnegie Mellon University.
EE1J2 - Slide 1 EE1J2 – Discrete Maths Lecture 6 Limitations of propositional logic Introduction to predicate logic Symbols, terms and formulae, Parse.
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.
Describing algorithms in pseudo code To describe algorithms we need a language which is: – less formal than programming languages (implementation details.
CompSci 102 Spring 2012 Prof. Rodger January 11, 2012.
RMIT University; Taylor's College1 Lecture 6  To apply the Principle of Mathematical Induction  To solve the Towers of Hanoi puzzle  To define a recurrence.
Analysis CS 367 – Introduction to Data Structures.
Reading and Writing Mathematical Proofs
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.
Order Statistics The ith order statistic in a set of n elements is the ith smallest element The minimum is thus the 1st order statistic The maximum is.
Chapter 3 Sec 3.3 With Question/Answer Animations 1.
Genome Rearrangements Unoriented Blocks. Quick Review Looking at evolutionary change through reversals Find the shortest possible series of reversals.
Greedy Algorithms And Genome Rearrangements An Introduction to Bioinformatics Algorithms (Jones and Pevzner)
1 Chapter 7: Sorting (Insertion Sort, Shellsort) CE 221 Data Structures and Algorithms Izmir University of Economics Text: Read Weiss, § 7.1 – 7.4.
Genome Rearrangements [1] Ch Types of Rearrangements Reversal Translocation
Lecture 6 Algorithm Analysis Arne Kutzner Hanyang University / Seoul Korea.
Greedy Algorithms And Genome Rearrangements
Integrals  In Chapter 2, we used the tangent and velocity problems to introduce the derivative—the central idea in differential calculus.  In much the.
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.
Chapter 18: Searching and Sorting Algorithms. Objectives In this chapter, you will: Learn the various search algorithms Implement sequential and binary.
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.
Counting II: Recurring Problems And Correspondences Great Theoretical Ideas In Computer Science John LaffertyCS Fall 2005 Lecture 7Sept 20, 2005Carnegie.
Counting I: One To One Correspondence and Choice Trees Great Theoretical Ideas In Computer Science Steven RudichCS Spring 2004 Lecture 9Feb 10,
Chapter 8 Maximum Flows: Additional Topics All-Pairs Minimum Value Cut Problem  Given an undirected network G, find minimum value cut for all.
Introduction to Bioinformatics Algorithms Chapter 5 Greedy Algorithms and Genome Rearrangements By: Hasnaa Imad.
Chapter 9 sorting. Insertion Sort I The list is assumed to be broken into a sorted portion and an unsorted portion The list is assumed to be broken into.
Great Theoretical Ideas in Computer Science for Some.
Counting I: One To One Correspondence and Choice Trees Great Theoretical Ideas In Computer Science John LaffertyCS Fall 2005 Lecture 6Sept 15,
Finite Automata Great Theoretical Ideas In Computer Science Victor Adamchik Danny Sleator CS Spring 2010 Lecture 20Mar 30, 2010Carnegie Mellon.
1 Chapter 7: Sorting (Insertion Sort, Shellsort) CE 221 Data Structures and Algorithms Izmir University of Economics Text: Read Weiss, § 7.1 – 7.4.
Ch03-Algorithms 1. Algorithms What is an algorithm? An algorithm is a finite set of precise instructions for performing a computation or for solving a.
1 Chapter 7 Quicksort. 2 About this lecture Introduce Quicksort Running time of Quicksort – Worst-Case – Average-Case.
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.
Pancakes With A Problem!
Lectures on Network Flows
Pancakes With A Problem!
Counting I: Bijection and Choice Trees
Cooking for Computer Scientists.
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
Presentation transcript:

Pancakes With A Problem! Great Theoretical Ideas In Computer Science Steven Rudich CS Spring 2005 Lecture 3 Jan 18, 2005 Carnegie Mellon University

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

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

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

4 Flips Are Sufficient

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

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

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

?  X  4 Lower Bound

Upper Bound Lower Bound 4  X  4 X = 4

5 th Pancake Number P 5 = The number of flips required to sort the worst case stack of 5 pancakes. ?  P 5  ? Upper Bound Lower Bound

5 th Pancake Number P 5 = The number of flips required to sort the worst case stack of 5 pancakes. 4  P 5  ? Upper Bound Lower Bound

The 5 th Pancake Number: The MAX of the X’s X1X1 X2X2 X3X3 X 119 X

P 5 = MAX over s 2 stacks of 5 of MIN # of flips to sort s X1X1 X2X2 X3X3 X 119 X

P n 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.

Be Cool. Learn Math-speak. P n = The number of flips required to sort a worst-case stack of n pancakes.

What is P n for small n? Can you do n = 0, 1, 2, 3 ?

Initial Values Of P n n0123 PnPn 0013

P 3 = requires 3 Flips, hence P 3 ¸ 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, P 3 · 3.

n th Pancake Number P n = Number of flips required to sort a worst case stack of n pancakes. ?  P n  ? Upper Bound Lower Bound

Bracketing: What are the best lower and upper bounds that I can prove? ≤ f(x) ≤ [ ]

?  P n  ? Take a few minutes to try and prove bounds on P n, 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 P n : 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 n-1 Pancakes Total Cost: at most 2(n-1) = 2n –2 flips.

Better Upper Bound On P n : 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 n-1 Pancakes Total Cost: at most 2(n-2) + 1 = 2n –3 flips.

Bring to top not always optimal for a particular stack 5 flips, but can be done in 4 flips

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

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.

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.

n  P n Suppose n is even. Such a stack S contains n pairs that must be broken apart during any sequence that sorts stack S n n-1 S

n  P n 2121 S Detail: This construction only works when n>2 Suppose n is even. Such a stack S contains n pairs that must be broken apart during any sequence that sorts stack S.

n  P n n n-1 S Suppose n is odd. Such a stack S contains n pairs that must be broken apart during any sequence that sorts stack S.

n  P n S Detail: This construction only works when n>3 Suppose n is odd. Such a stack S contains n pairs that must be broken apart during any sequence that sorts stack S.

Bracketing: What are the best lower and upper bounds that I can prove? ≤ f(x) ≤ [ ]

n ≤ P n ≤ 2n – 3 (for n ≥ 3) Bring To Top is within a factor of two of optimal!

So starting from ANY stack we can get to the sorted stack using no more than P n flips. n ≤ P n ≤ 2n – 3 (for n ≥ 3)

From ANY stack to sorted stack in · P n. Reverse the sequences we use to sort. From sorted stack to ANY stack in · P n ? ((( )))

From ANY stack to sorted stack in · P n. From sorted stack to ANY stack in · P n. Hence, From ANY stack to ANY stack in · 2P n.

From ANY stack to ANY stack in · 2P n. Can you find a faster way than 2P n flips to go from ANY to ANY? ((( )))

From ANY Stack S to ANY stack T in · P n 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:  (1),  (2),..,  (n). The sequence of flips that brings the sorted stack to  (1),  (2),..,  (n) will bring S to T. S: 4,3,5,1,2 T: 5,2,4,3,1 1,2,3,4,53,5,1,2,4

The Known Pancake Numbers n PnPn

P 14 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  P n  (5n+5)/3 Bill Gates & Christos Papadimitriou: Bounds For Sorting By Prefix Reversal. Discrete Mathematics, vol 27, pp 47-57, 1979.

(15/14)n  P n  (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. Each different stack of n pancakes is one of the permutations on [1..n].

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: possible permutations on S

Ultra-Useful Fact There are n! = 1*2*3*4*…*n permutations on n elements. Proof by induction on n. IH: There are (n-1)! permutations of n-1 elements. Let S i be all permutations on n elements that start with element i. By I,H, each S i has size (n-1)! Each permutation on n elements is mentioned exactly once in union of the S i ‘s. Hence there are n*(n-1)! = n! permutations on n elements.

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: )Give a function  on S s.t.  (1)  (2)  (3)..  (n) is a sequence listing [1..n], each one exactly once. Ex:  (1)=6  (2)=4  (3) = 5  (4) = 2  (4) = 1  (6) =3 Ex:  (1)=6  (2)=4  (3) = 5  (4) = 2  (4) = 1  (6) =3

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

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.

FORMALLY NOUN A permutation  of a set S is a 1,1 onto function from S to S. VERB Let  and  ’ be permutations. We can compose them to get new ones:  ’(x)) and/or  ‘(  (x))

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=

Network For n=4

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

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

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

Study Bee Definitions of: nth pancake number lower bound upper bound permutation Proof of: ANY to ANY in · P n Technique: BRACKETING

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