ALHE L12 Jarosław Arabas Taksonomia metaheurystyk

Transkrypt

ALHE L12 Jarosław Arabas Taksonomia metaheurystyk
ALHE L12
Jarosław Arabas
Taksonomia metaheurystyk
Czym jest metaheurystyka
Heuristic methods “refer to experience-based
techniques for problem solving, learning, and
discovery.
Where an exhaustive search is impractical, heuristic
methods are used to speed up the process of finding a
satisfactory solution. Examples of this method include
using a rule of thumb, an educated guess, an intuitive
judgment, or common sense.” (Wikipedia)
Czym jest metaheurystyka
●
Andronicus z Rodos skatalogował dzieła Arystotelesa:
…fizyka, metafizyka …
(to co za fizyką)
●
●
Przykłady meta- :
metamorfoza, metajęzyk, metareguła
Zatem metaheurystyki to techniki rozwijane wówczas,
gdy heurystyki zaczęły wychodzić z mody
Taksonomia metaheurystyk
http://en.wikipedia.org/wiki/Metaheuristic
Zadanie przeszukiwania
●
Przestrzeń przeszukiwań X
●
metryka
 : X × X  R
●
Sąsiedztwo
N r  x= { y ∈ X ,  x , y r }
●
Metaheurystyka generuje punkty z przestrzen X
aby osiągnąć szczególny cel (np. odnaleźć
położenie maksimum globalnego funkcji celu)
Zadanie optymalizacji
●
Funkcja celu
q: X  R
●
Metryka
 : X × X  R
