Annealing - kzajac97/SPD GitHub Wiki

1.Symulowane wyżarzanie

W algorytmie zastosowano sigmoidalną funkcję prawdopodobieństwa, z parametrami wyznaczonymi eksperymentalnie, tak aby dla temperatury od 1 do 0 malała oraz aby miała wartość od 1 do 0 dla zmian cmax w przedziale (0,100). ProbabilityPlot3D

Ze względu na losową naturę algorytmu jako początkowe uszeregowanie procesów zakładano kolejność uzyskaną poprzez algorytm NEH, dla kolejności losowej wyżarzanie potrzebuje bardzo wielu iteracji aby uzyskać zadowalający wynik.

Algorytm Zastosowano cztery rodzaje chłodzenie oraz 2 rodzaje generowania ruchu Chłodzenie liniowe, eksponencjalne, odwrotne oraz logarytmiczne. W generacji ruchu użyto metody swap, która zamienia dwa procesy o losowo wygenerowanych indeksach oraz metody insert, która przestawia proces o losowo wygenerowanym indeksie w inne miejsce, także losowo wygenerowane. Przy generacji indeksów wykorzystano jednostajny rozkład prawdopodobieństwa.

Chłodzenie liniowe: Temperatura maleje liniowo od 1 do 0, tak aby osiągnąć temperaturę końcową w określonej liczbie iteracji. Metoda ta nie przynosi oczekiwanych rezultatów, poniważ prawdopodobnieśtwo wygenerowania rozwiązania lepszego jest mniejsze niż wygenerwoania rozwiązania minimalnie gorszego, które zostanie przyjęte. Przy dużej liczbie iteracji rowzwiązanie nie jest w stanie znaleźć minimum, poniważ liniowy spadek temperatury nie powoduje odrzucania wystarczającej liczy złych rozwiązań w późniejszej fazie.

Chłodzenie odwrotne: