Strategie van de WhaaaAgent in de TAC

Vergelijkbare documenten
Virtuele Markten Trading Agent Competition

Strategiebeschrijving van R2-DReizen agent in de VM-Trading Agent Competition

hippie agent strategie voor de tac competitie

Trading Agent Competition

Eindrapport. 5 November 2007

TAC-Agent. Grasmaaier I. Virtuele markten Tac Agent opdracht Deadline: 18 juni 2004

Tactics of the kokhoorn & hoornkok TAC agents

Verkoopprocedure groenestroomcertificaten in uitvoering van artikel van het Energiedecreet van 8 mei 2009 betreffende het energiebeleid

Verkoopprocedure groenestroomcertificaten in uitvoering van artikel van het Energiedecreet van 8 mei 2009 betreffende het energiebeleid

VIP SELECTION BELOFTES

Praktische opdracht Wiskunde A Vergelijking Benzine, LPG en Diesel

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

EXTERNE Q&A BETAALDE BAGAGEOPTIE VOOR (REIS)AGENTEN EN REISMANAGERS NEDERLANDSE VERSIE

Verkoopprocedure groenestroomcertificaten in uitvoering van artikel van het Energiedecreet van 8 mei 2009 betreffende het energiebeleid

Lesbrief: Backoffice Thema: Hoe kom ik daar?

Hoofdstuk 26: Modelleren in Excel

Handleiding RoosterGenerator

Opgave 1 - Uitwerking

BRAIN NUTS. Vliegensvlugge misleiding Het best bewaarde geheim van goedkope vliegticketaanbieders

Praktische opdracht Wiskunde A Patience

Vraag 1 (2 punten) (iii) Een lees-opdracht van virtueel adres 2148 seg 0, offset idem

LOKKERTJES ZELDEN DE AANBIEDINGSPRIJS

Examen HAVO. Wiskunde A1,2

DETROIT - CLEVELAND / GRAND PRIX

Eindexamen wiskunde A1-2 havo 2007-I

Inhoud. Hoe voorstellen en reservaties maken bij LuxairTours?

Eindexamen wiskunde A 1-2 havo 2002-II

De Kleine Kerstboom Ruth Wielockx

Supplement Besliskunde 2017/2018. Inhoudsopgave. Hoofdstuk 1: Missende stof in de verslagen Hoofdstuk 2: Overbodige stof in de verslagen...

reservations.nl HOTELS MEETINGS CONGRESSEN

De basiselementen van Markov-ketens zijn:

Byzanz Amigo, 2008 Emanuele ORNELLA 3-6 spelers vanaf 8 jaar ± 45 minuten

LES: Waslijn. BENODIGDHEDEN Per leerling werkblad Stapjes maken (zie p. 5) potlood en gum AFBEELDING SPELLETJE

Introductie. De onderzoekscyclus; een gestructureerde aanpak die helpt bij het doen van onderzoek.

Handleiding Mplus Touch Screen Kassa. Module T1210 Uitgestelde betaling en relatie beheer

Xelion 6 MT beheer handleiding v0.3

Wiskundig Modelleren 1 Chemische Mengsels en Reacties. Anne Buijsrogge en Corine Laan

Modelleren C Appels. Christian Vleugels Sander Verkerk Richard Both. 2 april Inleiding 2. 3 Data 3. 4 Aanpak 3

Danique Voorthuijzen Stage: pre-cibap MBO Docent: Els van Rooij Datum: Jaar 4

Small Basic Programmeren Text Console 2

Ieder tweetal heeft nodig: Een kopie van de slagschipspelletjes: 1. 1A, 1B voor spel A, 2B voor spel A, 3B voor spel 3


Averechtse selectie & marktfalen Een Experiment. Spelregels. Formeer een tweedehands automarkt

Lichaam en geest zijn één

Handleiding gebruik DWF Digitaal Wedstrijd Formulier

Handleiding SteamOS op VirtualBox

Examen HAVO en VHBO. Wiskunde A

Uitwerking tentamen Algoritmiek 10 juni :00 13:00

Offective > CRM > Vragenlijst

Examen HAVO. wiskunde A1,2

Handleiding Mplus Touch Screen Kassa

