Navigation

Abschlussaufgabe

pdf-Version: Abschlussaufgabe_11.pdf

word-Version: Abschlussaufgabe_11.pdf

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 großen 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 W1-2-232, Tel 798 3729) und Lena Köpcke (lena.koepcke@uol.de, Raum W4-0-058, Tel 798 3608) und ich (jutta.kretzberg@uol.de, ebenfalls Raum W4-0-058, Tel 798 3314) zur Verfügung. Bitte per email Termine absprechen!
  •  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 16.10.2011 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? (Für eine 1.0 sollten die Aufgaben A1-A6 zumindest im Ansatz gelöst, oder bei unvollständiger Lösung mindestens eine Zusatzaufgabe bearbeitet sein.)
  •     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 2011: Simulation von “Herdenverhalten”

Motivation:

Stellen Sie sich eine Gruppe von Tieren vor, die sich auf einem eingezäunten, ebenen Gelände frei bewegen können. Die Bewegungen dieser Tiere im Laufe der Zeit sollen von Ihnen simuliert werden. Schreiben Sie dafür die folgenden (aufeinander aufbauenden) Programme:

A1) Ausgangspunkt:

Starten Sie mit 50 Tieren, die an zufälligen Positionen in dem 100x100 großen Gehege stehen. Stellen Sie das Gehege mit den Tieren grafisch dar.


A2) Simulation zufälliger Bewegung:

Schreiben Sie eine Simulation zufälliger Bewegung der Tiere im Raum. Stellen Sie das Gehege mit den Tieren für jeden Zeitschritt grafisch dar, so dass man den Bewegungen der Tiere auf dem Bildschirm zusehen kann. Lassen Sie die Simulation für 500 Zeitschritte laufen.
Regeln: In jedem Zeitschritt kann jedes der Tiere entweder am gleichen Ort stehen bleiben wie im Zeitschritt vorher, oder sich zu einem Nachbarort bewegen:

  • Bewegung in Horizontalrichtung: Die x-Koordinate (Spalte) der Position des Tieres ist in jedem Zeitschritt mit
    •  1/3 Wahrscheinlichkeit gleich wie im Zeitschritt vorher
    • 1/3 Wahrscheinlichkeit ein Feld weiter links
    • 1/3 Wahrscheinlichkeit ein Feld weiter rechts
  •  Bewegung in Vertikalrichtung: Die y-Koordinate (Zeile) der Position des Tieres ist in jedem Zeitschritt mit
    • 1/3 Wahrscheinlichkeit gleich wie im Zeitschritt vorher
    • 1/3 Wahrscheinlichkeit ein Feld weiter unten
    • 1/3 Wahrscheinlichkeit ein Feld weiter oben

Hinweise:

  • Tiere können sich im gleichen Zeitschritt horizontal und vertikal bewegen, z.B. nach oben-links.
  • Denken Sie daran, dass die Tiere in einem Gehege sind! Achten Sie darauf, dass die Tiere nicht aus diesem Gehege hinaus können, also die Positionen in x- und y-Richtung jeweils zwischen 1 und 100 liegen müssen. Kommentieren Sie in Ihrem Programmtext, was am Rand des Geheges passiert.


A3) Erweiterungen:

a) Erweitern Sie Ihr Programm so, dass auf jedem Platz nur ein Tier gleichzeitig stehen kann. Kommentieren Sie im Programmtext, was passiert, wenn zwei Tiere sich treffen

b) Erweitern Sie Ihr Programm so, dass vom Benutzer frei gewählt werden kann

  • Anzahl Tiere im Gehege
  • Ausmaße des Geheges
  • Simulierte Zeitschritte

c) Erweitern Sie Ihr Programm so, dass der Benutzer die Wahrscheinlichkeiten für die Bewegungen in die verschiedenen Richtungen wählen kann (z.B. 2/3 stehen bleiben, 1/6 links, 1/6 rechts).


A4) Benutzerinteraktion:

  • Gestalten Sie die Interaktion mit dem Benutzer so, dass auch Leute das Programm benutzen können, die weder programmieren können, noch Ihr spezielles Programm kennen.
  • Denken Sie daran, dass Benutzer nicht unbedingt Eingaben machen, die Ihren Spezifikationen entsprechen.
  • Denken Sie an Hilfetexte und ausführliche Kommentare.


