|
|
Les agents `Provider` fournissent le système en marchandises. On a un agent `Provider` pour chaque nœud d'accès au système. Ainsi, dans la version actuelle, on a deux fournisseurs : l'un est connecté au port du Havre, l'autre au port d'Anvers. La variable `port` permet de savoir à quel port un fournisseur est rattaché.
|
|
|
Les agents `🆃 Provider` fournissent le système en marchandises. On a un agent `🆃 Provider` pour chaque nœud d'accès au système. Ainsi, dans la version actuelle, on a deux fournisseurs : l'un est connecté au port du Havre, l'autre au port d'Anvers. La variable `🆅 port` permet de savoir à quel port un fournisseur est rattaché.
|
|
|
|
|
|
# Traitement des commandes pour expédition de marchandises
|
|
|
|
|
|
Les `Provider` redéfinissent le reflex `processOrders` puisque contrairement aux entrepôts, ils sont capables de délivrer n'importe quelle marchandise, quelque soit la quantité. Ils n'ont pas besoin de vérifier qu'ils ont des stocks suffisant.
|
|
|
Les `🆃 Provider` redéfinissent le reflex `🅵 processOrders` puisque contrairement aux entrepôts, ils sont capables de délivrer n'importe quelle marchandise, quelque soit la quantité. Ils n'ont pas besoin de vérifier qu'ils ont des stocks suffisant.
|
|
|
|
|
|
Ainsi, le reflex `processOrders` se contente de créer un objet `Stock` puis un objet `Commodity` pour chaque `Order` qu'il reçoit.
|
|
|
Ainsi, le reflex `🅵 processOrders` se contente de créer un objet `🆃 Stock` puis un objet `🆃 Commodity` pour chaque `🆃 Order` qu'il reçoit.
|
|
|
|
|
|
|
|
|
# Attractivité et choix des fournisseurs par les prestataires logistiques
|
|
|
|
|
|
Les prestataires logistiques sont tous associés à l'un des fournisseurs possibles dès leur initialisation et de façon aléatoire. Néanmoins, il existe un mécanisme permettant de modifier la probabilité de choisir tel ou tel fournisseur : il s'agit alors de définir l'attractivité des `Provider` grâce à la variable `attractiveness`. L'intérêt est ici de modéliser l'attrativité des ports. Inspiré des modèles gravitaires (Stewart, 1948), nous définissons la force d'attraction entre un fournisseur et un prestataire à partir de cette formule :
|
|
|
Les prestataires logistiques sont tous associés à l'un des fournisseurs possibles dès leur initialisation et de façon aléatoire. Néanmoins, il existe un mécanisme permettant de modifier la probabilité de choisir tel ou tel fournisseur : il s'agit alors de définir l'attractivité des `🆃 Provider` grâce à la variable `🆅 attractiveness`. L'intérêt est ici de modéliser l'attrativité des ports. Inspiré des modèles gravitaires (Stewart, 1948), nous définissons la force d'attraction entre un fournisseur et un prestataire à partir de cette formule :
|
|
|
|
|
|
![f1]
|
|
|
|
... | ... | @@ -17,11 +17,23 @@ avec *F<sub>ij</sub>** la force d'attraction entre le fournisseur *i* et le pres |
|
|
|
|
|
Une fois qu'un prestataire logistique a calculé la force d'attraction de chaque fournisseur, on peut déterminer la probabilité en fonction du ratio qu'il existe entre les différentes forces d'attraction.
|
|
|
|
|
|
Pour utiliser ce mécanisme, l'utilisateur peut appeler la fonction `update_proba_to_choose_provider` définie dans `Perturbator.gaml`, soit en plaçant l'appel à l'endroit voulu dans le code source, soit en l'activant via le bouton `Update_Ports_Attractiveness` disponible dans l'interface graphique lorsqu'une simulation est en cours.
|
|
|
Pour utiliser ce mécanisme, l'utilisateur peut appeler la fonction `🅵 update_proba_to_choose_provider` définie dans `🅶 Perturbator.gaml`, soit en plaçant l'appel à l'endroit voulu dans le code source, soit en l'activant via le bouton `Update_Ports_Attractiveness` disponible dans l'interface graphique lorsqu'une simulation est en cours.
|
|
|
|
|
|
Cette fonction va alors utiliser les valeurs définies par les paramètres `LHAttractiveness` et `AntAttractiveness` pour définir l'attractivité des deux `Provider`. Ces paramètres sont eux aussi définissable via l'interface graphique au cours d'une simulation.
|
|
|
Cette fonction va alors utiliser les valeurs définies par les paramètres `🅿 LHAttractiveness` et `🅿 AntAttractiveness` pour définir l'attractivité des deux `🆃 Provider`. Ces paramètres sont eux aussi définissable via l'interface graphique au cours d'une simulation.
|
|
|
|
|
|
On notera toutefois que l'appel à cette fonction aura pour conséquence de modifier *l'ensemble* des liens `Provider` - `LogisticsServiceProvider`.
|
|
|
On notera toutefois que l'appel à cette fonction aura pour conséquence de modifier *l'ensemble* des liens `🆃 Provider` <-> `🆃 LogisticsServiceProvider`.
|
|
|
|
|
|
# Légende
|
|
|
|
|
|
`🅵 fonctions`
|
|
|
|
|
|
`🅿 paramètre du modèle`
|
|
|
|
|
|
`🆃 type d'agent`
|
|
|
|
|
|
`🆅 variable`
|
|
|
|
|
|
`🅶 Fichier contenant des variables et/ou des fonctions globales`
|
|
|
|
|
|
# Référence
|
|
|
|
... | ... | |