Johdannoksi


Geneettisellä algoritmilla tarkoitetaan ohjelmaa, joka jäljittelee luonnossa tapahtuvaa eläinlajin perintötekijöiden ja niihin liittyvien ominaisuuksien jalostumista: survival of the fittest. Kun ohjelmat laaditaan niin, että niitä voidaan kuvata 'geneettisellä koodilla', voidaan luonnollisen valinnan periaatteita soveltaa hyväksyttävän ratkaisun etsimiseen. Geneettisen algoritmin käyttö edellyttää tehtävän ratkaisevan ohjelman osien käyttäytymisen arviointia tuloksen laadun, muistitilan ja ajan käytön suhteen. Ohjelman osien ominaisuudet on voitava erottaa toisistaan luonteviksi mittareiksi arvioitaessa kunkin ratkaisuyksilön 'elinkelpoisuutta' sukupolvea karsittaessa.
Geneettisen algoritmin soveltaminen antaa välineitä mittavien ohjelmointiprojektien suun-nitteluun. Sitä voidaan soveltaa ohjelmamodulien ja tietorakenteiden paikalliseen optimointiin. Käyttöliittymien ominaisuudet voidaan alistaa luonnollisen valinnan kohteiksi luokitusjärjestelmän avulla, jonka perusta on ominaisuuksien käyttöaste ja niihin liittyvät virheet.
Versiointia ja karsintaa voidaan soveltaa tietokonepohjaisten dokumenttien lay-outehin ja hypermediatallenteiden linkitysjärjestyksiin, niin että sisältö pyrkisi skaalautumaan mahdollisimman ymmärrettäväksi käyttötarkoituksensa ja lukijansa mukaan. Käyttöliittymän piirteiden ja ominaisuuksien kuvaaminen geenien avulla ei ole vaikeaa, toiminnot voidaan varsin helposti kuvata ja ryhmittää toisistaan riippumattomiksi. Esimerkiksi agenttiperustaiset käyttöliittymät, jossa perimän avulla voidaan jalostaa niin yksittäisiä agentteja kuin niiden yhdistelmiäkin - agentuureja.
Varsinainen vaikeus on kokonaan uudenlaisen suunnitteluparadigman omaksuminen. Analyyttiseen, yhteen kiteytettyyn ratkaisuun pyrkivän, deduktiivisen suunnittelun sijaan ohjelmoijan tulee kuvata ratkaisuavaruus (versiointi ja monistuminen) ja siihen kohdistuva hakumenettely (karsinta).
Ratkaisun rakenne on kuvattava itsenäisten ja riittävän hienojakoisten modulien avulla, jotta versiointi kattaisi koko mahdollisen ratkaisuavaruuden mahdollisimman laajasti. Mielestäni geneettisen ja versioivan suunnittelun periaatteita pitäisi opettaa ja kokeilla rinnakkain perinteisten analyysiin ja deduktiiviseen todistettavuuteen perustuvien suunnittelumenetelmien rinnalla.


Sisältö Seuraava