X - des Lehrstuhls für Mathematische Statistik

wwwold.m4.ma.tum.de

X - des Lehrstuhls für Mathematische Statistik

Multilevel Sampling and

Optimization Methods

Bernhard Kellerer

05 05.12.2008

12 2008


Überblick

1. Traveling Salesman Problem

2. Simulated Annealing

3. Simulated Tempering p g

4. Parallel Tempering

55. Literatur

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 2


1. Traveling Salesman Problem (TSP)

Problem:

� Wähle eine Reihenfolge g für den

Besuch mehrerer Städte.

� Dabei soll die gesamte

Reisestrecke nach der Rückkehr

zum AAusgangsort t möglichst ö li h t kkurz

sein.

� Jede Stadt muss genau einmal

besucht werden. werden

Bernhard Kellerer

http://de.wikipedia.org/wiki/Problem_des_Handlungsreisenden

Multilevel Sampling and Optimization

Methods 3


http://www.maa.org/mathland/mathtrek_01_03_05.html

� Es existiert keine Lösung in polynomieller Laufzeit.

� D.h. schon bei geringer Anzahl von Städten dauert das Berechnen einer

optimalen Lösung unpraktikabel lange.

� Di Die größte ößt AAnzahl hl an Städt Städte, bei b i dder eine i bbeweisbar i b kü kürzeste t St Strecke k

gefunden wurde ist 33 810.

� Instanzen mit mehreren Millionen Städten kamen bis auf 1% Abweichung

an das Optimum p

heran.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 4


Da man oft nicht am optimalen Wert, sondern nur an einer Näherung

interessiert ist, betrachtet man häufig Approximationsalgorithmen:

� Nearest-Neighbor-Algorithmus: kann beliebig schlecht sein

� Minimum-Spanning-Tree-Algorithmus: max. 2-fache Länge der

optimalen Tour

� Christofides-Algorithmus: max. 1,5-fache Länge der optimalen Tour

PProblem: bl

Deterministische Algorithmen bleiben meist in lokalen Optima hängen!

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 5


22. Simulated Annealing (SA)

� Dt: „simuliertes (langsames) Abkühlen“

� Heuristisches Optimierungsverfahren

� Physikalischer Ursprung:

� Erhitzen eines Metalls bis zum Glühen.

� Langsames g Abkühlen, , so dass die Moleküle Zeit haben, , sich zu ordnen

und stabile Kristalle zu bilden.

Dadurch wird ein energiearmer Zustand nahe am Optimum erreicht.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 6


Anschauliche Erklärung

Die Strategie entspricht dem

Verhalten einer Kugel:

� Sie rollt zum nächsten lokalen

Minimum und bleibt dort.

�� Beim Simulated Annealing wird

der Kugel immer wieder ein Stoß

versetzt.

�� Dieser ist stark genug, genug um die

Kugel aus einem lokalen Minimum

zu entfernen, reicht aber nicht

aus, um die Kugel aus dem

globalen Minimum zu bringen.

Bernhard Kellerer

http://de.wikipedia.org/wiki/Simulierte_Abk%C3%BChlung

Multilevel Sampling and Optimization

Methods 7


Üb Übertragung t auf f ddas OOptimierungsverfahren ti i f h

Physik �� Optimierung

Temperatur �� Kontrollparameter

Energie eines Zustands �� �� Kostenfunktion (TSP: Entfernung)

Bernhard Kellerer

Zustand �� Kandidat für eine Lösung

Grundzustand �� optimale p Lösung g

Temperatur senken �� iterative Verbesserung

Multilevel Sampling and Optimization

Methods 8


Der SA-Algorithmus

* *

1. Generiere eine Startlösung S und setze S = S, wobei S die (momentane) optimale

Lösung ist.

2. Bestimme eine Starttemperatur T.

3. Solange Algorithmus nicht "eingefroren" (d.h. T > 0):

3.1. Solange kein Gleichgewicht für die Temperatur erreicht ist:

3.1.1. Wähle zufällig einen Nachbarn S ' der aktuellen Lösung.

