Problème typique et méthode d'exécution
Considérons la destination d'allocation $ L = \ {L_1, L_2, \ dots, L_n \} $ de l'objet $ P = \ {P_1, P_2, \ dots, P_n \} $. Compte tenu du volume de transport $ q_ {ij} $ entre les objets $ P_i $ et $ P_j $ et la distance $ d_ {kl} $ entre les destinations d'allocation $ L_k $ et $ L_l $ Trouvez l'allocation qui minimise la somme des produits de distance.
usage
Signature: quad_assign(quant, dist)
Docstring:
Problème d'allocation secondaire
Recherche complète
contribution
quant:Volume de transport entre les objets
dist:Distance entre alloués
production
Liste des numéros de destination d'allocation pour chaque cible
python
from ortoolpy import quad_assign
quad_assign([[0, 2, 0], [0, 0, 1], [0, 0, 0]], [[0, 2, 4], [2, 0, 3], [4, 3, 0]])
résultat
(0, 1, 2)
python
# pandas.DataFrame
from ortoolpy.optimization import QuadAssign
QuadAssign('data/quad_assign_quant.csv', 'data/quad_assign_dist.csv')[1]
target | pos | |
---|---|---|
0 | 0 | 0 |
1 | 1 | 1 |
2 | 2 | 2 |
Vous pouvez considérer divers problèmes comme des problèmes d'allocation secondaires, tels que le problème Patrol Salesman (TSP). Le problème d'allocation secondaire est un problème très abstrait. Cependant, c'est un problème très difficile à résoudre. Bien qu'il soit utile de se réduire à un problème d'allocation secondaire pour comprendre la structure du problème, il n'est pas recommandé de le résoudre tel quel. Il devrait être résolu en le réexaminant comme un problème plus spécifique. Par exemple, pour TSP, il serait plus efficace d'utiliser une solution spécifique à TSP.
Recommended Posts