Unknowns comments on AI cooperation in practice - Less Wrong

26 Post author: cousin_it 30 July 2010 04:21PM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (157)

You are viewing a single comment's thread. Show more comments above.

Comment author: cousin_it 30 July 2010 05:04:06PM 2 points [-]

In the first version, are you sure? I gave an argument that A will output 1, have you looked at it?

In the second version, you confuse truth and provability. If both programs output 0, that doesn't imply they can prove that their output will be the same.

Comment author: Unknowns 30 July 2010 07:27:17PM 0 points [-]

I've looked at the argument, and it seems to me that Tim Tyler is right, the first case depends on the implementation of "proves (code, maxsteps)."

Regarding the second case, suppose A runs through checking for proofs, and doesn't find any. It then is about to output a 0. But in this case, it is impossible that B should output a 1, because then B would have a proof that A and B output the same thing, and this would be false. Therefore B also must output a 0. Therefore A and B output the same thing. So we should add a line of code to A to express this: "If A is about to output 0, then output 1, because it is proved (by the above reasoning) that A and B output the same thing." The same code should be included in B, and so both will output 1.

Comment author: cousin_it 30 July 2010 07:37:57PM *  1 point [-]

Your proposed change will make A always output 1, and thus become a rather poor player in the Prisoner's Dilemma. You don't want to cooperate with everybody.

Comment author: Unknowns 30 July 2010 07:39:24PM 0 points [-]

However, B will as well, and you do want to cooperate with everybody who cooperates with you, so my proposed change works very well.

Comment author: JGWeissman 30 July 2010 07:43:21PM 2 points [-]

you do want to cooperate with everybody who cooperates with you

Not if they will cooperate regardless of what you do. Then you can win more by defecting.

Comment author: Unknowns 30 July 2010 07:44:35PM 0 points [-]

A knows B's source code, and so it knows that B will only output a 1 if A and B output the same thing, i.e. only if A and B both output 1.

Comment author: cousin_it 30 July 2010 08:29:26PM *  3 points [-]

No, A doesn't know that because it doesn't know B's proof checker is correct.

You really have to be triple extra careful when talking about this stuff. I'm trying to.

Comment author: Unknowns 30 July 2010 08:32:57PM 0 points [-]

Yes, I see that.

Comment author: Vladimir_Nesov 31 July 2010 10:38:26AM *  0 points [-]

I've looked at the argument, and it seems to me that Tim Tyler is right, the first case depends on the implementation of "proves (code, maxsteps)."

I replied here.

Comment author: Unknowns 31 July 2010 01:14:22PM 1 point [-]

I changed my mind anyway.