3.1.2. Setze Δ= Länge( S ') - Länge( S).

3. 1.3. Falls Δ≤0

(Abwärts-Schritt).

Setze S = S'.

Länge S < Länge S S = S

3.1.4. Sonst (Aufwärts-Schritt).

( )

Wähle

Zufallszahl r ∼ uniform [0,1].

−Δ/

T

Falls r < e , setze S = S'.

3.1.5. Wiederhole.

3.2. Erniedrige die Temperatur T.

3.3. Wiederhole.

*

4. Return S

.

Bernhard Kellerer

* *

Falls ( ') ( ), setze .

Multilevel Sampling and Optimization

Methods 9


Bemerkungen

�� Erlaubt Aufwärts Aufwärts-Schritte Schritte im Gegensatz zu deterministischen Methoden Methoden.

� Kann aus einem lokalen Minimum herauskommen!

� Nachbar:

Eine Nachbarlösung ist eine Lösung, bei der im Vergleich zur aktuellen

Lösung g die Reihenfolge g einiger g Städte vertauscht wurde.

� SA-Algorithmus ist im Grunde der Metropolis-Algorithmus mit veränderlicher

Temperatur

Temperatur.

� SA-Algorithmus ist einfach zu Implementieren.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 10


Konvergenz des SA SA-Algorithmus

Algorithmus

Minimiere f : X → R,

Zustände i ∈ X : 1, ..., | X | ( | X | endlich), derart dass i < j,

falls f( i) < f( j).

Wir brauchen eine topologische Struktur:

N Nachbar von i ⇔ N = { j : p > 0}

i

i ij

Matrix P = { p } p : Wahrscheinlichkeit, dass j als nächster

ij ij

Zustand generiert wird (bei Start in i).

Annahme:

Für beliebige Zustände i 0 und i f existieren j 1 1,...,

j k ( k endlich),

so dass i = j und i = j mit p > 0 für m = 1,2,..., k -1.


P

Bernhard Kellerer

0 1

ist irreduzibel.

f k j j

m m+

1

Multilevel Sampling and Optimization

Methods 11


Akzeptiere Zustand j mit Wahrscheinlichkeit a ( c)

(kontinuierliche

Funktion) Funktion), wobei

aij ( c) = 1 ∀ i > j ∀ c ≥ 0

0 < a ( c) < 1 ∀ i < j ∀ c > 0

ij

a ( c)

→ 0 ∀ i < j c →0

ij

a ( c ) → 1 ∀ i < j c → ∞

Wähle z.B.:

Bernhard Kellerer

ij

a

ij

=

fj -fi


c

e falls f > f

1 falls f ≤ f

j i

j i

ij

Multilevel Sampling and Optimization

Methods 12


Die Folge der Lösungen wird durch einen Markov Prozess generiert

mit Übergangsmatrix g g T = { t } }.

t ( c ) =

ij

aij ( c) pij i ≠ j

1 − a ( c) p i = j


k≠i ik ik

ij

Aus c > 0, P irreduzibel und a ( c) > 0 folgt T irreduzibel.

Für c → 0 konvergiert T gegen eine untere Dreiecksmatrix

Dreiecksmatrix.

ij

Insbesondere ist t (0) = 1, falls i lokales Minimum

(da p = 0 für j < i).

ii ij

Lokales Mini Minimum mum = alle Nachbarn haben höhe höheren ren F un unktionswert

ktionswert.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 13


| |

Sei ter Einheitsvektor im R X | |

Sei e ei i i-ter

Einheitsvektor im R .

Dann ist eT(0) ( ) = e falls i lokales Minimum ist.

i i o

0 0

Insbesondere gilt: eT(0) = e.

1 1

Für festes c > 0 gibt es eine eindeutige

stationäre Verteilung

Π,

so dass für T gilt:

Π ( cT ) ( c ) = Π ( c )

Π aperiodisch (wegen r


Beweis der Behauptung:

Annahme 1: P ist symmetrisch

Annahme 2: a ( c) a ( c) = a ( c) falls i < j < k ∀ c > 0

Theorem:

ij jk ik

Sei P irreduzibel, Annahmen 1 und 2 erfüllt und c > 0:

λ

..., a ( c))

