maximum le nombre formé de la concaténation de ces chiffres.
Par exemple la conformation de la figure 1 sera notée {4, 2, 1, 4, 1, 3, 2, 1} et non pas
{4, 1, 3, 2, 1, 4, 2, 1} ni {4, 1, 2, 4, 1, 2, 3, 1} ni {4, 1, 2, 3, 1, 4, 1, 2} , car
42141321 > 41321421 > 41241231 > 41231412 .
Algorithme A1
La méthode qui vient naturellement à l'esprit pour générer toutes les conformations de Nt triangles
consiste à utiliser un algorithme itératif.
Partant d'une conformation formée d'un triangle unique, on ajoute un triangle de manière itérative
jusqu'à obtenir les conformations de Nt triangles.
Pour chaque conformation de l' itération courante, on envisage toutes les manières de coller un
triangle supplémentaire sur ses arêtes libres.
Le code d'une nouvelle conformation est obtenu en insérant un zéro dans le code de la conformation
de départ, entre les chiffres correspondant aux sommets extrémités de l'arête à laquelle le nouveau
triangle est collé, puis en ajoutant le code du nouveau triangle, soit {1, 1, 1}.
Par exemple pour ajouter un triangle supplémentaire à gauche de la conformation de la figure 1 et
obtenir celle de la figure 2, on insère 0 entre le 4 et le 1 ce qui donne le code
{4, 2, 1, 4, 0, 1, 3, 2, 1} puis on ajoute {1, 1, 1} centré sur le 0 .
Figure 2
On obtient {4, 2, 1, 5, 1, 2, 3, 2, 1} qui est un code qui ne suit pas la convention adoptée ci-dessus.
Il est donc nécessaire d'envisager une permutation circulaire et un éventuel changement de sens afin
d'obtenir le code « maximum » ; dans cet exemple {5, 1, 2, 4, 1, 2, 3, 2, 1}.
Le tableau 1 montre les conformations obtenues et leur code jusqu'à Nt = 6 (Ns = 8).
Le nombre de conformations Nc augmente vite avec le nombre de triangles (3ème colonne du
tableau 2) ce qui amène deux conséquences néfastes : une taille mémoire et un temps de calcul qui
croissent rapidement.
Je ne donnerai pas plus de détail sur cet algorithme car son intérêt est limité à cause de sa lenteur.
Ceci est du au fait que lorsqu'on trouve une nouvelle conformation on doit vérifier qu'elle n'a pas
déjà été générée précédemment. Cette vérification devient vite pénalisante en temps de calcul. Elle
peut être accélérée en utilisant une recherche par dichotomie, mais cela ne suffit pas si l'on désire
dépasser une vingtaine de sommets.
C'est ce que montre la 4ème colonne du tableau 2 où les temps de calcul T(A1) obtenus avec un
programme en langage C implémentant cet algorithme sont indiqués pour un ordinateur équipé d'un
processeur Intel Xeon E5-4650 cadencé à 2.7GHz.