Bonjour,
J'ai plusieurs remarques importantes à vous faire à propos du projet :
- Contrairement à ce que j'ai dis à Pauline hier, et contrairement à ce que je pensais, les valeurs de X dans les instances sont à considérer en faisant la somme distance*flux de TOUS les couples d’entrepôts. Ainsi, il faut compter le couple (a,b) mais aussi (b,a). En d'autres termes, la valeur X donnée considère deux fois chaque couple distance*flux entre l'entrepôt a et l'entrepôt b. Si vous l'avez déjà modélisé ainsi, c'est parfait. Si vous n'avez considéré dans votre somme qu'un seul fois chaque couple (a,b), il suffit de multiplier par 2 votre somme avant de la comparer à X.
- N'oubliez pas qu'il y a un petit rapport à inclure dans votre archive à déposer sur madoc (je vais bientôt créer le dépôt et je vous tiens au courant). Pas la peine d'en mettre des tartines, mais il doit clairement exposer la méta-heuristique choisie, comment vous l'avez implémentée (il y a une multitude de façons de faire un recuit simulé, par exemple), comment vous avez modélisé le problème, etc.
- Il existe au moins une solution pour toutes les instances données. Votre programme doit afficher à l'écran, d'abord sur une ligne, la valeur de la somme des distances*flux, puis sur une autre ligne, la solution trouvé, à savoir la position des entrepôts, avec les valeurs simplement séparées par un espace (pas de virgule ou je-ne-sais-quoi), à la manière dont les solutions optimales sont présentées dans meilleures_solutions.txt. Le non-respect de cette consigne entraînera des pénalités.
- Inutile d'inclure un chronomètre dans votre programme, vous pouvez mesurer le temps de calcul avec simplement la commande time sous linux. Au lieu d'exécuter votre programme ainsi : "./programme fichier_input", vous n'avez qu'à taper "time ./programme fichier_input". Du coup si vous passez par un langage script (comme Julia), faite-moi un fichier script exécutable sans devoir explicitement rentrer dans l'environnement du langage. Commencer votre fichier par la ligne #!/usr/bin/nom_de_l_interpreteur est suffisant pour cela.
- Ce qui m'amène à ce dernier point tellement évident pour moi que je l'avais oublié : votre programme DOIT tourner sous GNU/Linux. Un programme qui ne compile pas et/ou qui ne s'exécute pas sous GNU/Linux ne sera pas corrigé.
Bon courage !
F.