Wie genau werden spieltheoretische Evolutionsmodelle bei der Umsetzung für Computersimulationen beschrieben?

Wenn ein Biologe oder ein Laie versucht, die evolutionäre Erklärung für etwas zu begründen, würden sie einfach Englisch mit etwas Mathematik verwenden (als zufälliges Beispiel wählen Sie eine beliebige Erklärung aus "Das egoistische Gen" - zum Beispiel die Begründung, warum " Diskriminierung zugunsten der eigenen Eier"-Strategie wird von Guillemots im Kapitel "Genesmanship", Seite 103, angewendet. Ich werde sie nicht vollständig zitieren, da sie eine Seite Text enthält).

Ein weiteres Beispiel für eine solche Wall of English ist die (von Dawkins inspirierte) Bio.SE-Frage: „ Warum ist ‚Grudger‘ eine evolutionär stabile Strategie?

Wenn ein Biologe versucht, die evolutionäre Entwicklung tatsächlich zu modellieren, um zu sehen, welche Merkmale gewinnen würden, müsste er dem Computer irgendwie beibringen, dieses Modell zu implementieren: was die Umweltfaktoren sind, was der beteiligte Genotyp ist, wie genau er in verschiedenen Phänotypen und Erweiterungen ausgedrückt wird phänotypische Merkmale und wie sich die Umwelt auf eine Person mit diesem Phänotyp auswirken würde.

Meine Frage ist: Gibt es eine Art Standardmethode, um ein solches Modell zu bauen? Eine domänenspezifische Sprache (in der Informatik-Terminologie), die von vielen verschiedenen Biologen verwendet wird, oder einige Standard-Modellierungspakete/-software? ZB eine Art spezielles XML-Format usw. ...

Oder handelt es sich immer nur um eine von Hand erstellte kundenspezifische Implementierung einzelner Forscher für ihr aktuelles Modell?


Nur um klarzustellen:

  • Ich frage NICHT, wie die Modelle theoretisch aussehen. Ich frage, welche Sprache/welches Format (falls es einen Standard gibt) verwendet wird, um sie zu codieren, um Simulationen auszuführen .

  • Wenn es Diskrepanzen zwischen Art/Zweck von Modellen gibt, interessieren mich vor allem spieltheoretische Modelle.

Der Impuls dieser Frage ist, wenn ich neugierig bin, wie sich ein bestimmtes Modell verhalten würde, müsste ich das Ganze - Modus, Sprache und Simulator - von Grund auf neu codieren (wahrscheinlich falsch, da ich ein Laie bin); oder es gibt einige Standardpakete, die dies für Sie erledigen, solange Sie eine geeignete Sprache verwenden, um Ihr Modell zu beschreiben.
Leider ist das Guillemot-Beispiel schlecht - Dawkins hat sich geirrt (und das ganz offensichtlich). Er vergisst, die Tatsache zu berücksichtigen, dass, wenn ein Vogel doppelt so viele Eier legt wie jeder andere in der Kolonie, seine Eier mit doppelt so hoher Wahrscheinlichkeit von der Pflege ausgeschlossen werden.
@RichardSmith - Scheint mir kontraintuitiv zu sein. Wenn die einzigen Eier, die ausgeschlossen werden, diejenigen sind, die kein Vogel beansprucht; Sie legen 2x Eier, und es gibt 5% von Ihnen mit dieser spezifischen Strategie, dann (vorausgesetzt, Sie haben eine Kolonie von 100, mit 1 Eierkupplung für Normale), haben Sie insgesamt 105 Eier, also werden 5 ausgeschlossen. Jedes Ei hat eine Wahrscheinlichkeit von ~1 %, ausgeschlossen zu werden. Wenn also BEIDE Eier ausgeschlossen werden, beträgt die Wahrscheinlichkeit 1 % x 1 % = 0,01 %. Fast 100-mal besser als ein Vogel mit nur einem Ei.
Es ist nicht die Möglichkeit, dass beide Eier ausgeschlossen werden, von der Dawkins spricht, er spricht von der Möglichkeit, dass ein Ei ausgeschlossen wird. Es stimmt immer noch, dass es sich lohnen würde, um die ersten paar Vögel zu schummeln. Der breitere Punkt, dass das Merkmal kein ESS ist, mag wahr sein, aber seine spezifische Erklärung ist es nicht. Wenn in Ihrem speziellen Beispiel 105 Eier vorhanden sind und 5 ausgeschlossen werden, hat jedes Ei eine Chance von ~ 5 % (genauer gesagt 4,76 %), nicht ~ 1 %, ausgeschlossen zu werden. Auf jeden Fall war Ihre Frage interessant, also schreibe ich ein Modell der Guillemot-Situation. Ich melde mich wenn es fertig ist :)

