Populaatiomallintaminen ja -visualisointi

Johdanto

Kurssin (Studio 4) tämänkertainen tehtävänanto oli verkostojen visualisointi. Ryhmämme valitsi aiheeksi populaatioiden ja niiden suhteiden mallintamisen, aina yksittäisen populaation elinkaaresta populaatioryhmien keskenäiseen interaktioon. Vaikka pääpaino onkin visualisoinnissa, vaikein osa tehtävää lienee populaatioiden mallintaminen ja mallin kasassa pysyminen. Rajasimme aiheen eläinpopulaatioihin ja luonnon kiertoon - kuka syö ketä ja miten populaation kasvu määräytyy. Tämän esseen tehtävä on tutkia pinnallisesti populaatiokasvun malleja ja kasvun määrittäviä muuttujia, sekä mahdollisesti tarjota valmis ratkaisu suoraan käytettäväksi Javapohjaisessa perussimulaatiossa.

Populaatiokasvun matemaattiset mallit [1]

  1. Malthusialainen, exponentiaalinen kasvu

    t ajankohta mitattuna tiettyinä ajanjaksoina
    pt populaation koko ajankohdassa t
    pt+1 seuraavan ajanjankson populaation koko
    r Malthusialainen kerroin, joka määrittää kasvun vauhdin.

    Ajanjaksottainen kasvu perustuu edellisen ajanjakson populaation suuruuteen. Seuraavan ajanjakson populaatio on suoraan r kertaa edellisen ajanjankson populaation kokokoinen. Populaatio kasvaa exponentiaalisesti ja rajattomasti jos r > 1 - tämä on yksinkertaisin kasvumalli.


    Kuva 1: Exponentiaalinen kasvu eri kertoimilla [2]


  2. Rajattu kasvu


    K populaation maksimiraja

    Valitettavasti exponentiaalinen kasvu ei vastaa oikeata maailmaa, sillä populaation kasvua säätelee rajoittavat tekijät kuten asuinalueen suuruus ja maksimikapasiteetti. Rajoituksen kuvaamiseksi exponentiaaliseen kasvufunktioon voi lisätä rajoittavan tekijän, jolloin populaation koko lähenee asymptoottisesti asetettua maksimirajaa.


    Kuva 2: Maksimiarvolla rajattu kasvu [3]


  3. Saalistajat ja saaliit


    f populaatiofunktio
    p ensimmäinen populaatio
    q toinen populaatio

    Tässä Lotka-Volterra mallissa [4] populaatioiden koot perustuvat interaktioon toisten populaatioiden kanssa.

Käytännön applikaatio

Kaksiviikkoisen projektimme puitteissa on tärkeintä luoda toimiva ja visuaalisesti harmoniaan kykenevä kokonaisuus. Tasapainoon pääseminen vaatii tiettyjä muuttujia, jotka kontrolloivat eläinpopulaatioiden syömistä, lisääntymistä ja kuolemista muihin syihin kuin ruuan loppumiseen. Tarkoituksena olisi löytää exponentiaaliseen ja rajattuun kasvuun johtava funktio, jonka käyrä on S-muotoinen (Kuva 2). Vaikeimpia ominaisuuksia on populaation elossa pysyminen ja toiminta suuressa populaatioverkostossa.

Rajoittavat muuttujat

Ruuan tarve

Ruoka on luonnollisesti tärkein yksittäinen muuttuja populaation kasvussa. Jos eläimet saavat tarpeeksi ruokaa, ne lisääntyvät ja pysyvät hengissä. Simulaatiossamme ruoka on yhtä kuin muut populaatiot tietyin rajoituksin, joten ruoka vaikuttaa sekä syöviin että syötäviin. Kuten oikeassa maailmassa, kaikki eivät voi syödä kaikkia - simulaatiomme kannalta paras ratkaisu on luoda syöntikehä ja muutamia kaikkiruokaisia populaatioita.

Kuitenkin varhaiset testimme osoittivat, että tasapainon ylläpitäminen on todella vaikeata suuressa populaatiosimulaatiossa. Kaikkiruokaiset eliöt syövät nopeasti pois kaiken syötävän, joten sekä syömistä että populaation kokoa on rajoitettava. Yksi tapa on pienentää syömistodennäköisyyttä syötävän populaation koon mukaan. Tämä mallintaisi ruuan löydettävyyttä luonnossa, mutta käytännössä ratkaisu voi olla jopa vaikeasti toteutettavissa realistisella tavalla. Jonkinlainen prosentuaalinen todennäköisyys on kuitenkin tarpeellinen, jotta järjestelmä pysyisi koossa.