⇒ Π ( c) = ( c)(1, a12( c), a13( c),

1| X |

ist eindeutige

stationäre Verteilung von Tc ( ).

mit normierender Konstante λλ

( (cc

)

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 15


Beweis des Theorems:

Zeige, dass Π(

c)

die detailed-balance Bedingung erfüllt:

d.h. Π ( ct ) = Π ( ct ) ∀i,

j

i ij j ji

noch z.z.:

Π(

c)

erfüllt detailed-balance Bedingung:

⇒ Π ( c c)

) ist stationäre Verteilung Verteilung.

Eindeutigkeit:

Bernhard Kellerer

Satz:

Eine irreduzible Markov-Kette mit endlich vielen Zuständen

hat höchstens eine stationäre Verteilung.

Multilevel Sampling and Optimization

Methods 16


Bemerkungen

Konvergenz nur für logarithmisches Temperatursenken garantiert.

� Ausprobieren aller Touren wäre schneller.

Lösung:

� Reduziere die Temperatur schneller (z.B. fixer Faktor 0.95).

� Breche den Algorithmus g nach einer bestimmten Anzahl an Durchläufen bei

der aktuellen Temperatur ab und fahre fort mit dem entsprechenden Wert.

� Nur noch Approximationsalgorithmus.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 17


Modifizierter SA-Algorithmus

* *

1. Generiere eine Startlösung und setze , wobei die (momentane) optimale

Lösung g ist.

S S = S S

2. Bestimme eine Starttemperatur T und eine Schranke

Z.

(3. Solange Algorithmus

nicht "eingefroren" (d.h. T>0):)

3.1. Solange g Anzahl der Iterationen < Z :

3.1.1. Wähle zufällig einen Nachbarn S ' der aktuellen Lösung.

3.1.2. Setze Δ= Länge( S ') - Länge( S).

3.1.3. Falls Δ≤0

(Abwärts-Schritt).

( )

Setze S = S'.

* *

Falls Länge( S ') < Länge( S ), setze S = S.

3.1.4. Sonst (Aufwärts-Schritt).

( )

Wähle Zufallszahl r ∼ uniform [0,1].

−Δ/

T

Falls r < e , setze S = S'.

3.1.5. Wiederhole.

3.2. Erniedrige die Temperatur T mit fixem Faktor (sog. cooling rate)

3. 3. Wiederhole.

*

44. Return S

.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 18


Datensatz: TSP für 29 Städte in Bayern

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 19


Straßen-Entfernungs-Matrix Koordinaten der 29 Städte

0 107 241 190 124 80 316 76 152 157 283 133 113 297 228 129 348 276

188 150 65 341 184 67 221 169 108 45 167

107 0 148 137 88 127 336 183 134 95 254 180 101 234 175 176 265

199 182 67 42 278 271 146 251 105 191 139 79

241 148 0 374 171 259 509 317 217 232 491 312 280 391 412 349 422

356 355 204 182 435 417 292 424 116 337 273 77

190 137 374 0 202 234 222 192 248 42 117 287 79 107 38 121 152

86 68 70 137 151 239 135 137 242 165 228 205

124 88 171 202 0 61 392 202 46 160 319 112 163 322 240 232 314

287 238 155 65 366 300 175 307 57 220 121 97

80 127 259 234 61 0 386 141 72 167 351 55 157 331 272 226 362

296 232 164 85 375 249 147 301 118 188 60 185

316 336 509 222 392 386 0 233 438 254 202 439 235 254 210 187 313

266 154 282 321 298 168 249 95 437 190 314 435

76 183 317 192 202 141 233 0 213 188 272 193 131 302 233 98 344

289 177 216 141 346 108 57 190 245 43 81 243

152 134 217 248 46 72 438 213 0 206 365 89 209 368 286 278 360

333 284 201 111 412 321 221 353 72 266 132 111

157 95 232 42 160 167 254 188 206 0 159 220 57 149 80 132 193

127 100 28 95 193 241 131 169 200 161 189 163

283 254 491 117 319 351 202 272 365 159 0 404 176 106 79 161 165

141 95 187 254 103 279 215 117 359 216 308 322

133 180 312 287 112 55 439 193 89 220 404 0 210 384 325 279 415

349 285 217 138 428 310 200 354 169 241 112 238

113 101 280 79 163 157 235 131 209 57 176 210 0 186 117 75 231

165 81 85 92 230 184 74 150 208 104 158 206

297 234 391 107 322 331 254 302 368 149 106 384 186 0 69 191 59

35 125 167 255 44 309 245 169 327 246 335 288

228 175 412 38 240 272 210 233 286 80 79 325 117 69 0 122 122

56 56 108 175 113 240 176 125 280 177 266 243

129 176 349 121 232 226 187 98 278 132 161 279 75 191 122 0 244

178 66 160 161 235 118 62 92 277 55 155 275

348 265 422 152 314 362 313 344 360 193 165 415 231 59 122 244 0

66 178 198 286 77 362 287 228 358 299 380 319

276 199 356 86 287 296 266 289 333 127 141 349 165 35 56 178 66

0 112 132 220 79 296 232 181 292 233 314 253

188 182 355 68 238 232 154 177 284 100 95 285 81 125 56 66 178

112 0 128 167 169 179 120 69 283 121 213 281

150 67 204 70 155 164 282 216 201 28 187 217 85 167 108 160 198

132 128 0 88 211 269 159 197 172 189 182 135

65 42 182 137 65 85 321 141 111 95 254 138 92 255 175 161 286

220 167 88 0 299 229 104 236 110 149 97 108

341 278 435 151 366 375 298 346 412 193 103 428 230 44 113 235 77

79 169 211 299 0 353 289 213 371 290 379 332

184 271 417 239 300 249 168 108 321 241 279 310 184 309 240 118 362

296 179 269 229 353 0 121 162 345 80 189 342

67 146 292 135 175 147 249 57 221 131 215 200 74 245 176 62 287

232 120 159 104 289 121 0 154 220 41 93 218

221 251 424 137 307 301 95 190 353 169 117 354 150 169 125 92 228

181 69 197 236 213 162 154 0 352 147 247 350

169 105 116 242 57 118 437 245 72 200 359 169 208 327 280 277 358

292 283 172 110 371 345 220 352 0 265 178 39

108 191 337 165 220 188 190 43 266 161 216 241 104 246 177 55 299

233 121 189 149 290 80 41 147 265 0 124 263

45 139 273 228 121 60 314 81 132 189 308 112 158 335 266 155 380

314 213 182 97 379 189 93 247 178 124 0 199

167 79 77 205 97 185 435 243 111 163 322 238 206 288 243 275 319

253 281 135 108 332 342 218 350 39 263 199 0

Bernhard Kellerer

Anzahl der möglichen Touren:

1 1150.0 1760.0

2 630.0 1660.0

3 40 40.0 0 2090 2090.0 0

4 750.0 1100.0

5 750.0 2030.0

6 1030.0 2070.0

7 1650.0 650.0

8 1490.0 1630.0

9 790.0 2260.0

10 710.0 1310.0

11 840.0 550.0

12 1170.0 2300.0

13 970.0 1340.0

14 510.0 700.0

15 750.0 900.0

16 1280 1280.0 0 1200 1200.0 0

17 230.0 590.0

18 460.0 860.0

19 1040.0 950.0

20 590.0 1390.0

21 830.0 1770.0

22 490.0 500.0

23 1840.0 1240.0

24 1260.0 1500.0

25 1280.0 790.0

26 490.0 2130.0

27 1460.0 1420.0

28 1260.0 1910.0

29 360 360.0 0 1980 1980.0 0

( n −1)!

= 1.5 ⋅10

2

Multilevel Sampling and Optimization

Methods 20

29


Matlab Code

function s=sim_ann(A,B,t0,cooling,schranke,maxswitch)

global iter;

ttemp = t0; t0

switch0=maxswitch;

iter=1;

comp_temp_iter=0;

while iter < schranke

pre_distance p _ = distance(A,B); ( )

Bneu = switchen(B,maxswitch);

akt_distance = distance(A,Bneu);

delta = abs(akt_distance-pre_distance);

if akt_distance=10

temp=cooling*temp;

comp_temp_iter=0;

end

maxswitch = round(maxswitch*exp(-delta/(iter*temp)));

if maxswitch==0 i h 0

maxswitch=1;

end

iter=iter+1;

comp_temp_iter=comp_temp_iter+1;

Bernhard Kellerer

else

if rand(1)


function f = bayernplot(A,B) function s=switchen(B,n)

shg

temp_1 = plot(B(:,2),B(:,3),'b*');

set(temp_1,'erasemode','none');

temp_2 = line(B(:,2),B(:,3),'Marker','*');

set(temp_2,'color','r');

x = [B(1,2) [B(1 2) B(length(B),2)];

B(length(B) 2)];

y = [B(1,3) B(length(B),3)];

x1 = 10*round(max(B(:,2))/10);

y1 = 10*round(max(B(:,3))/10);

if x1 == 0

x1 = 1;

end

if y1 == 0

y1 = 1;

end

axis([0 x1 0 y1]);

temp temp_3 3 = line(x,y);

set(temp_3,'color','r');

dist = distance(A,B);

distance_print = sprintf(Die Tour für %d Städte beträgt

4.6f km',length(B),dist);

text(x1/15,1.05*y1,distance_print,'fontweight','bold');

drawnow;

xlabel('Koordinaten');

ylabel('Koordinaten');

Bernhard Kellerer

s=B;

for i=1:n

city_1=round(length(B)*rand(1));

if city_1


Bernhard Kellerer

Simulation …

Multilevel Sampling and Optimization

Methods 23


Bestes Ergebnis

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 24


Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 25


Starttemperatur und Cooling Rate

Starttemperatur

� Zu hoch: Nur noch Zufallssuche,

da die Akzeptanzrate p sehr hoch ist

(erlaubt fast immer Aufwärts-

Schritte).

� Zu niedrig: Der Algorithmus bleibt

in einem lokalen Minimum hängen

(erlaubt fast keine Aufwärts-

Schritte).

� Muss für jedes Problem empirisch

untersucht werden. werden

� Heuristik: Wähle Starttemperatur

so, dass ca. 3% der Schritte

verworfen werden.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 26


Starttemperatur und Cooling Rate

Cooling Rate := c Ti+ 1 Ti c Ti T0c = ⋅ → = ⋅

g

0

� Zu hoch: Nur noch Zufallssuche,

da die Akzeptanzrate sehr hoch ist

(erlaubt fast immer Aufwärts Aufwärts-

Schritte).

� Zu niedrig: Der Algorithmus bleibt

in einem lokalen Minimum hängen g

(erlaubt fast keine Aufwärts-

Schritte).

� Muss für jedes Problem empirisch

untersucht werden. werden

� Faktor 0.95 ist der häufigste

Standardwert.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 27

i


33. Simulated Si l t d Tempering T i (ST)

Eigenschaften:

� Im Gegensatz zum SA ist hier die Temperatur eine Variable (d.h. die

Temperatur kann auch wieder erhöht werden).

� Das MCMC-System kann sich somit freier im Zustandsraum bewegen.

� Das System ist immer im Gleichgewicht (detailed-balance Bedingung ist

immer erfüllt).

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 28


Konstruktion

Konstruiere eine Familie von Verteilungen

Π = { ππ

i , i ∈

I I}

}

π i( x) ∝ exp(- f( x) / Ti)

Die ursprüngliche Verteilung entspricht der mit der niedrigsten Temperatur.

f ( (mi in)

) = 0

→ neue Ziel-Verteilung auf dem erweiterten Raum ( xi , ) ∈ X× I

Bernhard Kellerer

π ( xi , ) ∝ cexp(- f( x) / T)

ST i i

Multilevel Sampling and Optimization

Methods 29


Wahl von ci

Die c ci ' s sind kontrollierbare Konstanten Konstanten, so dass jede Verteilung die gleiche

Wahrscheinlichkeit besitzt.

Ideal: c proportional zum Kehrwert der i-ten

Teil-Funktion.

i

IIn der d PPraxis

i werden d di die PParameter t aber b meistens i t vorher h ffestgelegt. t l t

Z.B. mit dem logit-Modell.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 30


Idee des ST-Algorithmus

Generiere Samples von π ST mit Hilfe eines MCMC Samplers. Samplers

Die Temperatur kann wieder erhöht werden, um aus einem

lokalen Minimum herauszukommen und in ein besseres

lokales Minimum (vllt. das globale Minimum) zu gelangen.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 31


Der ST ST-Algorithmus

Algorithmus

(0)

Initialisierung: i

(0)

= 0, x beliebig, u0Konstante

(z.B. 0.5).

( t) ( t)

1. Generiere u ∼ uniform [0,1] im aktuellen Zustand ( x

2. Falls u ≤ u ,

, i ) = ( x, i).

0

dann ist

( t 1)

i + ( t )

i =

i x +

i x

( t 1) )

und wird aus einem MCMC Übergang

( t + 1)

Ti( x, x ) gezogen.

3. Falls u > u0,

( t + 1)

dann ist x = x und i → i' mit Übergangsfunktion α(

i, i')

( t + 1)

und i = i'

mit Wahrscheinlichkeit

c ci'ππi' ( x ) αα

( i i' , i )

min 1, ,

cπ ( x) α(

i, i')

Bernhard Kellerer

( t + 1)

sonst = .

i i

i i

Multilevel Sampling and Optimization

Methods 32


Bemerkungen

� Die erwartete Zeit für einen Durchlauf von allen Verteilungen g ist von der

Ordnung L² (L Mächtigkeit vom Raum I).

� Begrenzung der Anzahl der Temperatur-Levels.

�� Die benachbarten Verteilungen müssen genügend Überlappung haben haben.

Ansonsten ist es schwierig von einem Temperatur-Level ins nächste zu

gelangen.

� Die Wartezeit bleibt auch beim ST ein großes Problem Problem.

Lösungsversuche:

� dynamic waiting rule

� relaxed simulated tempering

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 33


4. Parallel Tempering (PT)

� Abwandlung des Simulated Tempering.

� Auch unter dem Namen „exchange Monte Carlo“ oder „replica exchange“

bekannt.

� Verwende den Produktraum aller Temperaturen.

� Anstatt Temperatur-Übergang, wie beim ST, vertausche die Indexe der

Temperaturen.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 34


Vergleich:

ST:

X → X × I

PT: X → X × ... × X Temperaturen: T < T < ... < T

1 I 1 2

I

Betrachte ( x x1,..., x xI) ) ∈ X X1 × ... × X XI

mit Familie von Verteilungen

Π= { π i,

i = 1,..., I):

⇒ π ( x ,..., x ) = Π π ( x )

PT 1 I i

i i∈ I

Durchlaufe parallel MCMC's auf allen Xi

.

Bernhard Kellerer

I

Multilevel Sampling and Optimization

Methods 35


Der PT PT-Algorithmus

Algorithmus

( t) ( t)

1. Aktueller Zustand ( x 1 ,..., x I ), generiere u ∼ uniform [0,1],

u0

Konstante (z.B 0.5).

2. Falls u ≤ u ,

0

che h " ll l t

( t )

p"

": xi ( t + 1)

→ xi ∀ i i.

ma parallel ste

3. Falls u > u0,

mache " swapping pp g step p":

wähle zufälliges g Nachbarpaar p ( i und i + 1) )

und vertausche x mit x , akzeptiere mit Wahrscheinlichkeit

Bernhard Kellerer

( t) ( t)

i i+

1

( t) i( xi+ 1) ( t )

i( xi

)

( t)

i+ 1(

xi

)

( t )

i 1(

1

.

)

t

x i +

π π

min 1, ,

π π +

Multilevel Sampling and Optimization

Methods 36


Bemerkungen

�� Gut geeignet für komplizierte Systeme Systeme, wie molekulare Strukturen oder

statistische physikalische Experimente.

� Auch beim PT ist die detailed-balance Bedingung immer erfüllt.

� PT benötigt g keine Feinabstimmung g wie ST ( (keine Gewichtsfunktion nötig). g)

� PT kann Informationen in multiplen MCMC Ketten nutzen.

� PT benötigt allerdings größere Rechenzeit.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 37


Anwendung: Ising Modell

� Wichtiges Modell in der statistischen Physik.

� Benannt nach dem deutschen Mathematiker Ernst Ising (1900-1998).

� Spezialfall eines Markov Random Field.

�� Beschreibt Ferromagnetismus in Festkörpern

Festkörpern.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 38


Beispiel

�� In dem Modell wird angenommen angenommen, dass die

Spins, die das magnetische Moment der

Atome oder Ionen bestimmen, nur zwei

diskrete Zustände annehmen können (+1

und -1).

� 5 Atome (schwarz) sind in eine Richtung

ausgerichtet ausgerichtet, 20 (weiß) in die andere

Richtung.

� Rote Kanten entsprechen einer

gespeicherten Energiemenge

gespeicherten Energiemenge. http://de.wikipedia.org/wiki/Ising-Modell

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 39


Eindimensionales Ising Modell

� Kette der Länge n=50.

� Magnetisierung liegt zwischen -50 und +50.


� 2n =111015 � 2 mögliche Konfigurationen

n = 1.1 1015 mögliche Konfigurationen.

Ziel:

Erzeuge vollständige Magnetisierung, d.h. Zustand -50 oder +50.

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 40


� 5000 Samples, 20000 Iterationen

�� Gute Magnetisierung bei Temperatur 00.1 1 (positiv oder negativ) negativ).

� Bei Temperatur 0.4 annähernd normalverteilt, d.h. häufig schlechte

Magnetisierung

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 41


Matlab Code

function p=plotpt(d,T,alpha,iter,a)

x=pt(d,T,alpha,iter,a);

z=[-d:d]; z [ d:d];

y=zeros(4,2*d+1);

for i=1:4

x(i,:)=(d+1)+x(i,:);

for k=1:a

for j=1:2*d+1

if x(i,k)==j x(i k)==j

y(i,j)=y(i,j)+1;

end

end

end

end

subplot(2,2,1); bar(z,y(1,:))

xlabel('Energie des Systems')

ylabel('Anzahl der Zustände')

title('Temp 0.1')

subplot(2 subplot(2,2,2); 2 2); bar(z,y(2,:))

bar(z y(2 :))

xlabel('Energie des Systems')

ylabel('Anzahl der Zustände')

title('Temp 0.2')

subplot(2,2,3); bar(z,y(3,:))

xlabel('Energie des Systems')

ylabel('Anzahl l b l('A hldder ZZustände') tä d ')

title('Temp 0.3')

subplot(2,2,4); bar(z,y(4,:))

xlabel('Energie des Systems')

ylabel('Anzahl der Zustände')

title('Temp ( p 0.4') )

