03.12.01 Fishmarket WS 2001 / 2002 Proseminar Softwareagenten Andre’ Kloth & Hynek Schlawack Fishmarket 1 03.12.01 Fishmarket Zusammenfassung Technische Details Agenten in FM Funktionsweise FM 96.5 FM 100 Vergleich zu FM 96.5 Vorführung Allgemeines Motivation Geschichte Eigenschaften Tournaments Gliederung 2 03.12.01 Motivation Fishmarket Entwickelt am Forschungsinstitut für Künstliche Intelligenz, Zentrum für Wissenschaftliche Forschung, Barcelona. FM ist ein elektronisches Auktionshaus, basierend auf dem traditionellen Fischmarkt, wo Agenten beliebiger Komplexität über ein verlässliches Netz, unter fairen, robusten und lebendigen Bedingungen handeln. Dieses Projekt untersucht, wie man eine agentennutzende Institution aufbaut, welche sich im Bereich des E−Commerce als nützlich erweisen könnte. Allgemeines 3 03.12.01 Version FM96.0 FM96.1 FM96.2 FM96.3 FM96.4 FM96.5 Plattform Netscape PVM MPI / C MPI / C EU−Lisp / MPI Java Fishmarket Belange Schnelle Entwicklung Synchronisation / Bieteprotokoll Offene Netzwerkumgebung mehr Agenten, Marktfunktionalität Agenteninteraktionen Modularität, Konkurrenz, Funktionalität Geschichte Vorteile Vorführbarkeit "proof−of−concept" Portabilität Zusammenfassung von Zusammenhängen Ausdruckskraft Erweiterbarkeit Allgemeines 4 03.12.01 Fishmarket Vorgeschlagen als Standard von einem allgemeinen Kommitee aus Händlern, Entwicklern und Benutzern Bibliothek−Spezifikation für das Austauschen von Nachrichten MPI (Message Passing Interface) Sourcecode ist öffentlich und wurde auf allen Arten von Computern compiliert, von Laptops bis zu CRAYs 5 Erläuterungen Softwarepaket, das erlaubt heterogene Sammlungen von vernetzten Unix− und/oder NT−Computern als einen grossen, parallelen Computer zu benutzen PVM (Parallel Virtual Machine) Allgemeines 03.12.01 Fishmarket Implementation hält sich an keine FIPA Standards Verwendet TCP zur Kommunikation Frei verfügbar Java−basierend, dadurch weitgehend systemunabhänig Fishmarket Allgemeines 6 Eigenschaften 03.12.01 Fishmarket Bewertung über eine Gewinn / Verlust Formel Hauptsächlich wird Java unterstützt Entwicklertemplates für C, Common Lisp und Java Erstmals 1997 − letztes 2000 Allgemeines Tournaments 7 03.12.01 Allgemeines Fishmarket Verlässliches Netzwerk (TCP) Multithreading Modulares Konzept von Agenten und Umgebung Beliebige Komplexität externer Agenten Einheitliche Schnittstelle Menschen können auch teilnehmen Realität FM 96.5 Marktdokumente Logdateien Waren / Bieter Objekte / Klassen downward bidding protocol („Abwärtsbieten“) Holländisches Auktionsverfahren Indentifikation der Agenten mit den Personen auf einem Fischmarkt Käufer, Verkäufer .. Modellbildung FM 96.5 8 03.12.01 (Zulasser der Käufer) Admission(Credit) Admission(BuyerCredit) Buyers’ admitter (Verwalter der Käufer) UpdateCredit(newCredit) BuyerExit(BuyerId) Buyers’ manager (Käufer) Buyer Fishmarket (Auktionär) Auctioneer Market−boss FM 96.5 (Zulasser der Verkäufer) Start(SellerId) NewGood(GoodRecord) Stop(SellerId) Sellers’ admitter (Verwalter der Verkäufer) Sale(SaleRecord) SellerExit(SellerId) Sellers’ manager (Verkäufer) Seller Teilnehmer 9 03.12.01 Zulassung von Verkäufern Auktion: Zulassung von Käufern Fishmarket Market−Boss authorisiert Starts / ReStarts 11 Auktionsverlauf Maximalpreis wird um festen Wert stets verringert bis es ein Gebot gibt Öffnen des Marktes (Market−boss) FM 96.5 03.12.01 Fishmarket FM−Spezifisch, ex. nicht im Realen Neustart es wird ein vorher gesetzter Minimalpreis erreicht Minimalpreis (Minimal price) Neustart 25% oberhalb der Kollision Kollision (collision) FM−Spezifisch, existiert nicht im Realen 12 Auktionsverlauf Ausschluss (expulsion), wenn Bieter nichtmal die Strafe zahlen kann Geldstrafe und Neustart 25% oberhalb des Gebots Ungedecktes Gebot (unsupported bid) Korrekter Verkauf (proper sale) Mögliche Fälle: FM 96.5 03.12.01 A: new offer Dec. Price Yes N = 0? A: assert N A: cnt. offers −> N Rec. Offers A: offer Start No Fishmarket Inc. Price A: declare collision Collision Yes N > 1? No 13 Auktionsverlauf Credit supervisor: Check offer + sell. eventuell: Strafe und Neustart B: accept to buy FM 96.5 03.12.01 Softwareagenten stellen weiterhin Dienstleistungen bereit Keine grossen Veränderungen am Modell Fishmarket Java−Code wurde optimiert Stark vereinfachte Ontologie Kommunikation zw. Plattform und externen Agenten Vermittler (interagents) Verwalter, Zulasser, Auktionär .. Nachfolgerversion von FM 96.5 FM 100 Aktuell 14 03.12.01 Parameter login / password − − Fishmarket Predicate admission bid exit Was können Käufer (Buyers) senden? FM 100 Käufer 15 03.12.01 Predicate accept credit open_auction open_round good offer sold collision closed_market Vermittler Fishmarket Parameter admission / exit initial_endowments auction_number round_number id type seller {prices} protocol good_id price buyerlogin price − Was können Vermittler (interagents) senden? (Auszug) FM 100 16 03.12.01 Prädikat Parameter\n Nachrichtenstruktur Fishmarket garantiert Ankunft aller Nachrichten Netzwerkschicht TCP FM 100 17 Kommunikation 03.12.01 Beispiel: Nachricht admission Brain §$%“3 accept admission open_auction 2 open_round 1 good g1 Dorsch Pinky 2300 1000 2500 DBP buyers Brain Chuck Tux offer g1 2300 .. collision 1350 offer g1 1600 bid sold Brain 1600 end_round end_auction Fishmarket 18 Kommunikation Semantik Käufer Brain bittet um Einlass Einlass gestattet Auktion 2 wird eröffnet Runde 1 wird eröffnet Ware g1, Dorsch, Verkäufer Pinky, Anfangs−, Minimal−, Wiederverkaufspreis, Protokoll Teilnehmende Käufer Ware g1 wird für 2300 angeboten .. Kollision bei 1350 − mehrere Gebote Ware g1 wird für 2600 angeboten Gebot abgeben Verkauft an Brain für 1600 Ende der Runde Ende der Auktion FM 100 03.12.01 BuyerTemplate − Objektbibliothek (Java / C / Lisp) Agenten Fishmarket Benutzung von Objekten / Instanzen etc. aus BuyerTemplate Enthält Verbindungs− und Interaktionsimplementation Strategie von höhster Bedeutung (KI) Entwicklung eigener Agenten FM 100 19 03.12.01 } .. Fishmarket public static void main(String argv[]) { // new firstagent(theLogin,thePassword).start(); } public void run() { // connection to market catchRemoteControl(); goIntoAuctionRoom(); while (IsMarketOn && theCurrentAuction <= theNumberOfAuctions) { Message m = theRemoteControl.receive(); System.out.println(„Received:“ +m); processMessage(m); to_bid_or_not_to_bid(); } } Beispiel: public class firstagent extends templates.BuyerTemplate { .. public void to_bid_or_not_to_bid() { //Gebote abgeben if (canIBid) if (theProtocol.equals(„DBP“)) { if (theBid == NO_BID) { theBid = theCurrentPrice; // calculateBid() System.out.println(„DBP BID:“ +thebid); theRemoteControl.bid(theBid); canIBid = false; } } } } FM 100 Agenten 20 03.12.01 Tournament Modus Gleicher Kredit (EUR) Fishmarket Identifikation durch Namen Nur vordefinierte Agenten dürfen teilnehmen Port > 1024 FM Plattform FM 100 Vorführung 21 03.12.01 Java Detailgetreue Modellierung eines Fischmarktes Fishmarket Möglicher Einsatz auch für realen Handel Kompatibilität Interessantes Anwendungsgebiet für Agentensystem Zusammenfassung Fishmarket 22