Algorytm symulowanego odprężania - Notatki - Badania operacyjne, Notatki'z Badania operacyjne. University of Szczecin
Osholom
Osholom5 March 2013

Algorytm symulowanego odprężania - Notatki - Badania operacyjne, Notatki'z Badania operacyjne. University of Szczecin

PDF (280.6 KB)
4 strony
1Liczba pobrań
864Liczba odwiedzin
Opis
Notatki dotyczące badań operacyjnych: algorytm symulowanego odprężania; definicje i zastosowanie.
20punkty
Punkty pobierania niezbędne do pobrania
tego dokumentu
Pobierz dokument
Podgląd3 strony / 4
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.

Algorytm symulowanego odprężania

Wprowadzenie

Jednym z procesów opisywanym przez fizykę statyczną jest proces krystalizacji. Z doświadczenia wiadomo, że wybrany materiał w pewnej temperaturze może znajdować się w różnych stanach stabilnych, w zależności od jego historii. Przykładem może być wymrażanie krzemu do postaci ciała stałego. Gwałtowne obniżanie temperatury płynnego krzemu prowadzi do otrzymania substancji amorficznej o wysokim nieuporządkowaniu atomów. Z kolei mniej radykalne schłodzenie może prowadzić do struktury polikrystalicznej, tzn. zlepka mikrokryształków. Dopiero przy bardzo powolnym

wymrażaniu, gwarantującym utrzymanie w dowolnym przedziale temperatury stanu równowagi, istnieje możliwość otrzymania doskonale uporządkowanego kryształu krzemu.

Wraz ze wzrostem uporządkowania układu maleje jego energia. Z powyższego przykładu wynika, że zależnie od procesu schładzania możemy doprowadzić układ, jaki stanowi rozważany płynny krzem, do różnych stanów odpowiadających różnym minimom lokalnym energii. Jedynie powolne obniżanie temperatury (odprężanie), zapewniające utrzymanie stanu równowagi, zapobiegające powstawaniu wewnętrznych naprężeń, pozwala na osiągnięcie globalnego minimum energii, odpowiadające idelanemu kryształowi.

Wyznaczenie stanu najniższej energii jest problemem optymalizacji, a zatem fizyczny proces odprężania może stanowić inspirację do budowy nowej metaheurystyki.

Algorytm

Pierwszy algorytm podano dla symulacji ruchów termicznych atomów cieczy w ustalonej temperaturze T (Metropolis 1953). W każdym kroku dokonuje się próbnego, losowego przesunięcia jednej z cząstek i wylicza wynikającą z przesunięcia zmianę energii całego systemu E. Jeżeli energia ulega zmniejszeniu - przesunięcie jest akceptowane. Zwiększenie energii także jest akceptowane z pewnym prawdopodobieństwem:

P(E)=exp(-E/T)

Gdzie T oznacza temperaturę. Jak widać, prawdopodobieństwo akceptacji gorszych rozwiązań maleje wraz ze spadkiem temperatury.

Algorytm jest następujący:

BEGIN

S:=S0

T:=T0

WHILE not koniec DO

BEGIN

S':= nowe rozwiązanie sąsiednie

