AI-For-Beginners/translations/sl/lessons/6-Other/21-GeneticAlgorithms
localizeflow[bot] 2cf3095b7a chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:44:13 +00:00
..
Diophantine.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 08:19:54 +00:00
Genetic.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 08:19:54 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:44:13 +00:00

README.md

Genetski algoritmi

Predhodni kviz

Genetski algoritmi (GA) temeljijo na evolucijskem pristopu k umetni inteligenci, pri katerem se uporabljajo metode evolucije populacije za pridobitev optimalne rešitve za določen problem. Predlagal jih je leta 1975 John Henry Holland.

Genetski algoritmi temeljijo na naslednjih idejah:

  • Veljavne rešitve problema lahko predstavimo kot gene
  • Križanje omogoča združevanje dveh rešitev za pridobitev nove veljavne rešitve
  • Selekcija se uporablja za izbiro bolj optimalnih rešitev z uporabo funkcije ustreznosti
  • Mutacije se uvajajo za destabilizacijo optimizacije in izogibanje lokalnemu minimumu

Če želite implementirati genetski algoritem, potrebujete naslednje:

  • Najti način kodiranja rešitev problema z uporabo genov g∈Γ
  • Na množici genov Γ morate definirati funkcijo ustreznosti fit: Γ→R. Manjše vrednosti funkcije ustrezajo boljšim rešitvam.
  • Definirati mehanizem križanja, da združite dva gena in dobite novo veljavno rešitev crossover: Γ2→Γ.
  • Definirati mehanizem mutacije mutate: Γ→Γ.

V mnogih primerih sta križanje in mutacija precej preprosta algoritma za manipulacijo genov kot numeričnih zaporedij ali bitnih vektorjev.

Specifična implementacija genetskega algoritma se lahko razlikuje od primera do primera, vendar je splošna struktura naslednja:

  1. Izberite začetno populacijo G⊂Γ
  2. Naključno izberite eno od operacij, ki se bo izvedla v tem koraku: križanje ali mutacija
  3. Križanje:
  • Naključno izberite dva gena g1, g2 ∈ G
  • Izračunajte križanje g=crossover(g1,g2)
  • Če fit(g)<fit(g1) ali fit(g)<fit(g2) - zamenjajte ustrezni gen v populaciji z g.
  1. Mutacija - naključno izberite gen g∈G in ga zamenjajte z mutate(g)
  2. Ponavljajte od koraka 2, dokler ne dosežete dovolj majhne vrednosti fit ali dokler ne dosežete omejitve števila korakov.

Tipične naloge

Naloge, ki jih običajno rešujejo genetski algoritmi, vključujejo:

  1. Optimizacija urnikov
  2. Optimalno pakiranje
  3. Optimalno rezanje
  4. Pospeševanje izčrpnega iskanja

✍️ Vaje: Genetski algoritmi

Nadaljujte z učenjem v naslednjih zvezkih:

Pojdite na ta zvezek, da si ogledate dva primera uporabe genetskih algoritmov:

  1. Poštena delitev zaklada
  2. Problem osmih kraljic

Zaključek

Genetski algoritmi se uporabljajo za reševanje številnih problemov, vključno z logističnimi in iskalnimi problemi. Področje je navdihnjeno z raziskavami, ki združujejo teme iz psihologije in računalništva.

🚀 Izziv

"Genetski algoritmi so enostavni za implementacijo, vendar je njihovo obnašanje težko razumeti." vir Raziskujte in poiščite implementacijo genetskega algoritma, kot je reševanje Sudoku uganke, ter razložite, kako deluje, kot skico ali diagram poteka.

Kviz po predavanju

Pregled in samostojno učenje

Oglejte si ta odličen video, ki govori o tem, kako računalnik lahko naučimo igrati Super Mario z uporabo nevronskih mrež, treniranih z genetskimi algoritmi. Več o učenju računalnika za igranje takšnih iger bomo izvedeli v naslednjem poglavju.

Naloga: Diofantova enačba

Vaš cilj je rešiti tako imenovano Diofantovo enačbo - enačbo z celoštevilskimi koreni. Na primer, razmislite o enačbi a+2b+3c+4d=30. Najti morate celoštevilske korene, ki zadovoljijo to enačbo.

Ta naloga je navdihnjena z tem prispevkom.

Namigi:

  1. Korene lahko obravnavate v intervalu [0;30]
  2. Kot gen razmislite o uporabi seznama vrednosti korenov

Uporabite Diophantine.ipynb kot izhodišče.