[PYTHON] Food Desert Problem - Aus der Oktoberausgabe des OP-Magazins

Was ist das

OR Society Oktoberausgabe des Magazins ["** Studenten-OR **" - Sonderfunktion](http://www.orsj.or.jp/ Aus e-library / elcorsj.html # 6110) möchte ich das Optimierungsproblem entsprechend aufgreifen und mit Python lösen. Als Vorbereitung benötigen Sie Numpy, Pulp, ortoolpy. Für die Umgebungskonstruktion [Kombinationsoptimierung verwenden](http://qiita.com/Tsutomu-KKE@github/items/bfbf4c185ed7004b5721#%E3%82%BD%E3%83%95%E3%83%88% Wir verweisen auf E3% 81% AE% E3% 82% A4% E3% 83% B3% E3% 82% B9% E3% 83% 88% E3% 83% BC% E3% 83% AB).

Essen Dessert Problem

Lassen Sie mich das Problem des Papiers "Analyse des Problems mit Lebensmitteldesserts in Nagasaki City" verwenden.

Platzieren Sie ein frisches Lebensmittelgeschäft für alle und minimieren Sie die Anzahl der Plätze. Die Öffentlichkeit muss sich innerhalb von 5000 m und ältere Menschen innerhalb von 1500 m befinden.

Denkweise

Problem bei der Platzierung der Einrichtung ohne Kapazitätsbeschränkungen.

Löse mit Python

Erstellen Sie zunächst zufällige Daten.

python


import numpy as np
from pulp import *
from ortoolpy import addvar, addvars

nc, n1, n2 = 4, 2, 2 #Anzahl der Kandidatenpunkte, Anzahl der allgemeinen öffentlichen Bereiche, Anzahl der älteren Bereiche
np.random.seed(2)
dist1 = np.random.randint(4000, 6000, (nc, n1))
dist1 #Entfernung vom Kandidatenpunkt zum allgemeinen öffentlichen Bereich
>>>
array([[5192, 4527],
       [4493, 5608],
       [5558, 4299],
       [4466, 5099]])

python


dist2 = np.random.randint(1000, 2000, (nc, n1))
dist2 #Entfernung vom Kandidatenpunkt zum älteren Bereich
>>>
array([[1360, 1263],
       [1674, 1433],
       [1607, 1587],
       [1725, 1047]])

Formulieren und lösen.

python


m = LpProblem()
x = addvars(n, cat=LpBinary) #Variable
m += lpSum(x) #Zielfunktion
for i in range(n1):
    m += lpDot(dist1[i] <= 5000, x) >= 1 #Zwang
for i in range(n2):
    m += lpDot(dist2[i] <= 1500, x) >= 1 #Zwang
m.solve()
[int(value(v)) for v in x]
>>>
[1, 1, 0, 0]

das ist alles

Recommended Posts

Food Desert Problem - Aus der Oktoberausgabe des OP-Magazins
Optimaler Messplan - Ab der Oktoberausgabe des OP-Magazins
Problem bei der Platzierung von Krankenwagen - Aus der Oktoberausgabe des OR-Magazins
Optimierung der Boarding-Strategien für Flugzeuge - ab der Oktober-Ausgabe des OR-Magazins