Competing Technologies (iPhone vs Blackberry) v4

No preview image

1 collaborator

Default-person Felix Hu (Author)

Tags

(This model has yet to be categorized with any tags)
Model group MAM-2013 | Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.0.4 • Viewed 461 times • Downloaded 42 times • Run 0 times
Download the 'Competing Technologies (iPhone vs Blackberry) v4' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


WHAT IS IT?

This is a classic model of forces competing for a limited resource. In this model, the two forces are Apple (iPhone) and Blackberry. The limited resource is customers, and the setting is the mobile market. These two forces accumulate income based on how many customers they have, and the user controls how these two forces invest that income.

This model shows how different methods of investment can drastically change the market share.

HOW IT WORKS

Customers are represented by circles. Orange circles signify iPhone users, and magenta circles signify Blackberry users. Marketing influence is represented by patches. The darker the patch, the more influence Blackberry has on that patch. The bluer and lighter the patch, the more influence iPhone has on that patch.

Setup: An inital amount of customers is created, with their phone choices already made. The patches are present, with a roughly 50/50 split between iPhones and Blackberries. Each customer has their own set of preferences, represented by a number. The larger the number, the bigger the preference. The preferences are:

  • Susceptibility to marketing
  • Preference to what their friends use
  • Attraction to advanced technology

Each tick:

  • New customers are introduced into the market. They follow an inverse exponential graph, unless the controlling switch is off.
  • Both forces gain an income based on how many customers they have, and spend it based on user controlled sliders
  • Marketing upgrade changes the color of one patch by one, and the cost of marketing does not change
  • Technology upgrades cost increasingly more, unless the controlling switch is off
  • New customers and customers renewing their contract make their decision based on the current environment and their personal preferences.
  • Customers with contracts expiring remake their decision on a new phone

HOW TO USE IT

You control how the two companies spend their resources. Try and find the most optimal combination of spending for one corporation to spend their money so that the amount of customers using their technology is maximized. Or see how an equilibrium can be achieved. Or see what a corporation should avoid to not be completely wiped from the market.

You may adjust switches to see if they have any affect on the outcome of market share. You may also adjust the maximum adopters allowed slider to see how that affects the effectiveness of investment percentages.

You may also adjust the turtle size, if there are too many turtles on the screen.

This model may run a little slow at times, so try turning the speed to fastest.

THINGS TO NOTICE

When the model is run, at first it may seem that spending on technology dictates the market share, but be sure to wait for the model to run for a while, before noticing changes caused by marketing.

Take note of the population and marketing percentage if you see one techonology's market share surpass the other's, and compare it with other spending patterns.

THINGS TO TRY

Don't just keep the spending percentages the same throughout a run. Change it and see if any emergent behaviors occur as you change the sliders. This more realistically simulates a company, as they do not just have the same spending percentage throughout their entire lifespan.

Pretend that you are the CEO of one of the companies. If the competing company is ahead, what can you do to regain market share? If the competing company is behind, what can you do to secure your lead?

EXTENDING THE MODEL

There are many things that can make this model more realistic. Here are some suggestions.

  • Phone technology is tricky to model, as there are milestones that technology reaches, which causes essentially all adoptors to never choose the phone which does not contain that milestone. For example, regardless of how good the marketing is for a flip phone, it is going to sell nominally compared to a touch screen phone.
  • Add competition (bidding) for patch spots that more more densely populated. Allow population to also cluster. This simulates cities, and places that are expensive to advertise in, such as Times Square.
  • Have customers change their friends around, based on people around them, and personal preference.
  • Have customers walk around in random paths, and befriend other customers which have similar paths.
  • Have companies specifically target a patch which has a density of customers not using their technology.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

breed [customers customer]
turtles-own [group-pref phantom-group-pref tech-pref influence-by-marketing friends contract-time]
globals [
  iphone-resources blackberry-resources 
  tech-iphone tech-blackberry 
  iphone-upgrade-cost blackberry-upgrade-cost 
  marketing-percentage-iphone patches-sum
  current-turtle-size current-friend-status growth-rate 
  cost-of-marketing
  iphone-marketing-spending iphone-tech-spending blackberry-marketing-spending blackberry-tech-spending 
  iphone-spent-on-marketing blackberry-spent-on-marketing iphone-spent-on-tech blackberry-spent-on-tech 
  iphone-tech-next-stage blackberry-tech-next-stage iphone-marketing-next-stage blackberry-marketing-next-stage
]

to setup
  clear-all
  initialize-variables
  
  set-default-shape customers "circle"
  create-customers initial-customers [
    ifelse random 100 < initial-iphone-percent [
      set color orange
    ][
      set color magenta
    ]
    create-helper
  ]
  ask turtles [
    create-links
  ]
  ask patches [
    set pcolor 5
  ]
  setup-marketing
  reset-ticks
