trading agent competition

58
Υλοποίηση πράκτορα TAC Classic Αποστόλου Μιχάλης Π04008 Γεωργάκης Σπύρος Π04021 Κοκορδέλης Κωνσταντίνος Π04059 Τζιάλλας Αλέξης Π04142 Χουβαρδάς Παναγιώτης Π04159

Upload: hector

Post on 08-Jan-2016

33 views

Category:

Documents


0 download

DESCRIPTION

Υλοποίηση πράκτορα. TAC Classic. Trading Agent Competition. Αποστόλου Μιχάλης Π04008 Γεωργάκης Σπύρος Π04021 Κοκορδέλης Κωνσταντίνος Π04059 Τζιάλλας Αλέξης Π04142 Χουβαρδάς Παναγιώτης Π04159. Εισαγωγή. Το TAC Classic προσομοιώνει ένα περιβάλλον αγοράς ταξιδιωτικών πακέτων - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Trading Agent Competition

Υλοποίηση πράκτορα

TAC Classic

Αποστόλου Μιχάλης Π04008Γεωργάκης Σπύρος Π04021Κοκορδέλης Κωνσταντίνος Π04059 Τζιάλλας Αλέξης Π04142Χουβαρδάς Παναγιώτης Π04159

Page 2: Trading Agent Competition

Το TAC Classic προσομοιώνει ένα περιβάλλον αγοράς ταξιδιωτικών πακέτων

Ο τελευταίος διαγωνισμός διεξήχθη το 2006 με νικητή τον πράκτορα RoxyBot-06

Σε κάθε παιχνίδι συμμετέχουν 8 πράκτορες

Διάρκεια κάθε παιχνιδιού: 9 λεπτά

Page 3: Trading Agent Competition

Κάθε πράκτορας έχει 8 πελάτες (σύνολο 64)

Πρέπει να εξασφαλίσει ένα ταξιδιωτικό πακέτο το οποίο θα ικανοποιεί στο μέγιστο δυνατό τους πελάτες

Κάθε πακέτο περιλαμβάνει 3 είδη αγαθών: Αεροπορικά Εισιτήρια Δωμάτια Ξενοδοχείων Εισιτήρια Διασκέδασης

Τα ταξίδια διαρκούν μέχρι και 5 μέρες

Page 4: Trading Agent Competition

Δημοπρασίες Αεροπορικών Εισιτηρίων: Ένας δημοπράττης: Εταιρεία TACAir 8 συνολικά δημοπρασίες

▪ 4 δημοπρασίες άφιξης▪ 4 δημοπρασίες αναχώρησης

Page 5: Trading Agent Competition

Continuous one-sided auctions Οι 8 δημοπρασίες κλείνουν ταυτόχρονα στο

τέλος του παιχνιδιού Η TACAir ανακοινώνει καινούριες τιμές κάθε

10’’ Κάθε bid ταιριάζει άμεσα ή παραμένει μέχρι

να ανακοινωθεί τιμή χαμηλότερη απο το bid Η αρχική τιμή επιλέγεται τυχαία από το

[250,400] Οι τιμές παραμένουν πάντα εντός του

[150,800]

Page 6: Trading Agent Competition

Οι διακυμάνσεις επιλέγονται ομοιόμορφα από τα διαστήματα: [-10, x(t)] αν x(t) > 0 [x(t), 10] αν x(t) < 0 [-10, 10] αν x(t) = 0

Όπου x(t) = 10 + (t/540)*(z-10) t : o τρέχων χρόνος του παιχνιδιού z : άγνωστη μεταβλητή εντός [-10,30],

σταθερή και διαφορετική σε κάθε δημοπρασία

Page 7: Trading Agent Competition

Δύο ξενοδοχεία: 4 δημοπρασίες για Tampa Towers (TT ή Good Hotel) 4 δημοπρασίες για Shoreline Shanties (SS ή Cheap

Hotel) 8 συνολικά δημοπρασίες:

Auctions τύπου standard English Ascending multi-unit Kλείνουν μια κάθε λεπτό με τυχαία σειρά

Page 8: Trading Agent Competition

16 δωμάτια διατίθενται σε κάθε δημοπρασία

