New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Geneettinen algoritmi – Wikipedia

Geneettinen algoritmi

Wikipedia

Geneettinen algoritmi on tietojenkäsittelyssä hakuun käytettävä optimointimenetelmä. Geneettisellä algoritmilla on sovelluksia mm. tietojenkäsittelytieteessä, insinööritieteissä, taloustieteissä, fysiikassa ja matematiikassa. Optimointimenetelmänä geneettinen algoritmi luokitellaan heuristiseksi globaaliksi optimointimenetelmäksi. Geneettinen algoritmi on evolutionäärisen laskennan alaluokka, joka hyödyntää evoluutiobiologian tutkimuksessa löydettyjä perinnän, mutaation, valinnan ja rekombinaation menetelmiä.

Geneettiset algoritmit toteutetaan tietokonesimulaationa, jossa optimointiongelman yksittäisten ratkaisujen - kromosomien - muodostama populaatio kehittyy kohti parempaa ratkaisua. Perinteisesti yksittäiset kromosomit esitetään nollista ja ykkösistä koostuvina merkkijonoina, mutta myös muut merkintätavat ovat mahdollisia. Evoluution alkuvaiheessa populaatio on usein alustettu satunnaisesti ja etenee sukupolvittain. Sukupolven jokaisen kromosomin sopivuus mitataan, ja parhaiden kromosomien joukosta muodostetaan jälleen uusi sukupolvi mutaatioiden ja rekombinaation kautta.

Sisällysluettelo

[muokkaa] Periaate

Geneettinen algoritmin toteutusta varten tulee tyypillisesti määritellä kaksi asiaa:

  1. Koodaustapa, jolla käsiteltävän ongelman ratkaisut voidaan esittää kromosomeina,
  2. sopivuusfunktio, jolla yksittäisten ratkaisujen paremmuutta voidaan verrata toisiinsa.

Standardimenetelmä ongelman ratkaisujen esittämiseen on käyttää nollista ja ykkösistä koostuva bittitaulukko, jossa jokainen rivi vastaan yhtä yksittäistä ratkaisuvaihtoehtoa. Taulukkoesityksen etuna on bittijonojen keskinäisen vertailun ja muokkaamisen helppous. Geneettisen ohjelmoinnin ala tuntee myös puumaisia ja vapaamuotoisia esityksiä ratkaisujoukosta. Ratkaisujen laatua mittaava sopivuusfunktio on määritelty kaikille yksittäisratkaisuille ja sen määrittely riippuu aina käsillä olevasta ongelmasta.

Kun ratkaisujen geneettinen esitystapa ja sopivuusfunktio on määritelty, geneettinen algoritmin ensimmäinen vaihe on alkupopulaation alustus, joka tehdään yleensa satunnaisesti. Tämän jälkeen ratkaisupopulaatiota parannetaan mutaation, rekombinaation ja valinnan menetelmin.

[muokkaa] Alustus

Alustusvaiheessa useita yksittäisratkaisuja luodaan satunnaisesti alkupopulaation luomiseksi. Populaation koko riippuu suuresti käsiteltävästä tapauksesta, mutta tyypillisesti populaation koko on satojen tai tuhansien kromosomin kokoinen. Perinteisesti alkupopulaatio luodaan satunnaisesti ja tasaisesti koko hakuavaruuden alueelta. Joissakin tapauksissa alkupopulaation luomisessa voidaan painottaa niitä hakuavaruuden alueita, joilta optimaalisen ratkaisun oletetaan todennäköisesti löytyvän.

[muokkaa] Valinta

Jokaiselle algoritmin etenemisaskeleella osa senhetkisestä populaatiosta valitaan tuottamaan jälkikasvunaan uusi sukupolvi. Yksittäiset ratkaisut valitaan sopivuuteen perustuen siten, että parhaimman sopivuusarvon saavilla ratkaisuilla on suurin todennäköisyys tulla valituksi uuden sukupolven tuottajaksi. Valintamenetelmiä on olemassa useita, joissa valittavien yksilöiden osuuden suurus ja valintamenetelmän satunnaisuus vaihtelevat.

[muokkaa] Lisääntyminen

Seuraava askel on uuden sukupolven tuottaminen edellisestä sukupolvesta valittujen yksilöiden perusteella. Uusien yksittäisratkaisujen tuottamisessa käytetään geneettisiä siirtymän, rekombinaation ja mutaation operaatioita.

Jokaista uutta luotavaa ratkaisua varten valitaan kaksi "vanhempaa". Näiden "lapsi" muodostetaan yhdistelemällä (usein satunnaisesti) molempien vanhempien ominaisuuksia. Tätä menettelyä jatketaan, kunnes uuden populaation koko on riittävän suuri.