end 

to go
  set-go-variables
  set-marketing-variable
  
  add-resources
  spend-resources
  
  change-turtle-size
  update-friends-status
  update-growth-rate
  add-customers
  update-contracts-and-remake-decision-if-expired
  
  tick
end 

to update-growth-rate ; this procedure updates the growth rate based on an inverse exponential function
  ifelse inverse-exp-growth? [
    ifelse e ^ (ticks / maximum-new-adoptors) > maximum-new-adoptors [
      set growth-rate maximum-new-adoptors
    ][
      set growth-rate int (e ^ (ticks / maximum-new-adoptors))
    ]
  ][
    set growth-rate 1
  ]
end 

to add-customers ; introduce customers to the world based on the function given by update-growth-rate
  if ticks mod growth-rate = 0 [
    create-customers 1 [
      create-helper
      create-links
      set-phone-choice
    ]
  ]
end 

to update-contracts-and-remake-decision-if-expired ; turtle proceture -- updates when their contract expires, and remakes their decision if expired
  ask customers [
    ifelse contract-time = 0 [
      set-phone-choice
      set contract-time 4 * 356
    ][
      set contract-time contract-time - 1
    ]
  ]
end 

to add-resources ; give each company an income based on the amount of customers they have
  set iphone-resources iphone-resources + count turtles with [color = orange]
  set blackberry-resources blackberry-resources + count turtles with [color = magenta]
end 

; this procedure also updates tech and marketing levels for both companies, after spending both company's income
; if the income is not enough to pay for a technology upgrade, the company still puts money towards it, but only
; gets the point after it has put enough money towards it
; this procedure also increases the technology cost as it updates

to spend-resources 
  ifelse random (iphone-tech-spending + iphone-marketing-spending) < iphone-marketing-spending [
    set iphone-spent-on-marketing iphone-spent-on-marketing + iphone-resources
    if iphone-spent-on-marketing > iphone-marketing-next-stage [
      if any? patches with [pcolor != 109] [
        ask one-of patches with [pcolor != 109] [
          set pcolor pcolor + 1
          set iphone-resources iphone-resources - cost-of-marketing
        ]
      ]
      set iphone-marketing-next-stage iphone-marketing-next-stage + cost-of-marketing
    ]
  ][
    set iphone-spent-on-tech iphone-spent-on-tech + iphone-resources
    if iphone-spent-on-tech > iphone-tech-next-stage [
      set tech-iphone tech-iphone + 1
      set iphone-tech-next-stage iphone-tech-next-stage + cost-of-marketing + tech-iphone * 300
    ]
  ]
  set iphone-resources 0
  
  ifelse random (blackberry-tech-spending + blackberry-marketing-spending) < blackberry-marketing-spending [
    set blackberry-spent-on-marketing blackberry-spent-on-marketing + blackberry-resources
    if blackberry-spent-on-marketing > blackberry-marketing-next-stage [
      if any? patches with [pcolor != 100] [
        ask one-of patches with [pcolor != 100] [
          set pcolor pcolor - 1
          set blackberry-resources blackberry-resources - cost-of-marketing
        ]
      ]
      set blackberry-marketing-next-stage blackberry-marketing-next-stage + cost-of-marketing
    ]
  ][
    set blackberry-spent-on-tech blackberry-spent-on-tech + blackberry-resources
    if blackberry-spent-on-tech > blackberry-tech-next-stage [
      set tech-blackberry tech-blackberry + 1
      set blackberry-tech-next-stage blackberry-tech-next-stage + cost-of-marketing + tech-blackberry * 300
    ]
  ]
  set blackberry-resources 0
end 

to setup-marketing ; this sets the initial random gradient marketing environment on setup
  ask one-of patches [
    set pcolor 104
    ask-neighbors
  ]
end 

to ask-neighbors ; this is a recursive procedure for patches
  let my-color pcolor
  ask neighbors [
    if pcolor = 5 [
      ifelse random 10 < 5 [
        ifelse my-color + 1 > 109 [
          set pcolor 109
        ][
          set pcolor my-color + 1
        ]
      ][
        ifelse my-color - 1 < 100 [
          set pcolor 100
        ][
          set pcolor my-color - 1
        ]
      ]
      ask-neighbors
    ]
  ]
end 

to set-phone-choice ; turtles use this procedure to decide which which preference they will consider when choosing a phone
  let sum-of-preference group-pref + tech-pref + influence-by-marketing
  let r random sum-of-preference
  ifelse r < group-pref [
    set-according-to-neighbors
  ][
    ifelse r < tech-pref + group-pref [
      set-according-to-tech
    ][
      set-according-to-marketing
    ]
  ]
end 

