AI-For-Beginners/translations/fi/lessons/6-Other/21-GeneticAlgorithms
localizeflow[bot] 7a9b37f3b1 chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00
..
Diophantine.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
Genetic.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
README.md chore(i18n): sync translations with latest source changes (chunk 1/1, 201 changes) 2026-01-30 02:07:34 +00:00

README.md

Geneettiset algoritmit

Esiluentakysely

Geneettiset algoritmit (GA) perustuvat evolutionÀÀriseen lÀhestymistapaan tekoÀlyssÀ, jossa populaation evoluutiomenetelmiÀ kÀytetÀÀn optimaalisen ratkaisun löytÀmiseksi tiettyyn ongelmaan. Ne esitti vuonna 1975 John Henry Holland.

Geneettiset algoritmit perustuvat seuraaviin periaatteisiin:

  • Ongelman kelvolliset ratkaisut voidaan esittÀÀ geeneinĂ€
  • Risteytys mahdollistaa kahden ratkaisun yhdistĂ€misen uuden kelvollisen ratkaisun saamiseksi
  • Valinta valitsee optimaalisempia ratkaisuja kĂ€yttĂ€en jotain soveltuvuusfunktiota
  • Mutaatioita lisĂ€tÀÀn optimoimisen epĂ€vakauttamiseksi ja paikallisesta minimistĂ€ pÀÀsemiseksi

Jos haluat toteuttaa geneettisen algoritmin, tarvitset seuraavat asiat:

  • MenetelmĂ€n ongelman ratkaisujen koodaamiseen kĂ€yttĂ€en geenejĂ€ g∈Γ
  • Geenijoukossa Γ tĂ€ytyy mÀÀritellĂ€ soveltuvuusfunktio fit: Γ→R. PienemmĂ€t funktion arvot vastaavat parempia ratkaisuja.
  • MÀÀritellĂ€ risteytysmekanismi, joka yhdistÀÀ kaksi geeniĂ€ uuden kelvollisen ratkaisun saamiseksi crossover: Γ2→Γ.
  • MÀÀritellĂ€ mutaatiomekanismi mutate: Γ→Γ.

Monissa tapauksissa risteytys ja mutaatio ovat melko yksinkertaisia algoritmeja, jotka manipuloivat geenejÀ numeerisina jonoina tai bittivektoreina.

Geneettisen algoritmin tarkka toteutus voi vaihdella tapauskohtaisesti, mutta yleinen rakenne on seuraava:

  1. Valitse alkuperĂ€inen populaatio G⊂Γ
  2. Valitse satunnaisesti, mikÀ operaatio suoritetaan tÀssÀ vaiheessa: risteytys tai mutaatio
  3. Risteytys:
  • Valitse satunnaisesti kaksi geeniĂ€ g1, g2 ∈ G
  • Laske risteytys g=crossover(g1,g2)
  • Jos fit(g)<fit(g1) tai fit(g)<fit(g2) - korvaa vastaava geeni populaatiossa g:llĂ€.
  1. Mutaatio - valitse satunnainen geeni g∈G ja korvaa se mutate(g):llÀ
  2. Toista vaiheesta 2, kunnes saavutetaan riittÀvÀn pieni fit-arvo tai kunnes askelten mÀÀrÀ saavuttaa rajan.

Tyypilliset tehtÀvÀt

GeneettisillÀ algoritmeilla ratkaistaan tyypillisesti seuraavia tehtÀviÀ:

  1. Aikataulujen optimointi
  2. Optimaalinen pakkaus
  3. Optimaalinen leikkaus
  4. Uuvuttavan haun nopeuttaminen

✍ Harjoitukset: Geneettiset algoritmit

Jatka oppimista seuraavissa muistikirjoissa:

Siirry tÀhÀn muistikirjaan nÀhdÀksesi kaksi esimerkkiÀ geneettisten algoritmien kÀytöstÀ:

  1. Aarteiden reilu jakaminen
  2. 8 kuningattaren ongelma

Yhteenveto

GeneettisiÀ algoritmeja kÀytetÀÀn monien ongelmien ratkaisemiseen, mukaan lukien logistiikka- ja hakutehtÀvÀt. Ala on saanut inspiraationsa tutkimuksesta, joka yhdisti psykologian ja tietojenkÀsittelytieteen aiheita.

🚀 Haaste

"Geneettiset algoritmit ovat yksinkertaisia toteuttaa, mutta niiden kÀyttÀytymistÀ on vaikea ymmÀrtÀÀ." lÀhde Tee tutkimusta löytÀÀksesi geneettisen algoritmin toteutuksen, kuten Sudoku-pulman ratkaisemisen, ja selitÀ, miten se toimii luonnoksena tai vuokaaviona.

JĂ€lkiluentakysely

Kertaus ja itseopiskelu

Katso tÀmÀ loistava video, jossa kerrotaan, miten tietokone voi oppia pelaamaan Super Mariota kÀyttÀen geneettisillÀ algoritmeilla koulutettuja neuroverkkoja. Opimme lisÀÀ siitÀ, miten tietokone oppii pelaamaan tÀllaisia pelejÀ seuraavassa osiossa.

TehtÀvÀ: Diofanttinen yhtÀlö

Tavoitteenasi on ratkaista niin sanottu Diofanttinen yhtÀlö - yhtÀlö, jolla on kokonaislukuratkaisuja. Esimerkiksi yhtÀlö a+2b+3c+4d=30. Sinun tÀytyy löytÀÀ kokonaislukuratkaisut, jotka tÀyttÀvÀt tÀmÀn yhtÀlön.

TÀmÀ tehtÀvÀ on saanut inspiraationsa tÀstÀ artikkelista.

VinkkejÀ:

  1. Voit harkita ratkaisujen olevan vÀlillÀ [0;30]
  2. GeeninÀ voit kÀyttÀÀ juurten arvojen listaa

KÀytÀ Diophantine.ipynb aloituspisteenÀ.