Architektur
Es muss eine Architektur entstehen, die mit einer beliebigen Anzahl an Agents umgehen kann. Dafür soll es egal sein wann ein Agent startet und sich der Flotte anschließt.
Kommunikation
Um die Kommunikation der Agents zu ermöglichen soll ein Strategypattern implementiert werden, dass auf einem Nachrichtenformat aufbaut. Die erste Strategie kann eine Prozessinterne Kommunikation sein, die zwischen den einzelnen Agent-Threads arbeitet. Dies kann später leicht auf verteilte Prozesse oder verteilte Systeme erweitertet werden. Für die einzelnen Nachrichten muss ein Format definiert werden. Wie zum Beispiel ein Header-Value Format mit definierten Headern.
Shared Knowledge
Es besteht die Anforderung, dass alle Agenten ein gemeinsames Wissen haben. Dieses besteht aktuell aus dem Graphen mit all seinen Kosten. Dies sollte eine eigene Art Bag-Objekt sein, dass in der ersten Ausbaustufe beim Erstellen eines Agenten-Threads mit übergeben werden kann. In weiteren Ausbaustufen könnte dies mit dem Nachrichtenmodell dann durch einen eigenen Header an neue Agenten übergeben werden.
Dies soll ein erster Entwurf für den Graphen sein, der in den Clients verwendet werden kann.
Kosten
Auch die Ermittlung der Kosten sollte in einem Strategypattern erfolgen. Dabei sollten Schnittstellenmethoden bereitgestellt werden, die aus den subjektiven Kosten, die objektiven Kosten berechnen können und eine zusätzliche unabhängige Strategy die für das Erstellen der Gesamtkosten zuständig ist.