A Neumann Társaság blogja az informatika, robotika legmenőbb témaköreiről – újszerű megközelítésben.

Kvantumugrás

Kvantumugrás

Amikor a természetes evolúció elvei működtetik az algoritmusokat

2021. március 17. - ferenck

Biológia és infokommunikációs technológiák izgalmas határterülete a rendkívül bonyolult folyamatok, mint az evolúció, az önszerveződés, vagy a tanulás modellezése számítógépes módszerekkel. A szerteágazó módszerek egyik legrégebbikének a számítástudomány  több ágában, például szoftverek megbízhatósági tesztjénél és optimalizálási feladatoknál jól bevált evolúciós algoritmusok számítanak.

Ezeket az algoritmusokat sok szakértő azonosítja a genetikus algoritmusokkal. Mások viszont négy, egymástól nagyon nehezen megkülönböztethető csoporttól beszélnek: genetikus algoritmusoktól, genetikus programozástól, evolúciós stratégiáktól, evolúciós programozástól. Az egyszerűség kedvéért mi most egybevesszük a négy csoportot.

gal.jpg

Az 1975-ben bevezetett evolúciós algoritmusok a biológiai evolúció által motivált problémamegoldó sémák, úgynevezett metaheurisztikák. Az azóta eltelt közel ötven esztendő alatt komoly fejlődésen mentek keresztül, sokféle változatuk jött létre, miközben matematikai megalapozásuk is egyre teljesebbé vált. Nagy előnyük, hogy bizonytalan és pontatlan információs környezetben is eredményesen alkalmazhatók, főként rugalmasságuknak és a párhuzamos keresésnek köszönhetően gyakran felülmúlják a hagyományosabb optimalizálási eljárásokat.

Alapötletük a természetből származik: több egyed – itt mesterséges „személyekből” álló populáció – szimulált környezetben verseng a szűkös erőforrásokért, és csak a legerősebbek örökíthetik át génjeiket a következő generációba. Az ezt megvalósító program először véletlenszerűen megoldásokat generál, eleinte valószínűleg nagyon rossz minőségűeket. Egy algoritmus segítségével módosít rajtuk, azaz létrehozza a következő generációt, amit megvizsgál, és csak egy részét, a – valamilyen szempontból – legjobbakat tartja meg. Ilyen módon „szaporodnak”, és létrejön egy újabb, az előzőtől kismértékben különböző generáció. A ciklust addig folytatja, amíg kielégítő megoldást nem talál, vagy esetleg elfogy a megoldásra szánt idő.

gal0.jpg

Nincs garancia arra, hogy a létező legjobb megoldást találja meg, de erre általában nincs is szükség. Egy „még megfelelő” változat ilyen módon általában sokkal kevesebb idő alatt alakul ki (azaz evolválódik), mintha hagyományos optimalizáló algoritmussal dolgozna.

 De miért lehetnek sikeresek pont ezek az algoritmusok? Induljunk ki a biológiai modellből: a természetes kiválasztódáson alapuló evolúció komplex és intelligens, sőt, egyre komplexebb és intelligensebb létformákat generál. Jelen ismereteink szerint az egyetlen olyan biológiai folyamat, amely bizonyíthatóan intelligenciát hoz létre. A DNS pedig lényegében genetikai program, egy komplex szoftver.

Az eddigi fejlesztések eredményei alapján az evolúciós minta egyes infokom területeken sikerrel alkalmazható. A rendszertervezők egyetlen megoldást se programoznak be: a megoldások a verseny és a szüntelen bizonyítás során fejlődnek ki. Több ezer generáció szimulálására, a természetes evolúció lassúságával összehasonlítva, a hardver-kapacitás és a megoldandó feladat bonyolultságától függően, pillanatok, percek órák, napok, esetleg hetek alatt kerül sor. A bonyolult iterációs mechanizmusokon mindössze egyszer kell végigmennünk, utána már csak a kifejlődött, kifinomult szabályokat alkalmazzuk. Gyakran előfordul, hogy száz-kétszáz iteráción vagyunk túl, és látszólag szinte semmi nem történt. Aztán hirtelen, egyik pillanatról a másikra, kikristályosodik a megoldás.

Frissítve: 2023. november 3.

 

A bejegyzés trackback címe:

https://kvantumugras.blog.hu/api/trackback/id/tr6916466960
süti beállítások módosítása