tac – trading agent competition1 programmierung von agenten in java: implementierung einer...
TRANSCRIPT
TAC – Trading Agent Competition 1
Programmierung von Agenten in JAVA:Implementierung einer Supply-Chain
WS 2003/04
Veranstalter: Tim Stockheim <[email protected]>Jochen Franke <[email protected]>Michael Schwind <[email protected]>
Donnerstag 16.00 – 18.00 Uhr – Raum 220 C
TAC – Trading Agent Competition 2
TAC
• Trading Agent Competition• www.sics.se/tac• Supply Chain Szenario, in dem mehrere Agenten
mit benutzerdefinierten Strategien in einem gemeinsamen Framework gegeneinander antreten
• Kooperationsprojekt der Carnegie Mellon University und Swedish Institute of Computer Science
• TAC Classic => Ursprüngliches Szenario mit Traveling Agent
• TAC SCM => Supply Chain Szenario
TAC – Trading Agent Competition 3
TAC SCM Szenraio
TAC – Trading Agent Competition 4
Akteure
• Agenten => Benutzerdefinierte Strategien, Konkurrenzkampf zwischen Agenten
• Customer => Kunden, die eine externe Nachfrage stellen und feste Lieferzeitpunkte einfordern
• Supplier => Hersteller, die auf Bestellung Rohstoffe produzieren
• Manufacturer => Produktionseinheit, die Rohstoffe in verkaufbare Fertiggüter transformiert
TAC – Trading Agent Competition 5
Agenten
• Agenten befinden sich im Spannungsfeld zwischen Kunden und Zulieferern
• Aufgaben der Agenten– Zuliefererkontrakte aushandeln– Für Kundenorders bieten– Tägliche Produktionsplanung
TAC – Trading Agent Competition 6
Ablauf TAC
TAC – Trading Agent Competition 7
Ablauf TAC
• Produktion von PCs, Varianten• CPUs, Mainboards, Speicher, Festplatten• Zwei Supplier für jeden Komponententyp
TAC – Trading Agent Competition 8
Einkauf von Rohmaterialien
• Agent gibt RFQs an Zulieferer aus
• Maximal 10 RFQs pro simuliertem Tag
• RFQ spezifiziert Menge und Lieferdatum
• Zulieferer sammelt alle RFQs und bearbeitet sie sequentiell
• RFQs eines Agenten werden als RFQ-Bundle ausgewertet
TAC – Trading Agent Competition 9
Auswahl RFQ-Bundle
• Zufällige Auswahl eines RFQ-Bundles
• QuantityRequested=Summe aller nachgefragten Mengen
• QuantityPurchased=Summe der tatsächlich gekauften Menge
• Weight=min(0.5, order ratio)
weight
weighthkeitrscheinlicAuswahlwah A
A
questedQuantityRe
rchasedQuantityPuRatioOrder
TAC – Trading Agent Competition 10
Offer-Bundles
• Zulieferer bearbeiten alle RFQs und liefern gegebenenfalls Offers zurück
• Falls RFQ komplett erfüllt werden kann, wird entsprechende Offer zurückgegeben
• Falls RFQ nicht erfüllt werden kann, werden zwei Offers zurückgegeben– Offer1 mit passender Menge und späterer
Fälligkeit– Offer2 mit kleinerer Menge und passender
Fäligkeit• Agent kann eines der alternativen Angebote
annehmen
TAC – Trading Agent Competition 11
Beispiel
TAC – Trading Agent Competition 12
Zulieferer - Verhalten
• Zulieferer haben zwei Aufgaben– Produktion und Versand von Komponenten
an die Agenten– Verfügbare Produktionskapazität planen,
um den Agenten Offers bieten zu können
TAC – Trading Agent Competition 13
Zulieferer - Annahmen
• Zulieferer operieren auf Basis einer make-to-order Strategie
• Sollten mehrere Tage notwendig sein, um eine Order zu befriedigen, werden die jeweils überschüssiges Komponenten in einem Lager abgelegt, Lagerkosten sind null
• Orders werden stets am Fälligkeitsdatum ausgeliefert, überschüssige Produktionskapazität wird stets aufgebraucht
TAC – Trading Agent Competition 14
Zulieferer – Annahmen 2
• Produktionskapazität wird durch random walk bestimmt
• In der Planung des Zulieferers wird angenommen, dass die zukünftige Kapazität der nominalen Kapazität entspricht
• Falls eine Order wegen unzureichender Kapazität nicht erfüllt werden kann, bekommt diese eine höhere Priorität vor Orders mit späterem Liefertermin zugewiesen
TAC – Trading Agent Competition 15
Zulieferer Produktionskapazität
) ) 1)-(dC-C(01.0C*0.05)05,random(-0.1)-(dC max(0,)d(C pnominalnominalpp
Formel zur Bestimmung der Kapazität eines Zulieferers an einem Tag d
Kapazität wird nicht negativ,
untere Grenze ist null
Kapazität des Vortages
Random Walk Komponente
Abweichung des Vortages zur nominalen Kapazität wird stets um 1% reduziert, sowohl
Über- als auch Unterschreitungen
werden somit abgedämpft
TAC – Trading Agent Competition 16
Zulieferer Preisfunktion
i*C
i)(dC*0.5-1)(componentPi)P(d
nominal
availablebase
Basispreis der Komponente
Diskontierungsfaktor
mit )(j)C-(Ci)(dC1idj
djorderednominalavailable
Freie Kapazität zum Zeitpunkt j
TAC – Trading Agent Competition 17
Konsumenten
• Konsumenten erstellen jeden simulierten Tag RFQs
• RFQs spezifizieren– Bestelltyp– Bestellmenge– Fälligkeitsdatum– Reservationspreis (maximaler Preis, den
der Konsument bereit ist zu zahlen)
TAC – Trading Agent Competition 18
Konsumenten 2
• Anzahl von RFQ haben obere und untere Grenze• Anzahl von RFQs zwischen den Grenzen variieren
und folgen einem Random Walk• RFQ spezifiziert auch ein Penalty in Form eines
Prozentsatzes des Reservationspreises, das bei Fälligkeitsüberschreitung eingefordert wird
• Bei Fälligkeitsüberschreitung werden Strafzahlungen bis zu fünf simulierten Tagen fällig, dann wird die Bestellung gelöscht
• Konsument nimmt Offer des Agenten mit dem niedrigsten Preis an, das die geforderte Quantität zum geforderten Stichtag mit einem Preis kleiner als der Reservationspreis anbietet
TAC – Trading Agent Competition 19
Bank
• Die verfügbaren Mittel eines Agenten werden von einer Bank verwaltet
• Negative Kontostände sind erlaubt
• Finanzmittel des Agenten werden mit einem fixierten Zinssatz verzinst (sowohl Guthaben als auch Defizit)
TAC – Trading Agent Competition 20
Informationen
• Agenten erhalten Informationen aus verschiedenen Quellen
• RFQs der Konsumenten• Offers der Zulieferer• Preisintervalle der bestellten PCs eines Tages• Periodische Markt-Reports (alle 20 TAC-Tage)
– Aggregierte Angaben der von den Zulieferern produzierten Mengen
– Aggregierte Angaben der von den Zulieferern abgesetzten Mengen
– Durchschnittlicher Preis und Anzahl der verkauften PCs eines jeden Typs
TAC – Trading Agent Competition 21
Parametrisierung
TAC – Trading Agent Competition 22
Installation der Testumgebung
TAC – Trading Agent Competition 23
Installation der Testumgebung
• Beispielagent TAC• Server-Modul TAC• Server-Modul fungiert als Host für die
Agenten und eignet sich zum Test des eigenen Agenten
• Download beider Pakete von http://www.sics.se/tac
• Server und Agenten-Modul in jeweils eigene Verzeichnisse entpacken
TAC – Trading Agent Competition 24
Server konfigurieren und starten
• Konfigurationsdatei im Ordner /config/server.conf
• server.name festlegen auf localhost (oder den DNS-Namen des Computers)
• admin.password bei Bedarf auf ein eigenes Passwort setzen
• Server auf der Kommandozeile starten mit java –jar scmserver.jar
TAC – Trading Agent Competition 25
Server konfigurieren und starten (2)
• Browser aufrufen: http://127.0.0.1:8080• Neuen Agenten anmelden (Register new user)
TAC – Trading Agent Competition 26
Agent konfigurieren und starten
• Agent zunächst kompilieren durch Aufruf von compile.bat auf der Kommandozeile
• Agent konfigurieren in der Datei aw.conf– agentName => Name des Agenten– agentPassword => Passwort des Agenten– Werte identisch zur Serverkonfiguration wählen– serverHost => localhost
• Agent von der Kommandozeile starten mit java –jar scmaw.jar
TAC – Trading Agent Competition 27
Spielablauf
• Agent startet automatisch Statusbericht
TAC – Trading Agent Competition 28
Spielablauf
• GameViewer auf der Serverkonfigurationsseite starten