E:=E(S')-E(S)

P( E):= exp(-E/T)

IF (E<0) or (RANDOM<P( E)) THEN S:=S'

Aktualizacja T

END

END

docsity.com

Funkcja celu (minimalizacja) może być funkcją energii. Przy obniżaniu temperatury nie zaleca się stosowania stałego kroku. Dokładne badania wykazały, że najlepszym rozwiązaniem jest powiązanie temperatury T z numerem iteracji n:

)ln(1 )( 0

n

T nT

 

docsity.com

Poprawna definicja pozwala uniknąć przedwczesną zbieżność. Prawdopodobieństwo selekcji chromosomu k:

 

i

i

k

xf

xf p

)(

)(

może być funkcją czasu (liczby iteracji):

 

  

 

)(

)( 1

i

kq

xf

xf

T

t p

gdzie: T – spodziewana liczba iteracji, q – mała liczba naturalna. Ma to na celu zmniejszenie prawdopodobieństwa selekcji dobrych osobników w początkowej fazie i dopuszczenie do krzyżowania gorszych osobników, które mogą jednak prowadzić do lepszych rozwiązań.

Operatory genetyczne

Krzyżowanie w trakcie upływu czasu staje się coraz mniej efektywne, gdyż chromosomy są coraz bardziej podobne do siebie. Można ulepszyć proces krzyżowania:

 wybierając miejsce do krzyżowania w miejscu, gdzie chromosomy się różnią między sobą

 zmieniając prawdopodobieństwo krzyżowania w zależności od urozmaicenia populacji

Generowanie rozwiązań dopuszczalnych

Problem generowania rozwiązań dopuszczalnych można rozwiązać na dwa sposoby:  generować tylko rozwiązania dopuszczalne (czasochłonne)  dodawać dużą karę za brak dopuszczalności

Zastosowania algorytmu genetycznego

Problem komiwojażera

Problem komiwojażera (ang. traveling salesman problem - TSP) zdefiniowany jest następująco: komiwojażer startuje z miasta A i musi odwiedzić wszystkie pozostałe miasta dokładnie raz. Na koniec ma powrócić do miasta A. Zadaniem jest znalezienie drogi o najmniejszym koszcie.

Załóżmy że mamy miasta oznaczone cyframi 1,2,3,4,5. Komiwojażer startuje z miasta 1 i musi do niego wrócić.

 genetyczna reprezentacja rozwiązań - wyjątkowo miasta będą kodowane nie

binarnie ale liczbami całkowitoliczbowymi: (2,3,4,5). Miasto od którego zaczynamy i kończymy nie musi być kodowane

 inicjacja początkowej populacji - trzeba wygenerować możliwe permutacje  postać funkcji dopasowania - określamy koszt odwiedzin miast w zadanej

kolejności (nie zapominając o mieście będącym początkiem i końcem)  operatory genetyczne (mutacja i krzyżowanie) - omijamy mutację i stosować

będziemy jedynie krzyżowanie w zmienionej postaci:  dane są przykładowo dwa chromosomy: (2,3,4,5,6,7,8,9,10)  oraz (3,5,6,2,9,10,4,8,7)  losujemy z pierwszego chromosomu fragment, który nie będzie zmieniany

(2,3,4,5,6,7,8,9,10)  nowy chromosom będzie miał postać: (a,b,4,5,6,7,c,d,e)  analizując drugi chromosom wypełnimy brakujące miejsca: a:3, (5 nie - bo

występuje w kopiowanym fragmencie), (6 nie - patrz 5) b:2, c:9,d:10, (4 nie -

patrz 5) e:8, (7 nie - patrz 5)  wartości parametrów:

docsity.com

 rozmiar populacji – im większy rozmiar, tym lepsze wyniki (kosztem czasu)  prawdopodobieństwa krzyżowania – dopasować samodzielnie

Znajdowanie ekstremum funkcji

Dana jest funkcja np. f(x)=x*sin(10*pi*x)+1. Znaleźć ekstremum w przedziale [-1,2]

 genetyczna reprezentacja rozwiązań - wartości liczbowe będziemy kodować binarnie. Załóżmy, że oczekujemy precyzji z dokładnością do 6 miejsc po przecinku (odcinek o długości 1 podzielony na milion przedziałów) w sumie mamy 3 odcinki jednostkowe * 1 000 000 = 3 000 000. Przypomnijmy, że na n- bitach można zakodować liczby z zakresu od 0 do 2n-1. Żeby zakodować tę liczbę potrzebujemy 22 bity: 221=2097152, 222=4194304. Zamiana liczby binarnej x’ na dziesiętną x będzie następująca: x=-1 + x’*3/(222-1). Trzeba pamiętać, że możemy wyjść poza zakres

 inicjacja początkowej populacji - trzeba wygenerować możliwe permutacje  postać funkcji dopasowania – wartość funkcji dla danego x  operatory genetyczne - klasyczna mutacja i krzyżowanie  wartości parametrów:

 rozmiar populacji – im większy rozmiar, tym lepsze wyniki (kosztem czasu)  prawdopodobieństwa krzyżowania – dopasować samodzielnie

docsity.com

komentarze (0)
Brak komentarzy
Bądź autorem pierwszego komentarza!
To jest jedynie podgląd.
Zobacz i pobierz cały dokument.
Docsity is not optimized for the browser you're using. In order to have a better experience we suggest you to use Internet Explorer 9+, Chrome, Firefox or Safari! Download Google Chrome