Στο τέλος κάθε λεπτού η 16η καλύτερη προσφορά καθορίζει την Ask Price

Αν κλείσει το λεπτό αυτό τα δωμάτια δίνονται στις 16 προσφορές που ήταν μεγαλύτερες της Ask Price

Κάθε προσφορά (bid) πρέπει να είναι μεγαλύτερη της Ask Price

Στην περίπτωση που ήδη είχαμε αποστείλει προσφορά η καινούρια προσφορά πρέπει να έχει ίση η μεγαλύτερη ποσότητα

Δεν είναι δυνατή η απόσυρση προσφοράς

Page 9: Trading Agent Competition

Στο τέλος κάθε λεπτού οι δημοπρασίες που δεν κλείνουν ανακοινώνουν την τιμή HQW.

Αντιπροσωπεύει τι θα είχαμε κερδίσει αν η δημοπρασία έκλεινε το λεπτό αυτό.

Page 10: Trading Agent Competition

3 είδη entertainment tickets 4 δημοπρασίες για κάθε είδος

εισιτηρίου(12 συνολικά)

Οι πελάτες μπορούν να χρησιμοποιούν ένα εισιτήριο την ημέρα

Page 11: Trading Agent Competition

Υπάρχουν 8 εισιτήρια για κάθε είδος ψυχαγωγίας για κάθε μέρα (8*3*4=96)

Μοιράζονται πακέτα των 12 στους πράκτορες: 4 εισιτήρια ίδιου τύπου για μέρες 1 ή 4 4 εισιτήρια ίδιου τύπου για μέρες 2 ή 3 2 εισιτήρια ίδιου τύπου για τις μέρες 1 ή 4

▪ Διαφορετικά απο τα πρώτα 4 2 εισιτήρια ίδιου τύπου για τις μέρες 2 ή 3

▪ Διαφορετικά από τα πρώτα 4

Page 12: Trading Agent Competition

Δημοπρασίες τύπου Double Ascending Auctions

Οι πράκτορες μπορούνε να πουλάνε και να αγοράζουν Τα bids αγοράς ταιριάζουν άμεσα με τα

χαμηλότερα bids πώλησης Τα bids πώλησης ταιριάζουν άμεσα με

τα υψηλότερα bids αγοράς

Page 13: Trading Agent Competition

Οι δημοπρασίες διεξάγονται σύμφωνα με το ακόλουθο πρωτόκολλο1. Ένας πράκτορας υποβάλλει μια προσφορά

στην δημοπρασία2. Η δημοπρασία ανανεώνει την τιμή

προσφοράς, υποδεικνύοντας την τρέχουσα τιμή

Κάθε bid έχει την μορφή: “((q1p1) (q2p2) … (qnpn))”

Όπου q η ποσότητα και p η τιμή

Page 14: Trading Agent Competition

Παράδειγματα: Πτήσεις:

▪ ((-64 300))▪ ((5 370))▪ ((3 290))

Ξενοδοχεία▪ ((-16 0))▪ ((2 4) (6 6)), ((4 8)), ((7 10))

Εισιτήρια Διασκέδασης▪ ((-2 $40) ▪ (3 $20) (1 $10)) ▪ ((-1 10) (1 20))

Page 15: Trading Agent Competition

Προτιμήσεις πελατών: PA,PD - Προτιμώμενες μέρες ταξιδιού HP - Bonus για ύπαρξη Good Hotel є [50,150] AW,AP,MU - Bonus για ύπαρξη Entertainment

є [0,200]Υπολογισμός utility:

U= 1000 – travel_penalty + hotel_bonus + fun_bonus▪ travel_penalty = 100 * ( |AA – PA| + |AD - PD| )▪ hotel_Bonus = TT? * HP ▪ fun_Bonus = ( AW? * AW ) + ( AP? * AP )+ ( MU? * MU )

Page 16: Trading Agent Competition

Τελικό Score: Score = Ολικό_Utility –

Όλικό_Κόστος Ποινή $200 για αρνητικά own δηλαδή

για πώληση εισιτηρίων τα οποία δεν είχαμε (entertainment)

Page 17: Trading Agent Competition

Κάθε 10 δευτερόλεπτα: Αποθήκευση τρεχουσών τιμών Προβλέψεις τιμών

