Network Exchange Theory

Network Exchange Theory preview image

1 collaborator

Vennbr_small_copy John Margeson (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by everyone
Model was written in NetLogo 5.3 • Viewed 597 times • Downloaded 41 times • Run 0 times
Download the 'Network Exchange Theory' 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 simple bargaining model based on network exchange theory as described in "Network Exchange Theory" (1999) edited by David Willer and encorporating some ideas about bargaining and negociation from José M. Vidal in "Fundamentals of Multiagent Systems" (2010).

HOW IT WORKS

1) Agents start by calculating their desire to communicate as well as a desire to be communicated with. This information is then used to create a probalistic negociation network based on these internal variables.

2) Agents then calculate their 'thresholds' for deal-making. They set their "bank" of resources, then determine how risk tolerant or risk averse they are, which then affects how much of their 'bank' they are willing to offer in negociations.

3) Bargaining then commences. Starting with the links established with others, each agent finds their link neighbor with the maximum 'bank,' compares their neighbors 'offer' size with their internal minimum acceptable profit and either agree or not. If not, offers are raised in a monotonic consession protocol (Vidal 2007, 87) until an equi-resistance point (Vidal 2007, 100) is reached.

4) Agents that either run out of 'bank' or have agreed to a bargain, leave the network. The bargain plays out until no agents remain.

5) The cycle of network construction, bargaining, attrition can be looped to generate data on various indicators propogating throughout the network, i.e. 'bank' data, number and types (weak vs. strong (Willer 1999, Part 1)) of networks, median offers, etc.

HOW TO USE IT

In the interface tab, set the number of agents in the network. Currently the slider limits the agents to 20, but this is arbitrary and can be changed. Set pcomms global to set the probability of connections within the network. Set the number of cycles, or times the bargaining process occurs. Press 'Go.'

Note that no initial "setup" procedure is shown in the interface view due to the visissitudes of netlogo code. To examine a one-off network, a button with that function is included but "Go" will not run the bargaining procedure with that one-off network. Future improvements will attempt to fix this peculiarity.

THINGS TO TRY

This model's code is rife with areas for additional procedures and algoithms for use with different risk models, bargaining theories, etc. Indeed, that was the intent of its creation and distribution. See notes in the code for specific areas left open for your additions.

EXTENDING THE MODEL

This model, as with most agent-based models, will find it's usefulness in the data it can output. Any and all suggestions/modifications on plotting or exporting interesting data is welcome.

CREDITS AND REFERENCES

Willer, David, Editor. Network Exchange Theory. Praeger. Westport, Connecticut. 1999.

Vidal, José M. "Fundamentals of Multiagent Systems with Netlogo Examples." 2010.

Comments and Questions

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

Click to Run Model

globals [

  ]

turtles-own [
  outreach            ;;Communicability
  receptability       ;;Willingness to be communicated with
  bargain-threshold   ;;How much an agent is willing to offer
  min-profit          ;;Minimum profit agent will accept from negociation
  bank                ;;How much the agent has to bargain with
  offer               ;;What an agent offers
  raise-increment     ;;How much an agent will put in a bargain
  agreed?             ;;Whether the agent agreed to the bargain
  ]

to setup-network
  clear-turtles
  ask patches [set pcolor white]
  create-turtles num-nodes  ;;How many players
  repeat 10 + sqrt num-nodes [layout-spring turtles links 0.2 5 2]  ;;Network layout
  ask turtles [
        set bank random-float 1000 ;; sum [bank] of turtles
    set label who
    set label-color black
    set agreed? false
    set shape "circle"
    set color red
    ]
  calculate-pcomms  ;;Starting probability of agent's willingness to reach out
  calculate-bargain-threshold  ;;Agents decide how much they will risk in bargaining
  layout
  output-show median [bank] of turtles  ;;Shows median bank accounts in interface for possible use in median voter algoithm
  reset-ticks
end 

to cycle-go  ;;Loops the model a preset number of 'cycles'
  repeat cycles [
    setup-network
    loop-model
  ]
end 

to loop-model  ;;Procedure combining bargaining sub-procedures
  loop [
    bargain
    layout
    resize-turtles
    fold
   tick
  if count turtles = 0 [stop]
     ]
end 

to resize-turtles  ;;Visual representation of agent's 'power' in the network
  ask turtles [
    set size sqrt count link-neighbors + (round bank / 1000)  ;;Placeholder for distributing resources across agents
  ]
end 

to calculate-pcomms  ;;Agents decide to reach out
  ask turtles [
    set outreach random-float 1  ;;Placeholder for algorithm where turtles decide how 'social' they will be
    set receptability random-float 1  ;;Placeholder for algorithm where turtles decide how receptive to other turtles they will be
    if outreach <= pcomms [create-link-with max-one-of other turtles [receptability]]  ;;Based on pcomms; agents link with other agents with high communicability
    ]
end 

to calculate-bargain-threshold  ;;Agents decide how much they will risk in bargaining
  ask turtles [
    let risk-percentage random-float 1  ;;How risk averse the agent is; the higher the number the greater the risk tolerance
    set bargain-threshold (bank * risk-percentage) ;;Percentage of bank an agent is likely to risk in bargaining
    ]
end 

to bargain
   ask turtles with [any? link-neighbors = true] [
    set min-profit (bank / .25)  ;;Minimum profit an agent will accept in negociation
    set offer (bargain-threshold / 2)  ;;Set amount an agent is going to offer other agents
    set raise-increment ((offer / 2) + ticks)  ;;Set increment to raise slowly
    ifelse agreed? = false [ ifelse max [offer] of link-neighbors < min-profit  ;;Agents compare their neighbors offer to their own min-profit acceptable and either agree, ...
      [ask link-neighbors [set offer offer + raise-increment set bank bank - offer]] [set agreed? true] ]  ;;...or ask their neighbor to raise until agent agrees...
                           [ die ]  ;;...then are removed from the network
  ]
end 

to fold  ;;Remove a player if they...
  ask turtles [ if size < 1 [die]  ;;...go broke, ...
                if agreed? = true [die]  ;;...agreed to a bargain, or...
                if link-neighbors = nobody [die]  ;;...are not in the network.
  ]
end 

to layout
 ask turtles [ layout-spring turtles links 0.2 5 1 ]
  display
end 

to-report count-within-cycles  ;;Placeholder for a procedure where variables within the cycles are recorded
  report median [outreach] of turtles
end 

There is only one version of this model, created over 9 years ago by John Margeson.

Attached files

File Type Description Last updated
Network Exchange Theory.png preview Preview for 'Network Exchange Theory' over 9 years ago, by John Margeson Download

This model does not have any ancestors.

This model does not have any descendants.