Navigation

Abschlussaufgabe

Versionen zum Runterladen:  

Abschlussaufgabe_2010.pdf

Abschlussaufgabe_2010.docx   Abschlussaufgabe_2010.doc

Auf der Grundlage Ihrer Lösung der Abschlussaufgabe werden wir Ihre Noten festlegen.

Wer keine Abschlussaufgabe abgibt, kann

  •  von mir entweder einen unbenoteten Teilnahmenachweis bekommen, der aber nicht als Studienleistung angerechnet werden kann
  • oder wahlweise (bei erfolgreicher Teilnahme an den Übungen) eine Benotung mit "Ausreichend" bekommen.


Spielregeln:

  • Die Abschlussaufgabe wird in Einzelarbeit gelöst!!!
  • Hilfsmittel (z.B. Matlab-Hilfe, Wikipedia...) sind erlaubt (solange es sich nicht um andere Kursteilnehmer, den grossen Bruder oder eine fertige aus dem Netz gezogene Lösung handelt).
  •  Bei Fragen stehen die Tutorinnen Julia Furche (julia.furche@mail.uni-oldenburg.de,  Raum W4-0-058, Tel 798 3608) und Lena Köpcke (lena.s.koepcke@uol.de, ebenfalls Raum W4-0-058, Tel 798 3608) und ich (jutta.kretzberg@uol.de, Raum W4-0-078, Tel 798 3314) zur Verfügung.
  •  Ich akzeptiere auch Teillösungen und nicht in Programmcode umgesetzte Lösungsideen. Allerdings hätte ich bei nicht lauffähigen Programmen gerne eine ausführliche Dokumentation, was nicht läuft.
  •  Lösungen müssen bis zum 03.10.2010 per email bei mir eingehen: jutta.kretzberg@uol.de Ich bestätige den Eingang der Lösung per email.
  •  Ich melde mich per email, wenn ich die Aufgaben nachgesehen habe und vergebe dann bei Bedarf Termine, an denen wir uns noch einmal kurz darüber unterhalten. (Das kann durchaus einige Wochen dauern, bis ich alle durchgesehen und verglichen habe. Falls Sie Ihre Note sehr dringend brauchen, sagen Sie bitte Bescheid.)



Kriterien für die Benotung sind:

  •     Wie vollständig ist die Aufgabe gelöst?
  •     Wie „elegant“ ist die Lösung?
  •     Wie allgemein gehalten ist sie?
  •     Ist das Programm gut kommentiert und dokumentiert?
  •     Wie benutzerfreundlich ist das Programm?
  •     Wieviel ist an Zusatzideen und Detailarbeit in die Programme eingeflossen? (Hier sind beliebige Erweiterungen  möglich, aber man kann auch mit einer schlichten Lösung ein „sehr gut“ bekommen.)

Abschlussaufgabe 2010

Populationsentwicklung in einem Räuber-Beute System

Hintergrund:

Wie wir während des Kurses gesehen haben (s. Tag 4), lässt sich die Entwicklung der Populationsgröße bei ungestörten Labortieren durch ein lineares Modell beschreiben, dass ein exponentielles Wachstum simuliert:
Pt+1 = Pt + (f-m)*Pt = (1+f-m)*Pt
Mit:
Pt      Populationsgröße am Tag t,
f        Fertilität (Geburtenrate),
m      Mortalität (Sterberate).

Häufig werden die Faktoren der Änderung zusammengefasst. Dann gilt
Pt+1 = (1 + r) * P               (Gleichung 1)
Mit
r = f-m     konstante Reproduktionsrate

In der Natur gibt es dagegen normalerweise zahlreiche Einflussgrößen, die die Populationsgröße bedingen (z.B. Verfügbarkeit von Wasser, Nahrung, Nistplätzen, Anwesenheit von Fressfeinden, Nahrungskonkurrenten, Parasiten etc). Deshalb ist dieses Modell zu einfach, um den Verlauf der Populationsentwicklung qualitativ richtig zu beschreiben.

Ein klassisches Modell zur Beschreibung von zwei einander bedingenden Populationsgrößen sind die Lotka-Volterra Gleichungen. Diese wurden 1925 und 1926 unabhängig voneinander von dem österreichischen Mathematiker Alfred James Lotka und dem italienischen Physiker Vito Volterra aufgestellt. Es handelt sich um ein System aus zwei gekoppelten Differentialgleichungen:

