2009-06-24 2 views
3

Ich möchte ein Multi-Agenten-Simulationsmodell für einen echten Wort-Herstellungsprozess erstellen, um einige Dispatching-Regeln zu bewerten. Die Simulation muss Ereignisprotokolle erstellen, um den zeitlichen Effekt der Dispatching-Regeln im Vergleich zu den realen Produktionsereignisprotokollen zu bewerten.Howto Design einer Clock-gesteuerten Multi-Agenten-Simulation

Wie kann ich die "aktuelle Simulationszeit" in diese Art von multi-agent, Message Passing Intensive Simulation einbeziehen?

Hintergrund:
Die klassische diskrete Ereignissimulation (die die Zeit-Fortschritt schön Griffe) kann hier nicht angewendet werden, da die Agenten im System relativ komplexes Verhalten und Routing-Anforderungen darstellen sowie die Zuteilungsregeln verlangen, daß sie häufig kommunizieren . Diese und andere Prozesskomplexitäten schließen auch einen zentralisierten Planungsansatz aus.

In der Fertigungswissenschaft gibt es Tausende von Papieren, die eine Multi-Agenten-Simulation für ihre Lösung einiger fertigungstechnischer Probleme verwenden. Ich habe jedoch noch kein Papier gefunden, das die inneren Abläufe oder Implementierungsdetails dieser Simulationen im erforderlichen Detail beschreibt.

Leider ist die Verwendung der kürzesten Prozesszeit für die diskrete Zeit in einem System möglicherweise nicht möglich, da die Verarbeitungszeit zwischen 0,1 Sekunden und 24 Stunden liegt. Es besteht die Möglichkeit, dass meine Simulation später für Was-wäre-wenn-Auswertungen in einem Projekt verwendet wird, so dass die Simulation so schnell wie möglich ablaufen muss - keine Option für Übernacht-Simulationsläufe.

Die Problemgröße ist etwa 500 Ressourcen und 1000 - 10000 Produktagenten, die meisten von ihnen ist fertig und nicht an weiteren Kommunikation oder Ressourcenbelegung teilnehmen.

Folglich können neue Ereignisse im Ergebnis der Kommunikation einen Agenten veranlassen, etwas zu tun, bevor das ursprüngliche "nächste Mal" -Ereignis eintreffen würde. Zum Beispiel ist ein Agent derzeit auf einer Ressource blockiert, die eine Stunde dauert. Ein anderer Agent mit höherer Priorität benötigt diese Ressource jedoch sofort und fordert den ersten Agenten auf, diese Ressource freizugeben.

In gewisser Hinsicht brauche ich einen Weg, um eine Mischung aus klassischer Message-Passing-Agent-Simulation und der diskreten Ereignis-Simulation zu erstellen.

Ich dachte über einen Vermittler-Agent nach, der an jeder Nachricht beteiligt ist - ein Nachrichten-Router und Zeit-Enforcer, der die Nachrichten und die Timer-Tick-Ereignisse sendet. Der Vermittleragent führt auch eine Liste der nächsten Ereigniszeiten für verschiedene Agenten. Ich denke jedoch, dass es einen besseren Weg geben sollte, mein Problem zu lösen, da das Konzept einen enormen Druck auf den Vermittler ausübt.

aktualisieren

Es dauerte eine Weile, aber es scheint, dass ich es geschafft, eine Mini-Rahmen zu schaffen und den DES und Agenten-Konzept kombiniert in einem. Ich bin sicher, es ist nichts neues, aber zumindest einzigartig: http://code.google.com/p/tidra-framework/ wenn Sie interessiert sind.

Antwort

4

Dieses Problem klingt, als ob es durch die Verwendung parallel diskrete Ereignissimulation in Angriff genommen werden sollte - den Mediator Agenten Sie zu implementieren planen (‚in jeder Nachricht beteiligt ist‘, ‚sendet Nachrichten und Zeitgeberablaufstatusbit Ereignisse rund um‘) scheint gerade die Aufgabe eines diskreten Event-Simulators zu übernehmen. Sie können diese Skalierung auf die gewünschte Problemgröße bringen, indem Sie mehrere solcher Simulatoren parallel verwenden und dann einen Synchronisationsalgorithmus verwenden, um die Kausalität usw. beizubehalten (siehe z. B. this book für Details). Natürlich erfordert dies einige erhebliche Anstrengungen, und Sie könnten besser daran sein, die sequentiellen Algorithmen zuerst auszuprobieren.

Eine schöne Möglichkeit, die klassische DES-Ansicht logischer Prozesse (= Agenten) zu verbessern, die über Ereignisse miteinander kommunizieren, könnte darin bestehen, einige Ideen aus anderen Formalismen zur Beschreibung von Systemen mit diskreten Ereignissen wie DEVS einzufügen. In DEVS kann jede Entität die Dauer angeben, in der sie sich in einem bestimmten Zustand befindet (z. B. der Agent blockiert eine Ressource) und wird nur durch eingehende Nachrichten unterbrochen (und ändert dann ihren Status entsprechend, z. B. der Agent gibt die Ressource frei).

BTW In welchem ​​Sinne denken Sie, dass die Agenten zu komplex sind, um mit der Simulation von diskreten Ereignissen behandelt zu werden? Wenn Sie jeden Agenten als einen logischen Prozess betrachten, spielt es keine Rolle, wie komplex er vom Standpunkt der Simulation ist - oder bekomme ich hier etwas falsch?

+0

Vielen Dank. Sie haben Recht, dieses Problem ist näher an DES. Ich hätte diesen Satz vielleicht falsch verstanden. Meine Arbeit ist Teil eines Forschungsprojekts, in dem meine Colleges die DES-basierte Simulation durchführen. Ich habe die Aufgabe, einen agentenbasierten Ansatz für das zugrundeliegende Problem zu finden und umzusetzen. Die DES-Jungs planen jedoch nicht, diese Art der Entscheidungsfindung oder Optimierung mit einzubeziehen, die ich mit meiner Simulation erreichen möchte. – akarnokd

+0

Danke für die Erklärungen und die Hinweise. – akarnokd

+0

+1 für den BTW Teil, ich sehe nicht, wie es für DES zu komplex sein könnte –