[PYTHON] Kombinationsoptimierung - typisches Problem - Rundschreiben Verkäufer Problem

Typisches Problem und Ausführungsmethode

Patrouillenverkäufer Problem

Ein Graph, der aus einer Menge von n Punkten (Stadt) $ V $ $ G = (V, E) $ und einer Schaltung besteht, die alle Punkte einmal durchläuft, wenn die Kosten für jede Seite angegeben sind. Finden Sie diejenige, die die Summe der Kosten (z. B. Entfernung) an den Seiten minimiert.

Ausführungsmethode

usage


Signature: tsp(nodes, dist=None, method=None)
Docstring:
Patrouillenverkäufer Problem
Eingang
    nodes:Punkt(Wenn dist nicht angegeben ist, werden die Koordinaten angegeben)Liste von
    dist: (i,j)Ein Wörterbuch mit dem Schlüssel und der Entfernung als Wert
    method:Berechnungsmethode(ex. 'ortools')
Ausgabe
Liste der Entfernungs- und Punktnummern

python


from ortoolpy import tsp
tsp([(2, 0), (1, 2), (0, 1), (3, 1), (2, 2)])[1]

Ergebnis


[0, 2, 1, 4, 3]

python


# pandas.DataFrame
from ortoolpy.optimization import Tsp
Tsp('data/node1.csv')[1]
id x y demand
0 0 5 1 0
3 3 1 0 1
5 5 0 4 1
2 2 1 5 1
1 1 8 5 1
4 4 8 0 1

Verwendung des Google OR-Tools-Lösers

Wenn Sie " method = 'ortools' "hinzufügen, wird der Solver (ungefähre Lösung) von Google OR-Tools verwendet.

Hinweis

--Installieren Sie Google OR-Tools mit "pip install or tools".

python


import numpy as np
from scipy.spatial import distance
from ortoolpy import tsp
np.random.seed(0)
nodes = np.random.rand(20, 2) * 1000  #20 Städte
dist = distance.cdist(nodes, nodes).astype(int)  #Distanzmatrix
print(tsp(nodes, dist, method='ortools'))  #Ungefähre Lösung
print(tsp(nodes, dist))  #Genaue Lösung (Referenz)

Die Gesamtkosten (4099) sind höher als die exakte Lösung (4072.0) in der zweiten Zeile.

Ergebnis (Summe der Kosten und Liste der Punktnummern)


(4099, [0, 11, 3, 6, 9, 10, 19, 4, 5, 18, 1, 14, 7, 17, 12, 8, 13, 15, 2, 16])
(4072.0, [0, 2, 16, 14, 7, 17, 12, 8, 13, 15, 11, 3, 6, 9, 10, 19, 4, 5, 1, 18])

Daten

Recommended Posts

Kombinationsoptimierung - typisches Problem - Rundschreiben Verkäufer Problem
Kombinationsoptimierung - typisches Problem-Rucksack-Problem
Kombinationsoptimierung - typisches Problem - n-dimensionales Packungsproblem
Kombinationsoptimierungstypisches Problem-Minimum-Vertex-Covering-Problem
Kombinationsoptimierung - typisches problemstabiles Matching-Problem
Kombinationsoptimierungstypisches Problem-verallgemeinertes Zuordnungsproblem
Kombinationsoptimierung - typisches Problem - Maximum-Matching-Problem
Kombinationsoptimierung - typisches Problem - sekundäres Zuordnungsproblem
Kombinationsoptimierung - typisches Problem - Problem mit dem kürzesten Weg
Kombinationsoptimierung - typisches Problem - Kombinationsauktionsproblem
Kombinationsoptimierung - typisches Problem - Maximum-Flow-Problem
Kombinationsoptimierungstypisches Problem-Aggregat-Abdeckungsproblem
Kombinationsoptimierung - typisches Problem-Gewichtsanpassungsproblem
Kombinationsoptimierung - typisches Problem bei der Platzierung von Problemeinrichtungen
Kombinationsoptimierung - typisches Problem-Job-Shop-Problem
Kombinationsoptimierung - typisches Problem - maximales Schnittproblem
Kombinationsoptimierung - typisches Problem bei der Planung der Problemarbeit
Kombinationsoptimierung - typisches Problem - Minimum des Gesamtflächenbaumproblems
Kombinationsoptimierungstypisches Problem-Maximum-Stabil-Set-Problem
Kombinationsoptimierung - typisches Problem - Mindestkostenflussproblem
Kombinationsoptimierung - typisches Problem - Problem der chinesischen Postzustellung
Kombinationsoptimierung - Typisches Problem - Problem mit der Transportroute (Lieferoptimierung)
Kombinationsoptimierung - Minimum Cut Problem
Kombinationsoptimierung - Typisches Problem - Problem bei der Platzierung der Einrichtung ohne Kapazitätsbeschränkung
Über das Problem der reisenden Verkäufer
Kombinationsoptimierungstypische Probleme und wie es geht
Brennmethode und Problem mit reisenden Verkäufern
Über das bestellte Patrouillenverkäuferproblem