[PYTHON] Lösen von Problemen bei der Organisation von Schulbezirken durch Kombinationsoptimierung

Was ist das

Seminar Gurobi Optimizer Solution Seminar 2016 von Optimierung am 02.12 event / 20161021.html) habe ich gehört, dass der Schulbezirk als eine Vielzahl von Problemen gelöst werden kann Problem mit dem minimalen Kostenfluss, also habe ich es tatsächlich getan. Ich versuchte es.

Denkweise

――34 Erstellen Sie Bedarfspunkte für Präfekturen.

image

Lösen Sie das Problem des minimalen Kostenflusses in diesem Netzwerk.

Versuchen Sie es mit Python

python3


import numpy as np, networkx as nx
from japanmap import adjacent, pref_code, pref_map
Honshu= np.arange(2,36)
Repräsentativer Punkt= {pref_code('Aomori'):7, pref_code('Yamanashi'):21, pref_code('Yamaguchi'):6}
#Diagrammerstellung
g = nx.DiGraph()
g.add_nodes_from(Honshu, demand=-1)
for i,d im repräsentativen Punkt.items():
    nwl = i*100
    g.node[i]['demand'] = d-1
    g.add_nodes_from(nwl+Honshu, demand=0)
    g.add_edge(nwl+i,i)
    g.add_edges_from((j,nwl+j)für j in Honshu, wenn j nicht in repräsentativen Punkten)
    g.add_edges_from(((nwl+j,nwl+k)für j in Honshu für k im angrenzenden(j)), weight=1)
r = nx.min_cost_flow(g)
#Ergebnisanzeige
dc = dict(zip(Repräsentativer Punkt,['red','green','blue']))
dc.update({i:dc[j//100]for i, t in r.items() for j, v in t.items() if v and i < 100})
pref_map(Honshu, cols=[dc[i] for i in Honshu], width=4)

image

Ich habe es wie erwartet gelöst.

Entwicklung

In der Realität müssen viele Faktoren berücksichtigt werden.

――Es ist wünschenswert, den gleichen Schulbezirk wie zuvor zu haben. ――Ich möchte es definitiv an einem bestimmten Ort aufteilen. --Stellen Sie die Entfernung ein, nicht die Anzahl der Sprünge.

Es scheint, dass dies durch Fixieren der Formulierung erreicht werden kann.

das ist alles

Recommended Posts

Lösen von Problemen bei der Organisation von Schulbezirken durch Kombinationsoptimierung
Lösen Sie ein 4-Farben-Problem mit Kombinationsoptimierung
Lösen von Planungsproblemen für Krankenschwestern mit Kombinationsoptimierung
Spieltheorie mit Kombinationsoptimierung lösen
Lösen von Rucksackproblemen mit den OP-Tools von Google - Üben der Grundlagen von Kombinationsoptimierungsproblemen
Lösen des N Queen-Problems mit kontinuierlicher / kombinierter Optimierung
Lösen des N Queen-Problems mit Kombinationsoptimierung
Einführung in die mathematische Optimierung von Python Lösen von Mathematikproblemen der Mittelstufe mit Zellstoff
Gruppieren von Spielen mit Kombinationsoptimierung
Kombinationsoptimierung mit Quantenglühen
Lösen mathematischer Optimierungsmodellübungen mit den OR-Tools von Google (3) Probleme bei der Produktionsoptimierung
Maximieren Sie den Restaurantverkauf durch kombinierte Optimierung
Sehen Sie sich Wale mit Kombinationsoptimierung an
Bereiten Sie die Straße mit Kombinationsoptimierung
Lösen Sie Probleme bei der Kombinationsoptimierung mit den OR-Tools von Google. (5) Legen Sie einen Termin fest
Lassen Sie uns Bücher mit Kombinationsoptimierung flach stapeln
Zu beachtende Punkte bei der Lösung von DP-Problemen mit Python
Verwenden Sie die Kombinationsoptimierung
○○ Probleme im Fachbereich Mathematik mit Optimierung lösen
Lösung von Rucksackproblemen mit genetischen Algorithmen und MGG-Modellen