Virtuele Markten Trading Agent Competition

Vergelijkbare documenten
Eindrapport. 5 November 2007

Strategie van de WhaaaAgent in de TAC

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

Trading Agent Competition

hippie agent strategie voor de tac competitie

Tactics of the kokhoorn & hoornkok TAC agents

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

De statespace van Small World Networks

Geldwisselprobleem van Frobenius

Van de wedstrijdleider wordt wel verwacht dat hij weet waar hij mee bezig is en daarom hoort hij de achterliggende ideeën wel te kennen.

Antwoorden door K woorden 14 augustus keer beoordeeld. Wiskunde A. Supersize me. Opgave 1: leerstof: Formules met meer variabelen.

Een objectief Ranglijst Systeem. ontworpen door. Martien Maas

REKENVAARDIGHEID BRUGKLAS

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

Het leek ons wel een interessante opdracht, een uitdaging en een leuke aanvulling bij het hoofdstuk.

Hoofdstuk 3: Arbitrage en financiële besluitvorming

Exponentiële Functie: Toepassingen

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

Samenvatting. Kort overzicht. Kartels

Als geen van bovenstaande waarden voorkomen, wordt de hoogste waarde bepaald door de plaats van de hoogste steen.

Hoofdstuk 2: Grafieken en formules

Een model voor een lift

Eindexamen wiskunde A1-2 havo 2007-II

Examen HAVO. wiskunde A1,2. tijdvak 2 woensdag 20 juni uur. Bij dit examen hoort een uitwerkbijlage.

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

Praktische opdracht Wiskunde A Patience

Examen HAVO. tijdvak 2 dinsdagdinsdag uur

1. Zwaartekracht. Hoe groot is die zwaartekracht nu eigenlijk?

Testen en metingen op windenergie.

babbel 2012 zal herinnerd worden als het jaar dat mobiliteit een belangrijk onderdeel van onze langetermijnstrategie werd.

1.1 Rekenen met letters [1]

DEC DSP SDR 5 Dicrete Fourier Transform

1. Reductie van error variantie en dus verhogen van power op F-test

5,9. Spelverloop. Praktische-opdracht door een scholier 2508 woorden 3 december keer beoordeeld. Wiskunde A

Jijbent.nl: spelregels go-moku. Sjoerd Hemminga (sjoerdje) Copyright 2017 Jijbent.nl

Buiging van een belaste balk

Examen VWO wiskunde C. tijdvak 2 woensdag 17 juni uur. Bij dit examen hoort een uitwerkbijlage.

Voorkennis. 66 Noordhoff Uitgevers bv 11 0, en y = = ,33 = y = 4x(x 2) y = 19x(1 2x) y = 3x( x + 5) y = 4x(4x + 1)

kwadratische vergelijkingen

Prof. Arthur Schram Universiteit van Amsterdam namens Agentschap Telecom

Hoe maak je nu van breuken procenten? Voorbeeld: Opgave: hoeveel procent van de onderstaande tekening is zwart gekleurd?

Praktische opdracht Wiskunde som van de ogen van drie dobbelstenen

: een wiskundige uitdaging

8. Complexiteit van algoritmen:

Technische Commissie: het gebruik van de Bridgemate

Research Note Prestatie-analyse met behulp van box plots

Proef Natuurkunde Warmteafgifte weerstand

Examen VWO. wiskunde C (pilot) tijdvak 2 woensdag 17 juni uur. Bij dit examen hoort een uitwerkbijlage.

Opdrachten Toeval Opdrachten Toeval Opdracht 1.1 (Bestaat toeval) Opdracht 1.2(toeval in de natuur)

Eindexamen wiskunde A1-2 vwo 2007-II

In dit stuk worden een aantal berekeningen behandeld, die voor verschillende kostenberekeningen noodzakelijk zijn:

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

Wat is het probleem precies -) probleem expliciet maken. Wat moet er gedaan worden? -) probleem rationaliseren, objectief beste oplossing zoeken

wiskunde A havo 2016-II

Factor = het getal waarmee je de oude hoeveelheid moet vermenigvuldigen om een nieuwe hoeveelheid te krijgen.

HET SCHAAKSPEL OPGELOST Cees Timmer

Wiskunde - MBO Niveau 4. Eerste- en tweedegraads verbanden

White paper Cross-sell & Upsell

6,6. Praktische-opdracht door een scholier 2250 woorden 7 juni keer beoordeeld. Wiskunde A

Samenvatting Management & Organisatie Hoofdstuk 5, Marketingbeleid