▪ Πρόβλεψη Αεροπορικών Εισιτηρίων▪ Πρόβλεψη Δωματίων Ξενοδοχείων

Εύρεση βέλτιστου πλάνου▪ Καθορισμός απαιτούμενων αγαθών

Αποστολή bids

Page 18: Trading Agent Competition

TACair – Η μοναδική αεροπορική εταιρία

8 Δημοπρασίες Άφιξη τις μέρες 1-4 Αναχώρηση τις μέρες 2-5

Την Tacair αντιπροσωπεύει ένας agent δημοπράττης

Page 19: Trading Agent Competition

Ανακοινώνει τιμές κάθε 10 sec σε κάθε μία από τις δημοπρασίες Ανακοινώνει τιμές στο διάστημα [150-800] Διάστημα πρώτης τιμής [250-400] Η αύξηση ή μείωση επιλέγεται από τα διαστήματα 

[-10, x(t)] αν x(t) > 0 [x(t), 10] αν x(t) < 0 [-10, 10] αν x(t) = 0

x(t) = 10 + (t/540)*(z-10) z E [-10 , 30] To z παράγεται από μία τυχαία στοχαστική συνάρτηση και είναι σταθερό για

κάθε μία από τις δημοπρασίες Για κάθε z παίρνουμε διαφορετικό x(t) και κατ’ επέκταση διαφορετικό

διάστημα Το x(t) – ορίζει διάστημα επιλογής της διαφοράς Ο τρόπος επιλογής μίας τιμής από το διάστημα ακολουθεί ομοιόμορφη

κατανομή

Page 20: Trading Agent Competition

Έστω z = 19Για παράδειγμα την χρονική στιγμή

t=60 x(t)=11 άρα το διάστημα είναι [-10,11].

Επιλέγεται μια διακύμανση ομοιόμορφα από το διάστημα αυτό.

Page 21: Trading Agent Competition

Το Ζ είναι άγνωστο στον πράκτορα μας

Σε κάθε χρονική στιγμή υπολογίζουμε τα διαστήματα για όλα τα Z

Αποκλείουμε τα Ζ των οποίων τα διαστήματα δεν περιέχουν την διακύμανση που σημειώθηκε.

Page 22: Trading Agent Competition

Παράδειγμα:

Την χρονική στιγμή t=60 σημειώνεται η διακύμανση: +12

Για Ζ=19 προκύπτει το διάστημα [-10,11] έτσι το Ζ αυτό αποκλείεται

Τα υπόλοιπα αποκτούν μεγαλύτερη πιθανότητα

Page 23: Trading Agent Competition

Σε κάθε νέα τιμή αποκλείουμε κάποια Ζ και στην συνέχεια ανανεώνουμε τις πιθανότητες των υπόλοιπων

Για τα εναπομείναντα Ζ «εξομοιώνουμε» μια διακύμανση τιμών μέχρι το τέλος του παιχνιδιού και επιλέγουμε την ελάχιστη από αυτές

Τέλος, υπολογίζουμε τον μέσο όρο τους

Page 24: Trading Agent Competition

Για κάθε ένα από τα z ϵ [-10 , 30] Υπολογίζουμε το διάστημα για το x(t,z). Αν η τελευταία διακύμανση που σημειώθηκε είναι εντός του

διαστήματος: Για κάθε χρονική στιγμή (t’=t+10 … t’=540)

▪ Το x(t’, z) θα μας δώσει το διάστημα διακύμανσης▪ Από το διάστημα επιλέγουμε το μέσο του , αφού το σύστημα θα επιλέξει μία από τις τιμές του θεωρώντας ομοιόμορφη κατανομή

Προσθέτοντας αυτή την τιμή στην προηγούμενη και αποθηκεύοντας τη μικρότερη θα πάρουμε μία ελάχιστη τιμή που αντιστοιχεί στο κάθε z

Υπολογίζουμε τον μέσο όρο της ελάχιστης τιμής που δίνει κάθε z ∑ P(z)* min[z]

Page 25: Trading Agent Competition
Page 26: Trading Agent Competition
Page 27: Trading Agent Competition

Ο αλγόριθμος βασίζεται στην ανάλυση του πράκτορα Walverine

