Entwicklung einer taktgesteuerten Multiagentensimulation

Ich möchte ein Multi-Agent-Simulationsmodell für einen realen Wortherstellungsprozess erstellen, um einige Versandregeln zu bewerten. Die Simulation muss Ereignisprotokolle erstellen, um den Zeiteffekt der Dispositionsregeln im Vergleich zu den tatsächlichen Ereignisprotokollen der Herstellung zu bewerten.

Wie kann ich die 'aktuelle Simulationszeit' in diese Art der intensiven Multi-Agent-Message-Passing-Simulation einbinden?

Hintergrund:
Die klassische diskrete Ereignissimulation (die die Zeitverschiebung gut handhabt) kann hier nicht angewendet werden, da die Agenten im System ein relativ komplexes Verhalten und Routing-Anforderungen darstellen und sie aufgrund der Dispatching-Regeln häufig kommunizieren müssen. Diese und andere komplexe Prozesse schließen auch einen zentralisierten Planungsansatz aus.

In der Fertigungswissenschaft gibt es Tausende von Arbeiten, die eine Multiagentensimulation verwenden, um ein fertigungsbezogenes Problem zu lösen. Ich habe jedoch noch kein Dokument gefunden, in dem die internen Abläufe oder Implementierungsdetails dieser Simulationen im erforderlichen Detail beschrieben werden.

Leider kann die Verwendung der kürzesten Prozesszeit für zeitdiskrete Schritte in einem System nicht möglich sein, da der Bereich der Prozesszeit zwischen 0,1 s und 24 Stunden liegt. Es besteht die Möglichkeit, dass meine Simulation später für Was-wäre-wenn-Bewertungen in einem Projekt verwendet wird, sodass die Simulation so schnell wie möglich ausgeführt werden muss - keine Option für Nachtsimulationen.

Die Problemgröße beträgt ungefähr 500 Ressourcen und 1000 - 10000 Produktagenten, die meisten davon sind bereits fertig und nehmen an keiner weiteren Kommunikation oder Ressourcenbelegung teil.

Als Ergebnis der Kommunikation können neue Ereignisse einen Agenten dazu veranlassen, etwas zu tun, bevor sein ursprüngliches "nächstes Mal" -Ereignis eintrifft. Beispielsweise ist ein Agent derzeit für eine Ressource mit einer Dauer von einer Stunde gesperrt. Ein anderer Agent mit höherer Priorität benötigt diese Ressource jedoch sofort und fordert den ersten Agenten auf, diese Ressource freizugeben.

In gewissem Sinne brauche ich einen Weg, um eine Mischung aus klassischer Message Passing Agent-Simulation und diskreter Ereignissimulation zu erstellen.

Ich betrachtete einen Vermittleragenten, der an jeder Nachricht beteiligt ist - einen Nachrichtenrouter und einen Time Enforcer, der die Nachrichten und die Timer-Tick-Ereignisse umgibt. Der Vermittleragent führt auch eine Liste der nächsten Ereigniszeiten für verschiedene Agenten. Meines Erachtens sollte es jedoch einen besseren Weg geben, um mein Problem zu lösen, da das Konzept einen enormen Druck auf den Vermittler ausübt.

Aktualisieren

Es hat eine Weile gedauert, aber es scheint, dass ich es geschafft habe, ein Mini-Framework zu erstellen und das DES- und das Agent-Konzept in einem zu kombinieren. Ich bin sicher, es ist nichts Neues, aber zumindest einzigartig:http://code.google.com/p/tidra-framework/ wenn Sie interessiert sind.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage