Typisches Problem und Ausführungsmethode
Es gibt eine Reihe von Kunden (Nachfragepunkten) $ D $ und eine Reihe von Einrichtungsplatzierungspunkten $ F $, denen jeweils Kapazität zugewiesen wird. Jeder Kunde $ i \ in D $ zieht immer zu einer der Einrichtungen $ i \ in F $. Finden Sie das Ziel des Kunden, um die Kapazität jeder Einrichtung zu erreichen, und minimieren Sie die Summe aus der Kapazität des Kunden und der zurückgelegten Entfernung. Die Einrichtung kann jedoch nur bis zu $ p $ verwendet werden.
usage
Signature: facility_location(p, point, cand, func=None)
Docstring:
Problem bei der Platzierung der Einrichtung
P-Medianes Problem: Minimierung der Summe aus Gesamtabstand x Menge
Eingang
p:Maximale Anzahl von Einrichtungen
point:Liste der Kundenstandorte und -mengen
cand:Liste der Standorte und Kapazitäten der in Frage kommenden Einrichtungen
func:Kundenpositionsindex,Gewichtsfunktion mit Facility Candidate Index als Argument
Ausgabe
Facility-Nummernliste für jeden Kunden
python
from ortoolpy import facility_location
facility_location(2, [(1, 0, 1), (0, 1, 1), (2, 2, 1)],
[(1, 0, 1), (0, 1, 1), (2, 2, 2)])
Ergebnis
[0, 2, 2]
python
# pandas.DataFrame
from ortoolpy.optimization import FacilityLocation
FacilityLocation('data/facility.csv',2)
x | y | demand | capacity | id | |
---|---|---|---|---|---|
0 | 1 | 0 | 1.0 | 1.0 | 0.0 |
1 | 0 | 1 | NaN | 1.0 | NaN |
2 | 0 | 1 | 1.0 | NaN | 3.0 |
3 | 2 | 2 | 1.0 | 2.0 | 3.0 |
Recommended Posts