Om verder te gaan naar de persoonlijke omgeving wordt de aanmeld module beschikbaar gesteld.

MARKTPLAATS: KOPEN EN VERKOPEN OP INTERNET

FMP360 Online. Handleiding - Planbord

Examen HAVO. tijdvak 2 dinsdagdinsdag uur

TiC Narrow Casting Pull structuur uitleg en settings

Klonen. Het doel is om de appel op te eten. Iedere keer dat de slang de appel eet, groeit hij één vakje langer.

Artikel 1: Definities

Het spel in het kort. Spelonderdelen. Voorbereiding. Kristian r. a. Østby

ENQUÊTE VACATURE. Deel jouw droom over gemeente zijn!

Een reis plannen via internet

Mengen van scheikundige stoffen en het oplossen van scheikundige reacties, een wiskundig model. Wiskens&co Yoeri Dijkstra en Loes Knoben

Opgave Constraint Processing

Rapport nieuwe drank- en horecawet

Competitiereglement Bridgevereniging Adriaan Pauw

Eindexamen wiskunde A havo 2000-I

Design Patterns V Eindopdracht

Plans are nothing, Planning is everything - Dwight D. Eisenhower

NIMA B EXAMEN BUSINESS MARKETING ONDERDEEL B JANUARI 2016 VRAGEN EN ANTWOORDINDICATIES NIMA B BUSINESS MARKETING ONDERDEEL 1 (CASE)

REGLEMENT RANKINGTORNOOI CALELLA 2016

REGLEMENT RANKINGTORNOOI CALELLA 2017

Handleiding Bid. Auteur: Marcel Hofstede Versie: 1.0. Handleiding Bid (V1.0) Blz. 1 van 19

Inkoopprijs 100% + marge 10% = verkoopprijs 110% Stel de inkoopprijs bedraagt 800 en de winstmarge 10% van de

BACK-UP & DISASTER RECOVERY Een geoptimaliseerd end-to-end verhaal in onze Enterprise cloud

Hi vakantieganger, hierbij enkele tips voor het zo goedkoop mogelijk boeken van vliegtickets Wendy's reistips Puur Kroatië

Bijlage 1. Evaluatie Tegemoetkoming Chronisch zieken en Gehandicapten. Inleiding

Maatschappelijke oriëntatie

Klant stapt onverwacht op

MMIO Verslag. Groepsopdracht week 1. Hoe zorgen we dat kinderen van jongs af aan gezonder leren eten?

Een product van CEBES bv Fon Beerens M E fonbeerens@gmail.com

HANDLEIDING DMS Plugin Installatie, configuratie & werking

BACK-UP & DISASTER RECOVERY Een geoptimaliseerd end-to-end verhaal in onze Enterprise cloud

Printshop basis introductie werking printshop

RECHTEN VAN VLIEGTUIGPASSAGIERS EU-KLACHTENFORMULIER

Eindexamen wiskunde A 1-2 havo 2005-I

Scenario bijeenkomst studiekeuzegesprekken (SKG)

Sneeuwscooteravontuur Three Countries

MS Semen Storage Pro

Werkboek LES 1. Je eerste E-Learning Programma

Functie beschrijving: Het automatisch aanmaken van een raai-volgende contour

Wedstrijdbridge: Paren Viertallen. Butler

TIP: Laat geen waardevolle voorwerpen achter in de kleedlokalen!

Geldwisselprobleem van Frobenius

Boekingstips

Hoe deelnemen aan de online verkopen?

Adverteren op Linkedin

IAI: Les 2 Vakjes maken. Rick Hazebroek r.hazebroek@cibap.nl

Trendbronnen. Geke Cornelissen

EWMA Control Charts in Statistical Process Monitoring I.M. Zwetsloot

Transcriptie:

Strategie van de WhaaaAgent in de TAC Ramon Hollands, Eelco Verschoor, Joost Westra en Dirk Hobo June 27, 2005 Abstract Dit document geeft een overzicht van de strategie van de WhaaaAgent zoals deze op de Competition Virtual Markets TAC op 24 juni 2005 gebruikt is. Contents 1 Initialisatie 2 1.1 Vluchten............................. 2 1.2 Hotels.............................. 2 1.3 Entertainment......................... 2 2 Bieden op hotels 2 2.1 Kiezen van het soort hotel................... 2 2.2 Wanneer bieden......................... 3 2.3 Bied proces........................... 3 2.4 Hotel Fitness.......................... 3 3 Bieden op vluchten 3 3.1 Wanneer op vluchten bieden.................. 4 3.2 Hoeveel op vluchten bieden................... 4 4 Bieden op entertainment 4 4.1 Kopen.............................. 4 5 Verkopen 4 6 Verdeling van Hotels/Vluchten 5 6.1 Preferenties aanpassen..................... 5 6.2 Hotels herverdelen....................... 5 1

1 Initialisatie 1.1 Vluchten Je wilt eigenlijk je vluchten zo snel mogelijk kopen omdat ze dan het goedkoopst zijn. Aan het begin moet daarom een afweging gemaakt worden over hoeveel vluchten je gaat kopen en hoeveel je er uitstelt tot later. We hebben gekozen om als je n vluchten nodig hebt, er al n 1 op het begin te kopen. Dit kan later aangepast worden tot n x met x {0, 1, 2}. De vluchten die we op het begin kopen willen we heel graag hebben. We bieden daarom 200 meer dan de vraagprijs. Hiermee hebben we ze zelfs met een klein prijsstijging. 1.2 Hotels Eerst wordt er voor elke cliënt bepaald welk type hotel er het best voor hem gekocht kan worden. In de eerste minuut krijg je van de server geen HQW dus is het erg lastig te bepalen of je genoeg hebt geboden voor de eerste veiling die sluit. Op alle dagen die de cliënt in zijn voorkeur heeft wordt de helft van zijn utiliteit geboden. We bieden hier niet te hoog omdat dit de prijs onnodig op kan drijven. En omdat je boden niet meer kan verlagen, zodat je eventueel in situaties zou kunnen krijgen waar je het hoogste bied op een hotel dat je al helemaal niet meer wil hebben. Voor alle hotel veilingen zorgen dat we altijd op 8 hotel kamers bieden. Voor alle kamers die we niet nodig hebben bieden we 1. Het komt redelijk vaak voor dat je hotels op deze manier bijna gratis krijgt en later eventueel toch door cliënten gebruikt kunnen worden. 1.3 Entertainment Initieel word er niet op entertainment geboden, dit gebeurd pas aan het einde van het spel. 2 Bieden op hotels 2.1 Kiezen van het soort hotel Voor het selecteren van het hoteltype kijken we naar de extra verwachte kosten per dag voor een duur hotel. Dit is het verschil in de gemiddelde vraagprijs voor een goedkoop hotel en de gemiddelde vraagprijs voor een duur hotel. Voor elke dag wordt deze waarde apart bijgehouden aangezien we er rekening mee willen houden dat de extra verwachte kosten voor een duur hotel per dag kunnen verschillen. Zijn deze kosten hoger dan de bonus die de agent van de klant krijgt voor een duur hotel dan wordt er gekozen voor een goedkoop hotel. Als de kosten lager zijn dan wordt er gekozen voor een duur hotel. De extra verwachte kosten per dag voor een duur hotel wordt geïnitialiseerd op 30. Gedurende de competitie wordt deze variabele op het einde van elk spel bijgesteld zodat hij het gemiddelde verschil tussen een goedkoop hotel en een duur hotel over alle gespeelde spellen bepaald. Deze waarde hangt namelijk erg af van de andere agenten in de lokale markt. 2