to set-according-to-neighbors ; this procedure is called if turtles prefer what their friends use over other preferences
  ifelse any? friends [
    let blackberry-neighbors 0
    let iphone-neighbors 0
    ask friends [
      ifelse color = orange [
        set iphone-neighbors iphone-neighbors + 1
      ][
        set blackberry-neighbors blackberry-neighbors + 1
      ]
    ]
    let r blackberry-neighbors + iphone-neighbors
    ifelse random r < iphone-neighbors [
      set color orange
    ][
      set color magenta
    ]
  ][
    ifelse random tech-pref + influence-by-marketing < tech-pref [
      set-according-to-tech
    ][
      set-according-to-marketing
    ]
  ]
end 

to set-according-to-tech ; this procedure is called if turtles prefer technology use over other preferences
  ifelse tech-blackberry < tech-iphone [
    set color orange
  ][
    set color magenta
  ]
end 

to set-according-to-marketing ; this procedure is called if turtles are more susceptible to marketing over other preferences
  ifelse random 10 <= pcolor - 100 [
    set color orange
  ][
    set color magenta
  ]
end 

to create-links ; this is a turtle procedure which sets a random amount of friends for each turtle
  if random 100 < 40 [
    set friends min-n-of random 15 turtles [distance myself]
  ]
end 

to initialize-variables ; initialize variables at setup
  set patches-sum count patches
  set iphone-resources 0
  set blackberry-resources 0
  set tech-blackberry 0
  set tech-iphone 0
  set current-turtle-size turtle-size
  set current-friend-status 999
  set cost-of-marketing 3000
  set iphone-spent-on-marketing 0
  set blackberry-spent-on-marketing 0
  set iphone-spent-on-tech 0
  set blackberry-spent-on-tech 0
  set iphone-tech-next-stage cost-of-marketing
  set blackberry-tech-next-stage cost-of-marketing
  set iphone-marketing-next-stage cost-of-marketing
  set blackberry-tech-next-stage cost-of-marketing
end 

to create-helper ; this sets up the variables required whenever a customer is introduced into the world--mostly personal preference variables
  setxy random-xcor random-ycor
  set size turtle-size
  set friends no-turtles
  set group-pref random-normal 10 3
  set phantom-group-pref group-pref
  set tech-pref random-normal 10 3
  set influence-by-marketing random-normal 10 3
  set contract-time 4 * 356
end 

to set-go-variables ; this procedure updates spending for companies, and is updated every tick
  set iphone-marketing-spending percentage-spent-on-marketing-iphone
  set iphone-tech-spending 100 - percentage-spent-on-marketing-iphone
  set blackberry-marketing-spending percentage-spent-on-marketing-blackberry
  set blackberry-tech-spending 100 - percentage-spent-on-marketing-blackberry
end 

to change-turtle-size ; this procedure updates the size of turtles, and is called at every tick
  if current-turtle-size != turtle-size [
    set-turtle-size
    set current-turtle-size  turtle-size
  ]
end 

to set-turtle-size ; ; this is a helper procedure used by change-turtle-size
  ask turtles [
    set size turtle-size
  ]
end 

to update-friends-status ; this procedure updates the status of friends, and is called at every tick
  if current-friend-status != friends? [
    ifelse friends? [
      set-back-group
    ][
      set-group-zero
    ]
    set current-friend-status friends?
  ]
end 

to set-group-zero ; this is a helper procedure used by update-friends-status
  ask turtles [
    set group-pref 0
  ]
end 

to set-back-group ; this is a helper procedure used by update-friends-status
  ask turtles [
    set group-pref phantom-group-pref
  ]
end 

to set-marketing-variable ; this procedure updates the the percentage of marketing influence iphone has in the world.
  let iphone-sum 0
  ask patches [
    set iphone-sum iphone-sum + pcolor - 100
  ]
  set marketing-percentage-iphone iphone-sum / (9 * patches-sum)
end 

There is only one version of this model, created about 12 years ago by Felix Hu.

Attached files

File Type Description Last updated
EECS 372 Proposal.pdf pdf Original Project Proposal about 12 years ago, by Felix Hu Download
FelixHu_June2.docx word June 2nd Progress Report about 12 years ago, by Felix Hu Download
FelixHu_May20.docx word May 20th Progress Report about 12 years ago, by Felix Hu Download
FelixHu_May27.docx word May 27th Progress Report about 12 years ago, by Felix Hu Download
Final Report.docx word Final Report about 12 years ago, by Felix Hu Download
Hu_Felix_Slam.pptx powerpoint Slam Powerpoint Presentation about 12 years ago, by Felix Hu Download
poster.ppt pdf Poster about 12 years ago, by Felix Hu Download

Parent: Competing Technologies (iPhone vs Blackberry) v3

This model does not have any descendants.

Graph of models related to 'Competing Technologies (iPhone vs Blackberry) v4'