dP/dt = (rP + cP*R) * P         
dR/dt = (rR + cR*P) * R

mit

 P Populationsgröße der Beute
 rP
konstante Reproduktionsrate der Beute, wenn keine Räuber anwesend sind (normalerweise > 0, da die ungestörte Population wächst)
 cP Änderung der Beute-Population pro Räuber
(normalerweise < 0, da die Population durch jeden Räuber verkleinert wird)
 R
Populationsgröße der Räuber
 rR
konstante Reproduktionsrate der Räuber, wenn keine Beute anwesend ist
(normalerweise < 0, da die Räuber auf die Beute als Nahrung angewiesen
sind und deshalb ohne Beute sterben)
 cR
Änderung der Räuber-Population pro Beutetier
(normalerweise > 0, da durch jedes Beutetier zusätzliche Geburten möglich werden)


Diese Differentialgleichungen haben schöne mathematische Eigenschaften, die wir uns jedoch im Rahmen dieser Abschlussaufgabe nicht weiter ansehen wollen. Wir betrachten stattdessen die vereinfachte Form der Gleichungen als Differenzengleichungen mit diskreten Zeitschritten (die Zeitabstände, zu denen die Populationen gezählt werden) und diskreten Populationsanzahlen (da halbe Schneehasen sowieso nicht so viel Sinn ergeben). Dann entwickeln sich die Populationen folgendermaßen:

Pt+1 = (1 + rP + cP*Rt)  *Pt            (Gleichungssystem 2)

Rt+1 = (1 + rR + cR*Pt)  *Rt

Gegenüber dem linearen Modell zur Simulation einer Population ist also jeweils lediglich der Einfluss der anderen Population hinzugekommen.



Aufgabe:

Ein Forscher hat über einen gewissen Zeitraum die Größen einer Population von Räubern und einer Population von Beutetieren verfolgt hat. Schreiben Sie ein Programm, mit dem er Voraussagen treffen kann, wie die Populationsgrößen sich in Zukunft entwickeln werden.


Schrittweises Vorgehen, um diese Aufgabe zu lösen:


T10A1) Unser Forscher hat einige Datensätze zu bieten, die er Ihnen als Testmaterial zur Verfügung stellt:
Folgenden Beobachtungsreihen wurden für das ungestörte Wachstum einer einzelnen Population aufgenommen:

  • Das perfekte Wachstum einer Population von Ratten in einer überdachten Müllkippe: [Ratten_perfekt.mat]
  • Das etwas realistischere (nicht rauschfreie) Wachstum der gleichen Population: [Ratten.mat]
  • Das perfekte Wachstum einer Population auf einer Räuber-freien Insel ausgesetzter Kaninchen: [kanincheninsel_perfekt.mat]
  • Und die gleichen Kaninchen in einer nicht immer gleichen Umgebung: [kanincheninsel.mat]


Und folgende Datensätze sind Beispiele für eine Räuber- und eine Beutepopulation:

  • Das perfekte Zusammenspiel einer Population von Ratten und von Katzen in einer überdachten Müllkippe: [Ratten_Katzen_perfekt.mat]
  • Das etwas realistischere (nicht rauschfreie) Wachstum der gleichen Populationen: [Ratten_Katzen.mat] (Sorry, hier hatte ich zuerst ein falsches file verlinkt. Dies sollte die richtige Version sein.) 
  • Kaninchen und Füchse im rauschfreien Wald: [kaninchen_fuchs_perfekt.mat]
  •  Kaninchen und Füchse mit Waldesrauschen: [kaninchen_fuchs.mat]
  • Ein Schwarm Makrelen und eine Gruppe Haie in perfekter Umgebung:[makrelen_haie_perfekt.mat]
  • Und die gleichen Makrelen und Haie in einer Umgebung mit statistischen Schwankungen: [makrelen_haie.mat] 
  • Eine Population Mäuse, die vom Fuchsbandwurm befallen ist, in perfekter Umgebung: [maeuse_bandwuermer_perfekt.mat] Hier hat der gute Forscher inzwischen nochmal einen Tipp nachgelegt, um die Sache etwas weniger schwierig zu machen.
  • Und die gleichen Populationen in einer verrauschten Umgebung: [maeuse_bandwuermer.mat] (Im Prinzip müsste man diese Populationsentwicklung tatsächlich anders modelieren: Mäuse sind nur Zwischenwirte für den Fuchsbandwurm, die durch den Parasiten geschwächt werden, so dass die Füchse als Endwirt des Parasiten sie leichter fressen können. Füchse werden nur minimal durch die Bandwürmer beeinträchtigt. Die Anzahl der Bandwürmer hängt sowohl von der Populationsgröße der Füchse als auch der der Mäuse ab. Das ist hier nicht beachtet, aber eine schöne Erweiterungsmöglichkeit der Aufgaben.)


