Umělá inteligence
-
Upload
seth-mendez -
Category
Documents
-
view
36 -
download
5
description
Transcript of Umělá inteligence
Umělá inteligence
Genetické algoritmy
Iterativní algoritmy
• Algoritmus je postup, sekvence kroků.• Iterativní algoritmus používá k vyřešení
problému cyklicky opakovaných kroků:• algoritmy pro řazení a vyhledávání• matematické výpočty• například druhá odmocnina
Stochastické 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ů.
K čemu?
• 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
Genetické algoritmy
• 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ý
Genetické algoritmy
• 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.
Genetický algoritmus
• Hypotetický příklad pro ilustraci odlišnosti přístupu:
• Výpočet druhé odmocniny čísla 64• Náhodná řešení:• 34, 7654, 43, 567, 542, 1, 6
• Hodnocení: (x*x = 64)• Nejlepší řešení: (1, 6, 34)• Po kombinaci nejlepších řešení ():• 1, 6, 34, 3.5, 20, 17.5
Genetický algoritmus
• 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
Vývojový diagram
Příklad – hledání funkce
• Ukázka:
Příklad – hledání minima funkce
• Využití pro složité funkce více proměnných.• Pro funkci jedné proměnné:
Křížení• Před křížením se musí aplikovat selekce.• Křížení:
Výhody a nevýhody
• Genetické algoritmy nevyžadují nastavení počátečních podmínek (viz. lineární optimalizace).
• Není nutné splnit množství matematických podmínek (spojitá, hladká funkce; singularity)
Výhody × nevýhody
• 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.
Výhody × nevýhody
• 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.
Generování algoritmů – gramatika<statement> ::= <begin><statement><statement> |
<if><condition><statement> |<function><expression><expression> |<assign><var><expression>
<expression> ::= <function><expression> |<const> | <var> |<function><expression><expression>
<condition> ::= <operator><expression><expression><operator> ::= < | > | != | == | >= | <=<var> ::= $a | $b | $result<const> ::= 0 | 1| -1<function> ::= + | - | * | /<begin> ::= {}<if> ::= if {}<assign> ::= =
Generování algoritmů
• Vstupní data:• {(−3, 3); (43, 43); (3, 3); (123, 123); (−345, 345);
(−8, 8); (−11, 11); (0, 0)}• Kriteriální funkce:• Prefix:
<?phpfunction absol($a) {$result = "no_value";
• Sufix:return $result;}
• Body za: nastavení hodnoty, číselnou hodnotu, kladnou hodnotu, požadovanou hodnotuě
Výstup – ukázka
Jiný algoritmus
• Vstupní hodnotou funkce jsou dvě celá čísla a a b. Výstupní hodnotou je číslo c, pro které platí:• pro • • pro
• Tréninková množina:• {(−3, 5,−1); (43, 0, 1); (8, 8, 0); (3, 4,−1); (−3,−4,
1); }
Výstup – ukázka