2016-04-25 11 views
0

Ich habe ein gemischtes Modell in Anylogic, wo einige meiner Agenten Teile (die auch Agenten sind) zu einem diskreten Ereignis Simulation QUEUE hinzufügen.Hinzufügen/Injizieren von Agenten zur Warteschlange in Anylogic

Das Abrufen von Agenten von einer QUEUE erfolgt über queue1.removeFirst();, aber ich kann nicht das Äquivalent finden, etwas hinzuzufügen. Ich habe addAgentToContents ohne Glück versucht ...

Antwort

1

Sie können einen Agenten nicht direkt zu einer Warteschlange hinzufügen.

Entweder Sie legen ein Quellobjekt davor und setzen die Eigenschaft "Ankunft defiend von" auf "inject()". Stellen Sie auch den Typ "New Agent" auf Part ein. Wenn Ihr Agent ein Teil zur Warteschlange hinzufügen möchte, rufen Sie source.inject() an und ein Teil wird der Warteschlange hinzugefügt.

Alternativ können Sie, wenn Sie den Teile-Agenten bereits erstellt haben, einen Port von Ihrem Agenten verwenden und ihn über einen Connector mit Ihrer Warteschlange verknüpfen. Beide Objekte befinden sich in der Bibliothek "Agents".

hoffe das hilft

+0

Danke Benjamin. Ich habe versucht, die Verbindung herzustellen, aber ich muss immer noch irgendwie den Part "senden". Es gibt die 'send'-Methode, aber sie bewältigt nur Nachrichten ... Weißt du, wie das geht? – jacandau

+0

Eine Nachricht kann ein beliebiger Typ sein, nicht nur eine Zeichenfolge. Wenn Sie das Javadoc für die Methode "send" für einen Port überprüfen, wird es Ihnen sagen, dass der Parameter "msg" vom Typ "Object" ist, was bedeutet, dass es alles sein kann. – Benjamin

+1

Beendet mit einem Enter-Prozessblock zum "Senden" des Part-Agenten zurück zum Prozessdiagramm – jacandau

Verwandte Themen