AI-For-Beginners/translations/lt/lessons/6-Other/21-GeneticAlgorithms
localizeflow[bot] 132c5c3f8f chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:51:30 +00:00
..
Diophantine.ipynb 🌐 Update translations via Co-op Translator 2025-08-31 14:13:46 +00:00
Genetic.ipynb 🌐 Update translations via Co-op Translator 2025-08-31 14:13:46 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:51:30 +00:00

README.md

Genetiniai algoritmai

Prieš paskaitos testą

Genetiniai algoritmai (GA) yra pagrįsti evoliuciniu požiūriu į dirbtinį intelektą, kuriame naudojami populiacijos evoliucijos metodai, siekiant rasti optimalią sprendimo būdą tam tikrai problemai. Jie buvo pasiūlyti 1975 m. John Henry Holland.

Genetiniai algoritmai remiasi šiomis idėjomis:

  • Galimi problemos sprendimai gali būti pateikti kaip genai
  • Kryžminimas leidžia sujungti du sprendimus ir gauti naują galiojantį sprendimą
  • Atranka naudojama optimalesnių sprendimų pasirinkimui pagal tam tikrą tinkamumo funkciją
  • Mutacijos įvedamos siekiant destabilizuoti optimizaciją ir išvengti vietinio minimumo

Norint įgyvendinti genetinį algoritmą, reikia:

  • Rasti būdą, kaip koduoti problemos sprendimus naudojant genus g∈Γ
  • Genų rinkinyje Γ apibrėžti tinkamumo funkciją fit: Γ→R. Mažesnės funkcijos reikšmės atitinka geresnius sprendimus.
  • Apibrėžti kryžminimo mechanizmą, kad būtų galima sujungti du genus ir gauti naują galiojantį sprendimą crossover: Γ2→Γ.
  • Apibrėžti mutacijos mechanizmą mutate: Γ→Γ.

Daugeliu atvejų kryžminimas ir mutacija yra gana paprasti algoritmai, skirti manipuliuoti genais kaip skaitmeninėmis sekų ar bitų vektoriais.

Konkreti genetinio algoritmo įgyvendinimo forma gali skirtis priklausomai nuo atvejo, tačiau bendras struktūra yra tokia:

  1. Pasirinkti pradinę populiaciją G⊂Γ
  2. Atsitiktinai pasirinkti vieną iš operacijų, kurios bus atliekamos šiame žingsnyje: kryžminimas arba mutacija
  3. Kryžminimas:
  • Atsitiktinai pasirinkti du genus g1, g2 ∈ G
  • Apskaičiuoti kryžminimą g=crossover(g1,g2)
  • Jei fit(g)<fit(g1) arba fit(g)<fit(g2) - pakeisti atitinkamą geną populiacijoje g.
  1. Mutacija - pasirinkti atsitiktinį geną g∈G ir pakeisti jį mutate(g)
  2. Kartoti nuo 2 žingsnio, kol pasieksime pakankamai mažą fit reikšmę arba kol bus pasiektas žingsnių limitas.

Tipinės užduotys

Užduotys, kurias dažniausiai sprendžia genetiniai algoritmai, apima:

  1. Tvarkaraščių optimizavimas
  2. Optimalus pakavimas
  3. Optimalus pjovimas
  4. Išsamios paieškos pagreitinimas

✍️ Pratimai: Genetiniai algoritmai

Tęskite mokymąsi šiuose užrašuose:

Eikite į šį užrašą, kad pamatytumėte du genetinių algoritmų naudojimo pavyzdžius:

  1. Teisingas lobio padalijimas
  2. 8 karalienių problema

Išvada

Genetiniai algoritmai naudojami spręsti daugelį problemų, įskaitant logistikos ir paieškos problemas. Ši sritis įkvėpta tyrimų, kurie sujungė psichologijos ir kompiuterių mokslo temas.

🚀 Iššūkis

"Genetiniai algoritmai yra paprasti įgyvendinti, tačiau jų elgesį sunku suprasti." šaltinis Atlikite tyrimą, kad rastumėte genetinio algoritmo įgyvendinimą, pavyzdžiui, sprendžiant Sudoku galvosūkį, ir paaiškinkite, kaip jis veikia eskizu arba srauto diagrama.

Po paskaitos testą

Apžvalga ir savarankiškas mokymasis

Žiūrėkite šį puikų vaizdo įrašą, kuriame kalbama apie tai, kaip kompiuteris gali išmokti žaisti Super Mario, naudojant neuroninius tinklus, treniruotus genetiniais algoritmais. Daugiau apie kompiuterio mokymąsi žaisti tokio tipo žaidimus sužinosime kitame skyriuje.

Užduotis: Diofantinė lygtis

Jūsų tikslas yra išspręsti vadinamąją Diofantinę lygtį - lygtį su sveikaisiais sprendiniais. Pavyzdžiui, apsvarstykite lygtį a+2b+3c+4d=30. Jums reikia rasti sveikuosius sprendinius, kurie atitinka šią lygtį.

Ši užduotis įkvėpta šio įrašo.

Patarimai:

  1. Galite apsvarstyti sprendinius intervale [0;30]
  2. Kaip geną, apsvarstykite šaknų reikšmių sąrašą

Naudokite Diophantine.ipynb kaip pradinį tašką.