GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin...

21
GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner

Transcript of GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin...

Page 1: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

GRASP = Greedy randomized adaptive search processGRASP = Greedy randomized adaptive search process

Stefan TheusslGerold Köb

Goran LovricMartin Gartner

Stefan TheusslGerold Köb

Goran LovricMartin Gartner

Page 2: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

InhaltInhalt

EinleitungAlgorithmusSimulation, ParameterwahlRecheneffizienzUnser BenchmarkSchlussfolgerungen und AusblickLive-Demonstration in R

EinleitungAlgorithmusSimulation, ParameterwahlRecheneffizienzUnser BenchmarkSchlussfolgerungen und AusblickLive-Demonstration in R

Page 3: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Einleitung IEinleitung I

Grundprinzip: Erzeugung einer „greedy“ Startlösung mit

der dann Local Search gestartet wird Construction Phase:

Kandidatenliste der Städte, die von Startpunkt erreichbar sind

Auswahl eines Kandidaten nach Bewertung mit „greedy-function“ bis eine komplette Lösung vorliegt

Grundprinzip: Erzeugung einer „greedy“ Startlösung mit

der dann Local Search gestartet wird Construction Phase:

Kandidatenliste der Städte, die von Startpunkt erreichbar sind

Auswahl eines Kandidaten nach Bewertung mit „greedy-function“ bis eine komplette Lösung vorliegt

Page 4: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Einleitung IIEinleitung II

…Local Search:

Permutation der „greedy“-Startlösung und Berechnung des Zielwerts

wenn Zielwert besser als jener der „greedy“-Startlösung Zielwert als neuer „benchmark“

Wiederholung des Prozesses bis Abbruchbedingung erfüllt wird (zB Anzahl der Iterationen)

…Local Search:

Permutation der „greedy“-Startlösung und Berechnung des Zielwerts

wenn Zielwert besser als jener der „greedy“-Startlösung Zielwert als neuer „benchmark“

Wiederholung des Prozesses bis Abbruchbedingung erfüllt wird (zB Anzahl der Iterationen)

Page 5: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Ablauf des AlgorithmusAblauf des Algorithmus

„grasp.solve“ wird aufgerufen optimaler Zielwert = unendlich In „grasp.solve“ wird mit

„.construct_greedy“ eine Startlösung erzeugt

Startlösung in Funktion „.local_search“ wenn Zielwertverbesserung durch

„.local_search“ neuer Zielwert ist neues Optimum

Wiederholung bis Abbruchbedingung erfüllt (bei uns: Anzahl der Wiederholungen von „grasp.solve“)

„grasp.solve“ wird aufgerufen optimaler Zielwert = unendlich In „grasp.solve“ wird mit

„.construct_greedy“ eine Startlösung erzeugt

Startlösung in Funktion „.local_search“ wenn Zielwertverbesserung durch

„.local_search“ neuer Zielwert ist neues Optimum

Wiederholung bis Abbruchbedingung erfüllt (bei uns: Anzahl der Wiederholungen von „grasp.solve“)

Page 6: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Algorithmus IAlgorithmus I

Funktion: „grasp.solve“:Inputs: Distanzmatrix, StartpunktParameter: alpha, k, iterations, n

n wird „local_search“ übergebenk entspricht Anzahl der vertauschten

Städte beim k-opt-move

Funktion: „grasp.solve“:Inputs: Distanzmatrix, StartpunktParameter: alpha, k, iterations, n

n wird „local_search“ übergebenk entspricht Anzahl der vertauschten

Städte beim k-opt-move

Page 7: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Algorithmus IIAlgorithmus II

Funktion: „.construct_greedy“: min <- minimale Distanz max <- maximale Distanz alpha <- gleichverteilte ZZ zwischen 0 und

1Verteilung für alpha kann bei Aufruf von „.grasp.solve“ übergeben werden

treshold <- min + alpha * (max – min) Gewichtung zwischen der am kürzesten und der am weitesten entfernten Stadt

zufällige Auswahl eines Kandidaten, wo Distanz kleiner „treshold“

Funktion: „.construct_greedy“: min <- minimale Distanz max <- maximale Distanz alpha <- gleichverteilte ZZ zwischen 0 und

1Verteilung für alpha kann bei Aufruf von „.grasp.solve“ übergeben werden

treshold <- min + alpha * (max – min) Gewichtung zwischen der am kürzesten und der am weitesten entfernten Stadt

zufällige Auswahl eines Kandidaten, wo Distanz kleiner „treshold“

Page 8: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Algorithmus IIIAlgorithmus III

