[Problème de conception du réseau logistique](http://www.orsj.or.jp/~wiki/wiki/index.php/%E3%80%8A%E3%83%AD%E3%82%B8%E3% 82% B9% E3% 83% 86% E3% 82% A3% E3% 82% AF% E3% 82% B9% E3% 83% 8D% E3% 83% 83% E3% 83% 88% E3% 83% AF% E3% 83% BC% E3% 82% AF% E8% A8% AD% E8% A8% 88% E5% 95% 8F% E9% A1% 8C% E3% 80% 8B)
Découvrez où, quoi, combien et comment transporter afin que la somme des coûts de transport et de production soit minimisée tout en répondant à la demande.
Caractéristiques
python
Produit= list('AB')
Zone de demande= list('PQ')
usine= list('XY')
voie= (2, 2)
Tableau des frais d'expédition
python
import numpy as np, pandas as pd
tbdi = pd.DataFrame(((j, k)pour j dans la zone de demande pour k en usine), columns=['Zone de demande', 'usine'])
tbdi['Les frais de livraison'] = [1,2,3,1]
tbdi
Zone de demande th> | Usine th> | Frais de transport th> | |
---|---|---|---|
0 | P | X | 1 |
1 | P | Y | 2 |
2 | Q | X | 3 |
3 | Q | Y | 1 |
Tableau de demande
python
tbde = pd.DataFrame(((j, i)pour j dans la zone de demande pour i dans les produits), columns=['Zone de demande', 'Produit'])
tbde['demande'] = [10, 10, 20, 20]
tbde
Zone de demande th> | Produit th> | Demande th> | |
---|---|---|---|
0 | P | A | 10 |
1 | P | B | 10 |
2 | Q | A | 20 |
3 | Q | B | 20 |
Table de production
python
tbfa = pd.DataFrame(((k, l, i, 0, np.inf) for k, nl in zip(usine,voie)
for l in range(nl)pour moi dans le produit), columns=['usine', 'voie', 'Produit', 'limite inférieure', 'limite supérieure'])
tbfa['Coût de production'] = [1, np.nan, np.nan, 1, 3, np.nan, 5, 3]
tbfa.dropna(inplace=True)
tbfa.ix[4, 'limite supérieure'] = 10
tbfa
Usine th> | Lane th> | Produit th> | Limite inférieure th> | Limite supérieure th> | Coût de production th> | |
---|---|---|---|---|---|---|
0 | X | 0 | A | 0 | inf | 1.0 |
3 | X | 1 | B | 0 | inf | 1.0 |
4 | Y | 0 | A | 0 | 10.000000 | 3.0 |
6 | Y | 1 | A | 0 | inf | 5.0 |
7 | Y | 1 | B | 0 | inf | 3.0 |
résoudre
python
from ortoolpy import logistics_network
_, tbdi2, _ = logistics_network(tbde, tbdi, tbfa)
Résultat: volume de production (ValY)
python
tbfa
Usine th> | Lane th> | Produit th> | Limite inférieure th> | Limite supérieure th> | Coût de production th> | VarY | ValY | |
---|---|---|---|---|---|---|---|---|
0 | X | 0 | A | 0 | inf | 1.0 | v9 | 20.0 |
3 | X | 1 | B | 0 | inf | 1.0 | v10 | 10.0 |
4 | Y | 0 | A | 0 | 10.000000 | 3.0 | v11 | 10.0 |
6 | Y | 1 | A | 0 | inf | 5.0 | v12 | 0.0 |
7 | Y | 1 | B | 0 | inf | 3.0 | v13 | 20.0 |
Résultat: Volume de transport (ValX)
python
tbdi2
Zone de demande th> | Usine th> | Frais de transport th> | Produit th> | VarX | ValX | |
---|---|---|---|---|---|---|
0 | P | X | 1 | A | v1 | 10.0 |
1 | P | X | 1 | B | v2 | 10.0 |
2 | Q | X | 3 | A | v3 | 10.0 |
3 | Q | X | 3 | B | v4 | 0.0 |
4 | P | Y | 2 | A | v5 | 0.0 |
5 | P | Y | 2 | B | v6 | 0.0 |
6 | Q | Y | 1 | A | v7 | 10.0 |
7 | Q | Y | 1 | B | v8 | 20.0 |
c'est tout