12. Előadás - Optimalizálás

Adott egy \(f: \mathbb{R}^n \rightarrow \mathbb{R}\) függvény.

A feladat az, hogy meghatározzuk azt az \(x \in \mathbb{R}^n\) pontot, amelyre az \(f(x)\) értéke minimális (vagy maximális).

Particle Swarm Optimization

Az optimalizálási problémát úgy próbálja megoldani, hogy adott számú pontot elhelyez a térben, majd külön iterációkban módosítja azok helyét (és a további állapotát). Ehhez felír egy szabályrendszert.

  • A madár és hal rajok mintáját követi az algoritmus.

  • Különféle változatai vannak.

  • Nagyon jól párhuzamosítható, mivel minden részecskének időben egyszerre számolható a következő állapota.

Genetikus Algoritmus

Az optimalizálási probléma megoldásához létrehoz egy populációt.

  • Feltételezi, hogy a problématér egy vektor (gének) formájában leírható.

  • Operátorokat definiál a gének módosítására, keresztezésére.

  • Ad egy heurisztikát arra vonatkozóan, hogy a populációból a következő iterációban mely egyedeket kell megtartani.

A mutációs és keresztező operátor, illetve a jósági (fitness) függvény kiértékelése egyaránt lehetőséget ad a párhuzamosításra.

Kérdések

  • Milyen adatok tartozhatnak például részecskeraj optimalizáció (PSO) esetében egy részecskéhez?

  • Milyen esetben használható a genetikus algoritmus?

Feladatok

  • Implementáljuk az előzőekben említett algoritmusokat!

  • Készítsen hozzájuk konkrét példákat!