💾 Qualification Hashcode2017 : Sujet 💾
Nous avons avons transposés ce problème à des instances de knapsack (prblm du sac à dos). Ce problème se prête assez bien à des stratégies à trajectoire en aménageant préalablement l'objectif sous-jacent. Les approches extérieures (duales) n'assurent pas à chaque étape la réalisabilité primale, elles sont donc plus efficaces.
L'implémentation d'une Scatter Search (Population-Based Method) a nécessité l'implémentation d'une GRASP et d'une Recherche locale.
On vérifie le respect des 5 contraintes de notre problème. En effet, une solution qui surcharge les caches serveurs n'est pas applicable.
Puis, on calcul le score selon la méthode fourni par l'énoncé : on pondère par le nombre de requêtes.
Tableau des scores
| (méta)Heuristique | me_at_the_zoo | trending_today | videos_worth_spreading |
|---|---|---|---|
| Borne Inférieur | 0 | 0 | 0 |
| Gloutonne | 500000 | 500000 | 500000 |
| GRASP | 500000 | 500000 | 500000 |
| Gloutonne + Recherche Locale | 500000 | 500000 | 500000 |
| GRASP + Recherche Locale | 500000 | 500000 | 500000 |
| GRASP + Scatter Search | 500000 | 500000 | 500000 |
| GRASP + Scatter Search + Recherche Locale | 500000 | 500000 | 500000 |
| Borne Supérieur | 561 356 | 500 000 | 817 516 |
donnees_modeles.py DataClass des données d'entrées
lecture_ecriture_fichiers.py Lecture et Ecriture des fichiers d'entrée et de sortie
heuristiques.py & meta_heuristiques.py Production d'une solution à partir des données lus
contraintes.py Vérification de la validité de la solution produite par l'heuristique
fonction_objective.py Application de la fonction objective à maximiser
main.py Lancement de l'application & Configuration


