# Pancake sorting

Demonstration of the primary operation. The spatula is flipping over the top three pancakes, with the result seen below. In the burnt pancake problem, their top sides would now be burnt instead of their bottom sides.

Pancake sorting is the colloquial term for the mathematical problem of sorting a disordered stack of pancakes in order of size when a spatula can be inserted at any point in the stack and used to flip all pancakes above it. A pancake number is the maximum number of flips required for a given number of pancakes. In this form, the problem was first discussed by American geometer Jacob E. Goodman.[1] It is a variation of the sorting problem in which the only allowed operation is to reverse the elements of some prefix of the sequence. Unlike a traditional sorting algorithm, which attempts to sort with the fewest comparisons possible, the goal is to sort the sequence in as few reversals as possible. A variant of the problem is concerned with burnt pancakes, where each pancake has a burnt side and all pancakes must, in addition, end up with the burnt side on bottom.

## The pancake problems

### The original pancake problem

The minimum number of flips required to sort any stack of n pancakes has been shown to lie between 15/14n and 18/11n, but the exact value is not known.[2]

The simplest pancake sorting algorithm requires at most 2n−3 flips. In this algorithm, a variation of selection sort, we bring the largest pancake not yet sorted to the top with one flip, and then take it down to its final position with one more, then repeat this for the remaining pancakes. Note that we do not count the time needed to find the largest pancake, only the number of flips; if we wished to create a real machine to execute this algorithm in linear time, it would have to both perform prefix reversal (flips) and be able to find the maximum of a range of consecutive numbers in constant time.

On September 17, 2008, a team of researchers at the University of Texas at Dallas led by Founders Professor Hal Sudborough announced the acceptance by the journal Theoretical Computer Science of a more efficient algorithm for pancake sorting than the one proposed by Bill Gates and Christos Papadimitriou.[3] This establishes a new upper bound of 18/11n, improving upon the existing bound of 5/3n from 1979.[4][5]

On November 2, 2011, a paper was submitted to the arXiv announcing a proof that the problem is NP-hard,[6] thereby answering a question open for over three decades. It is worth noting, however, that the NP-hard problem consists of computing the minimum number of flips required to sort n pancakes, and not the actual sorting of the pancakes. As discussed above, the sorting can be trivially computed in O(n) (see Big O notation) time, which places it in the polynomial class of problems.

### The burnt pancake problem

In a more difficult variation called the burnt pancake problem, the bottom of each pancake in the pile is burnt, and the sort must be completed with the burnt side of every pancake down. In 2008, a group of undergraduates built a bacterial computer that can solve a simple example of the burnt pancake problem by programming E. coli to flip segments of DNA which are analogous to burnt pancakes. DNA has an orientation (5' and 3') and an order (promoter before coding). Even though the processing power expressed by DNA flips is low, the high number of bacteria in a culture provides a large parallel computing platform. The bacteria report when they have solved the problem by becoming antibiotic resistant.[7] An animation depicting this process has been produced.[8]

### The identical pancake stack

