Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/o-laurent/metaheuristics
Repository for the IA308: Metaheuristics course at ENSTA Paris
https://github.com/o-laurent/metaheuristics
Last synced: 6 days ago
JSON representation
Repository for the IA308: Metaheuristics course at ENSTA Paris
- Host: GitHub
- URL: https://github.com/o-laurent/metaheuristics
- Owner: o-laurent
- Created: 2021-11-20T18:15:10.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2021-11-20T18:26:38.000Z (about 3 years ago)
- Last Synced: 2024-11-08T19:49:04.615Z (2 months ago)
- Language: Python
- Size: 1.37 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Readme d'évaluation
Il s'agit du rendu de projet du cours IA308 de l'ENSTA Paris dispensé par Johann Dreo. L'objectif était de compléter un module en implémentant des heuristiques permettant de résoudre un problème d'optimisation - la maximisation du recouvrement d'une zone carrée par des capteurs.
Mon objectif était de faire l'algorithme le plus léger possible. L'algorithme de départ a été complexifié pour permettre son fonctionnement sur des durées plus longues grâce à un redémarrage automatique. Ses performances sont cependant légèrement décevantes sur cette échelle de temps.
## Dépendances
Installez les dépendances avec `pip install -r requirements.txt`.
## Les fichiers intéressants
Les fichiers intéressants sont les suivants:
### Le Code
Les fichiers modifiés sont les suivants:
- Un fichier contenant les [algorithmes généraux](sho/algo.py) comme le recuit simulé dans les deux encodages ainsi qu'un algorithme génétique (malheureusement pas terminé).
- Les fichiers contenant les heuristiques d'initialisation (ainsi que la réparation des solutions pour num) et des fonctions _to_sensors_ ainsi que _neighb_square_ optimisées en [bit](sho/bit.py) et [sho/num.py](num). Les optimisations utilisent np.where au lieu de boucler sur le tableau.
- Des fichiers permettant de définir des [probas d'acceptation](sho/proba.py), des [températures](sho/temp.py) et les [make](sho/make.py) associés.
- Un dossier définissant les sous-fonctions liées aux [populations](sho/pop_based).### L'analyse des résultats
Quelques fichiers d'analyse ont été créés:
- Un fichier permettant de générer des graphes d'[évaluation](evaluation.py), comme des tranches d'EAF (de façon optimisée) ainsi que l'ECDF (version sans enveloppe convexe). L'ECDF est disponible en version heatmap ainsi qu'en version "seaborn", en fait nuage de points.
- Des fichiers permettant de générer des historiques en faisant varier un paramètre ([bit](variying_sa_cst_bit.py), [num](variying_sa_cst_num.py)) et de les [comparer](compare_encoding.py).
- Un [fichier](meta_optim.py) optimisant les paramètres du recuit simulé grâce aux Parzen-Tree Estimators de la librairie optuna.
- Des [figures](sho/analysis/EAF_Slice.png) générées par les algorithmes présentés ci-dessus.### Remarque
pb.py contient la fonction coverage optimisée par Arthur Liu.