|
|
|
Le fichier `Transporters.gaml` contient trois types d'agents différents qui héritent tous du super-type `Transporter`. Ces trois types de transporteurs sont :
|
|
|
|
|
|
|
|
* `RoadTransporter` pour le mode routier
|
|
|
|
* `RiveTransporter` pour le mode fluvial
|
|
|
|
* et `MaritimeTransporter` pour le mod maritime
|
|
|
|
|
|
|
|
Le super-type `Transporter` déclare quatre variables :
|
|
|
|
|
|
|
|
* `networkType` : le type de mode de transport que gère ce transporteur
|
|
|
|
* `timeBetweenVehicles` : le nombre de cycle minimum entre deux départs de véhicules depuis un même bâtiment.
|
|
|
|
* `maximalTransportedVolume` : la quantité maximale que peut transporter un véhicule se déplaçant sur le réseau gérer par le transproteur.
|
|
|
|
* et `volumeKilometersCosts` : le coût financier pour transporter une unité de marchandise sur un kilomètre et sur le mode gérer par le transporteur.
|
|
|
|
|
|
|
|
En fonction du type de transporteur, ces variables n'ont bien sûr pas les mêmes valeurs.
|
|
|
|
|
|
|
|
Ces agents possèdent le skill `Transporter` définis dans le plugin `transport.organizer`. Ce skill les dote de deux fonctions :
|
|
|
|
|
|
|
|
* `getDepartureDate` : qui détermine la date la plus proche à laquelle un véhicule d'un mode particulier peut quitter un bâtiment donnée et avec la quantité de marchandises spécifiée
|
|
|
|
* et `registerDepartureDate` : qui réserve une place dans (ou crée) un véhicule pour transporter des marchandises sur mode particulier, depuis un bâtiment et vers un autre.
|
|
|
|
|