Ugrás a tartalomhoz

extremal optimization

A Wikiszótárból, a nyitott szótárból


Főnév

extremal optimization (tsz. extremal optimizations)

  1. (informatika) Extremal Optimization (EO) egy természet-inspirált heurisztikus keresési algoritmus, amelyet nehezen megoldható optimalizálási problémák megoldására használnak. Az ötlet a Darwin-féle evolúciós szelekció elvén alapul, de a hagyományos evolúciós algoritmusoktól eltérően az EO mindig a legrosszabb teljesítményű komponenst cseréli ki egy megoldásban.



🧬 Alapötlet

Míg genetikus algoritmusok (GA) a populáció legjobb egyedeit tartják meg és kombinálják, az EO minden iterációban a leggyengébben teljesítő részegységet (pl. változót vagy döntést) választja ki, és azt random módon javítja vagy cseréli.



🧠 Elméleti alap

EO-t eredetileg a spinüvegek (spin glasses) fizikai modellje ihlette. Az algoritmus működése egy egyetlen megoldás lokális szerkezetét használja, és nem tart fenn populációt.



⚙️ Működési lépések

  1. Kezdő megoldás létrehozása (véletlenszerűen vagy heurisztikusan).
  2. Minden komponens (pl. egy változó vagy döntés) fitness értékének kiszámítása.
  3. Rangsort készítünk a komponensek fitness alapján.
  4. A legrosszabbakat (vagy egy rosszat) módosítjuk – gyakran power-law eloszlás alapján választva.
  5. A módosított megoldásból új megoldás keletkezik.
  6. Az új megoldás elfogadása (feltételesen vagy automatikusan).
  7. Ismétlés adott számú lépésig vagy konvergenciáig.



📐 Matematikai séma

A komponensek egy paraméterrel szabályozott valószínűségi eloszlás alapján vannak rangsorolva:

ahol:

  • = a komponens rangsorszáma (1 a legrosszabb),
  • = vezérlőparaméter, ami meghatározza, hogy mennyire “extremális” legyen a kiválasztás (tipikusan ).



📊 Példa alkalmazási területek

  • NP-nehéz problémák: pl. gráf színezés, max-cut probléma, boole-függvény optimalizálás.
  • Combinatorikus optimalizálás: pl. utazóügynök probléma (TSP).
  • Gépi tanulásban: szelektív tanulási algoritmusok.



🔁 Példakód (egyszerűsített EO pseudokód)

init_solution()
while not stop:
    compute_fitness_per_component()
    rank_components()
    select_component_by_prob()
    modify_selected_component()
    update_solution()

🧾 Összehasonlítás

Algoritmus Jellemző
Genetic Algorithm Populáció, keresztezés, mutáció
Simulated Annealing Egy megoldás, valószínűségi lépés elfogadás
Extremal Optimization Egy megoldás, rossz komponens lecserélése



✅ Előnyök

  • Nem igényel deriváltat vagy gradiens-információt.
  • Nincs szükség globális keresésre (de mégis jól működik).
  • Könnyen implementálható.
  • Jól alkalmazható nem-szimmetrikus, diszkrét problémákra.

❌ Hátrányok

  • Nem biztosítja a globális optimumot.
  • Paraméter-érzékeny ( érték).
  • Lassú lehet komplex keresési terekben.