Spelsystemen sjoelen. Combinatie-IV (First Loss)... 9 Combinatie-V... 9 Libre One Hundred And Eighty Moyenne Moyenne-2...

Inhoud. Voor wie is dit spel. Spelduur. Spelvoorbereiding

Rekenen aan wortels Werkblad =

Combinatoriek groep 1 & 2: Recursie

Indexcijfers. - We rekenen volumes van allerlei zaken om naar procenten - We vergelijken vervolgens die cijfers om conclusies te trekken

6.1 Kwadraten [1] HERHALING: Volgorde bij berekeningen:

Examen VWO. wiskunde A1

Voor de beoordeling zijn de volgende passages van de artikelen 41, 41a en 42 van het Eindexamenbesluit van belang:

Bieden (kaartspel) Inhoud. Spelregels. Delen. Bieden. Spelverloop

Eindexamen wiskunde B1 havo 2008-II

Viertallen Bridge. Opzet viertallenwedstrijd. In het volgende voorbeeld speelt viertal A (paar A1 en paar A2) tegen viertal B (paar B1 en paar B2).

Combinatieleer in het Lottospel

Trade van de Week. Futures handelen. voor gevorderden

Combinatoriek groep 2

Lang leve invnorm op de TI-83 grafische rekenmachine

20 witte Doelvakjes. Raster voor solovariant Strafpunten Eindscore

Informatiebijeenkomst Multiband Frequentieveiling. 12 juni 2012

inhoudsopgave juni 2005 handleiding haakjes 2

4.1 Negatieve getallen vermenigvuldigen [1]

Logaritmen. Het tijdstip t waarop S(t) = is op de t-as aangegeven. Dat tijdstip komt niet mooi uit. Dat tijdstip noemen 5,3

In 3 stappen de toegevoegde waarde van mijn medewerker bepalen

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

Aanvullende tekst bij hoofdstuk 1

Hoofdstuk 20: Financiële opties

Eindexamen wiskunde A havo I

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

1 Delers 1. 3 Grootste gemene deler en kleinste gemene veelvoud 12

11. Deelopdracht 8: Invloed stress op gezondheid

Parallelschakeling - 2

Uitwerkingen Sum of Us

Handleiding RoosterGenerator

Workshop DisWis, De Start 13/06/2007 Bladzijde 1 van 7. Sudoku. Sudoku

Wedstrijdreglement BC 80,

Regionale Analyse Regio 71 Eindhoven eo. 4e kwartaal 2013

Je kunt de kansen met wiskunde technieken berekenen (bijvoorbeeld boomdiagramman), maar je kunt ook deze door simulaties achterhalen.

Examen HAVO. wiskunde B1. tijdvak 2 woensdag 18 juni Bij dit examen hoort een uitwerkbijlage.

Viertallenwedstrijden consequentie voor strategie:

Examen HAVO. wiskunde A. tijdvak 2 woensdag 17 juni uur

Opdracht Levensbeschouwing Hoe los ik iets op?

Transcriptie:

Virtuele Markten Trading Agent Competition A smart trading agent Erik Kant (0122246) en Marten Kampman (0240478), 9 november 2007 Naar aanleiding van de Trading Agent Competition voor het vak Virtuele Markten volgt hier het verslag van de agents kantman en kampkant. Dit verslag zal uit vier delen bestaan. Als eerste een beschrijving van de strategie van onze eigen agent, gesplitst op vluchten, hotels en entertainment. Hierna gaan we de strategie van de andere agents bekijken. In de paragraaf hierna woorden de resultaten gegeven. Als laatste wordt er een analyse gegeven van de uitgevoerde strategie vergeleken met die van de andere agents en bekeken waarom onze agent goed of slecht heeft gepresteerd. Strategie Hier volgt een beschrijving van de strategie die door onze agenten is gebruikt. Bij de eerste mislukte competitie gebruikten we twee verschillende agenten, waarbij een agent een eerdere versie was van de oorspronkelijke agent. Bij de tweede competitie gebruikten we twee dezelfde agenten. Vluchten De dagen waarop wij vluchten kopen zijn de dagen waarop de klanten voorkeur voor hebben. Als die allocatie op een dag groter is dan twee dan kopen wij daar voor elke extra allocatie een ticket voor. Dit vullen we aan tot maximaal zes vluchten totaal (in en out) die we de eerste minuut kopen. In de laatste minuut kopen we nog vluchten als we die nodig hebben. We hebben immers nog maar vluchten voor maximaal zes pakketten, en acht klanten. Hotels Een klant wordt een goed hotel toebedeeld als die een utility heeft van meer dan 30 per nacht, anders krijgt deze klant een goedkoop hotel. Dit wordt door middel van een dubbele switch gedaan: Eerst wordt bepaald in welk hotel hij komt volgens bovenstaande methode, waarna we proberen hem daarin te stoppen. Mocht dit niet lukken doordat een veiling gesloten is en we niet genoeg kamers hebben, dan wordt er alsnog naar het andere hotel gekeken of het daar wel mogelijk is. Kan deze klant in geen enkel hotel, als bijvoorbeeld de veiling is gesloten, dan wordt er verder niks meer voor deze klant geregeld. Ook geen vlucht en entertainment. Het bieden op een hotel gebeurd initieel met 100. Mocht dit niet toereikend zijn dan wordt dit verhoogd met het verschil tussen het laatste bod en de vraagprijs, zodoende dat dit minimaal 25% is. Hier zit geen maximum op. We hebben redelijk wat tijd besteed om te proberen voor elke klant een maximum utility te vinden voor een hotel bieding. Aangezien deze biedingen 16e prijs vickrey auctions zijn volstaat het om eenmalig deze prijs te bieden. Doordat we de vluchten al op bovenstaande manier kochten, is het eigenlijk niet mogelijk om dit te doen. De utility per nacht is hierdoor

