Home 
Search 
Today's Posts 
#1




Improving upon perfect computer play
Imagine that you have a computer that plays perfect chess because it has reached the point where it is playing from a tablebase. The common assumption is that such a computer should choose a line that leads to mate as quickly as possible, while the losing side should choose a line that delays the end as long as possible. Is this really the best way to program such a computer? Even if it is, it doesn't help the computer to choose between lines that lead to a win in the same number of moves. What's the best choice in such cases? It isn't best if the computer knows that it is playing another perfect computer. In that case the losing side should resign rather than dragging things out. It does not maximize the odds of winning against a human. The losing side might do better by choosing a line that has the most available blunders available for the winning side. A really advanced computer might be able to choose a line with many available blunders that look like good moves to a human. It does not always lead to the shortest win against a human for the winning side. The winning side might do better by choosing a slighly longer line that has the many available blunders for the losing side that lead to quick kills. Whether the opponent is running out of time also comes into play; In such a case the winning side might end the game quicker by chosing unexpected but still winning moves rather than obvious moves with obvious replies. Even with large tablebases, there are ways to improve the computer's play against humans.  Guy Macon http://www.guymacon.com/ 
#2




Improving upon perfect computer play
Guy Macon wrote:
Imagine that you have a computer that plays perfect chess because it has reached the point where it is playing from a tablebase. The common assumption is that such a computer should choose a line that leads to mate as quickly as possible, while the losing side should choose a line that delays the end as long as possible. Is this really the best way to program such a computer? Even if it is, it doesn't help the computer to choose between lines that lead to a win in the same number of moves. What's the best choice in such cases? It isn't best if the computer knows that it is playing another perfect computer. In that case the losing side should resign rather than dragging things out. It does not maximize the odds of winning against a human. The losing side might do better by choosing a line that has the most available blunders available for the winning side. A really advanced computer might be able to choose a line with many available blunders that look like good moves to a human. It does not always lead to the shortest win against a human for the winning side. The winning side might do better by choosing a slighly longer line that has the many available blunders for the losing side that lead to quick kills. Whether the opponent is running out of time also comes into play; In such a case the winning side might end the game quicker by chosing unexpected but still winning moves rather than obvious moves with obvious replies. Even with large tablebases, there are ways to improve the computer's play against humans. All of these points have been discussed ad nauseum in the quest to solving checkers. You can find the history, and result of many of the discussions in One Jump Ahead. Available on Amazon. These exact same problems came up in checkers. They are even further down the path, because of cooks, the existing preprinted knowledge, and because the game was weakly solved rather than just solved by tablebase. 
#3




Improving upon perfect computer play
Yes but imagine trying to store all those positions in the tablebase!
Nearly impossible! Our technology as it stands today cannot solve chess. 
#4




Improving upon perfect computer play
Paolo wrote: Yes but imagine trying to store all those positions in the tablebase! Nearly impossible! Not needed. The tablebase allows the computer to play perfectly from positions in the tablebase and to do so almost instantly. Imagine a computer playing from a positon that the tablebase says is as sure loss, against a human opponent who might not see the win or who might blunder. The computer playing from the losing position doesn't have to instantly pick one of the various losing moves available. It can spend half a minute analysing the alternatives and picking the one losing move that it calculates to contain the most opportunities for a human error. Our technology as it stands today cannot solve chess. Irrelevant. Our technology as it stands today has solved that subset of chess that occurs after the players trade down to six men total on the board, and my suggestions as to inproving the chances of a computer against a human are valid in such positions.  Guy Macon http://www.guymacon.com/ 
#5




Improving upon perfect computer play
On Feb 8, 9:41*am, Guy Macon http://www.guymacon.com/ wrote:
Imagine that you have a computer that plays perfect chess because it has reached the point where it is playing from a tablebase. The common assumption is that such a computer should choose a line that leads to mate as quickly as possible, while the losing side should choose a line that delays the end as long as possible. Is this really the best way to program such a computer? Even if it is, it doesn't help the computer to choose between lines that lead to a win in the same number of moves. *What's the best choice in such cases? Any of them will do. I suppose you could perhaps give them ratings according to symmetry or other aesthetic considerations. It isn't best if the computer knows that it is playing another perfect computer. *In that case the losing side should resign rather than dragging things out. That produces strange results playing humans. Where if you play the right move at the start of tablebase play it assumes you must know what you are doing and promptly resigns. It does not maximize the odds of winning against a human. The losing side might do better by choosing a line that has the most available blunders available for the winning side. *A really advanced computer might be able to choose a line with many available blunders that look like good moves to a human. Indeed for optimum play against a human or an imperfect computer you want as many pinch points as possible along the game tree where the smallest number of good lines are offered to the opponent. And in an ideal world the right move should not be obvious. It does not always lead to the shortest win against a human for the winning side. *The winning side might do better by choosing a slighly longer line that has the many available blunders for the losing side that lead to quick kills. If you really want to do this you need to optimise on the expectation value of the moves to end of game. This requires that you have some kind of model of your opponents intrinsic strength. Whether the opponent is running out of time also comes into play; In such a case the winning side might end the game quicker by chosing unexpected but still winning moves rather than obvious moves with obvious replies. Even with large tablebases, there are ways to improve the computer's play against humans. Indeed. But only in the sense of ending the game a bit sooner through unforced error by the opponent. Once you are into deterministic tablebases the outcome is certain and fast to compute. Regards, Martin Brown 
#6




