Professional Documents
Culture Documents
Description Challenge
Description Challenge
Motivation
As of today, the problem of optimal pricing and learning in a competitive
environment still remains very much unexplored territory. Presumably, the
most challenging aspect is to model competitor behavior within a general
framework. In an attempt to give substance to this problem, we kindly
invite you to join our dynamic pricing challenge. In this challenge we will
simulate a competitive market environment in which you compete for rev-
enue with your fellow participants! The winning team will earn EUR500.-
and is expected to present their winning algorithm during the conference.
Description of challenge
As a team you are expected to hand in a pricing policy. To evaluate the
performance we will run a larger number of simulations. Each simulation
consists of 1000 discrete time periods. At each time t 2 {1, . . . , 1000}, each
policy receives as input everybodys prices posted in all preceding periods, as
well as their own demand that has materialized so far. Thus, competitors
historical prices are observable, but competitors demand is not. Subse-
quently, each team sets a new price for the period to come. Demand for this
period is generated from an undisclosed demand mechanism and all teams
earn revenue accordingly. There are no inventory restrictions. In addition,
the following domain knowledge is available: it seems unlikely that posting
prices higher than 100 is optimal. We simulate two dierent settings of
competitive market environments:
1. Round-robin Duopoly - Each team competes with each other team in
one-on-one contests (duopoly).
1
3. A short description of your algorithm of about one page (in PDF).
1. Input:
(i) popt
price posted for the following time period
(ii) parameterdump
object with model estimates to store for next iteration
2
#! / u s r / b i n / env python
d e f p ( p r i c e s h i s t o r i c a l , d e m a n d h i s t o r i c a l , parameterdump=None ) :
# if i t s t h e f i r s t day
i f d e m a n d h i s t o r i c a l . s i z e == 0 :
popt = np . random . u n i f o rm ( 0 , 2 0 )
# if i t s not t h e f i r s t day
else :
# f i t ols
regr = linear model . LinearRegression ()
regr . f i t ( p r i c e s h i s t o r i c a l [ 0 ] . reshape ( 1 ,1) ,
demand historical )
# ch ec k i f p r i c e i s p o s i t i v e
i f popt < 0 :
popt = 0 . 0
parameterdump = r e g r
r e t u r n ( popt , parameterdump )
Disclaimer
No correspondence will be entered into in respect of the result. In case of
unforeseen events, the organizing committee decides on the final ranking.