QuestionCopyright.org

Časť 2B – Genetický algoritmus

Počet bodov: 15

V tejto časti je potrebné naprogramovať kombináciu klasického genetického algoritmu a horolezeckého algoritmu. Cieľom má byť hľadanie extrému N-rozmernej funkcie. Táto funkcia má byť zadaná priamo v zdrojovom kóde, ale mala by sa dať veľmi jednoducho meniť. Rovnako by sa mali dať meniť konštanty N – počet rozmerov a K – počet bitov na rozmer.

Samotný algoritmus má fungovať ako klasický genetický algoritmus. V prvom kroku má teda vytvoriť populáciu jedincov s príslušnými vlastnosťami. Veľkosť populácie by sa mala dať tak isto jednoducho zadať.

V druhom kroku by sa malo pre každého jedinca vykonať niekoľko cyklov horolezeckého algoritmu. Počet cyklov môže byť generovaný náhodne z nejakého rozumného intervalu alebo tiež zadaný ako konštanta v programe.

V treťom kroku by sa mala spočítať fitness pre každého jedinca a vytvoriť novú populáciu krížením jedincov s preferovaním jedincov s lepším fitness pred tými s horším fitness. Veľkosť novej populácie by mala byť rovnaká, ako pôvodnej.

Vo štvrtom kroku by sa mala stará populácie odstrániť a nová prehlásiť za pôvodnú. Po tomto kroku by sa mal algoritmus vrátiť na druhý krok.

Okrem samotného zdrojového kódu treba odovzdať aj slovný popis funkcie programu aspoň na pol strany A4 a graf priemerného a najlepšieho fitness v populácii pri genetickom algoritme.