Skip to content

4 Statistiques

Guillaume CLOCHARD edited this page Jan 14, 2016 · 28 revisions

Nous avons fait plusieurs tests statistiques sur plusieurs variables : réussite de la résolution, mouvements à effectuer pour résoudre le cube, temps, mémoire.

Réussite de la résolution :

Pour tester notre résolution, nous avons réalisé nos tests sur 1 million de cubes différents (générés aléatoirement à partir de la librairie nodejs cube.js) afin d'être le plus sûr possible que notre solveur soit efficace :

Résultat : 1 000 000 / 1 000 000 cubes résolus 😄 (53 minutes de test)

Mouvements à effectuer :

L'objectif N°1 était de réduire au maximum le nombre moyen de mouvements nécessaires pour la résolution du cube, nous avons donc fait des statistiques sur un jeu de 11400 cubes. Notre première version résolvait le cube en 130 mouvements en moyenne, la version finale le résout en 79 mouvements en moyenne !

  • Nombre de mouvements minimum : 0 (Un cube déjà bien placé)
  • Nombre de mouvements maximum : 120
  • Moyenne : 78.89 mouvements (arrondi à 10^-2 près)
  • Écart-type : 24.72 mouvements (arrondi à 10^-2 près)

12527911_211872115824231_1837831183_n

Temps :

Temps aussi testé sur 11400 cubes !

  • Temps exécution 11400 cubes : 29.68s (arrondi a 10^-2 près pour plus de clarté)
  • Moyenne d’exécution de 11400 cubes : 0.0026s (arrondi a 10^-4 près pour plus de clarté)
  • Écart-type sur 11400 cubes : 0.00025s (arrondi a 10^-5 près pour plus de clarté)

On constate que la résolution est très rapide et que l'écart-type est quasi nul, ce qui implique que la résolution est quasiment constante en temps.

Mémoire :

L’exécution du module Python Ragnulf en entier demande 25Mo de mémoire environ. Notre fonction de résolution algo_cfop() demande en particulier 270Ko. (test réalisé avec le profileur memory_profiler)

Capture_d_écran_2016-01-14_à_09.03.41