(Bitte beachten Sie, dass der ordentliche Forscher Ihnen zusammen mit den Daten jeweils etwas Text zur Verfügung gestellt hat, wie diese Daten zu interpretieren sind.)
Schauen Sie sich zunächst die Beobachtungsreihen grafisch an, damit Sie eine Vorstellung von den Daten bekommen.
Programmieren Sie ruhig schon mal eine schöne grafische Darstellung, denn der Forscher möchte sich die Daten natürlich auch gerne ansehen. Machen Sie die Darstellung allgemein genug, dass sie für verschiedene Datensätze brauchbar ist.

T10B1) Beginnen Sie nun erstmal mit der Auswertung der Entwicklung einer einzelnen Population.
a) Schreiben Sie ein Simulationsprogramm, das mit dem oben beschriebenen linearen Modell (Gleichung 1) für variabel wählbare Werte der gewünschten Simulationsdauer, des Startwerts der Populationsgröße und der Reproduktionsrate (oder der Werte für Mortalität und Fertilität) die erwartete Populationsentwicklung berechnet.
b) Stellen Sie diese Populationsentwicklung grafisch ansprechend dar
*c) Erweitern Sie Ihr Programm so, dass es zusätzlich eine gewisse Variabilität in der Populationsentwicklung reproduziert. Dabei gibt es zwei Möglichkeiten, Variabilität einzuführen. Wie unterscheiden diese sich in ihren Auswirkungen?

T10B2) Passen Sie das lineare Modell mit konstanter Reproduktionsrate an die Daten des Forschers an, z.B. Datensatz [Ratten_perfekt.mat]:
a) Variieren Sie dafür systematisch den einen Modellparameter und berechnen Sie jeweils die mittlere quadratische Abweichung zwischen gemessenen und geschätzten Werten als Fehler Ihrer Schätzung.
b) Schreiben Sie ein Programm, das automatisch den Modellparameter optimal an die Messdaten anpasst. Beachten Sie dabei, dass das Programm allgemein genug sein sollte, um für verschiedene Datensätze anwendbar zu sein.
c) Programmieren Sie eine schöne grafische Darstellung der Messwerte zusammen mit den optimalen Vorhersagewerten.

T10C1) Nun gehen Sie zu der Beobachtung von zwei Populationen über:
a) Schreiben Sie wiederum ein Simulationsprogramm für die gemeinsame Entwicklung der Räuber- und der Beutepopulation, bei dem der Benutzer alle relevanten Modellparameter festlegen kann.
b) Stellen Sie die Populationsentwicklungen grafisch ansprechend dar
*c) Erweitern Sie Ihr Programm so, dass es zusätzlich eine gewisse Variabilität in der Populationsentwicklung reproduziert.

T10C2) a und b) Verfahren Sie mit den Datensätzen zur gemeinsamen Populationsentwicklung von Räubern und Beute wie in T10B2, aber mit dem Modell von Lotka und Volterra (Gleichungssystem 2).
Achtung:
Dieses Gleichungssystem hat die unangenehme Eigenschaft sehr starke Schwingungen der Populationszahlen hervorzurufen, wenn man sich nicht im richtigen Parameterbereich befindet, siehe T10E2. Bitte nicht verzweifeln, sondern erstmal die Hinweise unseres Forschers ansehen und dann im Zweifelsfall uns fragen...
*c) Die Unterschiede in den beiden Arten, Variabilität in den Daten zu reproduzieren wirken sich hier sehr viel stärker aus bei der Simulation der Populationsentwicklung einer Population. Warum?