Υπολογίζεται το Walrasian competitive equilibrium: Οι τιμές των ξενοδοχείων θα αλλάξουν

για να εξισορροπήσουν την προσφορά και την ζήτηση

Page 28: Trading Agent Competition

Γίνεται χρήση της μεθόδου tatonnement:

Όπου: το διάνυσμα των τιμών μια

συγκεκριμένη χρονική στιγμή t (8 τιμές) η ζήτηση για τις τιμές αυτές ένα ποσοστό προσαρμογής

Page 29: Trading Agent Competition

Παράδειγμα: Τρέχουσα τιμή: 30$ Ζήτηση δωματίων: 20 = 2 Τότε:

▪ Νέα_τιμή = 30 + 2 * (20-16) = 38

Page 30: Trading Agent Competition

Οι τιμές στα ξενοδοχεία όμως δεν πέφτουν ποτέ:

Για το μια ενδεικτική τιμή είναι:

Το μόνο πρόβλημα που απομένει είναι ο υπολογισμός του .

Page 31: Trading Agent Competition

Για την ζήτηση μιας δημοπρασίας ισχύει:

Επιχειρούμε μια πιθανοτική προσέγγιση ανά πελάτη:

Γνωρίζοντας ότι ο TAC Server κατανέμει τις απαιτήσεις των πελατών ομοιόμορφα:

Page 32: Trading Agent Competition

Οι απαιτήσεις κάθε πελάτη καθορίζουν τρία πράγματα: Την προτιμώμενη μέρα άφιξης και αναχώρησης Το bonus για το ξενοδοχείο Tampa Towers (hp) Τα bonus για κάθε τύπο Entertainment (aw,ap,mu)

Λαμβάνοντας υπόψη τις μέσες τιμές των προτιμήσεων και τις τρέχουσες τιμές: Κάνουμε σύντομο σχεδιασμό Υπολογίζουμε πόσο πιθανό είναι να βρίσκεται η

δημοπρασία που εξετάζουμε εντός σχεδίου

Page 33: Trading Agent Competition

Συνδυασμοί ημερών

Άφιξη

Αναχώρηση

1 2 3 4 5

Άφιξη

Αναχώρηση

1 2 3 4 5

Άφιξη

Αναχώρηση

1 2 3 4 5

Άφιξη

Αναχώρηση

1 2 3 4 5

Page 34: Trading Agent Competition

Γνωρίζοντας ότι τα pa,pd επιλέγονται ομοιόμορφα από τα 10 πιθανά ζευγάρια:

Για κάθε pa,pd προκύπτει ένα βέλτιστο ταξίδι r*(pa,pd,h)

Page 35: Trading Agent Competition

Ένα βέλτιστο ταξίδι r*(pa,pd,h) υπολογίζεται λαμβάνοντας υπόψη: Τα αεροπορικά εισιτήρια Την τιμή του ξενοδοχείου h Τις ποινές των αποκλίσεων από τα pa,

pd Αναμενόμενη πριμοδότηση από

entertainment*

Page 36: Trading Agent Competition

Υπολογίζουμε τα και όπου: το σκορ του βέλτιστου ταξιδιού r*(pa,pd,T) το σκορ του βέλτιστου ταξιδιού r*(pa,pd,S)

Υπολογίζουμε την διαφορά των δύο σκορ:

Η επιλογή του ξενοδοχείου h θα είναι:

Άρα = 1 ή 0 ανάλογα με τον τύπο ξενοδοχείου.

Page 37: Trading Agent Competition

Παράδειγμα: Στο διάστημα το 20% των

τιμών είναι μικρότερα του 70 και το 80% μεγαλύτερο

Αφού τα bonus επιλέγονται ομοιόμορφα :

=

Page 38: Trading Agent Competition

Για την εύρεση του r*(pa,pd,h) υπολογίζουμε το αναμενόμενο entertainment surplus:

Αναθέτουμε το i-οστό καλύτερο εισιτήριο στην μέρα που κοστίζει (i-οστή φθηνότερη μέρα)

Page 39: Trading Agent Competition

Τιμή [ 50 100 150 ]

1η √ √ √

2η √ √

3η √