Antworten (3)

Das Gebiet, das am engsten mit spieltheoretischen Modellen in der Biologie verbunden ist, ist die evolutionäre Spieltheorie. Wenn Modellierung erforderlich ist, dann ist das typische Paradigma die agentenbasierte Modellierung, und ein gutes Einführungsbuch ist:

Yoav Shoham und Kevin Leyton-Brown [2009], "Multiagentensysteme: algorithmische, spieltheoretische und logische Grundlagen", Cambridge University Press.

Was den eigentlichen Bau des Modells angeht und was zu beschreiben/wie zu beschreiben ist, werde ich Sie durch mein übliches Verfahren führen, da dies ein Gebiet ist, auf das ich mich spezialisiert habe:

  1. Definieren Sie, welche Art von Strategien Ihrer Meinung nach für die Interaktionen, die Sie modellieren, relevant sind. Wählen Sie aus, was Sie von der Auszahlung dieser Strategien erwarten. Wenn Sie beispielsweise die Entwicklung der Zusammenarbeit studieren, könnten Sie „Kooperieren“ und „Defekt“ als Ihre Strategien und das Gefangenendilemma als Ihre Auszahlungsmatrix auswählen, aber vielleicht wählen Sie etwas Allgemeineres . Leider wird in den meisten EGTs nicht klar zwischen Genotyp und Phänotyp unterschieden und sie werden meist gleichgesetzt. Am Ende dieses Schrittes haben Sie eine Spielmatrix G. Manchmal, wenn Mutationen oder Innovationen auch im reibungsfreien Modell explizit notwendig sind, werden an dieser Stelle weitere analytische Ansätze verfolgt. Ich empfehle Hofbauer & Sigmund (2003) für eine breite Behandlung von Schritt 1.
  2. Jetzt brauchen Sie eine grundlegende Intuition darüber, was das „Standard“-Verhalten in dieser Interaktion ist, also lösen Sie die Replikatordynamik von G.
  3. Das derzeitige Hauptinteresse an EGT gilt strukturierten Populationen . Hier wird typischerweise Computermodellierung verwendet. Bevor ich mich jedoch der Simulation zuwende, versuche ich zunächst den besten analytischen Ansatz, den ich kenne. Ich verwende die Ohtsuki-Nowak-Transformation auf G, um die Wechselwirkung für zufällige Graphen analytisch zu lösen (Ohtsuki & Nowak, 2006) .
  4. Wenn ich immer noch an der Frage interessiert bin und die Schritte 2 und 3 nicht alle Feinheiten des Systems erfasst haben, das ich untersuchen möchte, beginne ich mit dem Aufbau eines Multiagenten-Rechenmodells. Ich stelle sicher, dass mein Modell eine Möglichkeit hat, sich auf den völlig unviskosen Fall der Replikationsdynamik und den einfach strukturierten Fall der ON-Transformation zu skalieren. Wenn mein Berechnungsmodell mit dem analytischen Ansatz in diesen Regimen nicht übereinstimmt, mache ich mir Sorgen. Ansonsten fahre ich mit standardmäßigen agentenbasierten Modellierungstechniken fort. Ich persönlich programmiere in Matlab. Ich habe noch nie eine moderne EGT-Simulation gesehen, die die Leistung von C/Fortran erfordert hätte. Wie in einer anderen Antwort vorgeschlagen, können Sie NetLogo verwenden, wenn Sie keinen Programmierhintergrund haben. Meine Erfahrung ist jedoch, dass die Modelle normalerweise einfach genug sind, um von Grund auf neu implementiert zu werden, und NetLogo-Modelle verbergen Ihnen normalerweise einige sehr wichtige Feinheiten (z. B. welche Reproduktionsregel zu verwenden ist: Tod-Geburt, Geburt-Tod, Imitation?) und führen normalerweise zu schwächeren Papieren.

Beachten Sie das breite Thema. Diese Modelle werden typischerweise als Differentialgleichungen beschrieben, und dieser Ansatz wird agentenbasierten Modellen vorgezogen. Wenn jedoch ein sauberer Differentialgleichungsansatz nicht alle Feinheiten dessen erfasst, was Sie studieren, wird ein ABM-Paradigma übernommen.