moeilijk uit te rekenen. Ook het sluiten van biedingen met de mogelijkheid geen kamer te krijgen is een belemmering voor deze methode. Entertainment Als de utiliteit hoger is dan 90 dan wordt er entertainment geregeld voor de client. De drie entertainment types worden gerangschikt op hoogte van utiliteit. Als een klant maar een dag blijft wil je hem natuurlijk de entertainment geven waar hij het meest voor over heeft. Als er entertainment gekocht dient te worden dan zal dit beginnen bij 50 en loopt op tot maximaal 90. Verkopen van entertainment loopt af van 150 tot minimaal 10. Als er geen overnachting verkregen is voor de client dan zal er ook geen entertainment gekocht/toebedeeld worden. Punten waar we nog aan gedacht hebben maar die niet meer gelukt zijn, zijn tickets verhandelen, het kopen en verkopen van tickets waar al vrij vroeg de bied en vraagprijs dicht bij elkaar liggen. Tickets verkopen indien dit meer oplevert dan zelf gebruiken en rekening houden met een kleinere utiliteit dan 90 die nog wel winst geeft. Andere agenten Smith en bond Deze agenten hebben een zelfde soort strategie gekozen als de onze. Smith en Bond verschillen in de manier waarop ze voor hotels bieden. Het overige is bij beide hetzelfde. Vluchten Vluchten worden direct bij de start van het spel gekocht. Dit geldt voor alle vluchten, zowel heen als terug. Mocht uiteindelijk blijken dat voor een klant geen pakket gemaakt kan worden, dan wordt een extra terugvlucht gekocht voor deze klant, zodat hij toch op vakantie kan. Hotels Smith biedt op dure hotels als de utility per nacht hoger is dan 35. Hij biedt initieel 120. Als er meer wordt geboden biedt hij: huidige vraagprijs + (huidige vraagprijs vorige vraagprijs) + 15 Hij hanteert hierbij geen maximum. Bond gebruikt een zelfde soort formule, alleen zij de getallen iets anders. Initieel biedt hij op goedkope hotels 250, vooer dure 100. De formules (eerst die voor het dure hotel, dan die voor het goedkope): huidige vraagprijs + (huidige vraagprijs vorige vraagprijs) + 20 huidige vraagprijs + (huidige vraagprijs vorige vraagprijs) + 100 Entertainment Hier worden de standaard formules gebruikt. Voor het kopen begin je op nul een ga je langzaam aan steeds sneller hoger bieden (exponentieel). Het verkopen wordt voor 120 gedaan.