Lisääntymistahti

Lisääntymistahti on käytännössä riippuvainen sekä ruuasta että vapaasta elintilasta. Kuitenkin päätimme rajata pois elintilan mahdollisena kasvuun vaikuttavana muuttujana käytännön syistä. Elintilan visualinen mallintaminen olisi vaikeata jos kaikille populaatioille annetaan samat mahdollisuudet jakaa rajoitettu kokonaistila. Populaatioiden mallintaminen geometrisinä muotoina (esim. palloina) antaisi mahdollisuuden mallintaa populaatioiden ylikuormitusta, mutta laskennallisista syistä tämä ei ole paras ratkaisu lyhyehkössä projektissa.

Lisääntymistahti on ainut populaation kokoa kasvattava tekijä, joten tämän muuttujan vaikutusta ei voi vähätellä. Kuitenkin itse muuttujaa tärkeämpi ominaisuus on lisääntymisalgoritmi, joista esitin pari esimerkkiä tämän esseen alussa. Yksinkertaisin luontoa mallintava algoritmi on expontentiaalinen kasvutahti jossa oletetaan, että jokainen yksilö tuottaa kesimäärin x jälkeläistä. Tällöin voidaan laskennallisesti mallintaa esteetöntä kasvua ja saada aikaiseksi ideaaliolosuhteiden kasvutahti. Exponentiaalista kasvua näkee harvoin luonnossa, ainoastaan täydellisissä laboratorio-olosuhteissa kasvatetut eliöt saattavat kasvaa tätä tahtia. Mutta jopa laboratoriossa elintila ja energia lopulta loppuvat, ja maksimimäärä eliöitä onkin parhaimmassa tapauksessa asymptoottisesti lähellä kyseiselle populaatiolle asetettua maksimiarvoa. [5]

Populaation visualisiointi

Koropleettikartta

Koropleettikartan avulla visualisoidaan jokin kartografisesti jaettavissa oleva attribuutti värien ja värikylläisyyden avulla. Jos attribuutista saadaan suoraan johdettua väriarvo, voidaan dataa visualisoida hyvinkin tarkasti ja väriarvot edustavat suoraan attribuutin arvoa suhteessa minimiin ja maksimiin. Jos esimerkiksi visualisoidaan populaation tiheyttä kartan eri alueilla, voi tumma alue tarkoittaa tiheää asutusta ja vaalea alue vastaavasti harvaa asutusta. Värit ovat helposti ja nopeasti tulkittavissa, ja suuria alueita voidaan visualisoida hyvinkin tiheästi ja tehokkaasti luettavuuden kärsimättä - olemme tottuneet lukemaan karttoja ja geometrisiä kuvioita. [6]


Kuva 3: Esimerkki koropleettikartasta [7]

Koropleettikartan väriarvot ovat yleensä yhden perusvärin eri tummuusasteita, mutta voivat myös edustaa tietyn ohjearvon alittavia ja ylittäviä arvoja. Esimerkiksi ohjearvoa alemmat arvot ja alueet ilmenevät kylmän sinertävinä kun taas ohjearvon ylittävät arvot ilmenevät punertavina. Itse ohjearvo voi olla neutraalin valkoinen, ja sitä lähellä olevat arvot hyvin vaaleita sinisen ja punaisen sävyjä. Näin voidaan helposti visualisoida esimerkiksi päästöarvoja suhteessa populaation kokoon tietyllä alueella tai jonkin arvon muutostahtia. Ohjearvoihin suhteutettu visualisointi sopii nimenomaan parhaiten muutosten visualisointiin, jolloin esimerkiksi populaation siirtyminen vehreimmille alueille näkyy hyvinkin ilmeisesti. [8]