2.2 Wanneer bieden Behalve voor de eerste minuut bieden we op de rest van de hotel veilingen alleen als de HQW bekend is. Dit doe we omdat je dan meer informatie hebt en dat de HQW altijd een keer bekend is voor dat de veiling sluit. We gaan pas bieden aan het eind van elke minuut. Zo proberen we zo veel mogelijk de situatie te vermijden dat mensen steeds over elkaar heen gaan bieden. Het volledige biedproces wordt de laatste 10 seconden van elke minuut steeds herhaald om te kijken of de prijzen niet nog verder opgehoogd moeten worden. 2.3 Bied proces We bepalen het bod dat we doen altijd per cliënt zodat we precies kunnen regelen of de prijs nog opgehoogd moet worden, of juist niet. Eerst gaan we bekijken of de HQW lager is dan het aantal gewilde tickets. Is dit niet het geval dan doen we niks. Is dit wel het geval dan worden de boden die gemaakt zijn in de vorige gerangschikt van groot naar klein. Voor alle HQW tickets die we al hebben gaan we een stapje verder in deze rangschikking, want die hoogste boden waren immers al hoog genoeg om tickets te krijgen. Deze boden worden gewoon herhaald. Voor alle overgebleven tickets die we nog willen hebben worden de vorige boden met een constante van 50 opgehoogd. Als het vorige bod plus 50 groter is dan de utiliteit voor dat hotel dan wordt de utiliteit geboden. Ook vullen we het aantal bids aan tot 8 met bids van 1. 2.4 Hotel Fitness De fitness van een hotel is eigenlijk de maximale waarde die je voor een hotel wilt bieden. De basis van de formule is. fitness = 600 min(3, departure arrival) Als je nou al een vlucht gekocht hebt, dan is het belangrijker om dat hotel te kopen, anders krijg je een incompleet pakket. Voor een hotel op je eerste dag wordt daarom de fitness verhoogd met 200 p(inflight). Voor de laatse dag met 200 p(outflight). Voor de tussenliggende dagen geldt het gemiddelde van die twee. Het idee hierachter is dat als je je terugreis nog niet hebt, je best een dagje korter kun gaan als je dat laatste hotel niet hebt. Voor dagen tussen vertrek en aankomst in geldt echter dat het hebben van allebei de vluchten van belang is. 3 Bieden op vluchten Het initiële bieden op vluchten wordt gedaan zoals beschreven in 1.1. Er wordt bepaald hoeveel in- en uitvluchten (n) er nodig zijn per dag, waarna er voor n 1 vluchten per dag wordt geboden, met een minimum aantal van 0 (geen tickets kopen). Na de 2e en laatste keer dat er tickets gekocht worden, wordt er bepaald hoeveel tickets we hebben gekocht welke we niet gebruikt hebben. (zij leveren geen feasible packages). Verder wordt er bijgehouden hoeveel tickets er niet zijn gekocht. Aan de hand van dit aantal wordt bepaald hoeveel tickets we hebben gekocht waar we niets aan hebben, waar vervolgens uit kan worden afgeleid hoeveel tickets we in de volgende ronde initieel kopen. Stel dat onze strategie was 3

om n x, met x = 1 tickets te kopen. Als nu blijkt dat we 2 of minder tickets hebben gekocht welke geen feasible packages konden opleveren, dan kopen we de volgende ronde n x met n = 0 tickets, oftewel we kopen direct alle tickets omdat de strategie in de afgelopen ronde het goed genoeg deed zodat we maar 2 of minder unfeasible tickets hadden. Er wordt dus vanuit gegaan dat in de volgende ronde de strategie goed genoeg is om te krijgen wat we nodig hebben, daarom kopen we gelijk alle tickets omdat ze in het begin het goedkoopst zijn. Het kan natuurlijk ook zo zijn dat we bijvoorbeeld 8 tickets hebben gekocht welke onbruikbaar waren. De n x strategie was dan blijkbaar niet goed genoeg om te krijgen wat we initieel wilden en is de toekenning van hotels en vluchten tijdens het spel zodanig veranderd dat de initieel gekochte vluchten niet allemaal gebruikt konden worden. Daarom is het dan beter om initieel minder vluchten (n 2 vluchten) per dag te kopen en achteraf meer vluchten te kopen om de packages feasible te krijgen. 3.1 Wanneer op vluchten bieden. Zoals hierboven beschreven, worden er zodra het spel start diverse boden uitgebracht op de vluchten. Hierna wordt nog éénmaal op de vluchten geboden. Dit gebeurt 50 seconden voor het eind van het spel. De datastructuur waarin de agent zijn gegevens opslaat over o.a. de vluchten, kan tijdens het spel veranderd zijn door de gebruikte adaptieve strategie. Er wordt dus opnieuw bepaald hoeveel vluchten er op welke dag nodig zijn en hoeveel van deze vluchten we al in ons bezit hebben. 3.2 Hoeveel op vluchten bieden. Initieel wordt er met 200 boven de vraagprijs geboden om er vrij zeker van te zijn dat we deze tickets ook krijgen indien er een prijsstijging optreedt. Bij de tweede keer bieden, gaat het erom om onze packages feasible te krijgen. Het is dan ook erg belangrijk dat we deze tickets krijgen. Daarom wordt er een erg hoog bod gedaan van 5000 boven de vraagprijs van de tickets. Omdat het spel bijna afgelopen is tegen de tijd dat we dit hoge bod doen, werd er vanuit gegaan dat de daadwerkelijk prijs die we zouden betalen niet deze vraagprijs + 5000 zou zijn, maar een (aanzienlijk) lager bedrag. 4 Bieden op entertainment 4.1 Kopen Voor elke dag-entertainment combinatie worden alle klanten afgegaan in volgorde van aflopende utiliteit. Als we een ticket hebben dan kennen we dat toe aan de klant die dat ticket het liefst heeft en nog niet op de zelfde dag een een ticket heeft of dat ticket op een andere dag heeft. Zijn de eigen tickets op dan plaatsen we een nieuw bod waar we 25 minder bieden dan de klant er voor over heeft. 5 Verkopen Alle tickets die je over hebt na het toekennen van tickets die verkoop je voor 50. Het getal 50 is een niet weloverwogen keuze. 4

