... | @@ -7,16 +7,31 @@ Le fichier `Transporters.gaml` contient trois types d'agents différents qui hé |
... | @@ -7,16 +7,31 @@ Le fichier `Transporters.gaml` contient trois types d'agents différents qui hé |
|
Le super-type `🆃 Transporter` déclare quatre variables :
|
|
Le super-type `🆃 Transporter` déclare quatre variables :
|
|
|
|
|
|
* `🆅 networkType` : le type de mode de transport que gère ce transporteur
|
|
* `🆅 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.
|
|
* `🆅 timeBetweenVehicles` : le nombre de cycle minimum entre deux départs de véhicules depuis un même bâtiment. Ce nombre est un réel et indique des heures. Il doit être supérieur à zéro, mais peut être inférieur à 1 pour indiquer des minutes.
|
|
* `🆅 maximalTransportedVolume` : la quantité maximale que peut transporter un véhicule se déplaçant sur le réseau gérer par le transproteur.
|
|
* `🆅 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.
|
|
* 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.
|
|
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 :
|
|
Ces agents possèdent le skill `Transporter` définis dans le plugin `transport.organizer`. Ce skill les dote de plusieurs fonctions (non accessible depuis GAMA) :
|
|
|
|
|
|
|
|
* `🅵 findBestDepartureDate` : qui cherche une date possible pour un nouveau départ (sur un mode de transport donné), en respectant les contraintes définies par `timeBetweenVehicle`.
|
|
* `🅵 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
|
|
* `🅵 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 un mode particulier, depuis un bâtiment et vers un autre.
|
|
* `🅵 registerDepartureDate` : qui réserve une place dans (ou crée) un véhicule pour transporter des marchandises sur un mode particulier, depuis un bâtiment et vers un autre.
|
|
|
|
* `🅵 getTimeBeweenVehicleDest` : retourne la valeur de `🆅 timeBetweenVehicle` pour un triplet mode-origine-destination. Cela peut correspondre à la valeur définie dans le modèle GAMA dans l'agent transporteur associé au mode, mais cela peut aussi correspondre à la valeur définie dans le fichier JSON `timeBetweenVehicles.json`.
|
|
|
|
|
|
|
|
Ce fichier `timeBetweenVehicles.json` permet de définir des valeurs de `🆅 timeBetweenVehicle` différentes pour des origines-destinations spécifiques. Une valeur indiquée dans ce fichier doit être supérieur à la valeur de `🆅 timeBetweenVehicle` définie dans l'agent `🆃 Transporter` de ce mode. De plus, en indiquant la valeur de -1, cela indique une valeur $+\infty$ .
|
|
|
|
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"id_terminale_origin" : {
|
|
|
|
"id_terminale_dest" : {
|
|
|
|
"timeBetweenVehicles_maritime":4,
|
|
|
|
"timeBetweenVehicles_river":3,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
|
|
La fonction `🅵 getDepartureDate` détermine la date de départ de la marchandise en se basant sur les même contraintes que `🅵 registerDepartureDate`. D'une certaine façon, elle simule le départ de la marchandise à partir d'une date d'arrivée et d'un volume à transporter.
|
|
La fonction `🅵 getDepartureDate` détermine la date de départ de la marchandise en se basant sur les même contraintes que `🅵 registerDepartureDate`. D'une certaine façon, elle simule le départ de la marchandise à partir d'une date d'arrivée et d'un volume à transporter.
|
|
|
|
|
... | | ... | |