Kartalla voidaan myös visualisoida tiettyihin raja-arvoihin sijoittuvia attribuutteja, kuten yleinen kasvu-/laskusuhdanne tai muuttoliikenteen kumulatiivinen arvo viimeisen kymmenen vuoden ajan. Tämän typpiinen visualisointi on yleistä myös kun kyseessä on klassifikaatioa ilmentävä kartta tai on/ei jakautuminen eri ryhmiin. Esimerkiksi äänestystulokset puolueittain tai virallinen kieli tai uskonto maakohtaisesti on helppo esittää kartalla, jossa kukin alue on värjätty tietyn indexin tai värikartan mukaan. [9]


Kuva 4: Ohjearvojen mukaisesti rajattu koropleettikartta [10]

Maaginen kolmio

Yksi kiinnostavimmista visualisoinneista on kolmio, jossa esitettään saman näytteen kaksi eri attribuuttia yhdessä geometrisessä kuviossa. Kuvan (Kuva 5) esimerkissä visualisoidaan hiihtokeskusten aloittelijamäkien lukumäärä suhteessa hissilipun hintaan, joka on kiinnostava tieto innokkaalle aloittelijalle. Kartasta näkee helposti mitkä hiihtokeskukset tarjoavat paljon hiihdettävää, ja mitkä ovat kalliita hiihtäjälle. Halvin, eniten vaihtoehtoja tarjoava hiihtokeskus esiintyy kapeana ja terävänä kolmiona. Tässä mallissa on kuitenkin aina muistettava, ettei visualisointi ota huomioon muita kuin kahta valittua attribuuttia, eikä esimerkiksi vuokrauksen hintaa tai rinteiden laatua tai pituutta voi lukea suoraan kartalta. Tärkeintä on siis valita kaksi eniten kiinnostavaa attribuuttia.[11]


Kuva 5: Hiihtokeskusten aloittelijamäkien lukumäärä suhteessa hissilipun hintaan [12]

Populaation visualisoinnissa kaksi kolmiomalliin sopivaa attribuuttia voisi olla populaation nykyinen koko ja sen kasvu, jolloin leveä ja matala kolmio on suhteellisen suuri ja vakaa verrattuna korkeaan ja kapeaan kolmioon, joka edustaa hurjasti kasvavaa pientä populaatiota. Eläinmallissamme karhut luultavasti edustavat vakaata ja matalaa kolmiota, ja jänikset edustavat kasvavaa populaatiota. Jos visualisointiin yhdistetään animaatioelementti voi kolmiovisualisointi olla hyvinkin hyödyllinen. Kiinnostavana yksityiskohtana kolmiomallin puolesta voi todeta, että oikein suhteutettuna kolmion pinta-alue edustaa populaation tämän vuoden nettokasvua, mikä on hyvinkin keskeinen asia mallin ja simulaation kannalta. Yleensä onkin toivottavaa, että mallit jotka yhdistävät useita attribuutteja pystyvät suoraan esittämään attribuuttien keskeisiä suhteita ja tuloja.

Kolmen attribuutiin suhteiden visualisointi - Oma ehdotukseni

Usein attribuutin merkittävyys perustuu attribuutin osaan suuremmasta kokonaisuudesta. Jos esimerkiksi tietyllä alueella esiintyy kolmea lihansyöjäeläimen alalajia, edustaa jokainen alalaji tiettyä prosentuaalista osuutta lajin kokonaisesiintymisestä, ja osuudet määrittävät todennäköisyyden, jonka mukaan tietyt alalajit risteytyvät toisten kanssa ja häviävät. Toinen esimerkki voisi olla populaation ravintotarve ja -jakauma, jolloin esimerkiksi kolmea ravintoainetta tarvitaan tasapainoinen määrä suhteessa toisiinsa. Optimaalinen, tasapainoinen tilanne molempien esimerkkien kohdalla on se, että kaikki kolme attribuuttia edustavat yhtä suuria arvoja.

