infprg03dt practicumopdracht 4 W. Oele 31 augustus 2008 1
Evolutie Het volgende citaat komt letterlijk van Wikipedia: Met evolutietheorie (soms ook wel evolutieleer genoemd) wordt de wetenschappelijke kennis over de evolutie van het leven en het ontstaan van soorten bedoeld. Evolutie is in de levende natuur een proces, dat resulteert in veranderingen in de erfelijke samenstelling van een populatie tussen verschillende generaties. Binnen soorten bestaan verschillen in erfelijke eigenschappen, dit wordt veroorzaakt door verschillen in de genen van individuen (genetische variatie). Sommige individuen hebben een voordelige eigenschap en zijn daarom beter uitgerust om te overleven dan andere. Door natuurlijke selectie zullen deze individuen meer nakomelingen krijgen, zodat in de populatie de voordelige eigenschap vaker gaat voortkomen. Door mutaties en recombinatie kunnen nieuwe eigenschappen ontstaan. In de moderne evolutietheorie worden verschillende mechanismen onderkend waardoor genetische variatie zich kan verspreiden door een populatie. Natuurlijke selectie wordt gezien als het belangrijkste evolutiemechanisme, waardoor populaties aangepast raken aan de omstandigheden. De evolutietheorie stelt dat, hoewel de evolutie van een soort meestal langzaam plaatsvindt en er pas na tientallen generaties een verandering waar te nemen is, op een geologische tijdschaal nieuwe soorten ontstaan en alle soorten uiteindelijk een gemeenschappelijke afstamming hebben. Voor het totale evolutieproces worden honderden miljoenen jaren gerekend. Charles Darwin (1809-1882) wordt beschouwd als de belangrijkste grondlegger van de evolutietheorie, vanwege zijn boek On the origin of species by means of natural selection. Al vrij kort nadat dit boek in 1859 verscheen, werd de evolutietheorie binnen de wetenschappelijke wereld algemeen aanvaard als verklaring voor het ontstaan van soorten, inclusief de mens. Gedurende de anderhalve eeuw sinds Darwin heeft de evolutietheorie belangrijke ontwikkelingen doorgemaakt, met name door nieuwe inzichten op het gebied van de (moleculaire) genetica. Zo werd in de moderne synthese de evolutietheorie gecombineerd met de Wetten van Mendel, en werd door het onderzoek naar genen en DNA de evolutietheorie een basis gegeven in de moleculaire biologie. Van het bovenstaande citaat bestaan overigens allerlei varianten en de discussie over dit onderwerp is nog niet beslecht, getuige ook een artikel dat onlangs nog in de rubriek wetenschap & onderwijs van het NRC te vinden was. 2
Opdrachtomschrijving De bedoeling van deze programmeeropdracht is dat je een programma gaat schrijven, waarmee op eenvoudige wijze na te gaan is of Darwins evolutietheorie überhaubt wel mogelijk is, d.w.z. of het mogelijk is dat een dergelijk proces in de natuur plaatsvindt. Daar er aan het onderwerp evolutie een hoop haken en ogen zitten, wordt de opdracht vooral eenvoudig gehouden, hetgeen dus ook betekent dat de conclusies die uit de werking van het programma worden getrokken aan diezelfde beperkingen onderhevig zijn en op allerlei manieren bekritiseerd kunnen worden. Het programma dat we gaan schrijven werkt grafisch en heeft het karakter van een simulatie. Het model Wanneer men een programma wil schrijven, waarin wordt nagegaan of Darwins evolutie theorie mogelijk is, is de vraag natuurlijk hoe dit te doen. Welnu: we schrijven een programma op basis van een model. Een model is een vereenvoudigde weergave van de werkelijkheid. Ene Albert Einstein heeft ooit eens opgemerkt dat een model bij voorkeur zo simpel mogelijk is, maar niet te simpel. (In dat laatste zit nu net het probleem: hoe weet je zeker dat je model klopt en dat je er niets in over het hoofd ziet, danwel zaken in het model verwerkt die niets met het vraagstuk te maken hebben?). Het model dat we gaan gebruiken in ons programma werkt met dieren en roofdieren die beide in een habitat leven, bijvoorbeeld een bos, een meer of een stukje van de oceaan. De habitat: wordt weergegeven door een vlak van 500 500 pixels in een window. heeft een bepaalde kleur, d.w.z. in een bos zou deze kleur groen kunnen zijn, in een woestijn ligt geel/beige iets meer voor de hand. De kleur is door de gebruiker van het programma in te stellen. bevat een constant aantal dieren, te weten 2500. Een dier: wordt voorgesteld door een vlakje van 10 10 pixels. heeft een bepaalde kleur. kan zich voortplanten met een ander dier. 3
kan worden opgegeten door een roofdier. heeft genoeg te eten. Een roofdier: heeft geen kleur. is niet zichtbaar op het computerscherm. jaagt op dieren. heeft geen maximum leeftijd. Werking van het programma Het programma heeft het karakter van een discrete simulatie die als volgt verloopt: Wanneer de gebruiker het programma opstart, wordt een scherm getoond met daarin een vlak van 500 500 pixels. De gebruiker stelt een achtergrond kleur in, bijvoorbeeld groen. De habitat wordt gevuld met dieren (50 50 = 2500 dieren) Elk dier krijgt een willeurige kleur. Aan het begin van de simulatie wordt het scherm dus een nogal kleurrijk geheel. Het verstrijken van tijd heeft in dit programma een discreet karakter, d.w.z. er wordt gewerkt met tijdstappen. In iedere tijdstap zal het roofdier een aantal dieren opeten. Het aantal op te eten dieren per tijdstap kan door de gebruiker van het programma worden ingesteld. Opgegeten dieren worden in dezelfde tijdstap vervangen door de overlevenden zich te laten voortplanten. 4
Het roofdier Zoals gesteld, zal in iedere tijdstap het roofdier een aantal dieren opeten. Dit verloopt echter volgens een aantal voorwaarden: Het roofdier zal in iedere tijdstap een willekeurige plek in onze habitat aanwijzen, het roofdier kijkt op die plek. Op de betreffende plek staat een dier met een bepaalde kleur. Hoe meer de kleur van het dier lijkt op de achtergrondkleur, hoe kleiner de kans dat het roofdier het dier ziet en opeet. Als het dier niet wordt opgegeten, gebeurt er niets en zal het roofdier op een andere willekeurige plek kijken. Als het dier wel wordt opgegeten, zal het direct worden vervangen, d.w.z. er worden twee willekeurige dieren uit die habitat met elkaar gekruisd: het nieuwe dier krijgt de gemiddelde kleur van de twee ouders. 5