Newcomb's problem

No preview image

1 collaborator

Rng_avatar Ronald Paul Ng (Author)

Tags

newcomb's paradoxv 

Tagged by Ronald Paul Ng almost 5 years ago

Visible to everyone | Changeable by the author
Model was written in NetLogo 6.0.4 • Viewed 253 times • Downloaded 27 times • Run 0 times
Download the 'Newcomb's problem' 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?

To find how the accuracy of the Predictor will affect the outcome of the game. The payoffs are in this manner: Predicted choice Actual choice Payout A + B A + B $1,000 A + B B $0 B A + B $1,001,000 B B $1,000,000

Thus if the Predictor is correct 100% of the time, it is best to choose B. However, what is the payoff if the predictor is not accurate?

HOW IT WORKS

Agents (players) are created with different strategies either (A + B) or (B) They would encounter Predictors with different level of accuracy of predictions. The payoff they receive will depend on how accurate the Predictor has predicted. A Predictor with 100% accuracy will be able to know what the strategy of that player has. A Predictor wih X% accuracy will on the flip of a "die" see whether he will be allowed to know the strategy of the Player, and if it says he cannot, then there will be another flip of the "die" to decide what he has predicted.

HOW TO USE IT

The setup includes two drop-down menus: "average-accuracy" and "max-amount-in-B". The former allows you to set how accurate are the Predictor's predtiction, and the latter allows you to vary the amount of money the Predictor could put in Box B. Once those numbers are chosen drom the drop-down menu, press setup and then go. The results could be observed in the monitors and the plot.

THINGS TO NOTICE

As the level of accuracy drops, the advantge of choose Box B decreases. At one point, choosing A+B becomes better.

THINGS TO TRY

Try changing the accuracy of the Preditions and observe the results. Then try different amount of money being placed in Box B.

EXTENDING THE MODEL

How about changing the honesty of the Predictor? What if the Predictor could be naughty and though he can predict correly, but he doesn't follow the rules himself?

CREDITS AND REFERENCES

Ronald Paul Ng. ronaldpaul.ng@gmail.com

Comments and Questions

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

Click to Run Model

breed [ players player ]
breed [predictors predictor ]

players-own [
             choice
             score
             linked?
            ]
predictors-own [ %correct
                 linked?
                ]

to setup
  ca
  reset-ticks
  create-players 1000 [
                      setxy random-xcor random-ycor
                      set score 0
                      ifelse random 2 = 1 [ set choice "AB" ]
                                          [ set choice "B"]
                      set shape  "person"
                      set color white
                      set linked? false
                     ]
  create-predictors 1000 [
                      setxy random-xcor random-ycor
                      set shape  "person"
                      set color red
                      set linked? false
                      set-%correct  ;; set each predictor's chance of getting the prediction correct
                     ]
end 

to go
  ask players [
               link-up
               choice-prediction-discovery
              ]
  ;; after one round, reset all links
  ask links [die]
  ask turtles [set linked? false]
  tick
  if ticks >= 20 [stop]
end 

to link-up
  if (not linked?)
                 [create-link-with one-of other predictors with [linked? != true]
                  set linked? true
                  ask link-neighbors [ set linked? true ]
                 ]
end 

to choice-prediction-discovery ;; to find out the choice and the prediction
  let %predictive-power item 0 [%correct] of link-neighbors
  let player-choice [choice] of self   ; the variable player-choice is set to the choice of the turtle that calls this function
  ifelse random-float 1 <= %predictive-power [ let predicted-choice choice   ;; if predictive power is correct
                                               if predicted-choice = "AB" and choice = "AB" [ set score score + 1000 ]
                                               if predicted-choice = "AB" and choice = "B" [ set score score + 0 ]
                                               if predicted-choice = "B" and choice = "AB" [ set score score + max-amount-in-B + 1000 ]
                                               if predicted-choice = "B" and choice = "B" [ set score score + max-amount-in-B ]
                                             ]
  ;; if predictive  power is wrong, then the predicted-choice would be the opposite of the choice
  ;; such that if the choice is "AB", the predicted-choice would be "B", and if the choice is "B", the predicted-choice would be "AB"
                                             [ let predicted-choice choice   ;; the calculation of the score will be flipped
                                               if predicted-choice = "B" and choice = "AB" [ set score score + 1000 ]
                                               if predicted-choice = "B" and choice = "B" [ set score score + 0 ]
                                               if predicted-choice = "AB" and choice = "AB" [ set score score + max-amount-in-B + 1000 ]
                                               if predicted-choice = "AB" and choice = "B" [ set score score + max-amount-in-B ]
                                             ]
end 

to set-%correct
  if average-accuracy = 0 [set %correct 0]
  if average-accuracy = 0.25 [set %correct random-float 0.5]
  if average-accuracy = 0.5 [set %correct random-float 1]
  if average-accuracy = 0.6 [set %correct random-float 0.4 + 0.4]
  if average-accuracy = 0.75 [set %correct random-float 0.5 + 0.5]
  if average-accuracy = 0.9 [set %correct random-float 0.2 + 0.8]
  if average-accuracy = 1 [set %correct 1]
end 

There is only one version of this model, created almost 5 years ago by Ronald Paul Ng.

Attached files

No files

This model does not have any ancestors.

This model does not have any descendants.