Upload
lydia-sullivan
View
214
Download
2
Tags:
Embed Size (px)
Citation preview
The interaction between The interaction between consumers, retailers and consumers, retailers and
manufacturersmanufacturersDevelopment of an empirically Development of an empirically
grounded and testable multi-agent grounded and testable multi-agent simulationsimulation
David Midgley & Bob MarksDavid Midgley & Bob Marks
Centre de Géostatistique Centre de Géostatistique Ecole des Mines de Paris Ecole des Mines de Paris
March 16, 2004March 16, 2004
AgendaAgenda
• SetupSetup
• Mark 1 agentsMark 1 agents
• IssuesIssues
DisclaimerWork in early stages
Setup: historySetup: history• Realization that modelling consumers Realization that modelling consumers
is not enough to understand marketsis not enough to understand markets– Competition between manufacturersCompetition between manufacturers
• Modelling manufacturers as bit-string Modelling manufacturers as bit-string agentsagents– With consumers represented by aggregate With consumers represented by aggregate
demand equations (category & share)demand equations (category & share)– Recently retailers also included via Recently retailers also included via
equations modelling acceptance of equations modelling acceptance of promotional offerspromotional offers
– Use of the genetic algorithm to optimize Use of the genetic algorithm to optimize agent behaviouragent behaviour
Setup: issues & motivationSetup: issues & motivation• Bit-strings are black boxesBit-strings are black boxes
– Hard to interpretHard to interpret
• InconsistenciesInconsistencies– individual rules for manufacturers individual rules for manufacturers – aggregate equations for consumers and retailersaggregate equations for consumers and retailers
• Inflexible modeling approachInflexible modeling approach– Hard to re-specify to meet reviewer requestsHard to re-specify to meet reviewer requests
• Rather “top-down” in philosophyRather “top-down” in philosophy
Suggests investigating a disaggregate, Suggests investigating a disaggregate, “bottom-up” approach as an “bottom-up” approach as an alternative/complementalternative/complement
Setup: what is a multi-agent Setup: what is a multi-agent simulation?simulation?
• A tool for modelling A tool for modelling complex complex adaptive systemsadaptive systems– Like marketsLike markets
• ““Apparently complex adaptive Apparently complex adaptive behaviors that emerge as a behaviors that emerge as a consequence of nonlinear spatio-consequence of nonlinear spatio-temporal interactions among a large temporal interactions among a large number of components or number of components or subsystems are ubiquitous in subsystems are ubiquitous in nature.” nature.”
Setup: what is a multi-agent Setup: what is a multi-agent simulation?simulation?
• Santa Fe Institute & SwarmSanta Fe Institute & Swarm
• Basic ideaBasic idea– Specify rules for each class of agentsSpecify rules for each class of agents– Provide platform for populations of Provide platform for populations of
agents to interactagents to interact– Analyze the complex behaviour that Analyze the complex behaviour that
results, often from simple rulesresults, often from simple rules
Setup: simple examplesSetup: simple examples
• BoidsBoids
• SchellingSchelling
Setup: pros and cons of Setup: pros and cons of approachapproach
• ProsPros– Closer to the real Closer to the real
phenomenaphenomena– Can incorporate CB Can incorporate CB
literatureliterature– Easier to build these Easier to build these
simulations than simulations than solve equivalent solve equivalent equationsequations
– Flexible & extensibleFlexible & extensible
• ConsCons– Requires understanding of Requires understanding of
these phenomenathese phenomena– Less literature on retailers Less literature on retailers
& manufacturers& manufacturers– But they are simulations But they are simulations
not analytical solutionsnot analytical solutions
– Many possible directionsMany possible directions
Setup: choice of Setup: choice of modelingmodeling platformplatform• There are many platforms for multi-agent There are many platforms for multi-agent
modellingmodelling– Swarm, Ascape, SDML…we identified 28!Swarm, Ascape, SDML…we identified 28!
• And one could program from scratch in C++ And one could program from scratch in C++ or Javaor Java
• We have chosen RePast:We have chosen RePast:– Access to underlying codeAccess to underlying code– Platform independence (Java)Platform independence (Java)– User-friendly interface and development toolsUser-friendly interface and development tools– Data visualizationData visualization– Suitability for social science simulationsSuitability for social science simulations– Large user communityLarge user community– Capable of supporting very different types of Capable of supporting very different types of
modelmodel
Setup: RePastSetup: RePastREREcursive cursive PPorous orous AAgent gent SSimulation imulation TToolkitoolkit• University of Chicago Social Science University of Chicago Social Science
ComputingComputing• Software “framework” using JavaSoftware “framework” using Java
– Library of classes for creating, running, Library of classes for creating, running, displaying and collecting data displaying and collecting data
– ““Swarm-like”Swarm-like”• Envisions a simulation as a state machine Envisions a simulation as a state machine
whose state is constituted by the whose state is constituted by the collective states of all its componentscollective states of all its components
• Components are divided into:Components are divided into:– Infrastructure: mechanisms to run, display and Infrastructure: mechanisms to run, display and
collect datacollect data– Representation: the simulation model itself Representation: the simulation model itself
• Discrete time (“ticks”) with sophisticated Discrete time (“ticks”) with sophisticated schedulingscheduling
Mark 1 agents: general Mark 1 agents: general frameworkframework• The three agent classes representThe three agent classes represent
– Supermarket consumersSupermarket consumers– Retail managersRetail managers– Brand managersBrand managers
• Assumption: all human therefore have Assumption: all human therefore have similar decision-making processessimilar decision-making processes– Though knowledge, involvement & Though knowledge, involvement &
comprehensiveness of decision may varycomprehensiveness of decision may vary
• Basic mechanismBasic mechanism– A memory set of what has been successful for A memory set of what has been successful for
them in the pastthem in the past– Rules for adding and deleting from this setRules for adding and deleting from this set– And for consumers a standard advertising And for consumers a standard advertising
awareness mechanismawareness mechanism
Mark 1 agents: consumer Mark 1 agents: consumer specificationspecification
• Becomes aware of product and product Becomes aware of product and product attributes through advertising, promotion & attributes through advertising, promotion & usageusage
• May see promotions when they go to the May see promotions when they go to the storestore– Poisson inter-purchase timesPoisson inter-purchase times– Weekly timeframeWeekly timeframe
• Are initially uncertain of attribute values but Are initially uncertain of attribute values but learn learn
• Use a Use a lexicographiclexicographic rule to add products to rule to add products to their consideration settheir consideration set– With cognitive “costs”With cognitive “costs”
Mark 1 agents: consumer Mark 1 agents: consumer specificationspecification
• Use a Use a compensatory rulecompensatory rule to choose to choose amongst products in this set amongst products in this set – Incorporating risk aversion for attribute Incorporating risk aversion for attribute
uncertaintyuncertainty
• Drop products in this set according to Drop products in this set according to a satisfaction a satisfaction thresholdthreshold
• Heterogeneity in attribute weights Heterogeneity in attribute weights and other parameters across the and other parameters across the populationpopulation
Mark 1 agents: example code Mark 1 agents: example code extract extract • considerationSet.insert(los.get(0));considerationSet.insert(los.get(0));• productInfoList.remove(productInfoList.indexOf(los.get(0));productInfoList.remove(productInfoList.indexOf(los.get(0));
• // update the price with real price and change the uncertainty to 0// update the price with real price and change the uncertainty to 0• los.get(0).Uz = 0.0;los.get(0).Uz = 0.0;• los.get(0).z = retailer.getZ(los.get(0).p);los.get(0).z = retailer.getZ(los.get(0).p);
• // buy the best product in consideration set// buy the best product in consideration set• ProductInfo best = considerationSet.getBest(R, Wx, Wy, Wz);ProductInfo best = considerationSet.getBest(R, Wx, Wy, Wz);• retailer.buy(best); // do some accounting hereretailer.buy(best); // do some accounting here
• // experience.. knows the real values of the other attributes// experience.. knows the real values of the other attributes• best.Ux = 0.0; best.Uy = 0.0; best.Uz = 0.0;best.Ux = 0.0; best.Uy = 0.0; best.Uz = 0.0;• best.x = best.p.getX(); best.y = best.p.getY(); best.z = best.p.getZ(); // Dineshbest.x = best.p.getX(); best.y = best.p.getY(); best.z = best.p.getZ(); // Dinesh• best.PS = (Wx*best.x + Wy*best.y + Wz*best.z); // recomputation of weightbest.PS = (Wx*best.x + Wy*best.y + Wz*best.z); // recomputation of weight
• // drop from consideration set if not satisfied.// drop from consideration set if not satisfied.• if(best.PS < T)if(best.PS < T)• {{• considerationSet.remove(best);considerationSet.remove(best);• productInfoList.add(best); // goes back to the list of productsproductInfoList.add(best); // goes back to the list of products• // blacklist this product?// blacklist this product?• }}
• // set nextPurchaseTime// set nextPurchaseTime• nextPurchaseTime += poisson.nextInt();nextPurchaseTime += poisson.nextInt();
Mark 1 agents: manufacturer Mark 1 agents: manufacturer specificationspecification
• Product has three attributes, including Product has three attributes, including wholesale pricewholesale price
• Remembers two classes of past experienceRemembers two classes of past experience– Promotional & non-promotional periodsPromotional & non-promotional periods
• Remembers N best results and the Remembers N best results and the marketing mixes associated with thesemarketing mixes associated with these– Updates this memory every quarterUpdates this memory every quarter– ““Bounded rationality” through fixed size of these Bounded rationality” through fixed size of these
classesclasses
• Sets advertising expenditure and normal Sets advertising expenditure and normal price for the quarter on the basis of past price for the quarter on the basis of past experienceexperience
• Chooses one attribute and level to advertiseChooses one attribute and level to advertise
Mark 1 agents: manufacturer Mark 1 agents: manufacturer specificationspecification
• Asks the retailer how many Asks the retailer how many promotions will be allowed next promotions will be allowed next quarterquarter
• Offers promotions to fill these on the Offers promotions to fill these on the basis of past experience basis of past experience
• Has a simple cost and profit modelHas a simple cost and profit model
• Note: Note: – does not explicitly consider competitiondoes not explicitly consider competition– does not negotiate with the retailerdoes not negotiate with the retailer
Mark 1 agents: retailer Mark 1 agents: retailer specificationspecification
• At the moment onlyAt the moment only one one retailer simulatedretailer simulated• Has a fixed policy of only Has a fixed policy of only oneone brand brand
promoted in any promoted in any one weekone week• Retains a memory of previously successful Retains a memory of previously successful
promotions for all brandspromotions for all brands– Attributes are price discount and aisle displayAttributes are price discount and aisle display– Success to the retailer is different to success to Success to the retailer is different to success to
the manufacturer the manufacturer • e.g. total category profit versus brand profite.g. total category profit versus brand profit
– Updates this memory every quarterUpdates this memory every quarter– ““Bounded rationality” through the fixed size of Bounded rationality” through the fixed size of
this setthis set
• Decides on how many promotions to allow Decides on how many promotions to allow next quarternext quarter
Mark 1 agents: retailer Mark 1 agents: retailer specificationspecification• Considers all manufacturers offersConsiders all manufacturers offers
– By brand, by comparison with past experienceBy brand, by comparison with past experience– Chooses the best in terms of likely total Chooses the best in terms of likely total
category profitcategory profit
• Chosen promotions are randomly allocated Chosen promotions are randomly allocated to weeks within the quarterto weeks within the quarter
• Has fixed mark-up and slotting fees for the Has fixed mark-up and slotting fees for the quarter, can vary these quarter by quarterquarter, can vary these quarter by quarter
• Note: Note: – Does not chose normal wholesale prices, only Does not chose normal wholesale prices, only
promotionspromotions– Offers same slotting fees and mark-up to all Offers same slotting fees and mark-up to all
manufacturersmanufacturers
INPUT Parameters:INPUT Parameters:----------------------------------------------------------Consumer:Consumer:Wx: uniform random between 0 and 1Wx: uniform random between 0 and 1Wy: uniform random between 0 and 1Wy: uniform random between 0 and 1Wz: uniform random between 0 and 1Wz: uniform random between 0 and 1C: normal with mean=0.1 and std. dev=0.02C: normal with mean=0.1 and std. dev=0.02R: normal with mean=0.1 and std. dev=0.02R: normal with mean=0.1 and std. dev=0.02T: normal with mean=0.8 and std. dev=0.2T: normal with mean=0.8 and std. dev=0.2poisson distribution parameter for interpurchase time: normal poisson distribution parameter for interpurchase time: normal
with mean=user input and std. dev=2 (weeks)with mean=user input and std. dev=2 (weeks)consideration set size:5consideration set size:5probabilty of noticing a promotion: normal with mean 0.75 and probabilty of noticing a promotion: normal with mean 0.75 and
std. dev=0.05std. dev=0.05N (no. of weeks considered for share of voice): 1 (as of now N (no. of weeks considered for share of voice): 1 (as of now
since WA is constant)since WA is constant)
awarenessP1 awareness:false adv:'x' x:0.00 y:0.00 z:0.00 Ux:1.00 Uy:1.00 Uz:1.00P2 awareness:false adv:'y' x:0.00 y:0.00 z:0.00 Ux:1.00 Uy:1.00 Uz:1.00P3 awareness:false adv:'y' x:0.00 y:0.00 z:0.00 Ux:1.00 Uy:1.00 Uz:1.00P4 awareness:false adv:'y' x:0.00 y:0.00 z:0.00 Ux:1.00 Uy:1.00 Uz:1.00P5 awareness:true adv:'x' x:0.14 y:0.28 z:0.14 Ux:0.23 Uy:0.46 Uz:0.33Noticed promotion for : P5P5 awareness:true z:0.77 Uz:0.00scanningP5 awareness:true x:0.14 y:0.28 z:0.77 Ux:0.23 Uy:0.46 Uz:0.00adding to consideration set : P5Consideration setP5 awareness:true x:0.14 y:0.28 z:0.23 Ux:0.23 Uy:0.46 Uz:0.00 PS:0.28C40 buys P5Recomputed PS: 0.71 less than threshold: 0.91 , dropped
Consumer 40, tick 2
Tick Producer Discount Aisle Display(y/n) Brand Profit------------------------------------------------1 P3 Could not insert brandProfit: 0.00 (<0.00)2 P5 Could not insert brandProfit: 0.00 (<0.00)3 P3 19 0 2.244 P2 14 1 4.895 P4 11 1 7.016 P4 10 1 11.669 P3 Could not insert brandProfit: 0.00 (<0.00)10 P3 16 0 10.1012 P5 Could not insert brandProfit: 0.00 (<0.00)13 P2 12 1 10.6314 P3 16 0 9.6515 P4 10 1 9.2417 P3 Could not insert brandProfit: 0.00 (<0.00)18 P2 12 1 8.8719 P5 14 1 9.3220 P3 15 0 12.3921 P2 12 1 8.4322 P4 10 0 9.70
Producer promotions
Tick Discount(%) Aisle Display(Y/N) CategoryProfit1 Could not insert categoryProfit: 0.00 (<0.00)2 Could not insert categoryProfit: 0.00 (<2.00)3 19.00% 0 11.084 14.00% 1 23.675 11.00% 1 31.246 10.00% 1 54.149 18.00% 0 42.4210 16.00% 0 45.6212 14.00% 1 59.5113 12.00% 1 51.0914 16.00% 0 45.0715 10.00% 1 41.1317 16.00% 0 49.1618 12.00% 1 42.2819 14.00% 1 43.0220 15.00% 0 56.59
Retailer
Tick P1 P2 P3 P4 P5 14 5.51% 25.48% 18.86% 20.45% 29.70% 15 5.20% 24.09% 17.83% 24.81% 28.07% 16 5.20% 24.09% 17.83% 24.81% 28.07% 17 5.20% 24.09% 17.83% 24.81% 28.07% 18 4.93% 28.11% 16.89% 23.49% 26.59% 19 4.68% 26.67% 16.02% 22.29% 30.35% 20 4.38% 24.97% 21.38% 20.87% 28.41% 21 4.19% 28.18% 20.46% 19.97% 27.20% 22 4.01% 26.93% 19.56% 23.52% 25.99%
Market shares
Issues: currently facedIssues: currently faced• Good literature on consumer decision-Good literature on consumer decision-
making, but much less on retailers and making, but much less on retailers and manufacturersmanufacturers– Consumer agent more grounded than the Consumer agent more grounded than the
others?others?
• Gap between specification document and Gap between specification document and actual codeactual code– How do I know implementation matches How do I know implementation matches
specification?specification?
• How to parameterizeHow to parameterize– In particular, distributions of heterogeneous In particular, distributions of heterogeneous
parameters for the consumers parameters for the consumers • Attribute weights, risk, cognitive costs, satisfaction Attribute weights, risk, cognitive costs, satisfaction
threshold, etc., etcthreshold, etc., etc
Issues: general issues in Issues: general issues in validationvalidation• Does this simulation meet Salthe’s triadic Does this simulation meet Salthe’s triadic
test? test? – Any social or biological model should Any social or biological model should
adequately describe the system, its adequately describe the system, its components and its environmentcomponents and its environment
• How do we empirically test a simulation?How do we empirically test a simulation?• Where does the balance between realism Where does the balance between realism
and simplicity lie?and simplicity lie?• What assumptions have we made by What assumptions have we made by
adopting RePast?adopting RePast?• And many more: see And many more: see http://http://
hcs.ucla.edu/CONFERENCE_CALL.rtfhcs.ucla.edu/CONFERENCE_CALL.rtf
PlansPlans• Get Mark 1 debuggedGet Mark 1 debugged
• Work out a sensible parameterizationWork out a sensible parameterization
• Develop and test method for validationDevelop and test method for validation
• Move to Mark 2Move to Mark 2– Explicit recognition of competitionExplicit recognition of competition– Negotiation between retailer and manufacturersNegotiation between retailer and manufacturers
• ValidateValidate
• Start work on a diffusion modelStart work on a diffusion model