Bonjour,
Quelques détails sur mon programme e2fast.
Le programme est fait pour résoudre le benchmark du site de facon très rapide. Il peut aussi résoudre (tenter :-)) eternity2 avec une piece indice. La différence de vitesse est de l'ordre de 5% (entre le mode benchmark et le mode eternity2).
L'algorithme utilisé est de type back-tracking. Je suis un passionné d'optimisation et je pense (j'espère :-) que ma version est la plus rapide actuellement. e2fast est écrit uniquement en C (une version C++ et une version C pure) (pas d'assembleur utilisé).
Pour lever les ambiguités concernant les mesures, voici des infos complètes:
- Le benchmark tourne avec le jeu de pièce non mélangé (première solution trouvée au bout de 538011728 récursions)
- mon programme n'utilise qu'un seul coeur (pas d'optimisation plusieurs coeurs)
- Configuration: Intel Core 2 CPU T5600 @1.83Ghz
-e2fast 1.0:
- Première solution trouvée : 7s
- Parcours complet de tous les noeuds: 49s
- Temps de référence du eternity2 v3.1 --benchmark sur ma config:
- Première solution trouvée : 33s
- Parcours complet de tous les noeuds: 4'01s
Soit un "ratio" de 0.20
Pour info le log de e2fast:
FastBackTracker launched...
Solution 1 In 6.97 seconds (538011728 checks)
( 77211781 recurs per second )
Solution 2 In 21.59 seconds (1670001734 checks)
( 77339957 recurs per second )
Solution 3 In 28.22 seconds (2203211274 checks)
( 78078221 recurs per second )
Solution 4 In 46.41 seconds (3726342035 checks)
( 80298708 recurs per second )
Total: 3979209751 recurs in 49.17 seconds
( 80925944 recurs per second )