36PAA - Batoh �e�en� metodou simulovan� ochlazov�n� (pokro�il� iterativn� metoda)

Zad�n�

Implementace

Z pokro�il�ch iterativn�ch metod jsem si vybral algoritmus simulovan� ochlazov�n�. Je pops�n "v�vojov�mi diagramy" na n�sleduj�c�ch obr�zc�ch.

Pokus�m se algoritmus popsat slovn�. Jedn� se o 2 vno�en� cykly. Na za��tku je nastaveno n�jak� �e�en� a po��te�n� teplota, kter� se ve venkovn�m cyklu postupn� sni�uje. Teplotou je d�na ochota algoritmu p�ijmout hor�� �e�en�. T�m se m��e algoritmus vymanit z lok�ln�ho minima. Ve vnit�n�m cyklu se hled� nov� �e�en�. To je pops�no na obr�zku jako funkce "try". N�hodn� vygenerujeme nov� p��pustn� �e�en�. Pokud je lep�� ne� doposud nalezen�, toto �e�en� p�ijmeme. Pokud je hor�� tak jej p�ijmeme s ur�itou pravd�podobnost�, kter� je d�na aktu�ln� teplotou a velikost� zhor�en� ceny. Algoritmus kon�� pokud se teplota sn�� na �rove� teploty tuhnut�. Pro spr�vnou funkci algoritmu je velice d�le�it� nastavit parametry (po��te�n� teplota, teplota tuhnut�, rychlost tuhnut�, velikost equilibria).

Zdrojov� k�dy

Nam��en� hodnoty a v�sledky

Aby bylo mo�n� spr�vn� nastavit parametry algoritmu je nutn� experimentovat. P�i experimentech jsem sledoval �asovou n�ro�nost a relativn� chybu. Pro v�po�et glob�ln�ho maxima (pro v�po�et relativn� chyby) jsem pou�il d��ve implementovan� dynamick� programov�n�. Algoritmus jsem srovn�val s Greedy Proof (metodou nejrychlej��ho vzestupu). Experimenty jsou shrnuty v n�sleduj�c�ch tabulk�ch a grafech.
Pro p�ehlednost jsem pou�il tyto zkratky:

SA = Simulated Annealing = simulovan� ochlazov�n�
GP = Greedy Proof = metoda nejrychlej��ho vzestupu
triv = pou�ito trivi�ln� �e�en� pro inicializaci SA
init GP = pou�ito GA pro inicializaci SA
T0 = po��te�n� teplota
Tf = teplota tuhnut�
dT = zm�na teploty
equ = equilibrium

Pokud nen� uvedeno jinak, experimentoval jsem na instanc�ch o velikosti n = 40. SA bylo na ka�d� instanci spu�t�no 20x a v�sledn� relativn� chyba a �as je pr�m�r z v�sled� algoritmu.

M��il jsem na NTB s procesorem Centino 1.4GHz, nastaven� max Performance p�i nap�jen� z adapt�ru. Pou�it� OS: Windows XP SP2 s .net Framework 2.

Nastaven� zm�ny teploty

P�i tomto experimentu jsem nastavil T0 = (M * suma_cen_veci) / (n * suma_vah_veci), Tf = 10, equ = n a m�nil dT v rozmez� 0,8 - 0,999.
dTrelativn� chyba�as
GPSA trivSA init GPGPSA trivSA init GP
0,9990,15%0,12%0,02%0,0625278,731642,995
0,9950,42%0,07%58,154128,795
0,990,64%0,09%27,1766,054
0,981,14%0,12%13,15932,717
0,9751,29%0,13%10,52524,725
0,952,01%0,14%5,35812,509
0,93,26%0,14%2,6446,039
0,85,50%0,15%1,2712,944

Graf: Z�vislost relativn� chyby na zm�n� rychlosti ochlazov�n�

Graf: Z�vislost �asov� slo�itosti na zm�n� rychlosti ochlazov�n�

Nastaven� velikosti equilibria

Nastaven�: T0 = (M * suma_cen_veci) / (n * suma_vah_veci), Tf = 10, dT = 0,9 a 0,98, m�nil jsem equ v intervalu n / 5 a� n * 5
equrelativn� chyba�as
GPSA trivSA init GPGPSA trivSA init GP
dT = 0,98dT = 0,9dT = 0,98dT = 0,9dT = 0,98dT = 0,9dT = 0,98dT = 0,9
2000,15%0,34%1,16%0,07%0,12%0,062565,66313,23153,19130,184
1600,39%1,31%0,07%0,13%54,19810,345123,09723,945
1200,52%1,53%0,09%0,13%39,3467,92292,75317,866
800,72%2,06%0,10%0,14%26,0675,43861,89911,907
401,13%3,20%0,12%0,15%13,1492,66430,6945,988
201,76%5,85%0,13%0,14%6,841,33215,353,074
132,26%8,18%0,14%0,15%4,3760,98110,3852,013
102,83%10,06%0,14%0,15%3,4350,7017,7711,652
83,45%12,09%0,15%0,15%2,7240,5816,2391,312