Funktion: „local_search“:Inputs: Distanzmatrix, greedy

StartlösungParameter: n, kk gibt Anzahl für k-opt-move ann ist Abbruchbedingung falls keine

Zielwertverbesserung gefunden wird (n ist Anzahl der maximalen Durchläufe der Local Search)

Funktion: „local_search“:Inputs: Distanzmatrix, greedy

StartlösungParameter: n, kk gibt Anzahl für k-opt-move ann ist Abbruchbedingung falls keine

Zielwertverbesserung gefunden wird (n ist Anzahl der maximalen Durchläufe der Local Search)

Page 9: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Simulation, Parameterwahl I

Simulation, Parameterwahl I

Zufallsvariable: alphaVerwendung bei Erzeugung einer

„greedy“ Startlösungtreshold <- min + alpha * (max –

min)

Simulation in R: mit festem seed (dh: gleichen Pseudozufallszahlen werden verwendet!)

folgende Beispiele mit 3-opt-moves!

Zufallsvariable: alphaVerwendung bei Erzeugung einer

„greedy“ Startlösungtreshold <- min + alpha * (max –

min)

Simulation in R: mit festem seed (dh: gleichen Pseudozufallszahlen werden verwendet!)

folgende Beispiele mit 3-opt-moves!

Page 10: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

alpha ~ U(0,1)alpha ~ U(0,1)

kleineres alpha bessere Zielwerte

Zielwerte zwischen ca. 14.000 km und 45.000 km

kleineres alpha bessere Zielwerte

Zielwerte zwischen ca. 14.000 km und 45.000 km

0.0 0.2 0.4 0.6 0.8 1.0

15

00

02

00

00

25

00

03

00

00

35

00

04

00

00

a$alpha

a$

solu

tion

Page 11: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

alpha ~ U(0, 0.2)alpha ~ U(0, 0.2)

Zielwerte zwischen ca. 14.000 km und 27.000 km

unser Optimum bei alpha von „0.054966“

Zielwerte zwischen ca. 14.000 km und 27.000 km

unser Optimum bei alpha von „0.054966“0.00 0.05 0.10 0.15 0.20

16

00

01

80

00

20

00

02

20

00

24

00

02

60

00

a$alpha

a$

solu

tion

s

0.00 0.05 0.10 0.15 0.20

16

00

01

80

00

20

00

02

20

00

24

00

02

60

00

a$alpha

a$

solu

tion

s

Page 12: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

alpha ~ Γ(1, 6)alpha ~ Γ(1, 6)

Zielwerte zwischen ca. 40.000 km und 15.000 km aber Häufung bei Zielwerten zwischen 15.000 km und 20.000 km

Zielwerte zwischen ca. 40.000 km und 15.000 km aber Häufung bei Zielwerten zwischen 15.000 km und 20.000 km

0.0 0.2 0.4 0.6 0.8 1.0 1.2

15

00

02

00

00

25

00

03

00

00

35

00

04

00

00

a$alpha

a$

solu

tion

s

Page 13: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Simulation, Parameterwahl II

Simulation, Parameterwahl II

Parameter k: k-opt-move: Positionen von k Städten

wird zufällig vertauscht zB A-B-C-D-E 2-opt-move zB: A-D-C-B-E 3-opt-move zB: C-B-E-D-A

Simulation in R: mit festem seed (dh: gleichen Pseudozufallszahlen werden verwendet!)

Parameter k: k-opt-move: Positionen von k Städten

wird zufällig vertauscht zB A-B-C-D-E 2-opt-move zB: A-D-C-B-E 3-opt-move zB: C-B-E-D-A

Simulation in R: mit festem seed (dh: gleichen Pseudozufallszahlen werden verwendet!)

Page 14: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

0.0 0.2 0.4 0.6 0.8 1.0

15

00

02

00

00

25

00

03

00

00

35

00

04

00

00

c$alpha

c$so

lutio

n

Vergleich bei Verwendung verschiedener k

Vergleich bei Verwendung verschiedener k

0.0 0.2 0.4 0.6 0.8 1.0

15

00

02

00

00

25

00

03

00

00

35

00

04

00

00

c$alpha

c$so

lutio

n

2-opt-move 3-opt-move

Page 15: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

0.0 0.2 0.4 0.6 0.8 1.0

15

00

02

00

00

25

00

03

00

00

35

00

04

00

00

c$alpha

c$so

lutio

n

Vergleich bei Verwendung verschiedener k

Vergleich bei Verwendung verschiedener k

3-opt-move 4-opt-move

0.0 0.2 0.4 0.6 0.8 1.0

20

00