Kuvattu lisääntymisprosessti tuottaa lopulta uuden populaation, joka poikkeaa alkuperäisestä populaatiosta. Yleensä toisen populaation keskimäärinen sopivuus on ensimmäistä parempi, koska ratkaisukandidaattien joukosta on valintaprosessin aikana karsiutunut pois sopivuudeltaan huonot ratkaisut.

[muokkaa] Lopputulos

Edellä kuvattua menettelyä jatketaan kunnes jokin lopetuskriteeri tulee toteutettua. Tyypillisä lopetuskriteerejä ovat mm.

  • Riittävän hyvän ratkaisun löytyminen
  • Sukupolvien määrälle asetettu yläraja tulee täyteen
  • Algoritmin jatkamieen käytettävät resurssit (usein käytössä oleva laskentakapasiteetti) on käytetty loppuun
  • Algoritmin jalostaman parhaimman ratkaisun taso ei enää parane merkittävästi

[muokkaa] Tehokkuus

Geneettisiä algoritmeja tarvitaan, koska monien matemaattisten ongelmien ratkaiseminen muuten olisi hyvin työlästä, ellei mahdotonta.

Geneettisen algoritmit teho ongelmanratkaisuissa perustuu yleensä vakiokokoisessa populaatiossa tapahtuvaan toistoon, jossa risteytys ja mutaatiot luovat uusia kokonaisuuksia joista valinta seuloo optimaalisimmat. Lopullinen geneettisen algoritmin tehokkuus syntyy sen eri ojausparametrien yhteisvaikutuksesta. Siihen vaikuttaa populaation koko, "geenien" lukumäärä, mutaatioiden määrä ja risteytyksen läpi käyvien kromosomien lukumäärä. Ohjausparametrien parhaiden arvojen saaminen on melko vaikea ongelma. Ohjausparametrit voidaan antaa valmiina algoritmiin -tai niidenkin parhaat arvot voidaan hakea sopeuttavalla systeemillä.

[muokkaa] Pseudokoodiesitys

Luo alkupopulaatio
Mittaa yksittäiset sopivuudet tietylle osalle populaation ratkaisukandidaateista
Toista
 Valitse sopivimmat yksilöt lisääntymistä varten
 Luo uusi sukupolvi yhdistelemällä valittuja yksilöitä geneettisiä operaatioita käyttäen
 Mittaa lapsipopulaation yksilöiden sopivuudet
 Uudelleensijoita sopivimmat yksilöt
Kunnes lopetusehto toteutuu

[muokkaa] Huomioita

  • Monissa ongelmissa geneettisillä algoritmeilla on taipumus päätyä "hyvyysfunktiomaisemien"(engl:fitness landscape) lokaaleihin optimeihin. Ongelma voidaan kiertää muuttamalla hyvyysfunktiota, lisäämällä erilaisia mutaatiomenetelmiä(esimerkiksi pistemutaation lisäksi "geenin nurinperin kääntymisiä") ja lisäämällä mutaatiopainetta. Ratkaisuna voi olla myös "niche penalty", jossa yksilön selviytymismahdollisuus pienenee jos sen lähellä on samanlaisia eliöitä. Tämä lisää populaatioon painetta, joka lisää variaatiota, joka taas johtaa pois lokaalista optimista.
  • Operoitaessa dynaamista dataa, geneettiset algoritmit ovat joskus vaikeuksissa, koska genomit ovat sopeutuneet alussa olleisiin arvoihin, jotka algoritmin pyöriessä muuttuvat merkityksettömiksi. Mutaatioiden määrien lisääminen poistaa yleensä tämän ongelman.
  • Geneettiset algoritmit ratkaisevat tiukan spesifisiä tehtäviä heikosti. Jos jonkin ominaisuuden ainut hyvyysarvo on "oikein/väärin", ei geneettinen algoritmi ratkaise ongelmaa satunnaista arvontaa paremmin.
  • Valinta on ehdottomasti tärkeä osa geneettisen algoritmin toimintaa, mutta moni pitää populaatioiden sekoittamista tärkeämpänä.
  • Geneettiset algoritmit ovat taipuvaisia löytämään erittäin nopeasti hyvän ratkaisun, vaikka hakuavaruus olisi erittäin vaikea.
  • Spesifissä optimointiongelmassa yksinkertaisempi algoritmi löytää yleensä ratkaisun geneettistä algoritmia paremmin.
  • Geneettisen algoritmin teholle keskeistä on sen alkuparametrien huolellinen valinta tai niiden ohjelman aikainen sovittaminen. Yleensä liian matala mutaatiotahti johtaa lokaaleihin optimeihin ja liian korkea johtaa jo löydettyjen hyvien ratkaisujen rikkoutumiseen.

[muokkaa] Aiheesta muualla

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu