Anvendelse af genetiske algoritmer til simulering af biologiske systemer



Relaterede dokumenter
Bananfluer og nedarvning

Avl på honningbier det genetiske grundlag I

Generne bestemmer. Baggrundsviden og progression: Niveau: 8. klasse. Varighed: 12 lektioner

Genetisk drift og naturlig selektion

1. Hvad er kræft, og hvorfor opstår sygdommen?

Kvægavlens teoretiske grundlag

Kapitel 1. statusseminar HERE GOES TEXT

Et eksempel: Blomsterpopulation med to co-dominante gener for kronbladenes farve

Genetiske Aspekter af HCM hos Kat. - en introduktion til forskningsprojektet

Simulering af stokastiske fænomener med Excel

Mandags Chancen. En optimal spilstrategi. Erik Vestergaard

Svalespillet et spil om seksuel selektion

En statistikstuderendes bekendelser Søren Wengel Mogensen

Parallelisering/Distribuering af Genetiske Algoritmer

Pointen med Funktioner

Præsentation: Genetikeren Theo Dobzhansky har sagt: Nothing in biology makes sense except in the light of evolution.

18 Multivejstræer og B-træer.

Seminaropgave: Præsentation af idé

ESTUDIO GENETICO COLOR DE CAPA

(Farve)Genetik hos katte

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Det lyder enkelt, men for at forstå hvilket ærinde forskerne er ude i, er det nødvendigt med et indblik i, hvordan celler udvikles og specialiseres.

Notat om populationsstørrelse for bæredygtigt avlsarbejde

Cellen og dens funktioner

Er der flere farver i sort?

Naturlig variation. Hvad er det? Egenskaber. Eksempler. Naturlig variation er forskellen på eks. på to ting som man umiddelbart Opfatter som ens.

Cellens livscyklus GAP2. Celledeling

Dynamisk programmering

Løsning af simple Ligninger

Inholdsfortegnelse: 1. Allel-skema

Den genetiske 'gråzone' i Huntington's chorea: hvad betyder det alt sammen? Den basale genetik

Efter nøje overvejelser og ved gennemgang af de nuværende hovedfagsperioder er det besluttet af vælge følgende 4 fællesfaglige temaer:

Bilag 7 Analyse af alternative statistiske modeller til DEA Dette bilag er en kort beskrivelse af Forsyningssekretariatets valg af DEAmodellen.

2 -test. Fordelingen er særdeles kompleks at beskrive med matematiske formler. 2 -test blev opfundet af Pearson omkring år 1900.

Matematik og samfundsfag Gini-koefficienten

Identifikation af planer der ikke findes i PlansystemDK vha. datasættet... 9

26 Programbeviser I. Noter. PS1 -- Programbeviser I. Bevis kontra 'check af assertions' i Eiffel. Betingelser og bevisregler.

Genetik og arvelighed - husdyr, Arbejdsark 1

Biologiske signaler i graviditeten - Genetisk information

Datastrukturer (recap)

Appendiks 6: Universet som en matematisk struktur

Hvad er så vigtigt ved målinger?

Simulering af stokastiske fænomener med Excel

LP-HÆFTE SOCIAL ARV

Datastrukturer (recap)

På alle områder er konklusionen klar: Der er en statistisk sammenhæng mellem forældre og børns forhold.

Fordeling af midler til specialundervisning

Eksempel på besvarelse af spørgeordet Hvad kan udledes (beregn) inkl. retteark.

Gennemsnit og normalfordeling illustreret med terningkast, simulering og SLUMP()

Noter til Perspektiver i Matematikken

Rapport 23. november 2018

Læring af test. Rapport for. Aarhus Analyse Skoleåret

Evolutionsteorien set i et historisk lys med fokus på nåturvidenskåbelige årbejdsformer på Dårwins tid.

Dandy Walker Like Malformation

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

1. Intoduktion. Undervisningsnoter til Øvelse i Paneldata

O V E R L E V E L S E N S A B C

INTRODUKTION TIL DIAGRAMFUNKTIONER I EXCEL

O V E R L E V E L S E N S A B C

EA3 eller EA Cube rammeværktøjet fremstilles visuelt som en 3-dimensionel terning:

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Byggeriets Evaluerings Center

Susanne Ditlevsen Institut for Matematiske Fag susanne

Fig. 1 Billede af de 60 terninger på mit skrivebord

MTU 2011 Medarbejdertilfredshedsundersøgelse

De bedste duer før og nu Af Marc Verheecke Oversættelse Ove Fuglsang Jensen

Bygholm Dyrehospital. Kundetilfredshed 2012

UNDERVISNING I PROBLEMLØSNING

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Velkommen. Test dit eget DNA med PCR. Undervisningsdag på DTU Systembiologi. Undervisere:

Funktionsterminologi

Christina Dupont Kofod, Stald Kofod Farvegenetik. Gennemgang af den grundlæggende genetik bag pelsfarver hos kaniner

Undersøgelse af en genetisk algoritme

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

FORDELING AF ARV. 28. juni 2004/PS. Af Peter Spliid

Projekt 9.4 Darwins, Mendels og Hardy Weinbergs arvelighedslove

APV 2015 Arbejdspladsvurdering

Nøjagtig modsat virkning opnåes ved krydsning, hvor heterozygoti på sådanne loci kan medføre krydsningsfrodighed.

APV 2014 Arbejdspladsvurdering

Børne- og Ungetelefonen

APV 2013 Arbejdspladsvurdering

MTU 2013 Medarbejdertilfredshedsundersøgelse

Intra- og intermolekylære bindinger.

Hvad er formel logik?

University of Copenhagen. Notat om statistisk inferens Larsen, Martin Vinæs. Publication date: Document Version Peer-review version

Det Rene Videnregnskab

Eksamensspørgsmål til BiB biologi B 2015

LEKTION 4 MODSPILSREGLER

Definition : Et træ er en sammenhængende ikke-orienteret graf uden simple kredse. Sætning : En ikke-orienteret graf er et træ hvis og kun hvis der er

Prosodi i ledsætninger

Kennel Friis v/ Ejvind Friis Mikkelsen El-Vej 13, Seest, DK 6000 Kolding Tlf. (45) /

APV 2012 Arbejdspladsvurdering

At konstruere et socialt rum. Annick Prieur og Lennart Rosenlund

Sortering. Eksempel: De n tal i sorteret orden

IRONMIND Veteran. Evalueringsrapport omhandlende Veteranindsatsen i Viborg Kommune. - De vigtigste pointer. Christian Taftenberg Jensen for

Genhæmning: et overblik

Hjerner i et kar - Hilary Putnam. noter af Mogens Lilleør, 1996

Matematik, der afgør spil

Transkript:

Anvendelse af genetiske algoritmer til simulering af biologiske systemer Projekt udarbejdet af: Glennie Helles Datalogisk vejleder: Peter Johansen Biologisk assistance: Leif Søndergaard

Indholdsfortegnelse 1 INDLEDNING...3 1.1 Baggrund...3 1.2 Problemformulering...3 1.3 Afgrænsning...4 1.4 Læsevejledning...4 2 GENETISKE ALGORITMER...5 2.1 Biologisk baggrund...5 2.1.1 Darwins evolutionsteori...5 2.1.2 Biologisk terminologi...6 2.2 Indkodningsstrategi...8 2.2.1 Haploide vs. diploide individer...8 2.2.2 Binær indkodning...8 2.2.3 Værdi-indkodning...9 2.2.4 Træstruktur indkodning...10 2.2.5 Oversigt...10 2.3 Selektionsstrategi...10 2.3.1 Fitness-funktioner...11 2.3.2 Variation, arvelighed og selektion...11 2.3.3 Oversigt...14 2.4 Formeringsstrategi...14 2.4.1 Mutation...14 2.4.2 Overkrydsning...15 2.4.3 Oversigt...16 3 SIMULERING AF POPULATIONSUDVIKLINGEN HOS DROSOPHILA...17 3.1 Analyse af simuleringen...17 3.1.1 Generelt...17 3.1.2 Verdenen...18 3.1.3 Individerne...18 3.1.4 Population...21 3.1.5 Indkodning...21 3.1.6 Selektion...22 3.1.7 Formering...24 3.2 Analyse af algoritme...25 3.2.1 Generelt...25 3.2.2 Indkodningsstrategi...25

3.2.3 Selektionsstrategi...26 3.2.4 Formeringsstrategi...27 3.3 Konceptuelt klassediagram...27 3.4 Design...28 3.4.1 Verdenen...28 3.4.2 Individerne...30 3.4.3 Algoritmen...33 3.4.3.1 Populationen...33 3.4.3.2 Indkodningen...34 3.4.3.3 Selektion...36 3.4.3.4 Formering...37 3.4.4 Samlet klassediagram...39 3.5 Implementation...40 3.5.1 Designændringer...40 3.5.2 Afprøvning...41 3.5.3 Brugervejledning...42 4 DISKUSSION AF RESULTATER...44 4.1 Udviklingen af en virkelig population af Drosophila...44 4.2 Udviklingen af den simulerede population...44 4.3 Succesbestemmelse...46 4.4 Samlet vurdering...47 5 KONKLUSION...50 6 LITTERATURLISTE...52 7 BILAGSLISTE...53

1 Indledning Dette projekt omhandler genetiske algoritmers anvendelse indenfor simulering af biologiske systemer. Jeg vil i dette kapitel komme ind på baggrunden for projektet efterfulgt af selve problemformuleringen samt afgrænsning af emnet. Der afsluttes med en kort læsevejledning. Læseren af dette projekt forventes at have et kendskab til datalogiske begreber og metoder, men der forudsættes ikke kendskab til hverken genetiske algoritmer eller biologien bag. 1.1 Baggrund Begrebet genetiske algoritmer blev opfundet af John Holland i 1960'erne, og sammen med sine studerende udviklede han i 60'erne og 70'erne de første genetiske algoritmer. Baggrunden for opfindelsen var egentlig et studie af, hvordan tilpasning af levende organismer fandt sted i naturen, og genetiske algoritmer, der klassificeres under evolutionære algoritmer, kan antageligt betragtes som en slags formalisering af Darwins evolutionsteori om overlevelse af de mest egnede gennem naturlig udvælgelse. Det har vist sig, at genetiske algoritmer, ligesom andre approksimative algoritmer, er særdeles anvendelige indenfor områder, hvor såkaldte "brute force" algoritmer kommer til kort, som f.eks. indenfor datalogiske optimeringsproblemer, der søger at finde de mest optimale løsninger i store udfaldsrum. Men hvor tæt ligger genetiske algoritmer egentlig op af biologien? Vil man eksempelvis med fordel kunne anvende genetiske algoritmer til simulering af levende organismer? Støttet af en baggrund indenfor både datalogi og biologi, i kraft af en datalogisk bachelorgrad med biologi som bifag, vil jeg i dette projekt se nærmere på disse spørgsmål. 1.2 Problemformulering I denne opgave ønsker jeg at studere genetiske algoritmer og udfra et case study vurdere deres anvendelse indenfor simulering af biologiske systemer. Projektet vil være opdelt i 3 dele; en teoretisk del, et case study og sluttelig en vurderingsdel. Teoretisk del Den teoretiske del skal basere sig på et litteraturstudie, og formålet med denne del er især at opnå indsigt i de elementer, som genetiske algoritmer bygges op om, og dermed danne grundlag for en beslutning om hvilke element den genetiske algoritme, til brug i mit case study, skal anvende. Denne del skal derfor indeholde en gennemgang af de forskellige elementer, og et udvalg af de mest anvendte løsningsmodeller skal beskrives med deres individuelle styrker og svagheder. Da genetiske algoritmer baserer sig på virkelige biologiske fænomener, beskrives de også ved brug af en række biologiske begreber. Den teoretiske del skal derfor indledningsvis give en kort introduktion til den del af biologien, der er relevant for forståelsen af genetiske algoritmer. Case study Formålet med denne del er at udvikle et system, der, ved brug af en genetisk algoritme, simulerer populations-udviklingen hos en biologisk organisme. Det er ikke min hensigt at bruge simuleringen til at drage konklusioner om biologien, men udelukkende at undersøge om det er muligt at konfigurere elementerne i en genetisk algoritme på en sådan måde, at

udviklingen af populationen i simuleringen stemmer overens med det forløb, der kan observeres hos den virkelige organisme. Den genetiske algoritme skal konstrueres på baggrund af teori-delen. Denne del skal på sædvanligvis indeholde en analyse-, design- og implementationsdel, og jeg forestiller mig, at der, som case, skal modeleres og simuleres en population af Drosophila melanogaster, bedre kendt som banan-fluer, der er en relativ simpel organisme. Designdelen skal lægge vægt på at algoritmen samt organismen modeleres og designes objektorienteret. Vurderingsdel Denne del skal præsentere data fra forsøg med virkelige Drosophila i nogle bestemte omgivelser. Data skal baserer på udvalgte artikler. Den simulerede populationsudvikling skal dernæst sammenholdes med den faktiske udvikling af Drosophila, og målet er udfra dette at bestemme, hvor velegnede genetiske algoritmer er til den slags simuleringer. 1.3 Afgrænsning Teorien bag genetiske algoritmer er ganske omfattende og kan beskrives mere eller mindre detaljeret. For at teori-delen ikke skal blive for omfattende, vil jeg kun medtage de elementer, jeg anser for de mest essentielle, og som, jeg mener, er vigtige for at kunne designe en genetisk algoritme i mit case study. Af hensyn til kompleksiteten af selv de mest simple organismer, vil repræsentationen af Drosophila i mit case study være en stærkt forenklet udgave af den virkelige flue, idet jeg kun vil betragte ét gen, som er relativt enkelt forbundet til observerbare egenskaber så som bevægelse og udseende. 1.4 Læsevejledning Som nævnt er projektet opdelt i 3 dele, hvilket afspejles i rapporten. Jeg starter således med gennemgang af teorien i kapitel 2. Herefter vil jeg i kapitel 3 tage fat på mit case study, og i kapitel 4 fremlægges resultaterne fra simuleringen, og jeg vil give en samlet vurdering af, hvor egnede genetiske algoritmer er til denne type af simuleringsopgaver. Kapitel 5 indeholder den samlede konklusion for projektet. Langt det meste litteratur indenfor dette område forelægger kun på engelsk, og selvom jeg bestræber mig på at finde passende danske ord, har jeg de steder, hvor jeg anser danske oversættelser for meningsforstyrrende, valgt at beholde de engelske ord. De engelske ord samt nye begreber vil altid være anført i kursiv første gang, de nævnes. Der er endvidere indenfor biologien tradition for, at bananfluens latinske navn, Drosophila, altid står i kursiv, hvilket jeg har valgt at følge.

2 Genetiske Algoritmer Der findes adskillige typer af genetiske algoritmer, men fælles for dem er, at de alle består af tre grundelementer: en indkodningsstrategi, et selektionsstrategi og en formeringsstrategi. Det er de forskellige strategier bag hver af disse elementer, der gør forskellige genetiske algoritmer unikke i forhold til hinanden, men Figur 1 herunder angiver, hvordan genetiske algoritmer generelt tager sig ud: function GENETIC-ALGORITHM(population, FITNESS-FN) returns an individual inputs: population, a set of individuals FITNESS-FN, a function that measures the fitness of an individual repeat: parents <- SELECTION(population, FITNESS-FN) population <- REPRODUCTION(parents) until some individual is fit enough return the best individual in the population according to FITNESS-FN Figur 1 Generel genetisk algoritme [4]. Population-repræsentationen gives af indkodningsstrategien, selektionsstrategien kommer til udtryk i SELECTION-funktionen, mens REPRODUCTIONfunktionen implementerer formeringsstrategien. Da genetiske algoritmer som nævnt tidligere er inspireret af biologien, bruges der en del biologisk terminologi til at beskrive dem og deres adfærdsmønster, og jeg vil derfor indledningsvis give en introduktion til det biologiske grundlag. Herefter vil jeg beskrive de tre førnævnte grundelementer, som de overordnet optræder i traditionelle genetiske algoritmer. 2.1 Biologisk baggrund Charles Darwins teori om evolution gennem naturlig udvælgelse er i dag bredt accepteret af det videnskabelige samfund, og det er også denne teori, der i vid udstrækning ligger til grund for det element af genetiske algoritmer, som jeg har valgt at kalde for selektions-strategien. Selve måden genetiske algoritmer realiseres på, beskrives i højere grad af de to øvrige elementer, hhv. indkodningsstrategien og formeringsstrategien. De to sidstnævnte elementer bygger på mere konkrete biologiske handlinger - de såkaldte biologiske operatorer. Selvom de fleste nok er bekendte med Darwins evolutionsteori, vil jeg i afsnit 2.1.1 give en kort opsummering og specificere de dele, der er essentielle for opbygningen af genetiske algoritmer. Afsnit 2.1.2 giver en introduktion til biologien bag de førnævnte biologiske operatorer. 2.1.1 Darwins evolutionsteori I 1859 udkom Charles Darwins bog om "Arternes Oprindelse" 1, og selv om evolution på det tidspunkt allerede var et accepteret fænomen blandt biologer, præsenterede Darwin en ny forklaring på, hvordan denne evolution fandt sted [5]. Han introducerede begrebet naturlig udvælgelse og "survival of the fittest" ("den bedst egnede overlever" 2 ) som forklaring på den selektion, der finder sted under evolution. Selvom sidstnævnte udsagn nok må betegnes som essensen af Darwins evolutionsteori, indeholder teorien også nogle konkrete principper, der er helt centrale i opbygningen af genetiske algoritmer, nemlig: 1 Original engelsk title: "The Origin of the Species". 2 "Survival of the fittest" oversættes undertiden fejlagtigt til "den stærkeste overlever".

1) Princippet om variation 2) Princippet om arvelighed 3) Princippet om selektion Princippet om variation refererer til den forskellighed, der findes i såvel fysiologi som opførsel blandt individer i en population, mens arvelighed redegører for den større lighed, der optræder mellem beslægtede individer end mellem ubeslægtede individer. Slutteligt hentyder princippet om udvælgelse til, at der i et bestemt miljø findes nogle individer, der er mere overlevelsesdygtige og succesfulde i at formere sig end andre. På baggrund af disse principper går teorien i sin enkelthed ud på, at en population, i kraft af princippet om variation, på et givet tidspunkt vil have individer med forskellige egenskaber, og at den efterfølgende population, i kraft af princippet om arvelighed og selektion, vil have en højere frekvens af de egenskaber, der var mest succesfulde i at overleve og reproducere sig i netop dette miljø [5]. De tre principper om hhv. variation, arvelighed og udvælgelse stemmer overens med de parametre, som selektionsstrategien justeres efter i forskellige genetiske algoritmer. 2.1.2 Biologisk terminologi Jeg har valgt at opdele den biologiske terminologi, der anvendes i forbindelse med genetiske algoritmer, i to underafsnit, hvor det første afsnit beskriver den terminologi, der anvendes til at beskrive indkodningsmetoden, og det andet afsnit omhandler den terminologi, der bruges til at beskrive formeringsteknikken i genetiske algoritmer. Genomet Levende organismer består af celler, og for alle højerestående organismer, dvs. ikke bakterier, findes der inde i disse celler en kerne, som indeholder vores kromosomer. Et kromosom består af et meget langt DNA molekyle, og vores gener er de funktionelle dele af dette DNA molekyle. Et DNA molekyle består igen af to kæder af basismolekyler, kaldet for nucleotider, der snor sig omkring hinanden i en struktur, der kaldes for en dobbelt helix. Der findes fire typer af nucleotider: adenine, guanine, cytosine og thymine, der normalt forkortes i henhold til deres forbogstav A, G, C og T. Figur 2 Sammenhæng mellem de enkelte genom-relaterede begreber [7]. En mulig form af et gen kaldes for et allel, og organismer, hvor kromosomerne findes i par, som hos mennesker og dyr, kaldes for diploide, mens organismer, hvor kromosomerne er

uparret, som f.eks. i gær, kaldes haploide. Da diploide organismer således har to sæt kromosomer, findes et givet gen også to gange, om end det kan være to forskellige udgaver (alleller) af genet. Hos diploide organismer betegner man endvidere nogle alleller som dominerende, mens andre er recessive. Et dominerende allel kommer hyppigere til udtryk i en population end et recessivt, idet et recessivt allel kun udtrykkes, hvis det findes på begge kromosompar. De egenskaber, der kommer til udtryk, kaldes for organismens fænotype, mens sammensætningen af de specifikke alleller kaldes for genotypen. Alle kromosomer tilsammen udgør organismens genom. Formering Der tales indenfor biologien både om ukønnet og kønnet formering. Visse organismer, som f.eks. bakterier, er i stand til at formere sig blot ved at dele sig og dermed skabe en kopi af sig selv, hvilket kaldes for ukønnet formering. Ved denne form for formering skyldes variation blandt en population i høj grad mutation. Mutation kan opstå på gen-niveau, hvor et enkelt allel ændres til et andet allel, kaldet punktmutation, eller på kromosom-niveau, hvor segmenter af et kromosom eller hele kromosomer ændres, kaldet kromosom-mutation. Der findes mange former for kromosom-mutation, bl.a. invertering, sletning og dublikering, som jeg dog ikke vil komme nærmere ind på her, da kromosom-mutation normalt ikke anvendes indenfor genetiske algoritmer. Under mutation kan der både tabes eksisterende egenskaber og vindes nye egenskaber. Punkt-mutation skyldes normalt fejl under kopiering af DNA-strenge, og det forekommer forholdsvis sjældent - hyppigheden er i størrelsesorden 10-4 - 10-9 mutanter i en population af celler eller individer [5]. Modsat ukønnet formering er der ved kønnet formering altid to forældre tilstede. I diploide organismer findes der som nævnt to sæt kromosomer, og under udvikling af kønsceller, en proces der kaldes for meiosis, forekommer der ofte overkrydsning (eng. crossover) mellem to såkaldte homologe kromosomer, illustreret herunder på Figur 3. Figur 3 Illustration af meiosis i diploide celler. Cellen på figuren er diploid, og der findes derfor to udgaver af samme kromosom i cellen - disse to udgaver kaldes for et homologt par. Under meiosis replikeres alle kromosomer, og der kan forekomme overkrydsning mellem homologe par, inden cellen deler sig til kønsceller.

I de færdigudviklede kønsceller findes kun ét sæt kromosomer, således at afkommet får et sæt kromosomer fra hver forælder. Der kan forekomme en eller flere overkrydsninger mellem samme homologe par. Haploide organismer har kun ét sæt kromosomer, og det giver derfor ikke umiddelbart anledning til overkrydsning, men i naturen findes der alligevel nogle haploide organismer, der kan danne et midlertidigt diploidt stadie ved at smelte to celler sammen, hvorved overkrydsning kan finde sted [5]. Ved kønnet formering for såvel diploide som haploide organismer forekommer der mutation ligesom for ukønnet formering. I forbindelse med genetiske algoritmer bruges begrebet rekombination til tider i stedet for overkrydsning. Indenfor biologien dækker rekombination strengt taget hele den proces, hvormed diploide celler danner nye kombinationer af gener og/eller kromosomer, mens overkrydsning mere specifikt refererer til den brydning og gendannelse, der forekommer mellem to homologe kromosomer, når de udveksler kromosom-dele. Jeg mener ikke, at rekombination er det rigtige begreb at bruge indenfor genetiske algoritmer, og jeg vil derfor kun bruge overkrydsning. I de fleste genetiske algoritmer er hvert individ repræsenteret ved blot et enkelt kromosom, og den "overkrydsning", der finder sted, minder derfor mest om den, der kan observeres hos haploide organismer. 2.2 Indkodningsstrategi Uanset om man ønsker at anvende genetiske algoritmer indenfor optimering, maskinindlæring eller populationsgenetik, skal der findes en god datastruktur, så hver mulige løsning (individ) kan indkodes på en fornuftig måde. Man skal med andre ord bestemme, hvilke byggesten genomet skal bestå af. Der er indenfor genetiske algoritmer generelt ikke en datastruktur, der er bedre end en anden, og reglen er derfor, at man skal bruge den datastruktur, man anser for bedst i den givne situation. Det har gennem tiden ført til eksperimenter med mange forskellige typer af datastrukturer, og i dette afsnit vil jeg beskrive nogle af de mest anvendte. 2.2.1 Haploide vs. diploide individer For langt de fleste genetiske algoritmer har man valgt haploide individer, da de er simplere at have med at gøre, og et sæt kromosomer som regel også er tilstrækkeligt. Nogle enkelte adskiller sig dog ved at have diploide individer. Fordelen ved dette er, at dominerende alleller kan fungere som en slags beskyttelsesmekanisme, så der ikke selekteres imod reccesive alleller, der tidligere har vist sig at være nyttige [8]. De tillader så at sige eksistensen af to løsninger på én gang. Såvel en haploid som diploid repræsentation kan anvendes indenfor alle typer af indkodning. 2.2.2 Binær indkodning Den mest brugte indkodningsstrategi er at bruge en bit-streng som datastruktur. Bit-strengen består af en række 0'er og 1'er, hvor en bit eller en kort blok af bits typisk svarer til et gen, og selve sammensætningen af 0'er og 1'et svarer til et allel (se Figur 4 herunder).

Figur 4 Kromosomet for 2 individer. De har begge genet X, men hver deres allel. Grunden til, at det er den mest brugte indkodningsstrategi, er dels at Holland oprindelig brugte denne repræsentation, og meget af teorien bag genetiske algoritmer derfor er baseret på en binær indkodning, og dels er mange løsningsmodeller for, hvordan mutationsfrekvenser sættes og overkrydsning finder sted, udviklet med henblik på binær indkodning. Binær indkodning har et væsentligt problem, der kan illustreres ud fra den såkaldte Hamming afstand. Hamming afstanden mellem to binære tal er givet som det antal bits, der skal vendes for at komme fra det ene tal til det andet. Repræsentation af visse efterfølgende tal som f.eks. 15 (01111) og 16 (10000) kræver at alle bit skal vendes, og Hamming afstanden mellem disse to tal er derfor 5. Da genetikken baserer sig på, at repræsentationer, der er tæt på hinanden, er mere ens end repræsentationer, der langt fra hinanden, kan en binær indkodning skabe problemer. Til at løse disse problemer kan der anvendes såkaldt Gray-kodning 3. I en Gray-kodning repræsenteres hvert tal binært på en sådan måde, at to efterfølgende tal højst har en bit sat forskelligt. Der er flere typer af Gray-kodning, men en simpel måde kunne være at starte med alle bit sat til nul og derefter vende den bit længst til højre, som producerer en ny streng. Figur 5 herunder angiver repræsentationen af alle heltal mellem 0 og 7: 0 1 2 3 4 5 6 7 Binær 000 001 010 011 100 101 110 111 Gray-kodet 000 001 011 010 110 111 101 100 Figur 5 Ved Gray-kodning er der mellem to efterfølgende tal altid kun en bit, der er sat forskelligt. Ved normal binær indkodning af f.eks. 3 og 4 er alle bits sat forskellige. På trods at de historisk relaterede fordele og det overkommelige problem med Hamming afstande, er binær indkodning for mange typer af problemer en unaturlig og kejtet datastruktur. 2.2.3 Værdi-indkodning Ved værdi-indkodning (eng. value encoding) indkodes hvert kromosom som en streng af nogle givne værdier som f.eks. reelle tal eller bogstaver. Brugen af eksempelvis reelle tal, som repræsentation af genomet, har vist sig at være ganske anvendeligt indenfor bl.a. bestemmelsen af vægte i neurale netværk og bestemmelse af omdrejningsvinkler for proteiner [1]. 3 Opkaldt efter ophavsmanden Frank Gray.

Bogstavsindkodning bruges ofte til små illustrative eksempler på, hvordan genetiske algoritmer fungerer [1],[2] - typisk gælder det om at nå frem til en bestemt tekststreng (se Figur 8) - men bogstavsindkodning kan også være praktisk i andre sammenhænge. Ønsker man f.eks. at anvende genetiske algoritmer indenfor biologien, vil det være naturligt at benytte den samme indkodning som findes i naturen, hvilket, som nævnt i afsnit 2.1.2, er et alfabet på fire bogstaver svarende til de fire nucleotider A, C, T og G. 2.2.4 Træstruktur indkodning Indkodning ved brug af træstrukturer har vist sig at være praktisk f.eks. i forbindelse med brug af genetiske algoritmer til udvikling af computerprogrammer, hvor syntakstræer er den mest naturlige repræsentation. Hvert gen er her repræsenteret enten som en knude eller et mindre deltræ. Denne lidt mere særprægede indkodningsform er især interessant, fordi den tillader en variabel længde af genomet i forbindelse med overkrydsning, som det illustreres på Figur 6: Figur 6 Ved brug af en træstruktur kan længden af genomet ændres Selvom denne egenskab generelt må betragtes som en styrke, kan det dog nemt blive til en svaghed, hvis træet vokser ukontrollabelt. 2.2.5 Oversigt Samlet placerer de tre indkodningsstrategier sig således i forhold til hinanden: Simpel Kompleks Binær indkodning Træ-indkodning Værdi-indkodning Figur 7 Indkodningsstrategierne rangerer fra en simpel indkodning til kompleks indkodning. 2.3 Selektionsstrategi Selektionsstrategien for genetiske algoritmer baserer sig i store træk på Darwins evolutionsteori, men de enkelte algoritmer adskiller sig fra hinanden ved at vægte de tre principper nævnt i afsnit 2.1.1 - variation, arvelighed og selektion - forskelligt. Desuden er det nødvendigt at opstille nogle regler for, hvad der gør et individ mere egnet end et andet - en såkaldt fitness-funktion. I dette afsnit gennemgås fitness-funktioner samt variation, arvelighed og selektion.

2.3.1 Fitness-funktioner Hensigten med selektion er naturligvis at fremhæve de bedst egnede individer i en population, og generelt kan man sige, at en fitness-funktion afspejler sandsynligheden for, at et kromosom overlever til den næste generation. Bestemmelse af fitness-funktioner har derfor ikke overraskende vist sig at være vilkårlig kompleks. En meget simpel måde at bestemme fitness-værdien for et individ på, illustreres på Figur 8 herunder, hvor fitness-værdierne for de to nederste tekststrenge bestemmes ud fra hvor mange bogstaver, der er sat korrekt i forhold til den ønskede tekststreng: Optimal: GENETISKE ALGORITMER fitness = 20 ------------------------------------------------- Individ 1: ASG FIPKGH JGLMNSOTR fitness = 4 Individ 2: GENF VSKELATGORITVER fitness = 13 Figur 8 Bestemmelse af fitness ud fra en simpel fitness-funktion. Den korrekte tekststreng er her "Genetiske algoritmer" og har en fitness-værdi på 20, idet der er 20 bogstaver. Individ 1 og Individ 2 har hhv. 4 og 13 bogstaver sat korrekt, hvilket afspejles i fitness-værdierne. For andre typer af problemer, som f.eks. at finde en matematisk funktions maksimale værdi, kan funktionen selv bruges til at beregne fitness-værdien for et givet individ (i dette tilfælde et tal), mens fitness-funktioner til bestemmelse af f.eks. proteinfoldning typisk baseres på biokemiske egenskaber, såsom den tiltræknings- og frastødelsesenergi, der eksisterer mellem de forskellige aminosyrer. Indenfor biologien bestemmes fitness, i forbindelse med forsøg, ved hjælp af alt fra, hvor mange centimeter en organisme kan bevæge sig i en bestemt tidsrum, til hvor mange timer den kan overleve i et bestemt sæt omgivelser. 2.3.2 Variation, arvelighed og selektion Arvelighed relaterer sig delvist til formeringsstrategien, der gennemgås i afsnit 2.4, men ud over at bestemme hvor stor lighed der skal være mellem forældre og afkom, skal der også tages stilling til, hvilke forældre der kan danne afkom, og hvor mange afkom de kan producere. Nogle selektionsstrategier vælger, at en forælder kun kan formere sig én gang, mens andre tillader samme forælder at formere sig flere gange. Generelt er der dog en meget klar adskillelse mellem generationerne, således at to forældre danner to nye afkom og selv dør umiddelbart efter, hvilket holder populationsstørrelsen konstant. Selve selektionen bør have en balance mellem de individer, der har den højeste fitness-værdi, og de individer der kan sikre fortsat variation i populationen, for som nævnt i forrige afsnit leder den bedste løsning på kort sigt ikke nødvendigvis til den bedste løsning på længere sigt. Dette kommer også til udtryk i det såkaldte variations-princip: It can be as good to be different as it is to be fit Figur 9 Variationsprincippet Denne balance mellem fitness og variation refereres oftest til som the exploitationexploration balance[1], idet man i et begrænset tidsrum på den ene side ønsker at udforske hele sin population, og på den anden side gerne vil fokusere og satse på enkelte lovende individer.

Vælger man at selektere for svagt og således vægte udforskning for tungt, vil evolutionen gå for langsomt, og man når måske aldrig frem til nogle individer, der bare er i nærheden af det optimale. Omvendt kan man risikere, ved at selektere for kraftigt og dermed vægte fokusering på enkelt individer for tungt, at lokalt optimale individer overtager ens population, og man således afskærer muligheden for at finde globalt optimale individer. Der findes flere forskellige metoder til at balancere selektion, så der fortsat sikres variation, og jeg vil her gennemgå et par af dem. Roulette-hjul selektion Denne strategi, benytter fitness-propotionate selection, som er en selektionsstrategi, der betragter hvert individs fitness-værdi i forhold til hele generationens samlede fitness-værdi. Sandsynligheden for at et individ udvælges er direkte proportional med dets fitness-værdi indenfor generationen. Strategien bag denne udvælgelsesmetode svarer ganske enkelt til, at man har et stort roulettehjul, hvor hvert individ i populationen har et stykke af hjulet svarende til individets fitness-værdi i forhold til den samlede populations fitness-værdi (se Figur 10). Herefter snurrer man roulettehjultet og det individ, der har stykket, hvor pilen standser, bliver udvalgt. Dette gentager man, indtil man har det antal forældre, der er brug for til at skabe en ny generation. Et individ kan godt vælges som forælder flere gange. Fordelen ved denne metode er, at man sikrer, at jo højere en fitness-værdi et individ har, desto større er sandsynligheden for at blive udvalgt. Omvendt er der stadig en reel mulighed for, at et individ med en lavere fitness-værdi bliver valgt. Ulempen er dog, som for alle andre metoder, der baserer sig på statistiske sandsynligheder, at det kræver meget store populationer, før man kan observere den statistiske fordeling. For de relativ små populationer, som de fleste genetiske algoritmer betragter, er der en overhængende fare for, at der selekteres for tilfældigt. Et andet alvorligt problem med fitness-propotionate selection er, at der er en tendens til, at der ikke udforskes nok, men i stedet satse for meget på nogle enkelte kandidater, hvilket leder til at algoritmen konvergerer for tidligt, og dermed kun når en lokal optimal løsning [1]. Rang selektion Denne strategi tildeler hvert individ en rang baseret på dens fitness-værdi. Det individ med den højeste fitness-værdi tildeles også den højeste rang, mens det individ med den næsthøjeste fitness-værdi tildeles den næst-højeste rang, og så fremdeles. Den højeste rang svarer som regel til antallet af individer i en population, så hvis der er 100 individer er den højeste rang 100. Efter alle individer har fået tildelt en rang, deles et lykkehjul på samme måde som for roulette-hjul selektionsmetoden, således at hvert individ har en del af hjulet svarende til dets rang. Et individ med rang 2 har dermed en del af hjulet, der er dobbelt så stort som individet med rang 1.

Styrken ved denne metode er, at den hindrer algoritmen i at konvergere for hurtigt. At kigge på rang i stedet for fitness-værdi kan nemlig være en fordel, fordi to individer, der måske ligger langt fra hinanden i fitness-værdi, godt kan være tæt på hinanden i rang, som det illustreres på Figur 10. Dermed undgår man, at individer med meget høj fitness-værdi alt for hurtigt overtager populationen. Population Fitness Rang Individ 1 4 1 Individ 2 28 5 Individ 3 9 4 Individ 4 6 2 Individ 5 8 3 Figur 10 Oversigt over sammenhæng mellem fitness og rang for en lille population med fem individer. Hvis man tillægger fitness-værdien for stor betydning vil Individ 2 blive valgt for hyppigt og algoritmen konvergere for hurtigt. Denne form for selektionsstrategi egner sig naturligvis ikke til algoritmer, hvor det er vigtigt at vide, hvor tæt forskellige individers fitness-værdier ligger på hinanden. Derudover er strategiens svageste punkt nok, at den svage selektion kan påvirke den hastighed, hvormed en løsning findes, men som netop nævnt vil metoden typisk være mere succesfuld, og det vil som regel veje tungere. Tournament selektion Denne form for selektion baserer sig på, at to tilfældige individer i populationen udvælges til at "kæmpe" mod hinanden. Herefter vælges et tilfældigt tal n mellem 0 og 1, og hvis n er mindre end en fastsat grænseværdi (f.eks. 0,75), selekteres det individ med den højeste fitness-værdi blandt de to, mens det individ, med den laveste fitness blandt de to, selekteres såfremt n er større end grænseværdien. Begge individer sættes tilbage i populationen og kan vælges igen. Hvis målet er at optimerer sin algoritme, kan man med fordel vælge denne selektionsstrategi, idet den selekterer ligeså kraftigt som rang selektionsstrategien men ikke bruger tid på at tildele rang til hvert individ i hver generation. Elitisme Som navnet antyder, går denne strategi ud på, at man for hver generation alene udvælger de bedste individer i henhold til deres fitness-værdier. Denne metode selekterer derfor meget kraftigt, og elitisme anvendes sjældent alene, men derimod som tillæg til andre strategier for at sikre sig, at de bedste individer altid er blandt dem, der går videre. Afstandsbestemt selektion Som det fremgår af de netop beskrevne selektionsstrategier, tages der ofte ikke hensyn til afstande mellem individerne i populationen. I naturen må to forældre være fysisk tæt på

