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

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

Embed Size (px)

Citation preview

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