T10C3) Geben Sie unserem Forscher in netter Weise ein Paar Kenngrößen aus, die jeden seiner Datensätze statistisch beschreiben.
a) Geben Sie für Beute und Räuber die Minima und Maxima der gemessenen Populationsgrößen aus.
b) Schauen Sie sich die Verteilung der gemessenen Populationsgrößen an. Sind diese normalverteilt?
c) Falls sie (annähernd) normalverteilt sind, geben Sie Mittelwerte und Standardabweichungen aus. Sonst den Median und die Quartile.
*d) Schauen Sie sich den zeitlichen Verlauf der Populationsentwicklung an. Gibt es periodische Schwankungen?
*e) Wenn es diese gibt, dann geben Sie die Periode der Schwankungen für beide Populationen an.

T10D1) Kombinieren Sie Ihre Simulations- und Datenanpassungsprogramme zu einem benutzerfreundlichen Anwenderprogramm, mit dem der Forscher seine verschiedenen Datensätze auswerten und den Einfluss von Modellparametern auf die zu erwartende zukünftige Entwicklung der Populationsgrößen vorhersagen kann. Denken Sie dabei daran, dass Ihr Programm von Leuten bedient werden soll, die keine Ahnung von Programmierung haben!

Erweiterungsmöglichkeiten:

**T10E1) Populationsentwicklung von Räuber- und Beutepopulation wird häufig durch drei Regeln beschrieben:

  • Erste Lotka-Volterra-Regel (Periodische Populationsschwankung): Die Populationsgrößen von Räuber und Beute schwanken periodisch. Dabei folgen die Schwankungen der Räuberpopulation phasenverzögert denen der Beutepopulation. Die Länge der Perioden hängt von den Anfangsbedingungen und von den Wachstumsraten der Populationen ab.
  • Zweite Lotka-Volterra-Regel (Konstanz der Mittelwerte): Die über genügend lange Zeiträume gemittelten Größen (Mittelwert) der Räuber- bzw. Beutepopulation sind konstant. Die Größe der Mittelwerte hängt nur von den Wachstums- und Schrumpfungsraten der Populationen, nicht aber von den Anfangsbedingungen ab.
  • Dritte Lotka-Volterra-Regel (Störung der Mittelwerte): Werden Räuber- und Beutepopulation gleichermaßen proportional zu ihrer Größe dezimiert, so vergrößert sich kurzfristig der Mittelwert der Beutepopulation, während der Mittelwert der Räuberpopulation kurzfristig sinkt.

[Quelle: de.wikipedia.org/wiki/Lotka-Volterra-Regeln ]

Erweitern Sie Ihr Datenanalyseprogramm so, dass es für einen gegebenen (gemessenen oder simulierten) Datensatz überprüft, ob diese drei Regeln zutreffen. (Warum ist das für gemessene Daten nicht so einfach wie für simulierte?)

**T10E2) Bei der Simulation der gekoppelten Populationsdynamiken werden Sie feststellen, dass diese sehr instabil sind (es also nur in einem engen Parameterbereich stabile Populationszahlen gibt und man sonst ziemlich schnell auf eine Populationsgröße von 0 abfällt oder extrem unrealistisch große Populationen vorhersagt.) Dokumentieren Sie diesen Effekt, indem Sie z.B. die mittlere Populationsgrößen und die Maxima und Minima in Abhängigkeit von den Parameterwerten darstellen.
[Tipp: zum Finden stabiler Zustände hilft de.wikipedia.org/wiki/Lotka-Volterra-Gleichung ]

**T10E3) Erweitern Sie Ihr Modell der gekoppelten Populationsdynamik so, dass sie das Zusammenspiel von drei Populationen untersuchen können. Hier könnten Sie sich verschiedene Situationen überlegen, z.B. zwei Beutetierarten, die beide vom gleichen Räuber gefressen werden oder eine Parasitenpopulation, die sowohl Räuber als auch Beute befällt. [Nein, natürlich erwarte ich kein allumfassendes Programm für jede denkbare Möglichkeit! Spezialisieren Sie sich auf eine oder wenige spezielle Situationen und kommentieren Sie, für welche Fälle Ihr Programm gemacht ist.]

**T10E4) Wenn Sie Lust haben, programmieren Sie eine grafische Benutzeroberfläche (GUI) zur Steuerung Ihres Programms. Eine gute Einführung dazu finden Sie in der Matlab-Hilfe.

Wenn Sie andere Ideen zur Erweiterung Ihres Programms haben: Nur zu!
Ich freue mich auf viele kreative Lösungen!


Webmaster: J0n61kutta Kretzmtbetamqhrg (jutta.kretut8ztzbe0vfrg@uol.de) (Stand: 07.11.2019)