hinanden før, at de kan danne afkom, og nogle genetiske algoritmer følger dette eksempel. Det kan f.eks. realiseres ved at inddele populationen i sektioner, og derefter kun tillade at individer indenfor den samme sektion kan formere sig. Fordelen ved at lade afstanden bestemme hvilke individer, der kan formere sig, er ligesom for rang selektionsstrategien, at man beskytter algoritmen mod at konvergere for tidligt ved at sikre forskelligheden i populationen. Strategien vil dog antageligt være mest effektiv, når der er tale om store populationer og vil ligesom elitisme metoden kunne anvendes som tillæg til de øvrige metoder. Steady-State selektion De fleste selektionsstrategier har som nævnt en klar adskillelse mellem generationerne således, at individer fra en generation dør i det øjeblik, næste generation er formet. Der er selvfølgelig mulighed for, at to forældre fra en generation danner et afkom, der er identisk med et individ fra deres egen generation, men det er et nyt individ og som sådan ikke det samme individ, der lever i to eller flere generationer. Steady-state selektionsstrategien har en mere udflydende generationsadskillelse, idet denne strategi kun udvælger nogle få individer fra en population. Strategien dikterer egentlig ikke, hvordan forældrene vælges, men det er som regel dem med den højeste fitness-værdi, og deres afkom erstatter typisk de individer, der har de laveste fitness-værdi. Selektionsstrategien kan med fordel anvendes i systemer, hvor det er populationen, der i fællesskab løser et problem, og hvor det er vigtigt at gemme den viden, der allerede er opnået i populationen, som f.eks. ved udvikling af regel-baserede systemer [1]. 2.3.3 Oversigt Som nævnt er det vigtigt at afbalancere selektion. Nedenstående figur illustrerer hvor afbalanceret de forskellige selektionsstrategier er i forhold til hinanden: Svag selektion Kraftig selektion Komplet udforskning Afstands-bestemt Tournament selektion Rang selektion Roulette-hjulet Elitisme Figur 11 Nogle selektionsstrategier selekterer for kraftigt og andre for svagt. Tre af strategierne balancerer i midten, hvilket indenfor genetiske algoritmer normal betragtes som en styrke. 2.4 Formeringsstrategi Formeringsstrategien angiver hvilke biologiske operatorer, der skal anvendes, og den afhænger i høj grad af, hvilken indkodningsstrategi, der er valgt. De hyppigst anvendte operatorer er mutation og overkrydsning, som jeg vil gennemgå i dette afsnit. 2.4.1 Mutation På samme måde som det kan observeres i naturen, optræder mutation i genetiske algoritmer ved, at en tilfældig byggesten i genomet ændres. Hvis der er valgt en bit-streng som datastruktur, betyder det derfor, at et 0 ved mutation bliver til 1. Typisk sættes

mutationsfrekvensen i genetiske algoritmer relativt lavt, ligesom det er tilfældet indenfor biologien, og mutation vælges sjældent alene til at drive evolutionen i en genetisk algoritme. Fordelen ved mutation er, at den sikrer mod stagnation og kan lede til nye alleller, men der eksisterer også den potentielle fare for, at nyttige alleller mistes ved tilfældig mutation. I biologien er mutation langt hyppigere skyld i tab af funktionelle egenskaber end i tilføjelse af nye funktionelle egenskaber, og de fleste genetiske algoritmer vælger også at tilføje en beskyttelse af funktionelle gener. Denne form for beskyttelse kaldes for kummulativ selektion i modsætning til vilkårlig selektion. Har man således fundet frem til et nyttigt gen, sættes mutations-frekvensen i genet ned. 2.4.2 Overkrydsning Årsagen til variation og innovation i genetiske algoritmer må hovedsagligt tilskrives overkrydsning. Den simpleste form for overkrydsning er enkeltoverkrydsning, hvor der vælges et tilfældigt brydningssted på kromosomerne fra de to forældre, hvorefter delene byttes om og dermed danner to nye afkom. Figur 12 Overkrydsning mellem kromosomer fra to individer. Attraktive gener har værdien 1, og som det fremgår har afkom 2 har flere attraktive gener end sine forældre. Ideen her er, at man kan få kombineret attraktive gener fra ét individ med attraktive gener fra et andet individ og dermed har mulighed for at danne et individ med sammenlagt flere attraktive gener, som det ses på Figur 12 herover. Der kan godt forekommer flere overkrydsninger mellem to kromosomer. Mange genetiske algoritmer anvender eksempelvis to-punkts overkrydsning, dels fordi to-punkts overkrydsning umiddelbart kan kombinerer flere gener end et-punkts overkrydsning, og dels fordi gener nær endepunkterne på kromosomet uhensigtsmæssigt favoriseres af et-punkts overkrydsning, idet et-punkts overkrydsning altid resulterer i ombytning af endepunkterne[1]. En to-punkts overkrydsning kan godt give samme resultat som en etpunkts overkrydsning, idet man tillader forekomsten af et overkrydsningspunkt umiddelbart før første gen og efter sidste gen. Man betragter så og sige kromosomerne som slags cirkulær struktur [8]. En sidste form for overkrydsning, som jeg vil medtage, er uniform overkrydsning, hvor hvert gen hos afkommet er vilkårligt valgt fra enten den ene eller den anden forælder - med andre ord forekommer der et tilfældigt antal overkrydsninger. En variant af denne form for overkrydsning, kaldet for parameteriseret uniform overkrydsning, vælger at angive en bestemt sandsynlighed for, at der sker overkrydsning, men idéen om mange overkrydsninger er den samme. Fordelen ved uniform overkrydsning er, at der skabes stor variation, men

ulempen er samtidigt, at det kan hindre samarbejdende alleller i at udvikles. Det skal desuden nævnes, at denne form for overkrydsning normalt kun producerer et afkom [8]. Overkrydsninger kan reelt forekomme hvor som helst på kromosomet - også midt i et gen, hvis genet består af flere byggesten - men genetiske algoritmer vælger ofte, som tidligere nævnt, til en vis grad at beskytte attraktive gener. Dette kan f.eks. ske ved at sætte sandsynligheden for overkrydsninger og mutationer i genet ned. En af de mere indirekte måder, hvormed man kan beskytte attraktive gener, er ved at introducere nogle "ikkekodende segmenter", introns, i genomet. Som regel indeholder genomet for et individ underlagt en genetisk algoritme kun gener, mens der indenfor biologien findes introns i et kromosom. Introns har vist sig at være effektivt til at nedbringe sandsynligheden for, at attraktive gener ødelægges [9]. 2.4.3 Oversigt Evolution i en population kan både foregå hurtigt og langsomt. Figur 13 herunder angiver, hvordan de forskellige formeringsstrategier bestemmer evolutionshastigheden Langsom evolution Hurtig evolution Mutation Et-punkts overkrydsning To-punkts overkrydsning Uniform overkrydsning Figur 13 De forskellige former for formeringsstrategier bestemmer hastigheden for evolution. Mange ændringer per generation resulterer i hurtigere evolution.