A5) Simulation von Herdenverhalten:

In einer Herde von Tieren sind die Bewegungen der einzelnen Tiere nicht unabhängig von einander. In dieser Simulation gehen wir davon aus, dass die Tiere es bevorzugen, nah, aber nicht zu nah, bei ihren Artgenossen zu sein. Die Positionsänderungen jedes Tieres sind dann abhängig von den Nachbartieren. Für jede Richtung der Bewegung zu einem der Nachbarplätze gilt:

  • Wenn der nächste Nachbar weniger als 3 Plätze in dieser Richtung entfernt ist, besteht eine gegenüber Zufallsniveau stark verkleinerte Wahrscheinlichkeit, in die Richtung zu gehen.
  • Bei 3 bis 6 Plätzen Abstand ist die Wahrscheinlichkeit stark gegenüber Zufallsniveau erhöht.
  • Bei 7 bis 15 Plätzen Abstand entspricht die Wahrscheinlichkeit, in diese Richtung zu gehen, dem Zufallsniveau.
  • Bei mehr als 15 Plätzen Abstand ist die Wahrscheinlichkeit geringer als Zufallsniveau.

Hinweise:

  • Überlegen Sie sich, wie sie die Abstände zu Nachbarn berechnen wollen, die weder genau horizontal noch genau vertikal neben dem jeweiligen Tier stehen. (Hier gibt es verschiedene Möglichkeiten, die ich alle akzeptiere. Sie müssen aber kommentieren, für welche Möglichkeit Sie sich entschieden haben.)
  • Ich habe absichtlich keine festen Werte für die Wahrscheinlichkeiten angegeben. Auch hier gibt es verschiedene Möglichkeiten, für die Sie sich entscheiden können. Probieren Sie verschiedene Werte aus und wählen Bedingungen, die Ihnen gefallen. Überlegen Sie auch, welche Einflussmöglichkeiten Sie dem Benutzer geben wollen.


A6) Statistische Auswertung:

 Werten Sie statistisch aus und stellen Sie (abhängig von der Benutzerinteraktion eventuell optional) grafisch dar:

  • Wie oft wird ein bestimmter Punkt von einem Tier besetzt?
  • Gibt es bestimmte Punkte, die häufiger besucht werden als andere? Ist das statistisch signifikant?
  • Wie sieht die Verteilung der Abstände zwischen den Tieren aus, wenn man sie für alle Tiere und einen langen Zeitraum auswertet? Gibt es Unterschiede zwischen den Verteilungen, die man für zufällige Bewegung bzw für Herdenverhalten beobachtet?

Ideen für freiwillige Erweiterungen

Hier sind Ihrer Phantasie keine Grenzen gesetzt, Zusatzaufwand führt zur Notenverbesserung...

E1) Andere Interaktionsregeln

Denken Sie sich andere Möglichkeiten aus, wie die Bewegung der Tier von der Position anderer Tiere abhängig sein könnte. Z.B. könnte die Wahrscheinlichkeit der Positionsänderung in eine bestimmte Richtung von der Anzahl der Tiere abhängen, die sich in dieser Richtung im Gehege befinden (z.B. wenn mehr Tiere rechts sind als links ist die Wahrscheinlichkeit für einen Schritt nach rechts höher).

E2) Räumliche Faktoren

Führen Sie zusätzliche Faktoren in Ihr Modell ein, die bestimmte Bereiche des Geheges attraktiver machen als andere (z.B. Nahrungsquellen oder auch Räuber, die beim Zusammentreffen mit einem Tier dieses mit einer bestimmten Wahrscheinlichkeit auffressen).
Bei dieser Erweiterung ist die Betrachtung besonders interessant, ob bestimmte Bereiche des Geheges häufiger besucht werden als andere.

E3) Grafische Benutzeroberfläche

Wenn Sie möchten, können Sie eine grafische Benutzeroberfläche (GUI) gestalten, um den Umgang mit dem Benutzer zu steuern. (Das ist aber nicht ganz einfach und braucht viel Zeit. Lösen Sie erst die eigentliche Aufgabe, bevor Sie mit einer GUI beginnen.)


Webgv+master: Juttisa i4ilyKretlvzbw+c4erg (juttj9a.kretz6tdberc2g@uxlvuwol.de) (Stand: 07.11.2019)