Frage:
Wie genau werden spieltheoretische Evolutionsmodelle während der Implementierung für Computersimulationen beschrieben?
DVK
2012-09-09 18:19:12 UTC
view on stackexchange narkive permalink

Wenn ein Biologe oder ein Laie versucht, die evolutionäre Erklärung für etwas zu begründen, verwenden sie einfach Englisch mit etwas Mathematik (für ein zufälliges Beispiel wählen Sie eine Erklärung aus "The Selfish Gene" aus - zum Beispiel die Begründung, warum Guillemots im Kapitel "Genesmanship", Seite 103, die Strategie "zugunsten der eigenen Eier diskriminieren" anwendet. Ich werde sie nicht vollständig zitieren, da es sich um eine Textseite handelt.

Ein weiteres Beispiel für eine solche Wand aus Englisch ist die (von Dawkins inspirierte) Bio.SE-Frage: " Warum ist 'Grudger' eine evolutionär stabile Strategie?"

Wenn ein Biologe dies versucht Modellieren Sie tatsächlich die evolutionäre Entwicklung, um zu sehen, welche Merkmale gewinnen würden. Sie müssten dem Computer irgendwie beibringen, dieses Modell zu implementieren: Was sind die Umweltfaktoren, was ist der Genotyp, wie genau wird er in verschiedenen phänotypischen und erweiterten phänotypischen Merkmalen ausgedrückt und wie Umwelt würde eine Person mit diesem Phänotyp betreffen.

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

Oder handelt es sich immer nur um eine handgefertigte benutzerdefinierte Implementierung durch einzelne Forscher für ihr aktuelles Modell?


Nur um Folgendes zu verdeutlichen:

  • Ich frage NICHT, wie die Modelle theoretisch aussehen. Ich frage, welche Sprache / welches Format (falls vorhanden) verwendet wird, um sie für die Ausführung von Simulationen zu codieren.

  • Wenn zwischen diesen Diskrepanzen bestehen Die Art / Zwecke der Modelle, die mich am meisten interessieren, sind spieltheoretische.

  • Der Anstoß für diese Frage ist, wenn ich neugierig bin, wie sich ein bestimmtes Modell verhalten würde, müsste ich das gesamte Ding - Modus, Sprache und Simulator - von Grund auf neu codieren (wahrscheinlich fälschlicherweise als Laie); oder es gibt einige Standardpakete, die dies für Sie tun, solange Sie eine geeignete Sprache zur Beschreibung Ihres Modells verwenden.
    Leider ist das Guillemot-Beispiel schlecht - Dawkins hat sich geirrt (und das ganz offensichtlich). Er vergisst zu berücksichtigen, dass wenn ein Vogel doppelt so viele Eier legt wie jeder andere in der Kolonie, seine Eier doppelt so häufig von der Pflege ausgeschlossen werden.
    @RichardSmith - Scheint mir nicht intuitiv zu sein. Wenn die einzigen Eier ausgeschlossen werden, die kein Vogel behauptet; 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 Normalen) haben Sie insgesamt 105 Eier, sodass 5 ausgeschlossen werden. Jedes Ei hat eine Wahrscheinlichkeit von ~ 1%, ausgeschlossen zu werden. Wenn also BEIDE Eier ausgeschlossen werden, beträgt die Wahrscheinlichkeit 1% x1% = 0,01%. Fast 100-mal besser als ein Einzelei-Vogel.
    Dawkins spricht nicht über die Möglichkeit, beide Eier auszuschließen, sondern über die Möglichkeit, ein Ei auszuschließen. Es ist immer noch wahr, dass es sich lohnt, die ersten Vögel zu betrügen. Der umfassendere Punkt, dass das Merkmal kein ESS ist, mag zutreffen, seine spezifische Erklärung jedoch nicht. Wenn in Ihrem speziellen Beispiel 105 Eier vorhanden sind und 5 ausgeschlossen sind, hat jedes Ei eine Wahrscheinlichkeit 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 zurück, wenn ich fertig bin :)
    Drei antworten:
    Artem Kaznatcheev
    2012-09-10 17:35:23 UTC
    view on stackexchange narkive permalink

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

    Yoav Shoham und Kevin Leyton-Brown [2009], "Multiagentensysteme: algorithmisch, Spiel -theoretische und logische Grundlagen ", Presse der Universität Cambridge.

    Was das eigentliche Erstellen des Modells und was zu beschreiben ist / wie, werde ich Sie durch mein übliches Verfahren führen, da dies ein Feld ist Ich bin spezialisiert auf:

    1. Definieren Sie, welche Art von Strategien Ihrer Meinung nach für die von Ihnen modellierten Interaktionen relevant sind. Wählen Sie aus, wie sich diese Strategien auszahlen sollen. Wenn Sie beispielsweise die Entwicklung der Zusammenarbeit untersuchen, können 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 EGT keine klare Unterscheidung zwischen Genotyp und Phänotyp getroffen, und sie werden normalerweise gleichgesetzt. Am Ende dieses Schritts haben Sie eine Spielmatrix G. Manchmal, wenn Mutationen oder Innovationen selbst im nichtviskosen Modell explizit erforderlich sind, werden in dieser Phase weitere analytische Ansätze verfolgt. Ich empfehle Hofbauer & Sigmund (2003) für eine umfassende Behandlung von Schritt 1.
    2. Nun benötigen Sie eine grundlegende Vorstellung davon, wie sich das Standardverhalten in dieser Interaktion verhält Die Replikatordynamik von G.
    3. Das Hauptinteresse an EGT liegt derzeit in strukturierten Populationen. Hier wird typischerweise die Computermodellierung verwendet. Bevor ich mich jedoch der Simulation zuwende, versuche ich zunächst den besten mir bekannten analytischen Ansatz. Ich verwende die Ohtsuki-Nowak-Transformation auf G, um die Interaktion für zufällige Graphen (Ohtsuki & Nowak, 2006) analytisch zu lösen.
    4. Wenn mich die Frage immer noch interessiert und die Schritte 2 und 3 nicht alle Feinheiten des Systems erfassen, das ich untersuchen möchte, beginne ich mit der Erstellung eines Rechenmodells für mehrere Agenten. Ich stelle sicher, dass mein Modell auf den vollständig nicht sichtbaren Fall der Replikationsdynamik und den einfach strukturierten Fall der ON-Transformation skaliert werden kann. Wenn mein Rechenmodell mit dem analytischen Ansatz in diesen Regimen nicht übereinstimmt, mache ich mir Sorgen. Ansonsten fahre ich mit standardmäßigen agentenbasierten Modellierungstechniken fort. Persönlich codiere ich in Matlab. Ich habe noch nie eine moderne EGT-Simulation gesehen, die die Leistung von C / Fortran erfordert. Wie in einer anderen Antwort vorgeschlagen, können Sie NetLogo verwenden, wenn Sie keinen Programmierhintergrund haben. Ich habe jedoch die Erfahrung gemacht, dass die Modelle in der Regel einfach genug sind, um von Grund auf neu implementiert zu werden, und dass NetLogo-Modelle in der Regel einige sehr wichtige Feinheiten vor Ihnen verbergen (z. B. welche Reproduktionsregel verwendet werden soll: Tod-Geburt, Geburt-Tod, Nachahmung?) Und normalerweise führen zu schwächeren Papieren.
    5. ol>

      Beachten Sie das breite Thema. Diese Modelle werden typischerweise als Differentialgleichungen beschrieben, und dieser Ansatz wird agentenbasierten Modellen vorgezogen. Wenn ein Ansatz mit sauberen Differentialgleichungen jedoch nicht alle Feinheiten Ihres Studiums erfasst, wird ein ABM-Paradigma angewendet.

    emhart
    2012-09-10 04:46:08 UTC
    view on stackexchange narkive permalink

    Die spezielle Sprache, die ein Bioligist verwendet, hängt von den Kompromissen zwischen Geschwindigkeit und einfacher Programmierung ab. Viele Modelle sind in C oder Fortran geschrieben, wenn Geschwindigkeit an erster Stelle steht. Auf der anderen Seite schreiben die Leute Modelle in höheren Sprachen, wenn die Geschwindigkeit weniger wichtig ist. Dies wären Python, R, MatLab usw. In meinen Modellen, die hauptsächlich 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, spielt die Sprache keine Rolle. Algorithmen sollten sich plattformübergreifend ähnlich verhalten. Wenn Sie nach Beispielen für einfache Methoden suchen, um spieltheoretische Modelle zu codieren, ziehen Sie NetLogo in Betracht. Sie haben einige schöne Beispiele für die Spieltheorie.

    Dies. Ich würde sagen, die meisten Leute verwenden die Sprache, die sie am besten kennen. Für Nicht-Programmierer-Wissenschaftler ist das Python oder Perl, für Mathematiker Matlab, Mathematica oder Berkeley Madonna und für Programmierer C oder einen Nachkommen.
    Keine allgemein verwendeten DSLs? Liegt das daran, dass es zu schwer zu entwickeln ist oder dass es einfach niemand braucht?
    Wahrscheinlich beides. Berkeley Madonna ist speziell für das Modellieren gedacht, aber es ist schrecklich, daher ist es nicht so weit verbreitet.
    Ich würde sagen, dass Logo in Bezug auf DSLs ein DSL für einzelne Modelle ist, 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.
    shigeta
    2012-09-09 19:08:43 UTC
    view on stackexchange narkive permalink

    Es gibt keine einzige Möglichkeit, ein solches Modell zu erstellen. Sie können von einer einfachen mathematischen Aussage wie der Hamilton-Regel (rB> C) bis zu den chemischen Diffusionsmodellen variieren, die zur Beschreibung der Muster der Tierhautfarbe verwendet werden (wie Zebrastreifen, Leopard) Flecken und dergleichen).

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

    Eine andere gängige Art von Modell für die Evolutionsbiologie ist die Verwendung der Spieltheorie, bei der verschiedene Strategien gegeneinander gestellt werden können, wie im Wettbewerb Gefangenendilemma, den Dawkins im Selfish Gene beschreibt .

    Es geht weiter und weiter. Grundsätzlich wird die biologische Modellierung von den uns bekannten mathematischen Modellen angetrieben. Neue Modelle werden neue Paradigmen für die Funktionsweise der Biologie aufzeigen. Sie können sehr mathematisch sein, aber ihre relative Bedeutung und wann sie zutreffen und was sie bedeuten, sind eher Analogie als 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 einer allgemeinen 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 sich recht gut gegen andere Modelle behaupten können.

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

    Meine Frage richtete sich hauptsächlich an spieltheoretische
    Bitte beachten Sie die Aktualisierungen der Frage. Ich frage nicht, wie die Modelle getestet werden. Ich frage, welche Sprache (falls vorhanden) 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, einschließlich Excel.
    Hoffen wir, dass R für nichts anderes als Statistiken zum Standard wird - es ist die hässlichste Programmiersprache [seit J] (http://en.wikipedia.org/wiki/J_ (Programmiersprache)).


    Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
    Loading...