BubbaTough wrote:It sounds like not all perfect programs (defined as programs that, in any given position, always select one of the moves that preserves the best possible forceable outcome) will have the same rating, as there are different mechanisms for choosing between theoretically tied moves that will do better or worse at encouraging imperfect play by an adversary depending on their type of imperfect play.
It all kind of reminds me of when people talk about strategies for maximizing cheapo chances in known tablebase positions.
-Sam
That's clearly the case, getting the best possible results relies on opponent modeling, which is based on playing the opponent and not the board.
Imagine having a 32 man database. It could conceivably go immediately into a draw by repetition believing that it can do no better than a draw anyway. That would be a correct assumption if you were playing another database, but not if you were playing a weak player. A 32 man database might immediately simplify making it much more likely its opponent could draw too.
If you had a 32 man database a good strategy for selecting your moves would be to attach a conventional program to it - and at the root level prune away all the moves that do not give the best game theoretic results. Such a program would play pretty much like current programs do except that they would never make any mistake that would cost them 1/2 a point.
It's also possible that the best strategy would be to make a losing move against a particular opponent. Imagine the game ending for a sure draw but being able to complicate things by playing a sub-optimal move that leads to a loss against best play. Since you are playing the odds with opponent modeling you would want to play the move that was most likely to give you a win given what you know about your opponent. That may not always be the best move in the absolute sense although I doubt that playing a losing move would be a good choice very often.
I saw a strong player do this once to avoid a draw - he played a move that he actually estimated would lose the game against a good player but he was playing a much weaker player and a draw was almost certain and he could not afford a draw. The move created a much more complicated position that required a lot of technique to win and provided plenty of opportunities to go wrong.
I did something like that once myself, but I was probably going to lose anyway regardless of what I did, so in my case it was desperation. Instead of losing slow and sure I found an unsound sacrifice against a much weaker opponent who was beating me. The sacrifice had an "obvious" response which didn't work so it was a true swindle. I didn't expect my opponent to even fall for it because it smelled right from the start but after spending a really long time looking at it he played the bogus move and said, "you are just gonna have to show me." I won that game but felt guilty about winning it - like I had somehow cheated him. He was a super nice guy and after the game we laughed about it, but he made me admit that I was busted up until this point.
But that is opponent modeling. I have to wonder if that makes a difference in the strength of chess programs too. Chess program do not worry about their opponents (except in the case of contempt factors) but some are clearly more aggressive and other are more careful. Like humans they each have different styles which may work better or not as well against specific opponents or styles.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.