|
Lopuksi
Huonosti kuvatut ongelmat ja likiarvoiset ratkaisut ovat mahdollisia koska
tietokone voi tuottaa ihmistä nopeammin useita ratkaisusukupolvia. On kuitenkin
sanottava, ettei pelkkä sattumanvarainen perimän muuttelu ilman risteyttämistä
optimoi hakua. Risteytys tuottaa optimiratkaisun, jos populaatio pidetään
riittävän suurena, valioyksilöiden perimä siirretään eheänä ja sukupolvia
tuotetaan riittävästi - paikalliset optimit vältetään mutaatioiden tuottamisella.
Ohjelmointityön laadun valvonta on vaikeaa, eikä se saavuta teolliselle
tuotannolle yleisesti asetettuja vaatimuksia. Jos hyväksytään ajatus siitä, että
ohjelma voi muuttua vielä asiakkaan käytön aikana, niin geneettistä algoritmia
soveltaen voidaan kaupallisenkin ohjelmiston antaa sopeutua käyttöympäristöönsä
niin toiminnaltaan kuin resurssivaatimuksiltaan. Geenit tarjoavat ylläpitäjälle
ohjelman ominaisuuksia heijastavan indeksin puutteellisesti toimivien modulien
paikantamiseen.
Ovatko geenit älykkäitä? Jokainen ihmissolu sisältää tarkalleen samat
perintötekijät, noin 2 870 000 000 neliaakkoksista geeniä - kuitenkin vain osaa
perimästä käytetään kunkin isäntäsolun rakentamiseen. Miten solu osaa
kehittyessään valita oikeat geenit? Vastaavasti geneettisen algoritmin karsinnan
ja perimän vaihdon painopisteen oikea valinta on lopputuloksen optimaalisuuden
kannalta ratkaisevaa. Ihmisperimä ohjelmoi 250 erilaista solutyyppiä valtaisasta
2,8 miljardin geenin nauhasta. Mielenkiintoisia näköaloja avaa ohjelmistoja
kuvaavien geenien ryhmittely hierarkioiksi, jolloin ominaisuuksien optimointia
voidaan suorittaa halutussa laajuudessa rajaamalla risteytysten ja mutaatioiden
vaikutusalueita.
Varsinainen ongelma on uudenlaisen suunnittelustrategian omaksuminen -
yleisestä yksittäiseen etenevän, deduktiivisen ongelmanratkaisun sijaan
suunnittelussa pitää pyrkiä ratkaisuavaruuden ja ratkaisun ulkoisten vaatimuksien
ymmärtämiseen ja induktiiviseen yksittäisestä yleiseen suuntautuvaan päättelyyn.
Asteittain tarkentuvan ja täsmentyvän työvaltaisen koodausprosessin sijaan
geneettiseen algoritmiin pohjaavan ohjelmankehityksen perustana tulee olla
ratkaisumahdollisuuksia avaava, orgaanisiin malleihin pyrkivä suunnittelu.
|