It’s conforting sometimes to read from someone else that rationality is not the looser’s way, and arguably more so for Prisonner’s Dilemma than Newcomb’s if your consider the current state of our planet and the tragedy of commons.
I’m writing this because I believe I suceeded writing a computer program (it is so simple I can’t call it an AI) able to actually simulate Omega in a Newcomb game. What I describe below may look like an iterated Newcomb’s problem. But I claim it is not so and will explain why.
When using my program the human player will actually be facing some high accuracy predictor and it will be true.
Obviously there is a trick. Here is how it goes. The predictor must first be calibrated. This is done in the simplest possible fashion : it just asks to the user if it would one-box or two-box. The problem achieving that is like asking to someone if she would enter burning building to save a child : nobody (except profesional firemen) would actually know before confronted to the actual event.
The program can actually do that : just don’t say to the player if it’s calibration of the predictor he is doing or the actual unique play.
Now reaching the desired prediction accuracy level is simple enough : just count the total trial runs, and the number of two-boxing or one-boxing, when one or the other goes over 99%. The program can then go for the prediction.
Obviously it must no advertise that is the real game, or it would defeats the strategy of not saying if it’s the real game or not for prediction accuracy. But any reader can check from program source code that the prediction will indeed be done before (in a temporal meaning) asking to the player if he will one box or two box.
Here goes my program, it is written using python language and hevily commented,
it should not be necessary to be much of a CS litterate to undrstand it. The only trick is
insertion of some randomness to avoid the player could predict the end of calibration
and start of the game.
print "I will run some trial games (at least 5) to calibrate the predictor."
print ("As soon as the predictor will reach the expected quality level\n"
"I will run the actual Newcomb game. Be warned you won't be\n"
"warned when calibration phase will end and actual game begin\n"
"this is intended to avoid any perturbation of predictor accuracy.\n")
# run some prelude games (to avoid computing averages on too small a set)
# then compute averages to reach the intended prediction quality
# inecting some randomness in prelude and precision quality avoid
# anybody (including program writer) to be certain of when
# calibration ends. This is to avoid providing to user data that
# will change it's behavior and defeats prediction accuracy.
import random
# 5 to 25 calibration move
prelude = (5 + random.random() * 20.0)
# 90% accuracy or better, and avoid infinite loop
# we do not tell how much better to avoid guessers
accuracy = 1.0 - (random.random() * 0.1) - 0.01
# postlude is the number of test games where desired accuracy must be kept
# before running the actual game
# postlude will be a random number between 1 and 5 to avoid players guessing
# on the exact play time when percent will change, this could give them some
# hint on the exact final game time. It is possible the current postlude
# can still be exploited to improve cheater chances above intended predictor
# values, but it's just here to get the idea... and besides outguessing omega
# the cheater is only doing so in the hope of getting 100 bucks.
# How much energy does that deserve ?
postlude = 0
one = total = two = 0
while ((total < prelude) and (int(postlude) != 1)):
a = raw_input ("1 - One-box, 2 - Two-boxes : ")
if not a in ['1', '2']: continue
if a == '1':
one += 1
else:
two += 1
total += 1
print "current accuracy is %d%%" % int(100.0 * max(two, one) / total)
if (max(two, one) * 1.0 < total * accuracy):
if postlude != 0 :
postlude -= 1
else:
postlude = 1 + random.random() * 5.0
else:
postlude = 0
# Now prediction accuracy is good enough, run actual Newcomb's game
# prediction is truly a prediction of the future
# nothing prevents the user to choose otherwise.
#print "This is the actual Newcomb game, but I won't say it"
prediction = 1 if one > two else 2
finished = False
while not finished:
a = raw_input ("1 - One-box, 2 - Two-boxes : ")
if a == '1':
if prediction == 1:
print "You win 1 000 000 dollars"
else:
print "You win zero dollars"
finished = True
elif a == '2':
if prediction == 1:
print "You win 1 000 100 dollars"
else:
print "You win 100 dollars"
finished = True
Now, why did I said this is not an Iterated Newcomb’s ?
The point is that the way it is written the program is not finite. The human player is the only one able to stop the game. And to do that he has to commit to some option one-boxing or two-boxing, thus leaving the program to reach the desired accuracy level. He also has no possibility of “uncommiting” when the real game comes as this last one is not different from the others.
You could consider that the whole point of this setting is to convince the user that the claimed accuracy of Omega is true. What is fun is that in this setting it becomes true because the human player choose it to be so.
I believe the above program prooves that One-boxing is rational, I should even say obvious, provided with the right setting.
Now, I can’t stop here. I believe in maths as a neutral tool. It means that if the reasoning leading to one-boxing is right, the reasoning leading to tow-boxing must also be false. If both reasoning were true maths would collapse;and that is not to be taken lightly.
Summarily as the two-boxing reasoning goes it is an immediate consequence of the Dominance Argument.
So what ? Dominance Argument is rock solid. It is so simple, so obvious.
Below is a quote from Ledwig’s review on Newcomb’s problem about Dominance Argument,
you could say a restrictive clause of when you can of cannot apply it:
> The principles of dominance are restricted in their range, for they can only be applied,
> when the decision maker believes that the possible actions of the decision maker don't
> causally influence the possible states of the world, or the possible actions of any other
> decision maker.
There is a subtile error in the above statement. You should replace the words causally influence by are not correlated with. Using probabilist words it means actions of both decision makers are independant variables. But the lack of correlation isn’t guaranteed by the lask of causality.
Think of a Prisonner’s like Dilemma between traders. Stock exchange is falling down for some corporate. If traders sell you get a stock market crash, if they buy it’s back to business as usual. If one sell while the other buy, only one will make big money.
Do you seriously believe that given access to the same corporate data (but not communicating between each other), both traders are not likely to make the same choice ?
In the above setting both players are not independant variables and you can’t directly apply Dominance.
Reasoning backward, you could say that your choice gives you some information on the probability of the other’s choice and as taking that information into account can change your choice, it may also change the choice of the other, you enter some inifinite recursion (but that’s not a problem, you still have tools to solve that, like fixed point theorem).
In the Newcomb’s problem, we are in an extreme case. The hypothesis states the correlation between players, that’s the Omega’s prediction accuracy.
Henceforth, two-boxing is not a rational decision based on causality, but a simple disbelief of the correlation stated in the hypothesis, and a confusion betwwen correlation and causality.
When you remove that disbelief (that’s what my program does) the problem disappears.
It’s conforting sometimes to read from someone else that rationality is not the looser’s way, and arguably more so for Prisonner’s Dilemma than Newcomb’s if your consider the current state of our planet and the tragedy of commons.
I’m writing this because I believe I suceeded writing a computer program (it is so simple I can’t call it an AI) able to actually simulate Omega in a Newcomb game. What I describe below may look like an iterated Newcomb’s problem. But I claim it is not so and will explain why.
When using my program the human player will actually be facing some high accuracy predictor and it will be true.
Obviously there is a trick. Here is how it goes. The predictor must first be calibrated. This is done in the simplest possible fashion : it just asks to the user if it would one-box or two-box. The problem achieving that is like asking to someone if she would enter burning building to save a child : nobody (except profesional firemen) would actually know before confronted to the actual event.
The program can actually do that : just don’t say to the player if it’s calibration of the predictor he is doing or the actual unique play.
Now reaching the desired prediction accuracy level is simple enough : just count the total trial runs, and the number of two-boxing or one-boxing, when one or the other goes over 99%. The program can then go for the prediction.
Obviously it must no advertise that is the real game, or it would defeats the strategy of not saying if it’s the real game or not for prediction accuracy. But any reader can check from program source code that the prediction will indeed be done before (in a temporal meaning) asking to the player if he will one box or two box.
Here goes my program, it is written using python language and hevily commented, it should not be necessary to be much of a CS litterate to undrstand it. The only trick is insertion of some randomness to avoid the player could predict the end of calibration and start of the game.
Now, why did I said this is not an Iterated Newcomb’s ?
The point is that the way it is written the program is not finite. The human player is the only one able to stop the game. And to do that he has to commit to some option one-boxing or two-boxing, thus leaving the program to reach the desired accuracy level. He also has no possibility of “uncommiting” when the real game comes as this last one is not different from the others.
You could consider that the whole point of this setting is to convince the user that the claimed accuracy of Omega is true. What is fun is that in this setting it becomes true because the human player choose it to be so.
I believe the above program prooves that One-boxing is rational, I should even say obvious, provided with the right setting.
Now, I can’t stop here. I believe in maths as a neutral tool. It means that if the reasoning leading to one-boxing is right, the reasoning leading to tow-boxing must also be false. If both reasoning were true maths would collapse;and that is not to be taken lightly.
Summarily as the two-boxing reasoning goes it is an immediate consequence of the Dominance Argument.
So what ? Dominance Argument is rock solid. It is so simple, so obvious.
Below is a quote from Ledwig’s review on Newcomb’s problem about Dominance Argument, you could say a restrictive clause of when you can of cannot apply it:
There is a subtile error in the above statement. You should replace the words causally influence by are not correlated with. Using probabilist words it means actions of both decision makers are independant variables. But the lack of correlation isn’t guaranteed by the lask of causality.
Think of a Prisonner’s like Dilemma between traders. Stock exchange is falling down for some corporate. If traders sell you get a stock market crash, if they buy it’s back to business as usual. If one sell while the other buy, only one will make big money.
Do you seriously believe that given access to the same corporate data (but not communicating between each other), both traders are not likely to make the same choice ?
In the above setting both players are not independant variables and you can’t directly apply Dominance.
Reasoning backward, you could say that your choice gives you some information on the probability of the other’s choice and as taking that information into account can change your choice, it may also change the choice of the other, you enter some inifinite recursion (but that’s not a problem, you still have tools to solve that, like fixed point theorem).
In the Newcomb’s problem, we are in an extreme case. The hypothesis states the correlation between players, that’s the Omega’s prediction accuracy.
Henceforth, two-boxing is not a rational decision based on causality, but a simple disbelief of the correlation stated in the hypothesis, and a confusion betwwen correlation and causality.
When you remove that disbelief (that’s what my program does) the problem disappears.