Tentative d'implémentation d'optimisation
Je ne suis pas sûr d'avoir très bien compris le sujet, dans le doute, j'ai mit un Random solver
This commit is contained in:
24
test/test_optim.cpp
Normal file → Executable file
24
test/test_optim.cpp
Normal file → Executable file
@@ -2,6 +2,7 @@
|
||||
#include <artis-star/kernel/pdevs/Coordinator.hpp>
|
||||
#include <artis-star/kernel/pdevs/GraphManager.hpp>
|
||||
#include <iostream>
|
||||
#include <random>
|
||||
|
||||
#include "FactoryGraphManager.hpp"
|
||||
#include "Machine.hpp"
|
||||
@@ -221,9 +222,26 @@ private:
|
||||
int main() {
|
||||
Evaluator evaluator;
|
||||
|
||||
for (unsigned int i = 0; i < iteration_number; ++i) {
|
||||
Solution solution{make_po_order(), make_capacities()};
|
||||
unsigned int best_score = 99999;
|
||||
|
||||
std::cout << evaluator.evaluate(solution)[0] << " " << evaluator.evaluate(solution)[1] << std::endl;
|
||||
for (unsigned int i = 0; i < iteration_number; ++i) {
|
||||
std::random_device rd;
|
||||
std::mt19937 generator(rd());
|
||||
std::vector<unsigned int> liste_po = make_po_order();
|
||||
|
||||
std::shuffle(liste_po.begin(), liste_po.end(), generator); // Random solver, pas forcément le meilleur, mais c'est fonctionnel \_(ツ)_/¯
|
||||
|
||||
Solution solution{liste_po, make_capacities()}; // Fixer la capacité des stocks à l'infini ? Le but n'est pas de réduire cette variable ?
|
||||
|
||||
unsigned int score = evaluator.evaluate(solution)[0];
|
||||
|
||||
std::cout << score << " " << evaluator.evaluate(solution)[1] << std::endl;
|
||||
if (score < best_score)
|
||||
{
|
||||
// Diminution du score, je garde cette solution
|
||||
best_score = score;
|
||||
std::cout << "^ EST UN NOUVEAU SCORE MINIMAL ^" << std::endl;
|
||||
}
|
||||
}
|
||||
std::cout << "Score minimal : " << best_score <<std::endl;
|
||||
}
|
||||
Reference in New Issue
Block a user