Die spezielle Sprache, die ein Bioligist verwendet, hängt von den Kompromissen zwischen Geschwindigkeit und Einfachheit der Programmierung ab. Viele Modelle sind in C oder Fortran geschrieben, wenn es auf Geschwindigkeit ankommt. Andererseits werden Leute Modelle in höheren Sprachen schreiben, wenn die Geschwindigkeit weniger wichtig ist. Das wären Python, R, MatLab usw. In meinen Modellen, die größtenteils in Python geschrieben sind, schreibe ich alle Klassen von Grund auf neu und dann auch alle Simulationskomponenten von Hand. Da fast alle Modelle mathematischer Natur sind, ist die Sprache belanglos. Algorithmen sollten sich plattformübergreifend ähnlich verhalten. Wenn Sie nach Beispielen für einfache Möglichkeiten suchen, spieltheoretische Modelle zu kodieren, sollten Sie NetLogo in Betracht ziehen, sie haben einige nette Beispiele, die Spieltheorie verwenden.

Dies. Ich würde sagen, die meisten Menschen verwenden die Sprache, die sie am besten beherrschen, also ist das für Nicht-Programmierer Python oder Perl, für Mathematiker Matlab, Mathematica oder Berkeley Madonna und für Programmierer c oder ein Nachkomme.
Keine allgemein genutzten DSLs? Liegt das daran, dass es zu schwer zu entwickeln ist, oder braucht es einfach niemand?
Wahrscheinlich beides. Berkeley Madonna ist speziell zum Modellieren gedacht, aber es ist schrecklich, also wird es nicht so häufig verwendet.
Ich würde sagen, was DSLs betrifft, ist Logo eine DSL für individuelle Modelle, aber die meisten Biologen können in einer anderen Sprache programmieren, die flexibler ist. Außerdem verfügen sowohl Python (in scipy) als auch R über ODE-Lösungsfunktionen, sodass Sie Madonna nicht verwenden müssen.

Es gibt keinen einheitlichen Weg, ein solches Modell zu erstellen. Sie können von einer einfachen mathematischen Aussage wie der Hamilton-Regel (rB>C) bis zu chemischen Diffusionsmodellen reichen, die verwendet werden, um die Muster in Tierhautfarben zu beschreiben (wie Zebrastreifen, Leopardenflecken und dergleichen).

Es gibt Bemühungen, molekulare Modelle ganzer Zellen zu erstellen, wie dieses Modell der Mycobacterium genitalium-Teilung , das fast 30 verschiedene mathematische Modelle integriert, um verschiedene Aspekte des Organismus zu beschreiben. Es gibt auch Bestrebungen, ein solches Modell eines ganzen Gehirns zu bauen.

Eine andere übliche Art von Modell für die Evolutionsbiologie ist die Verwendung der Spieltheorie, bei der verschiedene Strategien gegeneinander gestellt werden können, wie in dem Gefangenendilemma- Wettbewerb, den Dawkins in The Selfish Gene beschreibt.

Es geht weiter und weiter. Grundsätzlich wird die biologische Modellierung von den Arten von mathematischen Modellen angetrieben, die wir kennen. Neue Modelle werden neue Paradigmen darüber aufzeigen, wie Biologie funktioniert. Sie können hochgradig mathematisch sein, aber ihre relative Bedeutung und wann sie zutreffen und was sie bedeuten, ist eher eine Analogie als ein Beweis.

Zum Beispiel zeigten die ersten Wettbewerbe im Gefangenendilemma, dass Tit for Tat das stärkste Modell war - im Allgemeinen anderen zu helfen, aber zu verraten, wenn es eine Geschichte des Verrats gibt. Die damaligen Ideen gingen in Richtung allgemeine Zusammenarbeit in der Bevölkerung. Neuere Wiederholungen haben gezeigt, dass, wenn es ein Team von Teilnehmern gibt, die sich gegenseitig außergewöhnliche Geschenke machen (Verrat ohne Vergeltung zulassen), sie ganz gut gegen andere Modelle antreten können.

Man kann nie beweisen, dass ein egoistisches Modell für das Gefangenendilemma nicht auftaucht, obwohl biologische Systeme sehr kooperativ zu sein scheinen. Das ist ein Modell, kein Beweis.

Meine Frage zielte hauptsächlich auf spieltheoretische ab
Bitte sehen Sie sich die Aktualisierungen der Frage an. Ich frage nicht, wie die Modelle getestet werden. Ich frage, welche Sprache (falls eine Standardsprache existiert) verwendet wird, um die Modellparameter an die Simulation zu übermitteln.
Ich denke, die Antwort wäre nein - R könnte in den kommenden Jahren ein Standard sein, aber ich habe mehrere Sprachen gesehen, die in verschiedenen Kursen angepriesen wurden, darunter Excel.
Hoffen wir, dass R nicht zum Standard für etwas anderes als Statistiken wird – es ist die hässlichste Programmiersprache seit J .