[a,b]=[0,200]

Πιθανότητα μιας τιμής Χ να είναι μεγαλύτερη της i-οστής επιλογής:

Πιθανότητα τιμής να βρίσκεται ανάμεσα σε δύο bonus:

Page 40: Trading Agent Competition

Τιμή [ 50 100 150 ]

1η √ √ √

2η √ √

3η √

[a,b]=[0,200]

Για την τελική αύξηση του σκορ έχουμε:

Την πιθανότητα της παραπάνω συνθήκης την έχουμε ήδη υπολογίσει

Page 41: Trading Agent Competition

Κάθε αναμενόμενο surplus θα είναι:

Page 42: Trading Agent Competition

Αλγόριθμος Πρόβλεψης Hotel Auctions Ανάγνωση τιμών Υπολογισμός μέσης ζήτησης

▪ Εύρεση καλύτερου σχεδίου για κάθε συνδυασμό pa,pd▪ Τιμές αεροπορικών εισιτηρίων▪ Τιμές ξενοδοχείων▪ Ποινές απόκλισης από pa,pd▪ Υπολογισμός μέσου entertainment surplus για τρέχουσες τιμές

▪ Εξαγωγή ζήτησης για το παραπάνω▪ Άθροιση όλων των ζητήσεων και διαίρεση δια 10

Υπολογισμός ολικής ζήτησης▪ Πολλαπλασιασμός της μέσης ζήτησης επι 56 και

άθροιση της ζήτησης του πράκτορα μας Χρήση tatonnement για υπολογισμό επόμενης

τιμής

Page 43: Trading Agent Competition

Πρόβλημα: μεγιστοποίηση του συνολικού σκορ

Κάνει τον σχεδιασμό για τη συμμετοχή στις δημοπρασίες

Το πρόβλημα της μεγιστοποίησης του σκορ υποδιαιρείται ανά πελάτη.

Δύο είδη σχεδιασμών Αρχικός σχεδιασμός Επανασχεδιασμός

Ο επανασχεδιασμός εκτελείται μόνο αν το τρέχον σχέδιο δεν είναι εφικτό.

Page 44: Trading Agent Competition

Εξετάζει το προηγούμενο σχέδιο

Διανέμει τα αγαθά στους πελάτες που τα είχανε ζητήσει.

Υπάρχει και η περίπτωση να μην αρκούν τα αγαθά.

Page 45: Trading Agent Competition

Τα αγαθά δίνονται στους πελάτες που συνεισφέρουν περισσότερο στο σκορ

Πελάτες

1 2 3 4 5 6 7 8

Στόχος √ √ √ √ √Αγορά √ √ √

Page 46: Trading Agent Competition

Βήματα σχεδιασμού Δημιουργία πιθανών συνδυασμών αφιξης-

αναχώρησης (συνολικά 10)

Υπολογισμός σκορ για κάθε τύπο ξενοδοχείου

Υπολογισμός του καλύτερου συνδυασμού εισιτηρίων διασκέδασης (MaxEntSurplus)

Επιλογή του σχεδίου με το μεγαλύτερο σκορ

Page 47: Trading Agent Competition

1η ημέρα

2η ημέρα

3η ημέρα

4η ημέρα

Aligator Wrestling

168 168 168 168

Amusement Park 27 27 27 27

Museum 174 174 174 1741η ημέρα

2η ημέρα

3η ημέρα

4η ημέρα

Aligator Wrestling

71,68 74,19 96,3 45,46

Amusement Park 84,87 15,78 78,81 102,35

Museum 89,12 55,67 80,36 105,691η ημέρα

2η ημέρα

3η ημέρα

4η ημέρα

Aligator Wrestling

96,32 93,81 71,7 122,54

Amusement Park -57,87 11,22 -51,81 -75,35

Museum 84,88 118,33 93,64 68,31

Bonus

ΤιμήΕισιτηρίου

ΣκορΕισιτηρίου/Μέρα

Page 48: Trading Agent Competition

Σκορ(SS) = - Σ(priceSS(day)), arrival <= day < departure

Σκορ(TT) = HP - Σ(priceTT(day)), arrival <= day < departure

HP = το bonus που δίνει ο πελάτης

