Urbanisme  1.3.0
Projet visant à l'optimisation du placement de routes sur une surface. https://flodavid.github.io/Urbanisme
Types publics | Fonctions membres publiques | Liste de tous les membres
Référence de la classe LocalSearch

La classe chargée d'effectuer des recherches locales sur les différentes solutions TODO ajouter les entrées et sorties. Plus de détails...

#include <localsearch.h>

Types publics

typedef std::list< CoordinatesPath
 

Fonctions membres publiques

unsigned get_field_width () const
 
unsigned get_field_height () const
 
FieldEvaluationget_field ()
 
FieldEvaluationget_fieldEvaluation ()
 
 LocalSearch (Field *_field, const Parameters *_params)
 
 LocalSearch (const LocalSearch &other)
 
void setField (Field *_field)
 
bool tryInitSolution ()
 
std::list< Path * > * getPaths (const Coordinates &coord1, const Coordinates &coord2)
 
float gainPath (Path *path)
 
int addRoadUsable () const
 
float addRoadsAccess (unsigned nbToAdd)
 

Description détaillée

La classe chargée d'effectuer des recherches locales sur les différentes solutions TODO ajouter les entrées et sorties.

Documentation des définitions de type membres

typedef std::list<Coordinates> LocalSearch::Path

Un chemin est une suite de coordonnées qu'on suppose adjacentes

Documentation des constructeurs et destructeur

LocalSearch::LocalSearch ( Field _field,
const Parameters _params 
)

Constructeur d'une recherche locale à partir d'une surface existante et des paramètres des routes. La surface sera modifiée

Paramètres
_fieldSurface déjà instanciée
_paramsParamètres des routes

Constructeurs

LocalSearch::LocalSearch ( const LocalSearch other)

Constructeur d'une recherche locale par recopie La surface de l'autre instance est recopiée

Paramètres
otherInstance à recopier

Documentation des fonctions membres

float LocalSearch::addRoadsAccess ( unsigned  nbToAdd)

Tente l'ajout d'un chemin (série de routes) avec pour objectif d'améliorer l'accessibilité.

Renvoie
faux si aucune route n'a pu être ajoutée car il n'y a aucun placement de chemin permettant d'obtenir une solution réalisable avec une accessibilité meilleures ou équivalente.
int LocalSearch::addRoadUsable ( ) const

Tente l'ajout d'une route avec pour objectif d'augmenter le nombre de parcelles exploitables.

Renvoie
faux si aucune route n'a pu être ajoutée car il n'y a aucun placement de route permettant d'obtenir une solution réalisable avec un nombre de parcelles exploitables supérieur ou égal au nombre courant.

TODO est-ce utile de soustraire le nombre de voisin, mettre un coef, ... ? OUI, ça a une utilité, pour éviter de coller 2 routes

float LocalSearch::gainPath ( Path path)

Calcule le gain hypotéthique en accessibilité lors de l'ajout d'un chemin donné

Paramètres
pathChemin testé (liste de routes)
Renvoie
Gain en accessibilité lors de l'ajout du chemin, nul si le chemin et vide

Tests

Fin tests

Voir également
voir comment ne pas utiliser initRoadDistances et si c'est utile de recalculer le ratio
voir comment ne pas utiliser initRoadDistances et si c'est utile de recalculer le ratio
FieldEvaluation& LocalSearch::get_field ( )
inline

Accesseur sur la surface de l'Evaluation

Renvoie
Une référence sur la surface, modifiable
unsigned LocalSearch::get_field_height ( ) const
inline

Permet de connaitre la hauteur de la surface étudiée

unsigned LocalSearch::get_field_width ( ) const
inline

Permet de connaitre la largeur de la surface étudiée

FieldEvaluation* LocalSearch::get_fieldEvaluation ( )
inline

Accesseur sur l'Evaluation

Renvoie
Une pointeur sur l'évaluation, modifiable
list< Path * > * LocalSearch::getPaths ( const Coordinates coord1,
const Coordinates coord2 
)

Cherche tous les chemins "directs" possibles entre deux routes. Ces chemins ne doivent pas contenir de routes aller de manière directe d'un point à l'autre, pas de "détours" pour éviter une route.

Paramètres
coord1Coordonnées de la première route
coord2Coordonnées de la seconde route
Renvoie
Un pointeur sur une liste de pointeurs sur les différents chemin possibles
void LocalSearch::setField ( Field _field)

Setters

bool LocalSearch::tryInitSolution ( )

Relie les entrées et sorties entre elles, de manière directe


La documentation de cette classe a été générée à partir des fichiers suivants :