# N-person Game Theory_Final

Model was written in NetLogo 5.0.4
•
Viewed 585 times
•
Downloaded 37 times
•
Run 0 times

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

Info tab cannot be displayed because of an encoding error

## Comments and Questions

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

Click to Run Model

turtles-own [ prob-s1 ;probability of choosing strategy 1 prob-s2 ;probability of choosing strategy 2 strategy1? ;boolean, "true" if strategy 1 is chosen utility ;payoff received at that round potential-utility ;payoff of choosing other strategy in the same round partnered? ;boolean, "true" if turtle is partnered with another turtle partner ;the opposing turtle in a game partner-strategy1? ;boolean, "true" if partner chose strategy 1 strategy ;the learning strategy used by each turtle ] to setup clear-all crt number-utility-max [ set strategy "utility-max" set label 1 ;labels used to identify what strategy a turtle is using ] crt number-seek-fair [ set strategy "seek-fair" set label 2 ] crt number-predictors [ set strategy "predict" set label 3 ] ask turtles [ set shape "person" set size 2 ;size used to make turtles easier to see set color one-of [red blue] ;determines if turtles are player 1s (blue) or player 2s (red) set partnered? false ;turtles are initially unpaired set partner nobody prob-initial ;sets turtles indifferent to their strategies setxy random-xcor random-ycor ] reset-ticks end ;turtle procedure ;sets initial probabilities to prob-initial set prob-s1 0.5 set prob-s2 0.5 end to go end -round ;releases partners to allow them to look for new ones ask turtles [ partner-up ;turtles partner-up if they are next to an opposing player ] let partnered-turtles turtles with [partnered? = true] ask partnered-turtles [play-a-round] ask turtles [ if prob-s1 > 1 [ ;probabilites can't exceed 1 or go below 0 set prob-s1 1 set prob-s2 0 ] if prob-s1 < 0 [ set prob-s1 0 set prob-s2 1 ] ] tick end ;releases partners to end-round let partnered-turtles turtles with [ partnered? = true] ask partnered-turtles [ release-partner ] end ;partnered-turtle procedure to release-partner set partnered? false set partner nobody rt 180 end ;turtle procedure ;opposing turtles pair up if they're spatially located right next to each other to partner-up if (not partnered?) [ rt (random-float 90 - random-float 90) fd 1 set partner one-of (turtles-at -1 0) with [ (not partnered?) and (color != [color] of myself) ] if partner != nobody [ set partnered? true set heading 270 ask partner [ set partnered? true set partner myself set heading 90 ] ] ] end ;partnered-turtle procedure to play-a-round let partnered-turtles turtles with [partnered? = true] pick-a-strategy ;turtles probabilistically make a decision set partner-strategy1? [strategy1?] of partner ask partnered-turtles with [color = blue] [ set-utilities ] ask partnered-turtles with [strategy = "utility-max"] [ utility-max ] ask partnered-turtles with [strategy = "seek-fair"] [ seek-fair ] ask partnered-turtles with [(color = blue) and (strategy = "predict")] [ predict-blue ] ask partnered-turtles with [(color = red) and (strategy = "predict")] [ predict-red ] end ;partnered-turtle procedure ;turtles probabilistically select a strategy to pick-a-strategy ifelse random-float 1 < prob-s1 [ set strategy1? true ][ set strategy1? false ] end ;player1 partnered-turtle procedure ;looks at the strategy choices and assigns the appropriate utility values to set-utilities ifelse strategy1? = true [ ifelse partner-strategy1? = true [ set utility p1s1-utility set potential-utility p1s2-utility ask partner [ set utility p2s1-utility set potential-utility p2s2-utility ] ][ set utility p1s1-utility2 set potential-utility p1s2-utility2 ask partner [ set utility p2s2-utility set potential-utility p2s1-utility ] ] ][ ifelse partner-strategy1? = true [ set utility p1s2-utility set potential-utility p1s1-utility ask partner [ set utility p2s1-utility2 set potential-utility p2s2-utility2 ] ][ set utility p1s2-utility2 set potential-utility p1s1-utility2 ask partner [ set utility p2s2-utility2 set potential-utility p2s1-utility2 ] ] ] end ;partnered-turtle utility maximizer learning procedure ;if a turtle could've done better by choosing the other strategy, given their partner stays the same, ;then they become more likely to choose the other strategy. If they're happy with their decision, ;they become more likely to make the same decision to utility-max ifelse strategy1? = true [ if utility < potential-utility [ set prob-s1 prob-s1 - (.001 * (potential-utility - utility)) set prob-s2 prob-s2 + (.001 * (potential-utility - utility)) ] ][ if utility < potential-utility [ set prob-s1 prob-s1 + (.001 * (potential-utility - utility)) set prob-s2 prob-s2 - (.001 * (potential-utility - utility)) ] ] end ;partnered-turtle competitive learning procedure ;If a turtle loses to their opponent, then they become less likely to make the same decision. They're ;indifferent to ties though to seek-fair ifelse strategy1? = true [ if utility < [utility] of partner [ set prob-s1 prob-s1 - (.001 * (([utility] of partner) - utility)) set prob-s2 prob-s2 + (.001 * (([utility] of partner) - utility)) ] ][ if utility < [utility] of partner [ set prob-s1 prob-s1 + (.001 * (([utility] of partner) - utility)) set prob-s2 prob-s2 - (.001 * (([utility] of partner) - utility)) ] ] end ;player1 partnered-turtle predictor learning procedure ;They look at whether or not their partner made their best decision. The turtles assume that their partner will tend ;towards making the best decision. They then respond with their best decision. to predict-blue ifelse partner-strategy1? = true [ ifelse [potential-utility] of partner > [utility] of partner [ ifelse p1s1-utility2 > p1s2-utility2 [ set prob-s1 prob-s1 + .001 * ([potential-utility] of partner - [utility] of partner) set prob-s2 prob-s2 - .001 * ([potential-utility] of partner - [utility] of partner) ][ set prob-s1 prob-s1 - .001 * ([potential-utility] of partner - [utility] of partner) set prob-s2 prob-s2 + .001 * ([potential-utility] of partner - [utility] of partner) ] ][ ifelse p1s1-utility > p1s2-utility [ set prob-s1 prob-s1 + .001 * ([utility] of partner - [potential-utility] of partner) set prob-s2 prob-s2 - .001 * ([utility] of partner - [potential-utility] of partner) ][ set prob-s1 prob-s1 - .001 * ([utility] of partner - [potential-utility] of partner) set prob-s2 prob-s2 + .001 * ([utility] of partner - [potential-utility] of partner) ] ] ][ ifelse [potential-utility] of partner > [utility] of partner [ ifelse p1s1-utility > p1s2-utility [ set prob-s1 prob-s1 + .001 * ([potential-utility] of partner - [utility] of partner) set prob-s2 prob-s2 - .001 * ([potential-utility] of partner - [utility] of partner) ][ set prob-s1 prob-s1 - .001 * ([potential-utility] of partner - [utility] of partner) set prob-s2 prob-s2 + .001 * ([potential-utility] of partner - [utility] of partner) ] ][ ifelse p1s1-utility2 > p1s2-utility2 [ set prob-s1 prob-s1 + .001 * ([utility] of partner - [potential-utility] of partner) set prob-s2 prob-s2 - .001 * ([utility] of partner - [potential-utility] of partner) ][ set prob-s1 prob-s1 - .001 * ([utility] of partner - [potential-utility] of partner) set prob-s2 prob-s2 + .001 * ([utility] of partner - [potential-utility] of partner) ] ] ] end ;player2 partnered-turtle predictor learning procedure to predict-red ifelse partner-strategy1? = true [ ifelse [potential-utility] of partner > [utility] of partner [ ifelse p2s1-utility2 > p2s2-utility2 [ set prob-s1 prob-s1 + .001 * ([potential-utility] of partner - [utility] of partner) set prob-s2 prob-s2 - .001 * ([potential-utility] of partner - [utility] of partner) ][ set prob-s1 prob-s1 - .001 * ([potential-utility] of partner - [utility] of partner) set prob-s2 prob-s2 + .001 * ([potential-utility] of partner - [utility] of partner) ] ][ ifelse p2s1-utility > p2s2-utility [ set prob-s1 prob-s1 + .001 * ([utility] of partner - [potential-utility] of partner) set prob-s2 prob-s2 - .001 * ([utility] of partner - [potential-utility] of partner) ][ set prob-s1 prob-s1 - .001 * ([utility] of partner - [potential-utility] of partner) set prob-s2 prob-s2 + .001 * ([utility] of partner - [potential-utility] of partner) ] ] ][ ifelse [potential-utility] of partner > [utility] of partner [ ifelse p2s1-utility > p2s2-utility [ set prob-s1 prob-s1 + .001 * ([potential-utility] of partner - [utility] of partner) set prob-s2 prob-s2 - .001 * ([potential-utility] of partner - [utility] of partner) ][ set prob-s1 prob-s1 - .001 * ([potential-utility] of partner - [utility] of partner) set prob-s2 prob-s2 + .001 * ([potential-utility] of partner - [utility] of partner) ] ][ ifelse p2s1-utility2 > p2s2-utility2 [ set prob-s1 prob-s1 + .001 * ([utility] of partner - [potential-utility] of partner) set prob-s2 prob-s2 - .001 * ([utility] of partner - [potential-utility] of partner) ][ set prob-s1 prob-s1 - .001 * ([utility] of partner - [potential-utility] of partner) set prob-s2 prob-s2 + .001 * ([utility] of partner - [potential-utility] of partner) ] ] ] end

There is only one version of this model, created over 10 years ago by Peter Jourgensen.

## Attached files

File | Type | Description | Last updated | |
---|---|---|---|---|

final_report.docx | word | Final Report | over 10 years ago, by Peter Jourgensen | Download |

Jourgensen_Peter_Slam.pptx | powerpoint | Slam Slides | over 10 years ago, by Peter Jourgensen | Download |

N-person Game Theory_Final.png | preview | Preview for 'N-person Game Theory_Final' | over 10 years ago, by Peter Jourgensen | Download |

PeterJourgensen_June3.docx | word | Progress Report 3 | over 10 years ago, by Peter Jourgensen | Download |

PeterJourgensen_May20.docx | word | Progress Report 1 | over 10 years ago, by Peter Jourgensen | Download |

PeterJourgensen_May27.docx | word | Progress Report 2 | over 10 years ago, by Peter Jourgensen | Download |

projectproposal2.docx | word | Project Proposal | over 10 years ago, by Peter Jourgensen | Download |

This model does not have any ancestors.

This model does not have any descendants.