Graf: Z�vislost relativn� chyby na velikosti equilibria

Graf: Z�vislost �asov� slo�itosti na velikosti equilibria

Nastaven� teploty tuhnut�

Nastaven�: T0 = (M * suma_cen_veci) / (n * suma_vah_veci), dT = 0,98, equ = n, m�nil jsem Tf v intervalu 1 a� 10.
Tfrelativn� chyba�as
GPSA trivSA init GPGPSA trivSA init GP
10,15%0,94%0,12%0,062527,53930,604
20,94%0,12%23,25425,857
30,99%0,12%20,65922,893
50,96%0,12%17,32518,837
70,99%0,12%15,43317,745
101,08%0,13%13,22914,521

Graf: Z�vislost relativn� chyby na teplot� tuhnut�

Graf: Z�vislost �asov� slo�itosti na teplot� tuhnut�

Nastaven� po��te�n� teploty

Nastaven�: Tf = 1, dT = 0,98, equ = n, m�nil jsem T0 v intervalu 35 a� 200
T0relativn� chyba�as
GPSA trivSA init GPGPSA trivSA init GP
2000,15%0,98%0,12%0,062532,92834,81
1500,95%0,12%32,24732,547
1000,92%0,12%28,63232,676
801,01%0,12%28,49134,389
601,11%0,12%25,66732,868
501,23%0,12%24,73530,273
451,37%0,12%23,76430,454
401,71%0,12%23,15328,821
371,98%0,12%22,69327,059
352,25%0,12%22,38127,239

Graf: Z�vislost relativn� chyby na po��te�n� teplot�

Graf: Z�vislost �asov� slo�itosti na po��te�n� teplot�

Z�vislost relativn� chyby na velikosti instance

Jen tak pro zaj�mavost, srovn�n� pr�m�rn� relativn� chyby pro r�zn� velk� instance. Nastaven� parametr�: dT = 0,98, Tf = 5, equ = n, T0 = 67,31

Graf: Z�vislost relativn� chyby na velikosti instance

Uk�zky pr�chodu algoritmu stavov�m prostorem

Na n�sleduj�c�ch grafech je zobrazena velikost ceny v z�vislosti na prozkouman�ch stavech pro r�zn� parametry. Pro zv�t�en� klikn�te na pros�m na graf.
init GP, dT = 0,8, Tf = 5, equ = n, T0 = 67,31 triv, dT = 0,8, Tf = 5, equ = n, T0 = 67,31
init GP, dT = 0,9, Tf = 5, equ = n, T0 = 67,31 triv, dT = 0,9, Tf = 5, equ = n, T0 = 67,31
init GP, dT = 0,98, Tf = 5, equ = n, T0 = 67,31 triv, dT = 0,98, Tf = 5, equ = n, T0 = 67,31
init GP, dT = 0,98, Tf = 5, equ = n / 5, T0 = 67,31 init GP, dT = 0,98, Tf = 5, equ = 5 * n, T0 = 67,31

Z�v�r

Algoritmus simulovan� ochlazov�n� je pom�rn� snadn� na implementaci. Z experiment� m��eme ��ct, �e je �asov� n�ro�n�j�� ne� hladov� algoritmus a p�i inicializaci trivi�ln� konfiguraci d�v� pr�m�rn� hor�� v�sledky. Pokud inicializujeme SA hodnotou z�skanou GP algoritmem, v pr�m�ru v�dy dojde ke zlep�en� relativn� chyby. Proto�e algoritmus si pomatuje nejlep�� �e�en�, nem��e nikdy vyj�t hor�� v�sledek ne� u GP.
U tohoto algoritmu (stejn� jako u dynamick�ho programov�n�) dop�edu zn�me po�et iterac� cyklu, tud� m��eme odhadnout �asovou n�ro�nost. Proto je na prvn� pohled trochu divn�, ��dov� rozd�ln� �as p�i inicializaci trivi�ln�m �e�en�m a �e�en�m dodan�m GP algoritmem. Skryt� �asov� z�vislost je v generov�n� nov�ho stavu. Ten generujeme tak, �e zm�n�me bit na n�hodn� pozici v sou�asn� konfiguraci, ale v�sledn� konfigurace mus� b�t p��pustn�m �e�en�m. Proto pokud vyjdeme z trivi�ln� konfigurace je velk� pravd�podobnost, �e nov� stav vygenerujeme na 1. pokus. U ji� nalezen�ho �e�en� nap�. algoritmem GP opakujeme generov�n� pom�rn� dlouho, ne� dostaneme p��pustnou konfiguraci.
D�le z proveden�ch experiment� m��eme ud�lat tyto z�v�ry: