AI-For-Beginners/translations/sk/lessons/6-Other/21-GeneticAlgorithms
localizeflow[bot] 3c760d21ff chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:29:36 +00:00
..
Diophantine.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 01:17:50 +00:00
Genetic.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 01:17:50 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:29:36 +00:00

README.md

Genetické algoritmy

Kvíz pred prednáškou

Genetické algoritmy (GA) sú založené na evolučnom prístupe k umelej inteligencii, kde sa využívajú metódy evolúcie populácie na získanie optimálneho riešenia pre daný problém. Navrhol ich v roku 1975 John Henry Holland.

Genetické algoritmy sú založené na nasledujúcich myšlienkach:

  • Platné riešenia problému môžu byť reprezentované ako gény
  • Kombinácia (crossover) umožňuje spojiť dve riešenia a získať nové platné riešenie
  • Selektovanie sa používa na výber optimálnejších riešení pomocou nejakej fitness funkcie
  • Mutácie sa zavádzajú na destabilizáciu optimalizácie a na vyhnutie sa lokálnemu minimu

Ak chcete implementovať genetický algoritmus, potrebujete:

  • Nájsť spôsob kódovania riešení problému pomocou génov g∈Γ
  • Na množine génov Γ definovať fitness funkciu fit: Γ→R. Menšie hodnoty funkcie zodpovedajú lepším riešeniam.
  • Definovať mechanizmus kombinácie na spojenie dvoch génov a získanie nového platného riešenia crossover: Γ2→Γ.
  • Definovať mechanizmus mutácie mutate: Γ→Γ.

V mnohých prípadoch sú kombinácia a mutácia pomerne jednoduché algoritmy na manipuláciu s génmi ako číselnými sekvenciami alebo bitovými vektormi.

Konkrétna implementácia genetického algoritmu sa môže líšiť podľa prípadu, ale celková štruktúra je nasledovná:

  1. Vyberte počiatočnú populáciu G⊂Γ
  2. Náhodne vyberte jednu z operácií, ktorá sa vykoná v tomto kroku: kombinácia alebo mutácia
  3. Kombinácia:
    • Náhodne vyberte dva gény g1, g2 ∈ G
    • Vypočítajte kombináciu g=crossover(g1,g2)
    • Ak fit(g)<fit(g1) alebo fit(g)<fit(g2) - nahraďte príslušný gén v populácii génom g.
  4. Mutácia - vyberte náhodný gén g∈G a nahraďte ho mutate(g)
  5. Opakujte od kroku 2, kým nedosiahnete dostatočne malú hodnotu fit, alebo kým sa nedosiahne limit počtu krokov.

Typické úlohy

Úlohy, ktoré sa typicky riešia pomocou genetických algoritmov, zahŕňajú:

  1. Optimalizácia rozvrhov
  2. Optimálne balenie
  3. Optimálne rezanie
  4. Urýchlenie vyčerpávajúceho vyhľadávania

✍️ Cvičenia: Genetické algoritmy

Pokračujte v učení v nasledujúcich notebookoch:

Prejdite na tento notebook, kde nájdete dva príklady použitia genetických algoritmov:

  1. Spravodlivé rozdelenie pokladu
  2. Problém 8 dám

Záver

Genetické algoritmy sa používajú na riešenie mnohých problémov, vrátane logistiky a vyhľadávacích problémov. Táto oblasť je inšpirovaná výskumom, ktorý spája témy z psychológie a informatiky.

🚀 Výzva

"Genetické algoritmy sú jednoduché na implementáciu, ale ich správanie je ťažké pochopiť." zdroj Urobte si výskum a nájdite implementáciu genetického algoritmu, napríklad na riešenie Sudoku, a vysvetlite, ako funguje, vo forme náčrtu alebo diagramu.

Kvíz po prednáške

Prehľad a samostatné štúdium

Pozrite si toto skvelé video, ktoré hovorí o tom, ako sa počítač môže naučiť hrať Super Mario pomocou neurónových sietí trénovaných genetickými algoritmami. Viac sa o učení počítača hrať takéto hry dozvieme v ďalšej sekcii.

Úloha: Diofantická rovnica

Vašou úlohou je vyriešiť tzv. Diofantickú rovnicu - rovnicu s celočíselnými koreňmi. Napríklad zvážte rovnicu a+2b+3c+4d=30. Musíte nájsť celočíselné korene, ktoré túto rovnicu spĺňajú.

Táto úloha je inšpirovaná týmto článkom.

Tipy:

  1. Môžete uvažovať korene v intervale [0;30]
  2. Ako gén zvážte použitie zoznamu hodnôt koreňov

Použite Diophantine.ipynb ako východiskový bod.