|
Main
Date: 08 Feb 2008 09:41:26
From: Guy Macon
Subject: 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/ >
|
|
|
Date:
From: Martin Brown
Subject: Re: Improving upon perfect computer play
|
|
| |
Date: 12 Feb 2008 16:19:43
From: David Richerby
Subject: Re: Improving upon perfect computer play
|
tin Brown <
|
| | |
Date: 13 Feb 2008 14:01:37
From: Guy Macon
Subject: Re: Improving upon perfect computer play
|
David Richerby wrote: > >tin 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/anw/G13GT1/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/ >
|
|
Date: 09 Feb 2008 06:54:39
From: Paolo
Subject: Re: 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.
|
| |
Date: 09 Feb 2008 19:39:08
From: Guy Macon
Subject: Re: 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/ >
|
|
Date: 08 Feb 2008 18:12:11
From: johnny_t
Subject: Re: 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.
|
|