p - of Hynek Schlawack

Werbung
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
Herunterladen