This is inspired from the way Indian bread (Roti) is prepared in an Indian kitchen. To prepare the roti/chapati, both sides of it have to be toasted. Considering the rotis as flat discs (having two sides, we have these discs stacked in a column. The lower side, which touches the base/fire is considered toasted and is given a weight 1. All other sides are weighed 0. A particular side of the disc is toasted when it touches the base/fire. The player uses a spatula to flip the discs. Based on this concept, a single player game called "Flipping pancakes" developed by Arka Roychowdhury was made available through App store in July 2014.[9] The objective of the game is to successfully toasted all the sides (i.e. each face/side should have a weight 1)

Variations

There are multiple variations in which this game can be played.

Single side: in this mode the discs/Rotis are considered single sided, i.e. only one side is required to be toasted.

Salvo: in this mode the score is calculated as a function of score and the number of flips. [Score = number of turn - total weight of the tower. The total weight of the tower is the sum of all the 1s in the stack.]

Series generation:

Consider the toasted side to have weight 1 and the untoasted ones to have weight 0. The player has to read the entire string of 1s and 0s from top to bottom and convert it to decimal number system.

The series will always start with one and end in 2^n -1. However based on the moves there will be different path/number series that can be generated every time.

## The pancake problem on strings

The above discussion presumes that each pancake is unique, i.e. the sequence on which the prefix reversals are performed is a permutation. However, "strings" are sequences in which a symbol can repeat. Chitturi and Sudborough (2010) and Hurkens et al. (2007) independently showed that the complexity of transforming a compatible string into another with prefix reversals is NP-complete. They also gave bounds for the same. Hurkens et al. gave an exact algorithm to sort binary and ternary strings. Chitturi (2011) proved that the complexity of transforming a compatible signed string into another with prefix reversals, i.e. the burnt pancake problem on strings, is NP-complete.

## History

Although seen more often as an educational device, pancake sorting also appears in applications in parallel processor networks, in which it can provide an effective routing algorithm between processors.[10][11]

The problem is notable as the only well-known mathematics paper ever written by Microsoft founder Bill Gates (as William Gates), entitled "Bounds for Sorting by Prefix Reversal". Published in 1979, it describes an efficient algorithm for pancake sorting.[3] In addition, the most notable paper published by Futurama co-creator David X. Cohen (as David S. Cohen) concerned the burnt pancake problem.[12] Their collaborators were Christos Papadimitriou (then at Harvard, now at Berkeley) and Manuel Blum (then at Berkeley, now at Carnegie Mellon University), respectively.

The connected problems of signed sorting by reversals and sorting by reversals were also studied more recently. Whereas efficient exact algorithms have been found for the signed sorting by reversals,[13] the problem of sorting by reversals has been proven to be hard even to approximate to within certain constant factor,[14] and also proven to be approximable in polynomial time to within the approximation factor 1.375.[15]

## Related integer sequences

Number of stacks of given height that require N flips to get sorted
Height N
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
1 1
2 1 1
3 1 2 2 1
4 1 3 6 11 3
5 1 4 12 35 48 20
6 1 5 20 79 199 281 133 2
7 1 6 30 149 543 1357 1903 1016 35
8 1 7 42 251 1191 4281 10561 15011 8520 455
9 1 8 56 391 2278 10666 38015 93585 132697 79379 5804
10 1 9 72 575 3963 22825 106461 377863 919365 1309756 814678 73232
11 1 10 90 809 6429 43891 252737 1174766 4126515 9981073 14250471 9123648 956354 6
12 1 11 110 1099 9883 77937 533397 3064788 14141929 49337252 118420043 169332213 111050066 13032704 167

Sequences from The Online Encyclopedia of Integer Sequences of Neil Sloane:

• – maximum number of flips
• – number of stacks requiring the maximum number of flips (above)
• – maximum number of flips for a "burnt" stack
• – the number of flips for a sorted "burnt-side-on-top" stack
• – the above triangle, read by rows

## References

1. ^ Simon Singh (November 14, 2013). "Flipping pancakes with mathematics". The Guardian. Retrieved March 25, 2014.
2. ^ Fertin, G. and Labarre, A. and Rusu, I. and Tannier, E. and Vialette, S. (2009). Combinatorics of Genome Rearrangements. The MIT Press. ISBN 9780262062824.
3. ^ a b Gates, W., Papadimitriou, C. (1979). "Bounds for Sorting by Prefix Reversal". Discrete Mathematics 27: 47–57. doi:10.1016/0012-365X(79)90068-2.
4. ^ "Team Bests Young Bill Gates With Improved Answer to So-Called Pancake Problem in Mathematics". University of Texas at Dallas News Center. September 17, 2008. Retrieved November 10, 2008. "A team of UT Dallas computer science students and their faculty adviser have improved upon a longstanding solution to a mathematical conundrum known as the pancake problem. The previous best solution, which stood for almost 30 years, was devised by Bill Gates and one of his Harvard instructors, Christos Papadimitriou, several years before Microsoft was established."
5. ^ Chitturi, B.; Fahle, W.; Meng, Z.; Morales, L.; Shields, C.O.; Sudborough, I.H.; Voit, W. (2009). "An upper bound for sorting by prefix reversals". Theoretical Computer Science 410 (36): 3372. doi:10.1016/j.tcs.2008.04.045.
6. ^ Bulteau, Laurent; Fertin, Guillaume; Rusu, Irena (2012). "Pancake Flipping Is Hard". "Mathematical Foundations of Computer Science 2012". Lecture Notes in Computer Science 7464. p. 247. arXiv:1111.0434. doi:10.1007/978-3-642-32589-2_24. ISBN 978-3-642-32588-5.
7. ^ Haynes, Karmella A; Broderick, Marian L; Brown, Adam D; Butner, Trevor L; Dickson, James O; Harden, W Lance; Heard, Lane H; Jessen, Eric L; Malloy, Kelly J; Ogden, Brad J; Rosemond, Sabriya; Simpson, Samantha; Zwack, Erin; Campbell, A Malcolm; Eckdahl, Todd T; Heyer, Laurie J; Poet, Jeffrey L (2008). "Engineering bacteria to solve the Burnt Pancake Problem". Journal of Biological Engineering 2: 8. doi:10.1186/1754-1611-2-8. PMC 2427008. PMID 18492232.
8. ^ E.HOP - E. coli House of Pancakes - computing in vivo (flash applet)
9. ^ [1]
10. ^ Gargano, L.; Vaccaro, U.; Vozella, A. (1993). "Fault tolerant routing in the star and pancake interconnection networks". Information Processing Letters 45 (6): 315–320. doi:10.1016/0020-0190(93)90043-9. MR 1216942.
11. ^ Kaneko, K.; Peng, S. (2006). "Disjoint paths routing in pancake graphs". Proceedings of Seventh International Conference on Parallel and Distributed Computing, Applications and Technologies, 2006 (PDCAT '06). pp. 254–259. doi:10.1109/PDCAT.2006.56. ISBN 0-7695-2736-1.
12. ^ Cohen D.S.; Blum, M. (1995). "On the problem of sorting burnt pancakes". Discrete Applied Mathematics 61 (2): 105. doi:10.1016/0166-218X(94)00009-3.
13. ^ Kaplan, H., Shamir, R. and Tarjan, R.E. "Faster and Simpler Algorithm for Sorting Signed Permutations by Reversals." Proc. 8th ACM-SIAM SODA (1997), 178-187, 1997.
14. ^ Berman, P. and Karpinski, M. "On Some Tighter Inapproximability Results." Proc. 26th ICALP (1999), LNCS 1644, Springer, 200-209, 1999.
15. ^ Berman, P., Karpinski M. and Hannenhalli, S., "1.375-Approximation Algorithms for Sorting by Reversals." Proc. 10th ESA (2002), LNCS 2461, Springer, 200-210, 2002.