Cette activité est inspirée d'un problème introduit pour la première fois en
1975 par Harry Dweighter dans le journal de mathématique «American
Mathematical Monthly». La question n'est pas tant de trier les crêpes que de
déterminer f(n)
, le nombre minimal de retournements
nécessaires pour trier n'importe quelle pile de taille n
.
Ce problème est maintenant célèbre car Bill Gates a publié son seul article
scientifique sur ce sujet (avec C. Papadimitriou). Ils ont proposé un
algorithme plus rapide et démontré ainsi que 17n/16 ≤ f(n) ≤
(5n+5)
. Ce fut la seule publication de Bill Gates avant qu'il
n'invente Windows et devienne riche.
Par la suite, David X. Cohen, l'inventeur du dessin animé Futurama aux nombreuses références mathématiques, introduit en 1993 la variante des crêpes brulées et étudie sa complexité avec Manuel Blum.
Un article de 2013 (par L. Bulteau, G. Fertin and I. Rusu) a prouvé que ce problème est NP-Complet, c'est à dire qu'il n'existe pas d'algorithme efficace pour déterminer le nombre minimal de retournements pour toute taille de pile. Naturellement, le problème du tri de la pile n'est pas NP-complet en lui-même puisqu'on peut le résoudre en 2n-3 étapes avec l'algorithme naïf et (5n+5)/3 étapes avec l'algorithme de Gates. C'est la détermination du nombre minimal de coups qui est NP.
Pour plus d'information, référez vous à la page anglophone de wikipedia (http://en.wikipedia.org/wiki/Pancake_sorting) ou à cette page, très bien faite: http://eljjdx.canalblog.com/archives/2013/02/03/26309722.html
Cette activité est également intégrée à SMN (mon dépot d'activités débranchées libres pour introduire la science informatique, disponible à l'adresse http://www.loria.fr/~quinson/Mediation/SMN/), et il peut être intéressant de faire les activités débranchées avant d'implémenter ces algorithmes dans PLM.
Comme souvent, plusieurs points pourraient être améliorés dans le code de cet univers pour l'améliorer :