6 Verdeling van Hotels/Vluchten De WhaaaAgent heeft een eigen datastructuur om bij te houden hoeveel welke hotels al in het bezit zijn en aan welke klanten deze zijn toegekend. Dit toekennen aan klanten gebeurd zodat de agent kan zien of dat een klant zijn pakket compleet heeft. De vluchten worden niet apart verdeeld onder de klanten. Als er 3 vluchten gewild zijn en je hebt er al 2, dan word dat gezien alsof je 2 vlucht hebt. Met behulp van deze datastructuur 3 houden we ook bij welke hotels gesloten zijn. Hierdoor kan de agent zien ofdat een klant zijn pakket nog comleet kan krijgen. 6.1 Preferenties aanpassen De datastructuur betreffende de verdeling van de hotels slaat voor elke klant de volgende gegevens op: Zijn initiële preferenties voor de heenvlucht en terugvlucht Het type hotel wat zijn voorkeur geniet De aankomst en vertrek datum rekening houdend met kamers die niet meer te krijgen zijn, hierna genoemd als wanted vluchtdata Daarnaast wordt er voor elke nacht en voor elk hoteltype bijgehouden of een klant een kamer heeft en of de veiling gesloten is. Of de klant in een bepaalde nacht in een hotelkamer wil overnachten staat indirect opgeslagen in de wanted vluchtdata. Nadat een hotel-veiling sluit, veranderd de data in de verdeling datastructuur. Dit kan er voor zorgen dat bepaalde klanten niet meer kunnen vliegen op hun huidige vluchtdata of dat het misschien beter is om de klant te laten logeren in een ander hotelsoort. Na de sluiting van een hotel-veiling wordt er dan ook met een kritisch oog naar de wanted vluchtdata gekeken en mogelijk aangepast zodat er weer een realistisch scenario ontstaat. Om te illustreren hoe zo n aanpassing er dan uit zou kunnen zien volgt hier een voorbeeld. Stel een klant wil graag vier nachten overnachten in een bepaald hoteltype. De reisagent heeft al drie hotelkamers van dit type in zijn bezit, namelijk de hotelkamers voor nacht 1, nacht 2 en nacht 4. Op dat moment sluit de veiling voor nacht 3 zonder dat er een kamer in het bezit is gekomen van de reisagent. Er is dus een doemscenario ontstaan doordat er geen kamer meer te krijgen is voor de tweede nacht. In dit geval wordt de vertrekdatum van de klant vervroegd zodat bij op dag 3 al terugvliegt. 6.2 Hotels herverdelen Bij het herverdelen van de hotels worden hotels van cliënten onderling gewisseld. De cliënt die een hotel nodig heeft op een bepaalde dag krijgt dit hotel toegekend van een cliënt waaraan dit hotel al was toegekend, maar die dit hotel niet zal gebruiken. 5