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ę