Bernhard Kellerer

function x=pt(d,T,alpha,iter,a)

for n=1:a

states=round(rand(length(T),d))*2-1;

states round(rand(length(T),d)) 2 1;

for i=1:iter

if rand(1) < alpha

states = updateall(states, T);

else

i = randsample(length(T)-1,1);

DeltaE = Energie(states(i+1,:))-Energie(states(i,:));

Energie(states(i+1 :)) Energie(states(i :));

if rand(1) < min(1,exp(DeltaE/(1/T(i+1) - 1/T(i))))

tausch = states(i,:);

states(i,:) = states(i+1,:);

states(i+1,:) = tausch;

end

end

end

x1(n)=sum(states(1, :));

x2(n)=sum(states(2, :));

x3(n)=sum(states(3, :));

x4(n)=sum(states(4 x4(n) sum(states(4, :));

x=[x1; x2; x3; x4];

end

Multilevel Sampling and Optimization

Methods 42


function states = updateall(states, T)

for i=1:length(T)

states(i,:) = update(states(i,:), T(i));

d

function G = Nachbar(state, v)

if v == 1

G = state(v + 1);

end elseif l if v == llength(state) th( t t )

function newState = update(state, T)

d = length(state);

v = randsample(d,1);

G = Nachbar(state, v);

newState = state;

c= 1/(1+exp(-2*G/T));

if(rand(1) < c)

newState(v) = 1;

else

newState(v) = -1;

end

Bernhard Kellerer

G = state(v-1);

else

G = state(v-1) + state(v+1);

end

function E = Energie(state)

E= E = -state(1:end-1) state(1:end 1)*state(2:end)';

state(2:end) ;

Multilevel Sampling and Optimization

Methods 43


55. Lit Literatur t

� Liu J. S. (2004). Monte Carlo Strategies in Scientific Computing, Chapter 10

� M. Lundy and A. Mees (1986). Convergence of an annealing algorithm.

Mathematical Programming 34: 111-124

� Datensatz: http://www.iwr.uniheidelberg.de/groups/comopt/software/TSPLIB95/tsp/

Bernhard Kellerer

Multilevel Sampling and Optimization

Methods 44

Weitere Magazine dieses Users
Ähnliche Magazine