26
The interaction between The interaction between consumers, retailers and consumers, retailers and manufacturers manufacturers Development of an empirically Development of an empirically grounded and testable multi-agent grounded and testable multi-agent simulation simulation David Midgley & Bob Marks David Midgley & Bob Marks Centre de Géostatistique Centre de Géostatistique Ecole des Mines de Paris Ecole des Mines de Paris March 16, 2004 March 16, 2004

The interaction between consumers, retailers and manufacturers Development of an empirically grounded and testable multi-agent simulation David Midgley

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