Improving upon perfect computer play
Martin Brown wrote:
Guy Macon http://www.guymacon.com/ wrote: It does not maximize the odds of winning against a human. The losing side might do better by choosing a line that has the most available blunders available for the winning side. A really advanced computer might be able to choose a line with many available blunders that look like good moves to a human. Indeed for optimum play against a human or an imperfect computer you want as many pinch points as possible along the game tree where the smallest number of good lines are offered to the opponent. And in an ideal world the right move should not be obvious. I believe that `conspiracy number search' does something like this. I'm not fully up on the details but the basic idea is to score a node by the number of subnodes that would have to change their value in order to alter the result of the search. I don't have time to look into this right now but would be interested to read anything that people might post on the subject. For attempting to swindle with EGTBs, though, you might want to look at the proportion of nodes rather than the absolute number. (Or, perhaps, some slightly more complex function of the number of legal moves and the number of winning moves.) Even with large tablebases, there are ways to improve the computer's play against humans. Indeed. But only in the sense of ending the game a bit sooner through unforced error by the opponent. Once you are into deterministic tablebases the outcome is certain and fast to compute. That's fine if the (perfect) computer is winning but you also need to consider the case where it's losing. The tablebase just shrugs and says ``Every move loses,'' but we want to come up with something better, based on the assumption that the opponent will make mistakes. Essentially, we want a program that plays perfectly when it can win and attempts to swindle when it can't. Dave.  David Richerby Carnivorous Incredible Toy (TM): it's www.chiark.greenend.org.uk/~davidr/ like a fun child's toy but it'll blow your mind and it's full of teeth! 
#7




Improving upon perfect computer play
David Richerby wrote: Martin Brown wrote: Guy Macon http://www.guymacon.com/ wrote: It does not maximize the odds of winning against a human. The losing side might do better by choosing a line that has the most available blunders available for the winning side. A really advanced computer might be able to choose a line with many available blunders that look like good moves to a human. Indeed for optimum play against a human or an imperfect computer you want as many pinch points as possible along the game tree where the smallest number of good lines are offered to the opponent. And in an ideal world the right move should not be obvious. I believe that `conspiracy number search' does something like this. I'm not fully up on the details but the basic idea is to score a node by the number of subnodes that would have to change their value in order to alter the result of the search. I don't have time to look into this right now but would be interested to read anything that people might post on the subject. For attempting to swindle with EGTBs, though, you might want to look at the proportion of nodes rather than the absolute number. (Or, perhaps, some slightly more complex function of the number of legal moves and the number of winning moves.) .... consider the case where [the perfect player is] losing. The tablebase just shrugs and says "Every move loses," but we want to come up with something better, based on the assumption that the opponent will make mistakes. Essentially, we want a program that plays perfectly when it can win and attempts to swindle when it can't. I wasn't aware of conspiracy numbers. Fascinating idea! From [ http://www.maths.nott.ac.uk/personal...T1/compch.html ]: "Yet another idea is to extend by using 'conspiracy numbers.' The conspiracy number of a node is the number of subnodes whose value would have to change to upset the current evaluation. Crudely, the idea is that if there are lots of ways in which you seem to be winning, then if some of them are wrong you have a good chance that one of them will still work, whereas if there is just one line that seems to work, you are in trouble if it goes wrong. So you should concentrate your efforts on the nodes with the smallest conspiracy numbers at high levels. and "Complication vs. simplicity: If you are losing, then sometimes the best plan is to battle on and on playing 'correct' moves in the hope that your opponent will make a mistake. But sometimes it is to seek complications, making objectively inferior moves that nevertheless make it more likely that the opponent will blunder. Conversely, when winning, quite often the best plan is to 'sacrifice' some of your advantage in order to simplify the position and prevent your opponent from having swindling chances. Computers find this concept very difficult! An occasional manifestation of this in chess programs occurs when, for no apparent reason, the program throws away a rook, say, into a totally lost position; when you analyse to find why it did this, you discover that if it had played the 'correct' move, there was a horrendously obscure plan that you had completely missed that would have won even more than a rook if you had seen it. Programs need to learn when 'I hope you miss it' is more productive than 'Oh dear, I'm obviously losing.'" (There are lots of other interesting comments on that page.)  Guy Macon http://www.guymacon.com/ 
Reply 
Thread Tools  
Display Modes  


Similar Threads  
Thread  Forum  
Now, play Chess with Human Opponents OR Computer at GetClub Site.  rec.games.chess.computer (Computer Chess)  
rec.games.chess.misc FAQ [2/4]  rec.games.chess.misc (Chess General)  
rec.games.chess.misc FAQ [2/4]  rec.games.chess.misc (Chess General)  
rec.games.chess.misc FAQ [2/4]  rec.games.chess.misc (Chess General)  
rec.games.chess.misc FAQ [2/4]  rec.games.chess.misc (Chess General) 