Kolmen optimaalisesti yhtäsuuruisen attribuutin esittäminen suhteessa toisiinsa on haastava, mutta kiitollinen tehtävä. Kolmen attribuutin tai muuttujan keskinäisistä suhteista voi helposti piirtää kuvaavan mallin, josta käy ilmi sekä painopiste, että nykyiset attribuutien arvot. Kyseessä on kaksi kolmiota, joista ulompi määrittää viitearvot ja sisäinen määräytyy kolmen kuvattavan muuttujan arvojen mukaisesti. Kolmioilla on aina yhteinen keskipiste joka edustaa jokaisen attribuutin nollapistettä, ja ulkoisen kolmion kulmapisteet (vertexit) edustavat vastaavasti joko maksimiarvoja, sadan prosentin osuutta tai optimiarvoja (jolloin on kyettävä piirtämään myös reunakolmion ulkopuolelle). Sisäisen kolmion kulmapisteet piirretään keskipisteen ja viitearvon väliin siihen kohtaan, johon ne arvoltaan kuuluvat. Esimerkiksi arvo 50 piirretään keskipisteen 0 ja reunapisteen 100 puoleenväliin. Attribuuttien keskenäinen painopiste sijaitsee sisäisen kolmion kuvitteellisessa painopisteessä, ja kertoo hyvin mihin päin attribuuttien summa on kallellaan. Valitettavasti sisäisen kolmion peittämä alue ei yleensä anna muuta lisäarvoa kuin sen suhde ulkoisen kolmion alueeseen.


Kuva 6: Kolmen attribuutin arvot mallinnettuna sisäisenä kolmiona ulkoisessa kehyksessä [Erik Berglund]

Yllä esitetty esimerkki sisältää generistä dataa kolmesta eri attribuutista. Keskipiste on nolla, mutta ulkoisen kolmion viitearvoja ei ole määritetty. Kuva kuitenkin osoittaa, miten sisäisestä kolmiosta voi lukea sekä painopisteen, että yksittäisen attribuutin suhteellisen arvon. Samantyyppisiä kolmioita on käytetty visualisoimaan mm. kolmitahoisia psykologisia testejä, mutta pääpaino on aina ollut painopisteen löytämisellä. Kuvassa 6 esitetty, yksinkertaistettu malli osoittaa yksittäisen arvon sijainnin, painopisteen sekä viitekehyksen mittauksille, olkoon tämä maksimiarvo, minimiarvo tai suhteellinen maksimi (100%).

Lähteet

  1. Arcytech; Interesting Facts about Population Growth Mathematical Models; viitattu 28.02.2005
    http://www.arcytech.org/java/population/facts_math.html
  2. Arcytech; Interesting Facts about Population Growth Mathematical Models - Unlimited Growth Curves; viitattu 28.02.2005
    http://www.arcytech.org/java/population/images/math0.gif
  3. Arcytech; Interesting Facts about Population Growth Mathematical Models - Population Growth Based on Logistic Equations; viitattu 28.02.2005
    http://www.arcytech.org/java/population/images/math1.gif
  4. Lotka-Volterra Two Species Model; viitattu 01.03.2005
    http://www.utm.edu/staff/rirwin/LVComp.htm
  5. Arcytech; Interesting and complex aspects of the basic logistic equation; viitattu 01.03.2005
    http://www.arcytech.org/java/population/facts_math.html#interesting
  6. Gennady Adrienko; Cartographic visualization methods - Choropleth maps; viitattu 25.03.2005
    http://www.eready.org.ni/AiS/Technical/commongis/Maps.htm#M1
  7. Gennady Adrienko; Cartographic visualization methods - Choropleth maps - Classification into equal intervals; viitattu 25.03.2005
    http://www.eready.org.ni/AiS/Technical/commongis/ClassificationEqualIntervalMap.gif
  8. Gennady Adrienko; Cartographic visualization methods - Choropleth maps - Degrees of darkness; viitattu 25.03.2005
    http://www.eready.org.ni/AiS/Technical/commongis/Maps.htm#M2
  9. Gennady Adrienko; Cartographic visualization methods - Choropleth maps - Color; viitattu 25.03.2005
    http://www.eready.org.ni/AiS/Technical/commongis/Maps.htm#M6
  10. Gennady Adrienko; Cartographic visualization methods - Choropleth maps - Portugal classification % by age; viitattu 25.03.2005
    http://www.eready.org.ni/AiS/Technical/commongis/Classification.gif
  11. Gennady Adrienko; Cartographic visualization methods - Triangles; viitattu 25.03.2005
    http://www.eready.org.ni/AiS/Technical/commongis/Maps.htm#M9
  12. Gennady Adrienko; Cartographic visualization methods - Wallis Triangles; viitattu 25.03.2005
    http://www.eready.org.ni/AiS/Technical/commongis/Triangle1.gif