... | ... | @@ -5,3 +5,26 @@ Les agents `Provider` fournissent le système en marchandises. On a un agent `Pr |
|
|
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.
|
|
|
|
|
|
|
|
|
# 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 :
|
|
|
|
|
|
![f1]
|
|
|
|
|
|
avec *F<sub>ij</sub>** la force d'attraction entre le fournisseur *i* et le prestataire *j*. *A<sub>i</sub>* est l'attractivité du fournisseur *i* (ce paramètre représente la compétition entre les ports : une attractivité plus élevée signifie que le port est plus compétitif qu'un autre). Et *d<sub>ij</sub>* est la distance entre *i* et *j*.
|
|
|
|
|
|
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.
|
|
|
|
|
|
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`.
|
|
|
|
|
|
# Référence
|
|
|
|
|
|
Stewart, J. Q., "Demographic Gravitation: Evidence and Applications", Sociometry, vol. 11, pp. 31-58, 1948
|
|
|
|
|
|
[f1]: http://chart.apis.google.com/chart?cht=tx&chl=F_{ij}=\frac{A_i}{d_{ij}^2} |
|
|
\ No newline at end of file |