Kuva 9: Move-To-Front algoritmin graafinen esitys.
Esimerkkinä esitetyn MTF- algoritmin lisäksi listoihin sovellettavia muokkaavia algoritmeja on useita ja niiden tehokkuus riippuu hakutapahtumien hajonnasta. Käyttötilanteeseen soveltuvan tietorakenteen järjestelystrategian (algoritmin) valinta voidaan toteuttaa geneettisen algoritmin keinoin. Olio-ohjelmointiOhjelmistojen kehitystyön näkökulmasta merkittävä paradigmamuutos on ollut siirtyminen olioperustaisiin ohjelmointityökaluihin ja varusohjelmistoihin. Uusimmat käyttöjärjestelmät ja -liittymät, esim. AppleOS 7.x, Solaris ja NextStep on toteutettu olio-ohjelmointikielillä. Olioiden tunnistamisen, käsittelyn ja rakenteen standardoimiseen pyritään mm. 300 jäsenisessä OMG (Object Management Group) -työryhmässä, oliomäärittelystä tarkemmin työryhmän raportissa (CORBA). Sun Microsystems on julkistanut tiedonhallintastategiansa DOE (Distributed Objects Everywhere), joka pohjaa edellä mainittuun standardiin.Olio-ohjelmoinnissa proseduurit ja niiden käsittelemät tietorakenteet on yhdistetty yhdeksi viitattavaksi olioksi. Olioiden sisältöä voidaan muokata vain olioiden omilla prosesseilla. (kuva 10) Oliot voivat koostua toisista olioista tai ne voivat olla kantaolion erikoistuneita muotoja, olioiden rakenteellistoiminnalliset kuvaukset järjestetään luokkakuvauksiksi. Luokkamäärittelyt organisoidaan hierarkiaan ominaisuuksien periytymisen mukaan. Oliot laukaisevat toistensa toimintoja lähettämällä viestejä, joiden käynnistämät toiminnot suorittavat ohjelman. |
Kuva 10: Olio-ohjelman komponentit ovat itsenäisiä. Ohjelman tehtävän suorittavat keskenään kommunikoivat oliot.
Olioiden näkökulmasta ohjelman ratkaisema tehtävä on vain käyttäytymisen sivutuote, niin että varsinaisen ohjelman muodostaa keskenään viestivien olioiden joukko. Oliot tarjoavat luontevan tavan osittaa ohjelma, niin että sen ominaisuudet voidaan kuvata perimän avulla. Olioihin voidaan liittää niiden rakenteesta ja toiminnasta 'geneettiset kuvaukset' ja antaa niiden kehittyä versioitumalla ja valikoitumalla. Virukset ja agentitJotkin tietokonevirukset versioituvat ja leviävät elävän organismin tapaan niin tehokkaasti, että niitä on pidetty elämänmuotona. Tietokonevirukset eivät yleensä sisällä minkäänlaista perimää edustavaa koodia, eikä niihin kohdistu minkäänlaista karsintaa. Ne ovat takaisinkytkennältään yksiulotteisia ja varsin suoraviivaista mukautumisstrategiaa noudattavia olioita. Geneettisen algoritmin luulisi soveltuvan hyvin juuri kaksiulotteisen takaisinkytkentästrategiansa vuoksi tietokoneviruksia torjuvien ohjelmien kehittämiseen.Agenttien suosio on kasvanut verkotettujen sovellusten myötä. Agenteilla tarkoitetaan itsenäisiä ohjelmamoduleita tai -olioita, jotka tarjoavat käyttäjille pelkistetyn palveluiden rajapinnan. Palvelun käyttäjän ei tarvitse kuvata agentille suoritettavaa toimintaa vaan haluttu tulos. Erityistä mielenkiintoa ovat herättäneet ns. älykkäät agentit, jotka mukautuvat käyttäjän rutiineihin. Agentin ulkoinen käyttäytyminen ei muutu, vaikka se suorittuu eri ympäristöissä. Ne toimivat käyttäjän valtuutuksella, eikä niillä ole tietoisuutta, mutta niiden yhteisvaikutuksesta on mahdollisuus rakentaa itsestään ja ympäristöstään tietoisia prosesseja. Tämä näkemys on sittemmin hyväksytty ihmisen kognitiivisen mallin perustaksi, jossa tietoisuus koostuu tiedostamattomien prosessien yhdistelmistä (Minsky). Ohjelma-agenteista lisää mm. lähteessä (Maes). Geneettisen algoritmin näkökulmasta agenttien avulla on helppo toteuttaa geeneihin liitettäviä ominaisuuksia. Toisaalta erityisesti oppivien agenttien ominaisuuksia voitaisiin jalostaa perimää hyväksikäyttäen. |