Ich bin ziemlich neu mit Java & AnyLogic also bitte auf mein Niveau für dieses.AnyLogic Agent-Based Simulationsagenten Wertübertragung
Gibt es eine Möglichkeit für Agenten, einen variablen Wert von einem anderen Agenten zu erhalten? In diesem Fall wären die Agenten vom selben Typ. Daher haben sie alle dieselben Variablen, aber da es Variablen mit zufälligen Anfangswerten und nicht Parametern sind, sind die Werte nicht gleich.
Agenten werden auch anfangs über Small-World-Verbindungen verbunden und diese Verbindungen werden während der Läufe nicht geändert.
Wie können Agenten, die beispielsweise in einem Ereignis auftreten, einen Variablenwert von einem anderen Agenten erfassen (z. B. erhält Agent i den Variablenwert X von Agent j). Dieser Wert würde in eine kleine Gleichung eingegeben werden, um den Wert der Variablen X des Agenten i zu modifizieren. Mit anderen Worten, der Agent I wäre von seinem verbundenen Agenten j betroffen und würde daher seinen Wert von X ändern.
Ich habe mehrere Kombinationen von .getConnectedAgent()
und .get
ohne Erfolg ausprobiert. Ich versuche jetzt, die Werte von X für jeden Agenten in eine Datenbank zu extrahieren und dann diese Datenbank zu verwenden, um den Wert von X von Agent j durch Agent i zu sammeln, aber ich mache dort keine Fortschritte.
Die Werte, die extrahiert werden müssen, sind double
s, aber ich könnte die Variablen in Ganzzahlen ändern, wenn es einfacher wäre.
Benjamin (gut) macht noch deutlicher beantworten, wenn Sie den Wert eines AnyLogic Variable x vom ersten Agenten Sie verbunden wurden erhalten wollten dann würden Sie 'getConnectedAgent (0) verwenden. x'. (Die Null in Klammern gibt AnyLogic * an, welcher * verbundene Agent verwendet werden soll, wobei Null der erste ist. Wenn Sie eine Small-World-Netzwerkumgebung verwendet haben, hat AnyLogic für Sie keine oder mehrere Verbindungen eingerichtet, wenn die Reihenfolge in diesem Fall lautet ein bisschen irrelevant.) –
Sie müssten auch testen, dass * tatsächlich * eine Verbindung für den aktuellen Agenten vorhanden war, die es möglicherweise nicht gibt, zum Beispiel würden Sie den Code in ein 'if (connectedNumber()> 0) 'blockieren. –