Problème typique et méthode d'exécution
$ N $ Sous-ensemble de l'ensemble $ M = \ {1, \ dots, m \} $ $ S_j (\ subseteq M), j \ in N = \ {1, \ dots, n \} Supposons qu'un coût de $ c_j $ soit donné à $. Trouvez la division $ X (\ subseteq N) $ de $ M $ qui minimise la somme des coûts. Le fractionnement ne doit pas avoir les mêmes éléments dans le sous-ensemble.
usage
Signature: set_partition(n, cand)
Docstring:
Définir le problème de division
contribution
n:Nombre d'éléments
cand: (poids,Sous-ensemble)Liste des candidats
production
Liste des numéros de la liste des candidats sélectionnés
python
#Données CSV
import pandas as pd
from ortoolpy import set_partition
ss = pd.read_csv('data/subset.csv')
g = ss.groupby('id')
set_partition(len(g), [(r.weight.iloc[0], r.element.tolist()) for _, r in g])
résultat
[2, 3]
python
# pandas.DataFrame
from ortoolpy.optimization import SetPartition
SetPartition('data/subset.csv')
id | weight | element | |
---|---|---|---|
4 | 2 | 1.0 | a |
5 | 2 | NaN | d |
6 | 3 | 3.0 | b |
7 | 3 | NaN | c |
python
#Exemple de données
from ortoolpy import set_partition
set_partition(4, [(1, ('a', 'b')), (1, ('a', 'c')), (1, ('a', 'd')), (3, ('b', 'c'))])
résultat
[2, 3]
Recommended Posts