Σκορ(SS) < Σκορ(TT) επιλέγουμε το Tampa Towers

Σκορ(SS) > Σκορ(TT) επιλέγουμε το Shoreline Shanties

Page 49: Trading Agent Competition

Αεροπορικά εισιτήρια

Για τις ημέρες του ταξιδιού▪ Αν έχουμε εισιτήριο -Κόστος αγοράς▪ Αν δεν έχουμε εισιτήριο -Προβλεπόμενο κόστος

Για όλες τις υπόλοιπες▪ Αν έχουμε εισιτήριο -Κόστος αγοράς

Ο Planner προτιμά με αυτό τον τρόπο πακέτα που θα περιλαμβάνουν τα εισιτήρια που ήδη έχουμε αγοράσει

Page 50: Trading Agent Competition

Θα υπολογίσουμε: Το κόστος αγοράς για

την ημέρα 1 Την προβλεπόμενη τιμή

για την ημέρα 3 Το κόστος αγοράς για

την ημέρα 4

Θα υπολογίσουμε: Το κόστος αγοράς για

την ημέρα 1 Το κόστος αγοράς για

την ημέρα 4

1 2 3 4 5

Άφιξη √Αναχώρη

ση√

1 2 3 4 5

Άφιξη √Αναχώρη

ση√

Page 51: Trading Agent Competition

Δωμάτια Ξενοδοχείων Για τις ημέρες του ταξιδιού

▪ Αν έχουμε αγοράσει -Κόστος αγοράς▪ Αν δεν έχουμε αγοράσει -Προβλεπόμενο κόστος

Για όλες τις υπόλοιπες▪ Αν έχουμε αγοράσει -Κόστος αγοράς▪ Αν έχουμε κάνει προσφορά -Προβλεπόμενο

κόστος Ο Planner προτιμά με αυτό τον τρόπο πακέτα που

θα περιλαμβάνουν τα δωμάτια που ήδη έχουμε αγοράσει και τις δημοπρασίες στις οποίες έχουμε κάνει προσφορά

Page 52: Trading Agent Competition

Θα υπολογίσουμε: Την προβλεπόμενη τιμή

για την ημέρα 1 Την προβλεπόμενη τιμή

για την ημέρα 2 Το κόστος αγοράς για

την ημέρα 3 Την προβλεπόμενη τιμή

για την ημέρα 4

Θα υπολογίσουμε: Το κόστος αγοράς για

την ημέρα 3 Την προβλεπόμενη τιμή

για την ημέρα 4

1 2 3 4

Tampa Towers

√ √

1 2 3 4

Tampa Towers

√ √

Page 53: Trading Agent Competition

Είναι υπεύθυνος για: Αγορά προϊόντων που υποδεικνύει ο

planner στην σωστή ποσότητα και τιμή Κατάθεση έγκυρων bids, όχι σε κλειστές

δημοπρασίες Τιμή bid μεγαλύτερη από την

προηγούμενη Καλείται κάθε 10’’ και κάθε φορά τρέχει

28 φορές (για κάθε auction)

Page 54: Trading Agent Competition

Flights Alloc=get Allocation – get Own Αν alloc>0 και Predicted Minimum

Price>Current Price ▪ Bid.Add Bid Point(alloc, Predicted Price + 20)▪ Submit Bid(Bid)

Page 55: Trading Agent Competition

Hotels Alloc=get Allocation Αν get HQW<alloc

▪ Agg=(10 * (alloc-get HQW)) + F(time)

Page 56: Trading Agent Competition

Entertainment Alloc=get Allocation-get Own Αν alloc<0

▪ Πώληση εισιτηρίων με φθίνουσα τιμή με την πάροδο του χρόνου

Αλλιώς▪ Αγορά εισιτηρίων με αύξουσα τιμή με την

πάροδο του χρόνου

Page 57: Trading Agent Competition

Πιο ελαστικός Planner, να μπορεί να ανακατανέμει τα αγαθά στους πελάτες τους

Γνώση της συμπεριφοράς των ανταγωνιστών για την υλοποίηση της καλύτερης δυνατής πρόβλεψης τιμών στα ξενοδοχεία

Page 58: Trading Agent Competition

Κώδικας και αποτελέσματα