... | ... | @@ -27,11 +27,13 @@ En interne, le `ForwardingAgent` va donc maintenir un graphe dont les différent |
|
|
|
|
|
# Le calcul de plus court chemin
|
|
|
|
|
|
L'appel à la fonction `compute_shortest_path` s'effectue au moment de la création d'un objet `Commodity` (voir la page [Bâtiments logistiques](Building#processOrders) pour plus de détail à ce sujet) et nécessite de lui passer ces quatres paramètres :
|
|
|
L'appel à la fonction `compute_shortest_path` s'effectue au moment de la création d'un objet `Commodity` (voir la page [Bâtiments logistiques](Building#processOrders) pour plus de détail à ce sujet) et nécessite de lui passer ces quatre paramètres :
|
|
|
|
|
|
* le bâtiment d'orgine de la marchandise.
|
|
|
* le bâtiment d'origine de la marchandise.
|
|
|
* la destination de la marchandise.
|
|
|
* La stratégie employée pour déterminer le plus court chemin : soit `travel_time` pour le plus court chemin en terme de temps, soit `financial_costs` pour le plus court chemin en terme de coûts financiers.
|
|
|
* l'objet `Commodity` a transporté.
|
|
|
|
|
|
`compute_shortest_path` s'occupe également de réserver les différents véhicules nécessaire au transport. La réservation consiste à appeler la fonction `registerDepartureDate` de la classe `TransporterSkill` du plugin `transport.organizer` (voir la page [Transporters](Transporters) pour plus de détails quant à cette fonction). |
|
|
\ No newline at end of file |
|
|
`compute_shortest_path` consiste à exécuter un algorithme de Dijsktra modifié sur le graphe multi-modal. L'algorithme est modifié car il est capable de prendre en compte les dates de départ des véhicules quittant les bâtiments (y compris les nœuds multi-modaux intermédiaires).
|
|
|
|
|
|
Une fois le plus court chemin déterminé, `compute_shortest_path` s'occupe également de réserver les différents véhicules nécessaires au transport. La réservation consiste à appeler la fonction `registerDepartureDate` de la classe `TransporterSkill` du plugin `transport.organizer` (voir la page [Transporters](Transporters) pour plus de détails quant à cette fonction). |
|
|
\ No newline at end of file |