Genetické algoritmy
V průběhu výpočtu používají náhodné operace. Algoritmus není jednoznačný, může projít více cestami. Nezaručují nalezení řešení. Nezaručují přesnost nalezeného řešení Aproximativní × Stochastické Aproximativní algoritmy zaručují nalezení řešení po určitém počtu kroků a přesnost řešení po určitém počtu kroků.
Pokud známe (a můžeme použít) deterministický algoritmus pro řešení úlohy, pak je stochastický algoritmus nevhodný. Stochastické algoritmy jsou dobré všude tam, kde není nic lepšího. Modelové úlohy: TSP Batoh Tření, ráz, dvě tělesa
Stochastické algoritmy založené na simulaci evolučního procesu. Obecný přístup, který má velké množství modifikací. Mají dobré schopnosti prohledávání prostoru řešení. Paralelní algoritmy: v jednom okamžiku poskytuje systém několik možných řešení úlohy. výpočet každého řešení probíhá nezávisle výpočet buď sériově nebo paralelně spuštěný
Mohou být spuštěné z náhodných počátečních podmínek. Na počátku náhodně vygeneruje několik řešení – obyčejně velmi špatných. Každé řešení ohodnotí podle nějakých kritérií. Nejlepší řešení zkombinuje tak, aby mohlo vniknout ještě lepší řešení. Přidá několik náhodně vygenerovaných řešení. Všechny řešení znovu ohodnotí a kombinuje.
Chromozom – posloupnost znaků/čísel do které je zakódováno řešení Jedinec + Populace – řešení zadané úlohy Kódování – systém, který řešení úlohy zakóduje do chromozomu Fitness funkce – funkce, která každému jedinci přiřadí hodnocení Konvergence – proces přibližování se ke správnému řešení Křížení – operace, při které vzniká nový jedinec kombinací několika jiných Mutace – operace, při které vzniká nový jedinec náhodnou změnou jiného
Využití pro složité funkce více proměnných. Pro funkci jedné proměnné:
Je možné řešit úlohy jak numericky, tak analyticky. Stačí znát hodnotu kriteriální funkce v bodě Genetické algoritmy mají za určitých podmínek zaručenou konvergenci. GA najde řešení, ale nelze říct kdy.
Pokud GA najde řešení, pak se nemusí nutně jednat o řešení zadané úlohy. GA algoritmus řeší fitness funkci, nikoliv původní úlohu. Návrh fitness funkce je klíčový a nejtěžší. Pokud GA najde řešení zadané úlohy, je jeho přesnost nejistá. GA algoritmus se musí navrhnout vždy pro zadanou úlohu.
::= | | ::= | | | ::= ::= | != | == | >= | <= ::= $a | $b | $result ::= 0 | 1| -1 ::= + | - | * | / ::= {} ::= if {} ::= =
Vstupní data: {(−3, 3); (43, 43); (3, 3); (123, 123); (−345, 345); (−8, 8); (−11, 11); (0, 0)} Kriteriální funkce: Prefix: <?php function absol($a) { $result = "no_value"; Sufix: return $result;} Body za: nastavení hodnoty, číselnou hodnotu, kladnou hodnotu, požadovanou hodnotuě