Présentation générale Marc Gengler P R O J E T T E T R A E D R E 2015-16 Marc Gengler Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale O R G A N I S A T I O N Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Organisation ----------------------------------------------------------------- Travail en binôme. Une présentation du projet ( aujourd’hui ). Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Organisation ----------------------------------------------------------------- Travail en binôme. Une présentation du projet ( aujourd’hui ). 4 séances de suivi pour chaque groupe : 20 minutes de discussion avec votre responsable. Sujets des séances : Démarrage, début de conception, suivi de programmation, finalisation. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Organisation ----------------------------------------------------------------- Travail en binôme. Une présentation du projet ( aujourd’hui ). 4 séances de suivi pour chaque groupe : 20 minutes de discussion avec votre responsable. Sujets des séances : Démarrage, début de conception, suivi de programmation, finalisation. Une soutenance commune en amphi : 15 minutes par groupe. Présentation « grand public » du projet. En anglais avec support PowerPoint. Notation : 5 pts - suivi, 5 pts - code, 10 pts - présentation. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale S U J E T Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Sujet ----------------------------------------------------------------- Il s’agit de construire un tétraèdre en empilant des boules. Les boules sont de couleur rouge, bleue ou verte. Il y a des règles de couleur pour empiler les boules. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Sujet ----------------------------------------------------------------- Il s’agit de construire un tétraèdre en empilant des boules. Les boules sont de couleur rouge, bleue ou verte. Il y a des règles de couleur pour empiler les boules. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Sujet ----------------------------------------------------------------- Il s’agit de construire un tétraèdre en empilant des boules. Les boules sont de couleur rouge, bleue ou verte. Il y a des règles de couleur pour empiler les boules. Il faut trouver les tétraèdres qui minimisent le nombre de boules rouges, qui maximisent le nombre de boules bleues, qui maximisent le nombre de boules vertes, qui minimisent le nombre de boules rouges, tout en maximisant le nombre de boules bleues, qui minimisent le nombre de boules rouges, tout en maximisant le nombre de boules vertes. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Sujet ----------------------------------------------------------------- Il s’agit de construire un tétraèdre en empilant des boules. Les boules sont de couleur rouge, bleue ou verte. Il y a des règles de couleur pour empiler les boules. Il faut trouver les tétraèdres qui minimisent le nombre de boules rouges, qui maximisent le nombre de boules bleues, qui maximisent le nombre de boules vertes, qui minimisent le nombre de boules rouges, tout en maximisant le nombre de boules bleues, qui minimisent le nombre de boules rouges, tout en maximisant le nombre de boules vertes. Vous écrirez un programme du type back-track qui énumère toutes les possiblités pour retenir celles qui sont optimales. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale P R I N C I P E D E C O N S T R U C T I O N Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Principe de construction ----------------------------------------------------------------- La base ( niveau 0 ) : n Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Principe de construction ----------------------------------------------------------------- La base ( niveau 0 ) : n Au centre du triangle formé par trois boules nous pouvons placer une boule de niveau 1 ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Principe de construction ----------------------------------------------------------------- La base ( niveau 0 ) : Le niveau 1 : n n-1 Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Principe de construction ----------------------------------------------------------------- Les deux premiers niveaux : n Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Principe de construction ----------------------------------------------------------------- La base ( niveau 0 ) : Le niveau 1 : n n-1 Le niveau 2 : n-2 Le niveau 3 : n-3 Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Principe de construction ----------------------------------------------------------------- Tous les niveaux : n Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale R E G L E S C O N C E R N A N T L E S C O U L E U R S Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Règles concernant les couleurs ----------------------------------------------------------------- Les boules de la base ( niveau 0 ) sont quelconques. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Règles concernant les couleurs ----------------------------------------------------------------- Les boules de la base ( niveau 0 ) sont quelconques. Une boule rouge ne peut être posée que sur trois boules de même couleur : Un tétraèdre tout rouge est trivial ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Règles concernant les couleurs ----------------------------------------------------------------- Les boules de la base ( niveau 0 ) sont quelconques. Une boule rouge ne peut être posée que sur trois boules de même couleur : Une boule bleue ne peut être posée que sur trois boules de deux couleurs différentes : Un tétraèdre tout rouge est trivial ! . . . Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Règles concernant les couleurs ----------------------------------------------------------------- Les boules de la base ( niveau 0 ) sont quelconques. Une boule rouge ne peut être posée que sur trois boules de même couleur : Une boule bleue ne peut être posée que sur trois boules de deux couleurs différentes : Une boule verte ne peut être posée que sur trois boules de couleurs différentes : Un tétraèdre tout rouge est trivial ! . . . Les boules vertes sont rares ! . . . Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale S Y M E T R I E S Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Symétries ----------------------------------------------------------------- Certaines solutions peuvent être identiques à symétrie près. Nous allons ignorer ces questions de symétrie ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Symétries ----------------------------------------------------------------- Certaines solutions peuvent être identiques à symétrie près. Nous allons ignorer ces questions de symétrie ! Il y a la symétrie axiale : Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Symétries ----------------------------------------------------------------- Certaines solutions peuvent être identiques à symétrie près. Nous allons ignorer ces questions de symétrie ! Il y a la symétrie axiale : Il y a la symétrie de rotation : Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale O R G A N I S A T I O N D U P R O G R A M M E Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Organisation du programme ----------------------------------------------------------------- Il y a un dialogue initial : taille du tétraèdre, affichage ou non, etc. La fonction back-track énumère toutes les bases du tétraèdre. Nous la détaillerons par la suite. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Organisation du programme ----------------------------------------------------------------- Il y a un dialogue initial : taille du tétraèdre, affichage ou non, etc. La fonction back-track énumère toutes les bases du tétraèdre. Nous la détaillerons par la suite. Dès qu’une base est terminée, nour complétons par les niveaux supérieurs en vertu des règles concernant les couleurs. La solution ainsi construite est analysée pour savoir si elle est optimale et doit être mémorisée ou non. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Organisation du programme ----------------------------------------------------------------- Il y a un dialogue initial : taille du tétraèdre, affichage ou non, etc. La fonction back-track énumère toutes les bases du tétraèdre. Nous la détaillerons par la suite. Dès qu’une base est terminée, nour complétons par les niveaux supérieurs en vertu des règles concernant les couleurs. La solution ainsi construite est analysée pour savoir si elle est optimale et doit être mémorisée ou non. Le calcul se termine par la synthèse, comme par exemple le nombre minimal de boules rouges dans un tétraèdre et le nombre de tels tétraèdres. On peut afficher, ou non, ces solutions. Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale R E P R E S E N T A T I O N D U T E T R A E D R E Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Représentation du tétraèdre ----------------------------------------------------------------- Le tétraèdre est mémorisé dans un tableau tri-dimmensionnel T [ N ] [ N ] [ N ] Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Représentation du tétraèdre ----------------------------------------------------------------- Le tétraèdre est mémorisé dans un tableau tri-dimmensionnel T [ i ] [ j ] [ 0 ] T [ N ] [ N ] [ N ] Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Représentation du tétraèdre ----------------------------------------------------------------- Le tétraèdre est mémorisé dans un tableau tri-dimmensionnel T [ i ] [ j ] [ 0 ] T [ N ] [ N ] [ N ] T [ i ] [ j ] [ 1 ] Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Représentation du tétraèdre ----------------------------------------------------------------- Le tétraèdre est mémorisé dans un tableau tri-dimmensionnel T [ i ] [ j ] [ 0 ] T [ N ] [ N ] [ N ] T [ i ] [ j ] [ 1 ] Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale B A C K T R A C K Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Le back-track ----------------------------------------------------------------- backtrack( i , j ) essaie pour la case ( i , j ) les trois possibilités ROUGE, BLEU ou VERT. Début : backtrack( 0 , 0 ) . Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Le back-track ----------------------------------------------------------------- backtrack( i , j ) essaie pour la case ( i , j ) les trois possibilités ROUGE, BLEU ou VERT. Début : backtrack( 0 , 0 ) . j i Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Le back-track ----------------------------------------------------------------- backtrack( i , j ) essaie pour la case ( i , j ) les trois possibilités ROUGE, BLEU ou VERT. Début : backtrack( 0 , 0 ) . Cases qui ont déjà une valeur ! j Case courante ! i Cases en attente ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Le back-track ----------------------------------------------------------------- backtrack( i , j ) essaie pour la case ( i , j ) les trois possibilités ROUGE, BLEU ou VERT. Début : backtrack( 0 , 0 ) . j i Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Le back-track ----------------------------------------------------------------- backtrack( i , j ) essaie pour la case ( i , j ) les trois possibilités ROUGE, BLEU ou VERT. Début : backtrack( 0 , 0 ) . Et on rappelle backtrack( i , j+1 ) resp. backtrack( i+1 , 0 ) j i Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Le back-track ----------------------------------------------------------------- backtrack( i , j ) essaie pour la case ( i , j ) les trois possibilités ROUGE, BLEU ou VERT. Début : backtrack( 0 , 0 ) . Et on rappelle backtrack( i , j+1 ) resp. backtrack( i+1 , 0 ) j i Fin si i = 0 et j = n ! ! ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Q U E L Q U E S R E S U L T A T S Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Quelques résultats ----------------------------------------------------------------- Des tétraèdres de côté 4 qui minimisent les boules rouges ou qui maximisent les boules bleues ou vertes : 15 bleues 2 rouges 11 vertes Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Quelques résultats ----------------------------------------------------------------- Taille Tétraèdre Min rouges # solutions Max bleues Max vertes MinR/MaxB MinR/MaxV Temps en s 1 2 0 / 1 2 6 3 7 1 0 / 3 3 1 134 8 6 13 1 / 8 1 / 6 4 2 1204 15 158 11 90 2 / 15 2 / 11 5 4 34710 27 72 19 42 4 / 27 4 / 19 6 6 30852 42 4184 30 12 6 / 42 6 / 30 7321 Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Quelques résultats ----------------------------------------------------------------- Facteur multiplicatif entre 5 et 6 : 6 nouvelles boules => 3^6 = 729 Presque 2 fois plus de boules dans les étages. 1200 * 6s = 7200s = 2h Observé ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Quelques résultats ----------------------------------------------------------------- Facteur multiplicatif entre 5 et 6 : 6 nouvelles boules => 3^6 = 729 Presque 2 fois plus de boules dans les étages. 1200 * 6s = 7200s = 2h Facteur multiplicatif entre 6 et 7 : 7 nouvelles boules => 3^7 = 2187 2 * 2187 * 2h = 1 an Facteur multiplicatif entre 7 et 8 : 8 nouvelles boules => 3^8 = 6561 2 * 6561 * 1an = « un peu avant le début du néolithique » Facteur multiplicatif entre 8 et 9 : 9 nouvelles boules => 3^9 = 19681 500 Mio d’années ! Observé ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale S U P P O R T Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale Support ----------------------------------------------------------------- Cette présentation ! Une ébauche de code ! Les rendez-vous ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique
Présentation générale B O N P R O J E T ! ! ! Décembre 2015 Eoncé du projet - Intranet Cours d'algorithmique