Typisches Problem und Ausführungsmethode
Bei einem Rucksack mit einer Kapazität von $ c (\ gt 0) $ und $ n $ Gepäck $ N = \ {1, \ dots, n \} $. Die Kapazität des Gepäcks $ i \ in N $ sei $ w_i (\ gt 0) $ und der Wert sei $ p_i (\ gt 0) $. Finden Sie das Gepäcksortiment, das die Summe der Werte innerhalb des Kapazitätslimits von $ c $ maximiert.
usage
Signature: knapsack(size, weight, capacity)
Docstring:
Rucksackproblem
Wert maximieren
Eingang
size:Liste der Gepäckgrößen
weight:Liste der Gepäckwerte
capacity:Kapazität
Ausgabe
Summe der Werte und Liste der ausgewählten Gepäcknummern
python
from ortoolpy import knapsack
size = [21, 11, 15, 9, 34, 25, 41, 52]
weight = [22, 12, 16, 10, 35, 26, 42, 53]
capacity = 100
print(knapsack(size, weight, capacity))
Ergebnis
(105.0, [0, 1, 3, 4, 5])
python
# pandas.DataFrame
from ortoolpy.optimization import Knapsack
Knapsack('data/knapsack.csv', 100)
size | weight | |
---|---|---|
0 | 21 | 22 |
1 | 11 | 12 |
3 | 9 | 10 |
4 | 34 | 35 |
5 | 25 | 26 |
Recommended Posts