FAV-ZCU/KIV UIR/04. Evoluční a genetické algoritmy.md

3.6 KiB

Evoluční algoritmy

Cílem je modelování evolučních procesů pro účely, které nemají nic společného s biologií.

Společné rysy evol. algoritmů

  • pracují zároveň s celou skupinou možných řešení zadaného problému místo práce s jednotlivými řešeními
  • řešení postupně vylepšují zařazováním nových řešení , získaných kombinací původních
  • kombinace řešení jsou následovány náhodnými změnami a vyřazováním nevýhodných řešení

Druhy evol. algoritmů

  • algoritmy napodobující přirozené evoluční procesy - genetické algoritmy
  • algoritmy napodobující činnost mozku - umělé neuronové sítě

Genetické algoritmy

Základní myšlenkou genetických algoritmů je snaha napodobit vývoj a učení nějakého živočišného druhu a takto vzniklý algoritmus použít při řešení úloh, které se vyskytují ve složitém, případně i měnícím se prostředí, v němž člověk není schopen dopředu nadefinovat všechny vzniklé případy a správné reakce na ně.

Založeny na třech různých operacích

  • reprodukce - každý jedinec je jiný; pokud mu odlišnost umožní lépe přežít, zanechá po sobě více potomků
  • křížení - geny se mohou křížit, část od otce, část od matky
  • mutace - ovlivnění jedinců jejich prostředím - malé náhodné změny

Chromozóm

  • základní prvek generace
  • možnost reprezentace
    • binárně
    • permutací přirozených čísel

Populace

  • množina chromozómů tvoří populace
  • každý chromozóm uchovává jedno řešení daného problému
  • první populace je náhodně vygenerována
  • základní parametr: velikost populace (počet chromozomů v ní)

Křížení

  • ze dvou chromozómů (otec a matka) se spojením vytvoří 1 nebo více nových potomků
  • chromozómy (otec a matka) se rozdělí na stejném náhodném místě
  • vznikne potomek/potomci
    • použije se jedna část chromozómu od matky a druhá část od otce
    • u dalšího potomka to může být naopak

Mutace

  • používá se, aby se neuvázlo v lokálním optimu
  • náhodná genetická změna některých genů právě vytvořeného potomka
  • příklad: 11011 -> 11001 (na 3. indexu)

Fitness funkce

  • udává sílu daného chromozomu
  • má vliv na to, které chromozómy zůstanou v populaci

Selekce

  • Darwinova teorie: nejlepší přežijí a stvoří potomky
  • různé metody výběru nejlepšího
    • ruletové kolo (rulet wheel selection)
      1. získáme sumu fitness funkcí = S
      2. generujeme náhodné číslo z \langle 0, S\rangle = r
      3. procházíme populaci a sčítáme fitness (sčítáme do x)
        • pokud r > x zastav a vrať daný chromozóm
    • roztřídění nejlepších (rank selection)
    • steady-state selection
    • elitism

Pravděpodobnost křížení

  • udává četnost křížení
  • 0% -> nová populace kopií původní
  • 100% -> každý potomek stvořen křížením

Pravděpodobnost mutace

  • udává četnost mutace nových potomků
  • 0% -> ani jeden chromozóm nebyl změněn
  • 100% -> každý chromozóm je pozměněn

Algoritmus

  1. náhodná populace o n chromozómech
  2. ohodnoť každý chromozóm fitnenss funkcí
  3. vytvoř novou populaci
    • vyber rodiče z populace
    • vytvoř z rodičů potomky
    • zmutuj potomky
    • přidej potomky do populace
  4. starou populaci nahraď novou
  5. pokud není dosaženo konce, vrať se na 2.

Využití - optimalizační úlohy

  • rozvrhy
  • chování robotů
  • automatické navrhování mechanických systémů
  • optimalizace rozmístění komunikací, telekomunikací
  • teorie her
  • problém batohu