3 Simulering af populationsudviklingen hos Drosophila Bananfluen, Drosophila melanogaster (forkortes som regel til D.melanogaster), anvendes ofte indenfor populationsgenetikken, da den er i stand til at formere sig hurtigt og har en kort levetid. Jeg har derfor også valgt, at mit system skal simulere populationsudviklingen hos D.melanogaster, og dette kapitel beskriver udviklingen af dette system. For at skelne mellem de virkelige fluer og de simulerede har jeg valgt at kalde de simulerede fluer for Drosophila simulation eller D.simulation. Kapitlet indeholder to analysedele; analyse af simuleringen og analyse af algoritmen. Analyse af simuleringen omhandler de krav, der stilles, for at resultaterne fra simuleringen kan sammenlignes med forskningsresultater fra virkelige biologiske eksperimenter, mens analyse af algoritmen har til formål at finde frem til den genetiske algoritme, der skal anvendes til simuleringen. Det er hensigten, at analysedelene dels skal resultere i en god forståelse af domænet og dels skal kunne anvendes som kravspecifikation i designfasen. Desuden indeholder kapitlet en designdel og en implementationsdel, hvor designdelen omsætter kravene fra analyse-afsnittene til et objekt-orienteret design, og implementationsdelen indeholder en beskrivelse af implementationsmæssige designændringer, afprøvningsforløbet, samt en brugervejledning. Da jeg har valgt at lave et objekt-orienteret design, vil jeg benytte UML notation de steder, hvor jeg anser det for anvendeligt. Analysedelen vil således afsluttes med et konceptuelt klassediagram, og designdelen vil ligeledes indeholde klassediagrammer. 3.1 Analyse af simuleringen D.melanogaster er i forhold til mennesket en ret simpel organisme, men den er stadig overordentlig kompliceret, og en simulering af hele fluen med alle dens egenskaber ligger langt uden for dette projekts rammer. Jeg vil i det følgende beskrive de krav, der skal opfyldes i dette projekt. Forståelsen og beskrivelsen af D.simulation kræver indsigt i biologiske kendsgerninger om D.melanogaster, som jeg vil supplere undervejs. For at gøre ligheder og forskelle på D.simulation og D.melanogaster klare, vil de fleste afsnit i denne analysedel være opdelt i en biologisk baggrund efterfulgt af kravene til simuleringen. De biologiske kendsgerninger om D.melanogaster stammer fra [5][11][12] og [13]. 3.1.1 Generelt Mit hovedformål med dette projekt er, som nævnt i problemformuleringen, at vurdere hvor egnet genetiske algoritmer er til simulering af populationsudvikling hos en organisme. Hvilke egenskaber hos bananfluen, der skal medtager, har derfor i høj grad været bestemt af, hvilken litteratur jeg har kunnet finde om populationsgenetiske forsøg. Et af de gener hos D.melanogaster, der er velstuderet i forbindelse med populationsgenetik, er det såkaldte ebony gen [11][12][13], og jeg vælger derfor, at den simulerede populationsudvikling skal fokuserer på dette gen. Fluer, der er muteret i dette gen, kaldes for ebonymutanter, mens fluer, der ikke er muteret i ebony genet, kaldes for ebony-vildtyper. Da dette projekt fokuserer alene på ebony genet, vil jeg herefter blot referere til dem som hhv. mutanter og vildtyper.

Ud over at give en karakteristisk sort krop, er ebony genet bl.a. også forbundet med nedsat udklækningssucces samt ændringer af bevægelse og syn egenskaber der påvirker fluernes formeringssucces. De efterfølgende afsnit vil indeholde yderligere detaljer om ebony genets betydning. For at lave applikationen så fleksibel som mulig, så det eksempelvis vil være muligt at fokuserer på andre gener, vælger jeg at applikationen skal være komponentopbygget. Det skal derfor være muligt at kunne udskifte individerne - bananfluerne - til en anden type af individer og omgivelserne skal ligeledes kunne ændres uafhængigt af de øvrige komponenter. 3.1.2 Verdenen Biologisk baggrund: I de forsøg med D.melanogaster, som jeg har valgt at bruge som grundlag, holdes fluerne indespærret i bure enten i lyse eller i mørke omgivelser. Generelt findes der to typer af omgivelser: harmoniske og stressende. Lyse omgivelser betragtes i denne forbindelse som harmoniske, mens mørke omgivelser betragtes som stressende. Simuleringskrav: Verdenen, hvori populationen af D.simulation skal eksistere, skal ligeledes være afgrænsede og kan visualiseres som en matrix (se Figur 14). En flue skal optage én celle (plads) i verdenen, og en celle kan højst indeholde en flue. Størrelsen af verdenen skal kunne angives af brugeren ved simuleringens start, men undlader brugeren dette, skal størrelsen af verdenen svare til, at der for hver flue er ca. 20 tomme pladser. Jeg har valgt dette, for at give tilstrækkeligt plads til at fluerne kan bevæge sig uden alt for mange sammenstød. Figur 14 Visualisering af omgivelserne som en matrix. Angiver brugeren ikke en størrelse for verdenen, skal der for hver flue (=) være ca. 20 ledige celler. Ovenstående matrix har 100 celler, hvilket giver plads til 5 fluer. Verdenen skal i ligeledes have to tilstande i form af lys og mørke. Tiden skal styres centralt snarere end af individerne selv, så det sikres at tiden er ens for alle individer. Verdenen kan evt. holde styr på tiden, men det er ikke et krav. 3.1.3 Individerne Biologisk baggrund: D.melanogasters livscyklus tager gennemsnitlig 37 døgn og inkluderer både et ægstadie, larvestadie og puppestadie, før det endeligt resulterer i en voksen flue. Fluer opvokset i

laboratorier har dog generelt en kortere livscyklus på ca. 30 døgn. De første tre stadier varer typisk 14 døgn. For diploide organismer skelner man i biologien mellem homozygote vildtyper, hvor genet er i sin vildtype-form på begge kromosompar, homozygote mutanter, hvor genet er muteret på begge kromosompar, og heterozygoter, hvor genet er muteret på det ene kromosompar. Da ebony genet er recessivt (se afsnit 2.1.2), kommer mutant-fænotypen kun til udtryk, såfremt fluen er en homozygot mutant. Fænotypen for heterozygoter er således fortsat vildtype, og beskrivelser af vildtype fluer vil herefter også gælde heterozygoter, medmindre det angives specifikt kun at gælde for homozygote vildtyper. Sandsynligheden for at en mutant udklækkes er kun 80% i forhold til vildtypen. Fra en populationsgenetisk vinkel findes der tre essentielle evner for en flue, der forbedrer dens sandsynlighed for at overleve: evnen til at spise, evnen til at bevæge sig og evnen til at formere sig. Hvor succesfuld, en flue er til at realisere disse evner, varierer mellem fluerne, og afhænger både af indre faktorer, generne, og ydre faktorer, omgivelserne. I lyse omgivelser har mutanternes evne til at bevæge sig samt deres synsevne vist sig at være nedsat i forhold til vildtypen. I mørke omgivelser forholder det sig dog modsat, idet mutanterne opretholder samme aktivitetsniveau i mørke som i lys, mens vildtype fluernes aktivitetsniveau er stærkt nedsat, og dermed bliver mindre en mutanternes. Mutant og vildtype fluernes evner til at formere sig og lægge æg adskiller sig rent fysisk ikke fra hinanden, men for han-fluerne er hvileperioden efter parring ikke nær så lang for mutanterne og heterozygoterne, som den er for de homozygote vildtype-fluer. D.melanogaster er endvidere kønsmoden blot 12 timer efter at den udklækkes, og en udklækket hun-flue begynder at lægger æg, allerede fra hun er to døgn gammel, uanset om hun er blevet befrugtet eller ej. D.melanogaster lægger op til 500 æg over 10 dage. Hun-fluerne parrer sig gennemsnitligt kun en gang på fem dage, og de homozygote vildtyper har vist at være langt mere kræsne i deres valg af han-fluer end både mutanter og heterozygoter, idet mutanterne typisk er de mindst kræsne. Simuleringskrav: D.simulation skal skelne mellem vildtype- og mutant-fluer, idet mutanter kun skal udklækkes med en sandsynlig på 80%, mens alle vildtype fluer udklækkes. Fluerne samlede livscyklus skal være på gennemsnitligt 30 døgn, idet den for alle fluer skal være mindst 28 døgn og højst 32 døgn. Da de første tre stadier hos D.melanogaster ikke i sig selv tilbyder interessant information i forbindelse med dette studie af populations-udvikling, skal D.simulation blot have et stadie, som jeg vil kalde forstadiet, før det er en voksen flue. Forstadiet skal vare ca.14 døgn dog mindst 12 og højst 16 døgn. I visse tilfælde, som hvis eksempelvis populationen er for stor (se afsnit 3.1.4), skal voksne fluer og forstadie-fluer kunne dø ved et "uheld". Uheld skal ske uafhængigt af fluens genotype. På baggrund at disse informationer udleder jeg, at der er brug for i alt tre grundlæggende tilstande for D.simulation, som illustreret på tilstandsdiagrammet herunder: Tid

