Urbanisme
1.3.0
Projet visant à l'optimisation du placement de routes sur une surface. https://flodavid.github.io/Urbanisme
|
La classe effectuant l'ensemble de la résolution et le front Pareto Elle contient l'intégralité des données du problème et est chargée de lancer les algos, de stocker les solutions et de construire le front pareto résultant. Plus de détails...
#include <resolution.h>
Fonctions membres publiques | |
size_t | get_nb_not_dominated () const |
Resolution (unsigned nbCols, unsigned nbRows, unsigned serveDistance, unsigned roadsWidth, std::list< Coordinates > &ins_outs) | |
Resolution (const Field &field, const Parameters &_params) | |
void | evaluateBothObjectives () |
bool | isNotDominated (const Evaluation &eval) |
int | spread (const Evaluation &eval) |
FieldEvaluation * | localSearchUsableObjective (unsigned maxRoadsToAdd=10) |
FieldEvaluation * | localSearchAccessObjective (unsigned maxPathsToAdd=1) |
FieldEvaluation * | initResolution () |
void | writeDominatedEvaluation (const Evaluation &eval) |
bool | trySaveParetoToTxt (std::string fileName) const |
trySaveParetoToTxt Plus de détails... | |
std::string | drawParetoJpeg (std::string dataName) const |
void | changeWorkField (Field *_field, bool newField) |
La classe effectuant l'ensemble de la résolution et le front Pareto Elle contient l'intégralité des données du problème et est chargée de lancer les algos, de stocker les solutions et de construire le front pareto résultant.
Resolution::Resolution | ( | unsigned | nbCols, |
unsigned | nbRows, | ||
unsigned | serveDistance, | ||
unsigned | roadsWidth, | ||
std::list< Coordinates > & | ins_outs | ||
) |
Constructeur d'une résolution à partir de tous les paramètres du problème, avec une liste d'entrées et sorties
nbCols | Largeur de la surface |
nbRows | Hauteur de la surface |
serveDistance | Distance de desserte des parcelles par les routes |
roadsWidth | Largeur des routes |
ins_outs | Liste d'entrées/sorties de la surface |
Constructeurs
Resolution::Resolution | ( | const Field & | field, |
const Parameters & | _params | ||
) |
Construit l'instance en recopiant une surface et des paramètres existants
field | |
_params |
void Resolution::changeWorkField | ( | Field * | _field, |
bool | newField | ||
) |
Setters
TODO demander à l'utilisateur si il veut sauvegarder les résultats avant d'effacer le champ
std::string Resolution::drawParetoJpeg | ( | std::string | dataName | ) | const |
Exporte les solutions non dominées dans une image jpeg
dataName |
void Resolution::evaluateBothObjectives | ( | ) |
Evalue les deux objectifs
Evaluation et Pareto
|
inline |
Compte le nombre de solutions non dominées trouvées jusqu'à présent
FieldEvaluation * Resolution::initResolution | ( | ) |
Création de la route qui relie deux entrées/sorties
TODO plus tard : enlever l'affichage de la fenêtre d'erreur de la classe Resolution
bool Resolution::isNotDominated | ( | const Evaluation & | eval | ) |
Vérifie si l'évaluation est dominée par l'évaluation d'au moins une des solutions précédemment calculées
eval | Evaluation à traiter |
FieldEvaluation * Resolution::localSearchAccessObjective | ( | unsigned | maxPathsToAdd = 1 | ) |
Exécute la recherche locale permettant de maximiser l'accessibilité
FieldEvaluation * Resolution::localSearchUsableObjective | ( | unsigned | maxRoadsToAdd = 10 | ) |
Exécute la recherche locale permettant de maximiser le nombre de parcelles exploitables
Recherches locales
int Resolution::spread | ( | const Evaluation & | eval | ) |
Effectue une propagation à partir de la solution courante : toutes les solutions précédentes dominées par la solution sont supprimées
eval | Evaluation courante |
TODO pourquoi ça peut provoquer un seg fault ?
bool Resolution::trySaveParetoToTxt | ( | std::string | fileName | ) | const |
trySaveParetoToTxt
fileName |
void Resolution::writeDominatedEvaluation | ( | const Evaluation & | eval | ) |
Ecrit l'évaluation dans le fichier des évaluations dominées
Export