S
Stochastic Heuristic Optimization (code for IA-308 lecture on metaheuristics). – README-julien.md

README-julien.md

Où est l'algo

Les algorithmes se trouvent dans le fichier sho/algo.py les se nomment : simulated_annealing et evolutionary.

Où est l'EAF

Le calcul de l'EAF se trouve dans le fichier eaf.py à la racine du dossier. Voici un exemple de commande :


python eaf.py --nb-run 50 --quality-threshold 660 670 675 680 --solver num_evolutionary --iters 200

Démarche

Le choix entre l'algorithme évolutionnaire et le recuit simulé se fait sur différents critères:

  • le nombre d'appel à la fonction objectif
  • la probabilité d'un résultat
  • la valeur de la fonction objective

j'ai choisi de fixer le nombre d'appel à la fonction objectif à 2000 et de voir le comportement en probabilté à différent seuil de la fonction objective au cours des itérations.

En comparant les graphiques :

et

Nous pouvons voir déjà que le recuit simulé atteint très vite des plateau pour tous les seuils de la fonction objective en un temps très rapide (au alentour de 500 appels à la FO) alors que pour l'algorithme évolutionnaire ce n'est pas aussi vrai.

Une autre différence majeure est la probabilité d'atteinte des différentes seuils de la FO. Pour l'algorithme évolutionnaire les seuils 660, 670 et 675 atteignent une probabilité 1 au bout d'un certain temps (au dela de 1500 appels). Pour le recuit simulé, la probabilité décroît avec l'augmentation des seuils.

À cause de ces différences, j'ai choisi l'algoritme évolutionnaire car je ne suis pas limité a priori en nombre d'appel à la FO.