Udklækning Forstadie Voksen Død Uheld Defekt Figur 15 Tilstandsdiagram for D.simulation Da ebony genet ikke umiddelbart påvirker evnen til at spise, afgrænser jeg mig og antager, at der er mad nok i omgivelserne. Evnen til at spise er således ikke et krav til D.simulation. Derimod skal D.simulation besidde egenskaber, der gør dem i stand til at: 1) flyve 2) gå 3) hvile sig 4) se 5) formere sig 6) lægge æg (kun hun-fluerne) Ligesom sin levende modpart skal evnen til at bevæge sig og til at se være nedsat i lyse omgivelser for D.simulation mutanterne, mens de i mørke omgivelser synsmæssigt skal være ligestillet med vildtyperne, og bevægelsesmæssigt skal være de mest aktive. For hanfluerne skal det endvidere gælde, at de homozygote vildtypers behov for hvile skal være højere end mutanternes og heterozygoternes. Især i mørke omgivelser skal forskellen på den påkrævede hvileperioden være forholdsvis markant (se Figur 16). Der er to måder at flytte individerne rundt på. Enten kan de rykkes et skridt af gangen således, at hvis en flue skulle gå tre skridt, skulle der foretages tre ryk, eller også kan bevægelsen foretages i et enkelt ryk. Da hvert sted eller lokation i verdenen kun kan indeholde ét individ, ville det såfremt man rykkede skridtvist resulterer i en langt større sandsynlighed for sammenstød, da der eksempelvis vil være tre gange større sandsynlighed for sammenstød, hvis tre skridt blev foretaget i tre ryk, som hvis det blev foretaget i et enkelt ryk. Af denne årsag har jeg valgt, at fluerne skal flyttes i et ryk. Desuden skal bevægelsen rundt i verdenen ske tilfældigt. Samlet set vælger jeg, at mutant- og vildtype-fluernes evner skal varieres i forbindelse med bevægelse, syn og hvile og i henhold til omgivelserne på følgende måde: +/+ +/e e/e Lys Mørke Lys Mørke Lys Mørke Flyve (celler/time) 12 4 12 4 8 8 Gå (celler/time) 5 3 5 3 4 4 Hvile han-fluer (timer) 8 12 8 12 6 6 Syn (afstand i celler) 4 2 4 2 2 2 Figur 16 Tabel over mutanternes, vildtypernes og heterozygoterne evner i henholdsvis lys og mørke. Tallene baseres hovedsageligt på intuitive fornemmelser og skal således blot betragtes som vejledende. Det kan være nødvendigt at justere på dem senere. Hviletiden er baseret på

forsøg, der illustrerer, hvor mange hun-fluer en han-flue kan nå at befrugte indenfor en 24 timers periode i hhv. lys og mørke [11]. Ud over at varierer indbyrdes på ovenstående punkter, skal der skelnes mellem hun-fluerne, således at der er lidt større sandsynlighed for at en mutant-flue parrer sig frem for en heterozygot-flue, som der igen er større sandsynlighed for parrer sig frem for en homozygot vildtype-flue. Indledningsvist vælger jeg, at sandsynligheden for, at en mutant hun-flue parrer sig, skal være tre gange så stor som for en homozygot vildtype, mens sandsynligheden for, at en heterozygot hun-flue parrer sig, kun skal være to gange så stor som for den homozygote vildtype. D.simulation skal være kønsmoden efter 12 timer og lægge æg efter to døgn, men for at begrænse populations-størrelsen skal D.simulation blot lægge 10 æg over 10 dage, hvorefter hun-fluen skal være steril. Da en plads i verdenen kun kan indeholde en flue, vælger jeg at en hun-flue skal foretage en bevægelseshandling umiddelbart efter, at hun har lagt et æg. Såfremt hun er ude af stand til at flytte sig fra sin plads, kan hun ikke lægge et æg. Egenskaberne indbyrdes mellem fluer af samme genotype skal være ens. Jeg har foretaget denne afgrænsning, for nemmere at kunne overskue, hvordan de enkelte egenskaber har indflydelse på udviklingen. 3.1.4 Population Biologisk baggrund: Populationsgenetiske forsøg med D.melanogaster benytter som regel store populationer med flere tusinde fluer. I naturlige populationer af D.melanogaster optræder alle tre genotyper. Idet vildtyper normalt angives med et '+' og mutationen i ebony genet med 'e' giver det kombinationerne +/+ for homozygot vildtype, +/e for heterozygot og e/e for homozygot mutant. Det viser sig, at der i lyse omgivelser naturligt altid findes ca. 2-3% ebony-mutant fluer, mens der i mørke omgivelser findes ca. 7-8% ebony-mutanter. Simuleringskrav: En populationsstørrelse på flere tusinde fluer anser jeg ikke for nødvendigt, og jeg vælger således at afgrænser mig på dette område. Størrelsen af D.simulation populationen skal dog fortsat være stor nok til at give et repræsentativt indblik i udviklingen, således at det kan sammenlignes med virkelige forsøg. Jeg anser en populationsstørrelse på 100 voksne fluer samt 100 forstadie-fluer som rimelig. Såfremt populationsstørrelsen bliver større, skal der tilfældigt udslettes et antal fluer, således at populationsstørrelsen bringes tilbage til hhv. 100 voksne fluer og 100 forstadie-fluer. Der skal fra start være en ligelig fordeling af han- og hun-fluer. Fluer, der dør eller ikke udklækkes, skal fjernes fra populationen. Sammensætningen af mutanter, vildtyper og heterozygoter for den initielle population skal angives af brugeren. 3.1.5 Indkodning Biologisk baggrund: Selv om D.melanogaster er en relativ simpel organisme, består dens DNA af omkring 180 millioner basepar med 13600 estimerede gener [9]. Alle fluer har fire kromosomer: X, 2, 3 og 4, og han-fluerne har desuden et Y-kromosom. Da det er en diploid organisme, har hver