trading agent competition

Post on 08-Jan-2016

34 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

TAC Classic

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[150,800]

Οι διακυμάνσεις επιλέγονται ομοιόμορφα από τα διαστήματα: [-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],

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

▪ ((-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))

Προτιμήσεις πελατών: 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 )

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

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

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

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

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

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

Αποστολή bids

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

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

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

Ανακοινώνει τιμές κάθε 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) – ορίζει διάστημα επιλογής της διαφοράς Ο τρόπος επιλογής μίας τιμής από το διάστημα ακολουθεί ομοιόμορφη

κατανομή

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

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

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

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

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

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

Παράδειγμα:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Άφιξη

Αναχώρηση

1 2 3 4 5

Άφιξη

Αναχώρηση

1 2 3 4 5

Άφιξη

Αναχώρηση

1 2 3 4 5

Άφιξη

Αναχώρηση

1 2 3 4 5

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

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

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

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

entertainment*

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

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

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

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

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

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

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

=

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

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

Τιμή [ 50 100 150 ]

1η √ √ √

2η √ √

3η √

[a,b]=[0,200]

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

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

Τιμή [ 50 100 150 ]

1η √ √ √

2η √ √

3η √

[a,b]=[0,200]

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

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

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

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

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

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

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

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

τιμής

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

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

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

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

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

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

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

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

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

Πελάτες

1 2 3 4 5 6 7 8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

την ημέρα 4

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

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

την ημέρα 4

1 2 3 4 5

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

ση√

1 2 3 4 5

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

ση√

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

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

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

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

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

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

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

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

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

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

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

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

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

1 2 3 4

Tampa Towers

√ √

1 2 3 4

Tampa Towers

√ √

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

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

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

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

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

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

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

Hotels Alloc=get Allocation Αν get HQW<alloc

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

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

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

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

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

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

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

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

top related