Kokhoorn & hoornkok Deze agenten berekenen brute force alle mogelijke combinaties die nog mogelijk zijn, en kiezen hieruit het beste pakket. Om dit te doen hebben ze een profit berekend. De profit bestond uit de formule: profit = (Som over klanten(utility kosten)) spill Dus per klant reken je de profit per mogelijk paket uit: Wat wil de klant betalen en zal dit ons kosten? Deze profits per klant tel je bij elkaar op. Alles wat je niet benut en wel hebt gekocht moet je hier nog vanaf trekken om de totale profit te berekenen. Hieruit komt een hoogste waarde, en dit zijn de beste pakketten die je kunt samenstellen. Bij het gebruik van deze formule loop je tegen enkele problemen aan. Wat zijn de kosten van een hotelkamer waarvan de veiling nog niet gesloten is? Wat zijn de kosten van entertainment? Wanneer koop je vluchten? De kosten van een hotelkamer en entertainment waarvan de veiling nog niet is gesloten worden met waarden uit het verleden benaderd. Nadat de veiling voor een bepaalde hotelkamer is gesloten, of entertainment is gekocht, wordt gekeken wat de waarde is, en deze waarde wordt opgeslagen voor gebruik in een volgende game. Deze waarde wordt niet zomaar opgeslagen, maar de geleerde waarde wordt met deze nieuwe waarde aangepast op de volgende manier: nieuwe waarde = learn_factor * (huidige_prijs oude waarde) Waarbij de learn factor op 0.2 was gezet, en (waarschijnlijk) de eerste waarde gewoon werd opgeslagen. Het kopen van de vluchten gebeurt als eerste na twee minuten. Vanaf dit moment worden elke minuut de vluchten voor de twee goedkoopste dagen die nog nodig zijn gekocht. Voor hotels wordt anderhalve keer de verwachte prijs geboden. Blijkt dit te weinig, wan wordt dit steeds vermenigvuldigd met anderhalf. Initieel wordt ook 5.119 geboden op hotelkamers die de klanten nodig hebben als ze een perfect pakket zouden krijgen. Op entertainment wordt in de eerste vier minuten niet geboden, omdat dit te veel tijd zou kosten bij het uitrekenen. Vanaf de vierde minuut wordt op entertainment geboden afhankelijk van de utility die de klant hiervoor heeft. Begonnen met bieden wordt op de helft van de utility. Dit loopt naarmate de tijd vordert lineair op naar de gehele utility. Bij het verkopen wordt de omgekeerde strategie gebruikt. Afbouwen van 100% naar 50%, waarbij de initiële prijs wordt bepaald door het maximum te nemen van de geleerde prijs en de huidige prijs. SlimAgent (Feugelheim) Deze agent werkt op ongeveer dezelfde manier als de kokhoorn (of andersom). Een verschil is wel dat deze agent niet alle pakketten afloopt, maar random 1000 pakketten per klant pakt. Op deze manier wordt een groot genoeg deel van alle pakketten bekeken, en heb je geen problemen met tijdgebrek.

Vluchten voor de vluchten is onderzoek gedaan naar het prijsverloop. De start en eindprijzen zijn bekeken, en het verschil hiertussen is berekend over een samplesize van tien. Uit dit onderzoek bleek dat het gemiddelde verschil tussen de begin en de eindprijs niet erg groot was. Klein genoeg om te beslissen om de tickets pas in de laatste minuut te kopen op basis van het meest winstgevende pakket. Hotels Ook hier is onderzoek naar de prijs gedaan. Hieruit is gebleken de dat de goede hotels duurde zijn dan de slechtere. Ook is gebleken dat de prijs voor een hotel op dag een het laagst is, de prijs voor een hotel van dag vier iets hoger, en de prijs voor een hotel op dag 2 en 3 het hoogst en ongeveer gelijk aan elkaar. De allocatie van de hotels wordt bepaald door het hierboven aangegeven algoritme. Op niet gealloceerde hotels wordt 5.11 geboden als backup. Het bod op gealloceerd hotels wordt bepaals met behulp van het verschil tussen de vorige en de huidige vraagprijs. Dit wordt bij de huidige vraagprijs opgeteld en vermenigvuldigd met 1.m, waarbij m het aantal verstreken minuten is. Bij de laatst te sluiten hotelbieding wordt de prijs nog eens verhoogt met 150. op dit moment kan de concurrentie toch geen informatie meer halen uit je bod, en ben je bijna zeker van deze kamers. Entertainment Voor het verkopen van entertainment wordt begonnen met het vragen van 150. Deze prijs loopt lineair in de tijd af naar vijftien. Het kopen van entertainment gebeurt pas in de laatste minuut of wanneer de vraag en biedprijs dicht bij elkaar komen en dit ticket bruikbaar is. Dan wordt de vraagprijs geboden. Resultaten Hieronder de resultaten. De bovenste 25 games zijn de games waarvan geen history is opgeslagen. Van de onderste twaalf is wel een uitgebreide history bekend. Kanttekening bij de resultaten: Bij de eerste 25 spellen was er voor elk van onze tegenstanders een spel waarbij de agent vast liep. Bij de laatste serie moest Smith steeds opnieuw worden opgestart omdat deze volgende games niet herkende. Dit bleek pas nadat die een keer fout was gegaan.

Analyse Als eerste een analyse van de resultaten. Uit beide tests blijkt dat kokhoorn en Feugelheim aardig met elkaar kunnen concurreren. Ook lijkt dat Bond goed mee kan komen, maar het in deze twee tests uiteindelijk altijd aflegt tegen beide agents. Dit geldt zowel voor de individuele agenten als voor het gemiddelde van beide. Ook blijkt dat onze agenten het niet erg goed doen. Alhoewel een van onze agenten in de tweede serie enigszins mee kan komen. Dit wijst erop dat onze agent enig geluk nodig heeft om een goede score te halen. De andere agent die precies hetzelfde te werk gaat heeft immers een veel lagere score. Het is interessant om onze agent te vergelijken met Smith/Bond. Deze agents zijn ongeveer hetzelfde. De onze doet iets beter zijn best om goede entertainment te krijgen, terwijl Smith/Bond meer hun best doen om feasible packages te krijgen. Als wij een klant geen

perfect pakket aan kunnen bieden (perfect als in heen en terugreis op de gewenste dag), dan bieden wij hem helemaal niks aan, terwijl dit pas in de loop van de competitie hoeft te blijken, en dan al kosten zijn gemaakt. Uit de resultaten blijkt dat het erg belangrijk is om feasible pakketten te maken. Aangezien dit kleine verschil tussen onze agent en Smith/Bond een groot verschil in de einduitslag geeft. Dit is niet zo gek omdat ook uit de resultaten blijkt dat bijna elk feasible pakket een positieve utiliteit oplevert. Dus waar Smith/Bond nog het beste maakt uit ene klant, maken wij alleen kosten om hem uiteindelijk niet op vakantie te sturen. Een ander interessant feit is dat Smith/Bond aardig mee kan komen met de twee 'inteligentere' agenten. Dit zal komen doordat deze agenten slimme beslissingen nemen, en alle agenten afhankelijk zijn van de beslissingen van andere agenten. Als het ware lift Smith/Bond dus mee op het succes van de andere twee. Je kunt het ook op deze manier bekijken: Deze twee agents bieden op hotels totdat ze een beter alternatief hebben. Op deze manier voeren ze de prijs van hotels op tot een bepaalde maximale waarde. Als deze waarde bereikt is stappen ze over op een ander pakket. Smith/Bond blijft echter doorbieden op deze hotels, maar omdat de tegenstanders niet meer bieden hoeft hij zijn prijs niet meer te verhogen. Op deze manier betaald Smith/Bond dus net iets meer dan wat de andere twee er maximaal voor zouden betalen, en hebben de andere twee het net iets beter gedaan door een pakket te zoeken waarbij de winst net iets groter is. Het verschil is dus niet groot, maar altijd net in het voordeel van de twee 'intelligentere' agenten. Een derde leuke vergelijking zou zijn het vergelijken van de twee beste agenten. Waarom wint Feugelheim de uiteindelijke competitie. Het vergelijken van deze twee agents is echter moeilijk. Het is ook zo dat kokhoorn de eerste competitie had gewonnen. Om deze twee echt qua resultaat te vergelijken is de samplesize gewoon te klein. Ook 25 spellen zouden hiervoor niet genoeg zijn geweest. Het verschil is zo klein dat je eerder richting de honderden spellen moet gaan denken. Wat wel interessant is om op te merken aan het verschil in deze twee agents is de manier waarop ze entertainment tickets kopen. Hierbij zou Feugelheim net iets in het voordeel moeten zijn. Zij kapen de tickets vlak voor iemands neus weg, waardoor de concurrentie in principe meer moet gaan betalen dan wat zij ervoor betalen. Hierdoor zou het kleine verschil enigszins te verklaren zijn, maar zoals al gezegd is de sample hiervoor te klein. Conclusie Aangezien onze agent simpel is geïmplementeerd komt deze wel goed mee in de competitie, het scheelt niet veel met Smith/Bond. Het lukt alleen niet om op het niveau van de andere agents te komen. Voor een echte smart agent zouden alle factoren moeten worden meegerekend en de slimste trucjes worden uitgehaald. Desalniettemin wilde wij het simpel en smart houden, de agent maakt bijna geen verlies en na het implementeren voor het kopen van een terugvlucht voor een feasible package presteert onze agent kampkant gemiddeld 2530, wat niet heel slecht is.