Problème typique et méthode d'exécution
$ N $ jobs $ J = \ {1,2, \ dots, n \} $ et $ m $ agents $ I = \ {1,2, \ dots, m \} $ D'autre part, le coût d'allocation du travail $ j \ in J $ à l'agent $ i \ in I $ $ c_ {ij} $, les besoins en ressources $ a_ {ij} (\ ge 0) $, et chaque agent Le montant de la ressource disponible $ b_i (\ ge 0) $ de $ i \ dans I $ est donné. Chaque travail doit être affecté à l'un des agents et le total des besoins en ressources pour les travaux affectés à chaque agent ne doit pas dépasser les ressources disponibles de cet agent. À ce stade, recherchez l'allocation qui minimise le coût total.
usage
Signature: gap(cst, req, cap)
Docstring:
Problème d'allocation généralisé
Résolvez la répartition des coûts minimaux
contribution
cst:Tableau des coûts par agent et par fonction
req:Demander le tableau des montants pour chaque agent et travail
cap:Liste des capacités des agents
production
Liste des numéros d'agent pour chaque travail
python
from ortoolpy import gap
gap([[2, 2, 2], [1, 1, 1]], [[1, 1, 1], [1, 1, 1]], [2, 1])
résultat
[0, 0, 1]
python
# pandas.DataFrame
from ortoolpy.optimization import Gap
Gap('data/gap.csv', [2,1])
agent | job | cost | req | |
---|---|---|---|---|
0 | 0 | 0 | 2 | 1 |
1 | 0 | 1 | 2 | 1 |
5 | 1 | 2 | 1 | 1 |
Recommended Posts