02

50

00

30

00

03

50

00

40

00

0

c$alpha

c$so

lutio

n

Page 16: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Recheneffizient IRecheneffizient I

Test der durchschnittlichen Rechenzeiten bei unterschiedlicher Wahl der Parameter

auf Banias-Centrino™ mit 1.4 Ghz, 1 MB L2 Cache, 512 MB

alpha keine Auswirkungen auf Rechenzeit hier alpha ~ U(0, 0.2)

Angaben in Sekunden!!!

Test der durchschnittlichen Rechenzeiten bei unterschiedlicher Wahl der Parameter

auf Banias-Centrino™ mit 1.4 Ghz, 1 MB L2 Cache, 512 MB

alpha keine Auswirkungen auf Rechenzeit hier alpha ~ U(0, 0.2)

Angaben in Sekunden!!!

Page 17: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Recheneffizienz IIRecheneffizienz IISekunden Iterations

Grasp(iterations = …)

Iterations LocalSearch(n = …)

k-opt-move(k = …)

19.466 1,000 10,000 2

122.965 1,000 10,000 3

423.745 1,000 10,000 4

2.442 100 10,000 2

5.138 250 10,000 2

9.316 500 10,000 2

19.929 1,000 10,000 2

14.706 1,000 1,000 2

15.224 1,000 2,500 2

16.747 1,000 5,000 2

18.381 1,000 7,500 2

19.311 1,000 10,000 2

Page 18: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Unser Benchmark:Unser Benchmark:

Start in Wien (und Rückkehr nach Wien) 14.422 km Route:

Wien -> Bratislava -> Budapest -> Zagreb -> Graz -> Linz -> Prag -> Berlin -> Hamburg -> Kopenhagen -> Stockholm -> Warschau -> Kiev -> St..Petersburg -> Helsinki -> Bergen -> Amsterdam -> Paris -> Bordeaux -> Madrid -> Marseille -> Genf -> Innsbruck -> Muenchen -> Salzburg -> Villach -> Venedig -> Siena -> Rom -> Athen -> Wien

Start in Wien (und Rückkehr nach Wien) 14.422 km Route:

Wien -> Bratislava -> Budapest -> Zagreb -> Graz -> Linz -> Prag -> Berlin -> Hamburg -> Kopenhagen -> Stockholm -> Warschau -> Kiev -> St..Petersburg -> Helsinki -> Bergen -> Amsterdam -> Paris -> Bordeaux -> Madrid -> Marseille -> Genf -> Innsbruck -> Muenchen -> Salzburg -> Villach -> Venedig -> Siena -> Rom -> Athen -> Wien

Page 19: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Unser Benchmark - Route:Unser Benchmark - Route:

-1000 -500 0 500 1000 1500

-200

0-1

000

010

00

-coords[, c(2, 1)][,1]

-coo

rds[

, c(2

, 1)][

,2]

Amsterdam

Athen

Bergen

Berlin

Bordeaux

BratislavaBudapest

Genf

Graz

Hamburg

Helsinki

Innsbruck

Kiev

Kopenhagen

Linz

Marseille

Madrid

Muenchen

Paris

Prag

Rom

Salzburg

Siena

Stockholm

St..Petersburg

Venedig

Villach

Warschau

Wien

Zagreb

Wien -> Bratislava -> Budapest -> Zagreb -> Graz -> Linz -> Prag -> Berlin -> Hamburg -> Kopenhagen -> Stockholm -> Warschau -> Kiev -> St..Petersburg -> Helsinki -> Bergen -> Amsterdam -> Paris -> Bordeaux -> Madrid -> Marseille -> Genf -> Innsbruck -> Muenchen -> Salzburg -> Villach -> Venedig -> Siena -> Rom -> Athen -> Wien

Page 20: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

AusblickAusblick

Einbinden einer Hash-TabelleMulti-TaskingEffizienzsteigerungEinbinden einer Möglichkeit, dass

Wahl für Verteilung von alpha automatisch an Ergebnisverteilung angepasst wird

Package-Dokumentation

Einbinden einer Hash-TabelleMulti-TaskingEffizienzsteigerungEinbinden einer Möglichkeit, dass

Wahl für Verteilung von alpha automatisch an Ergebnisverteilung angepasst wird

Package-Dokumentation

Page 21: GRASP = Greedy randomized adaptive search process Stefan Theussl Gerold Köb Goran Lovric Martin Gartner Stefan Theussl Gerold Köb Goran Lovric Martin Gartner.

Zum Abschluss …Zum Abschluss …

… Live-Demonstration in R… Live-Demonstration in R