●
sąsiedztwo
N r  x= { y ∈ X ,  x , y r }
●
Maksimum lokalne
●
Maksimum globalne∀ y ∈ X
●
∀ y∈Nr(x)
q ( x)>q ( y )
q( x)>q ( y )
Znaleźć wszystkie maksima/ maksimum
globalne
Zadanie optymalizacji
●
Definicja zadania
〈 X , q , S , T 〉∈Π
przestrzeń przeszukiwań
X
funkcja celu
q: X  R
zbiór punktów początkowych
S⊆X
kryterium zatrzymania
H jest sekwencją
wygenerowanych punktów
T : X ∗ ×U ∗ → {0,1}
H∈X∗
Metoda przeszukiwania
●
Metoda przeszukiwania
〈 X , I ,O 〉
operator zagregowany
O : Π×H ×U ∗ → X ∗
operator inicjacji
I : S×U ∗ → X ∗
przestrzeń sekwencji
U∗
“losowych” (niekontrolowanych)
Search method definition
U0 U1 U2 U3 U4 U5 U6
U7 U8 U9 U10 U11 U12 U13 U14 U15 U16 U17 U18 U19 U20
Sekwencja losowych wartości
initialization
aggregated
operator
S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12
Sekwencja punktów z przestrzeni przeszukiwań
Operator zagregowany
●
Operator zagregowany
składa się z
selekcji
O : Π×H ×U ∗ → X ∗
O( p , v)=o v ( p , om (o s ( p , v )))
o s : Π× H ×U ∗ ×M → X ∗
adaptacji
om : Π× X ×M → M
generacji
o v : M ×U ∗ → X ∗
∗
Metoda przeszukiwania
model
adaptacja
S0 S1
∗
om : Π× X ×M → M
inicjacja
∗
selekcja
I : S×U → X
∗
S2 S4 S8
generacja
o s : Π× H ×U ∗ ×M → X ∗ o v : M ×U ∗ × X ∗ → X ∗
S0 S1 S2 S3 S4 S5 S6 S7 S8 S9 S10 S11 S12
H⊆X∗
Heurystyka a metaheurystyka
●
●
Heuristic
〈 X , I ,O 〉
metaheurystyka 〈? , I ,O 〉
niezdefiniowana jest przestrzeń przeszukiwań I
elementy ją wykorzystujące
zdefiniowana jest zasada proceducy adaptacji
oraz relacje między selekcją, adaptacją i
generacją
Metaheurystyka jako szablon
C++
template <class X> class searchSpace {
public: X* getNeighbors(X);
};
class rG{ public: double* getSequence(unsigned);};
template <class X> double objectiveFunction(X);
template <class X> bool terminate(X*);
template <class X> class searchProblem{
public:
X* startPoints;
double objectiveFunction(X);
bool terminate(X*);
};
template <class X> class model{
public: const model& update(X*);
const model& output();
};
template <class X, class rG >
class metaheuristic{
X* push(X*);
X* popSel();
X* popStop();
X* popReturn();
model<X> mod;
public:
searchProblem<X> P;
X* initialization(X*);
model<X> selection(X*);
X* variation(model<X>)
X* run(){
push(initialization(P.startPoints));
while (!(P.terminate(popStop))){
X* sels = popSel();
mod.update(sels);
push(generation(selection(mod.output(),sels)));
}
return (popReturn());
}
};
Taksonomia metaheurystyk
●
poinformowanie
●
determinizm
●
Typ modelu
●
Wielkość modelu
●
Lokalność generacji
●
Miękkość selekcji
●
pamiętliwość
●
zupełność
●
Atrakcyjność metafory
poinformowanie
●
selekcja
●
generacja
o s : × X ∗ ×U ∗ ×M  M
∗
ov : × M ×U  X
∗
metoda niepoinformowana daje taką samą
sekwencję, niezależnie od funkcji celu, przy
identycznych punktach początkowych i
sekwencji losowej
determinizm
●
selekcja
●
generacja
o v : Π× M ×U → X
●
adaptacja
o v : Π× M ×U ∗ × X ∗ → M
●
determinizm:
U ≡∅
●
niedeterminizm:
U ∗ ≠∅
o s : × X ∗ ×U ∗ ×M  M
∗
∗
∗
Uruchomiona dwukrotnie z tym samym stanem
początkowym dla tego samego problemu,
metoda deterministyczna wygeneruje taką
samą sekwencję punktów
Typ modelu
●
pusty
M =∅
●
pamięciowy
M⊆H
●
zagregowany
np. rozkład prawdopodobieństwa
M ⊆ X ∗ ∪Y ∗
Wielkość modelu
●
●
Ograniczona
●
Pojedynczy składnik
M = X ×Y ∗
●
Wiele składników
M = X k ×Y ∗ , k<∞
Nieograniczona
∗
M = X ×Y
∗
Pamiętliwość (rozmiar okna historii)
Niezależny od historii
o s : Π×U ∗ → ∅
Jeden krok wstecz
o s : Π× X×U ∗ → X
●
Ograniczone okno historii
o s : Π× X k ×U ∗ → X k ' , k '≤k<∞
●
Nieograniczone okno historii
●
●
o s : Π× X ∗ ×U ∗ → X ∗
Okno historii umożliwia unikanie ponownego
“odkrywania” tych samych punktów
Punkty poza oknem historii nie wpływają na
generowaną sekwencję
Miękkość selekcji
●
Miękka selekcja
o m : Π× X ∗ × M → M
∀ P ∀ H ∀ M Prob {∃ x ∈M ∀ y ∈om (P , H , M ) q (x)>q( y )}
●
Twarda selekcja
Twarda selekcja uniemożliwia chwilowe
obniżenie jakości generowanych punktów
Lokalność metody generacji
●
Generacja lokalna
O : Π×H ×U ∗ → S
∃ r<diag ( X )∀ P∈Π , u∈U ∗
∀ y ∈S ∃ x ∈H y ∈ N r (x )
●
Generacja globalna jest przeciwieństwem
lokalnej
Zupełność
●
Metoda zupełna:
●
Metoda asymptotycznie zupełna
∀ P∈Π ,∀ u∈U ,∀ x ∈ X
∀ P∈Π ,∀ u∈U ,∀ S⊆ X ,∣S∣>0
x∈H
lim Prob {∃ x ∈ H , x ∈S }=1
∣H∣→ ∞
●
Pozostałe przypadki – metoda niezupełna
Przepis na zupełność
●
●
Metoda może być zupełna jeśli
●
Jest skończenie wiele możliwych rozwiązań
●
Okno historii jest nieskończone
Metoda może być asymptotycznie zupełna jeśli
łączy:
●
●
miękką selekcję i losową generację
Twardą lub miękką selekcję i globalną losową
generację

Podobne dokumenty