2016-12-07 1 views
0

In AnyLogic v7 möchte ich ein Ereignis verwenden, um alle meine Agenten zu Beginn eines jeden Arbeitstages auf einen bestimmten Platz im Prozessablauf zurückzusetzen. Ich habe das Ereignis erstellt und habe eine Schleife, die alle Agenten durchlaufen kann, aber ich bin nicht sicher, welche Eigenschaft oder Methode ich den Agenten tatsächlich zu einem bestimmten Verzögerungsblock verlagern muss. Vielen Dank!Wie kann ich in AnyLogic v7 den Platz eines Agenten in einem Prozessfluss durch Java ändern?

Antwort

1
  1. Setzen Sie einen Enter Block und verbinden Sie ihn mit dem Block, der "einen bestimmten Ort" widerspiegelt.
  2. Bei Agenten Leinwand, Anruf-Code wie: main.enter.take(currenBlock().remove(this));

currentBlock().remove(this) entfernt das Mittel selbst aus seinem aktuellen Flußdiagrammblock und gibt es zurück. enter.take(...) injiziert Agent in Flussdiagramm, Enter Block sofort Agent an den nächsten Block weiterleitet. Es funktioniert wie Source Block, aber hier injiziert es bereits vorhandenen Agenten, während Source neuen Agenten erstellt. Main. ist ein Verweis auf einen Agenten der obersten Ebene, der ein Ablaufdiagramm enthält.

+0

Sie müssen sich auch über mögliche Nebenwirkungen des Verschiebens der Agenten Gedanken machen; Wenn zum Beispiel der ursprüngliche Ort, an dem sie sich befanden, ein anderes Verhalten im Modell ausgelöst hat, muss dies möglicherweise auf irgendeine Weise "abgebrochen" werden. In einem reinen DES-Modell (Prozessmodellierung) ist dies normalerweise kein Problem. –

Verwandte Themen