Bonjour,
Je fais mes debuts en Python et j'aurais besoin de conseils pour resoudre un probleme que j'ai actuellement dans mon programme.
La chose est assez simple mais assez longue a coder avec surement des pieges...
J'ai 4 fonctions qui font du calcul sur un intervalle, disons de [0, 400].
Chaque fonction a un temps d'execution plus ou moins grand (mais croissant)et je souhaiterai que mon programme final fournisse les meilleurs performances. Pour cela, je souhaiterai faire un script en python pour tester chaque fonction, et trouver le meilleur intervalle pour les utiliser. Cela permettra a mon programme d'avoir le temps d'execution le plus court possible pour une valeur donnee.
Le probleme est que, faire tourner chaque fonction entre [0,400] puis choisir celle qui a le temps d'execution le plus court, pour un intervalle donne, ne resoud pas mon probleme. En effet, lorsque je change de fonction, il y a un coup d'initialisation.
Il me faut donc faire la chose suivante:
0. calculer le temps de chaque fonction de [0,400], en les faisant fonctionner individuellement.
1. Selectionner la fonction X qui fourni le temps minimal de [0,a] et la fonction Y qui fourni le temps minimal de [a,b].
2. Regarder si le cout du changement de X vers Y en a ne fait pas apparaitre un "pique" lie au changement de fonction.
3 -Si c'est le cas, regarder en a+1 si le cout du changement est amorti, sinon regarder en a+2 etc....
-Sinon, si il n'y a pas de "pique", faire la meme etude en b etc....
Vu que le temps de mes fonctions est croissant, je ne pense pas que cela soit tres difficile, mais etant donne que python dispose de nombreuses libraries, je pensais qu'il y avait peut etre deja une lib optimisee qui pouvait faire cela (histoire de ne pas reinventer la roue).
J'ai regarde les lib scientiques (http://wiki.python.org/moin/NumericAndScientific) du wiki, mais je n'ai trouve qu'un moyen de faire l'etape 1 (trouver le min)..
Si quelqu'un pourrait m'orienter pour savoir si une lib existait deja pour l'etape 2-3 ou me donner des conseils, je serais tres interesse.
Merci bcp.
Partager