Robert Flesher wrote:Don wrote:Thomas Lagershausen wrote:Don wrote:perejaslav wrote:Komodo is VERY weak in tactics. Do you plan to change this state of things?
Komodo is only weak in tactics if you compare it to other chess programs - but realistically that is not an issue for any good program. The reason programs lose chess games is almost solely because of bad positional or strategic decisions, not because of tactics. And we are much more interested in distinguishing Komodo by its positional play and not for tactics.
It would be ok with me of course if Komodo were stronger tactically as long as it was still a good chess player but it's not really where our focus is right now.
This statement give me reason furthermore to be interested in computerchess.
I have waited so long to hear this words from an programmer.
Now the party can be started.
It's my belief that positional play is the next breakthrough in computer chess. We have studied many games of Komodo and and tried to determine why it wins and loses. That was the basis of some of the improvements in Komodo 3. You never win a game due to a flashy combination - it has to be because the opponent made an error that allowed you to win. Of course you can lose a won or drawn game by failing to see a tactic and thus making the wrong move that loses tactically, but that is actually extremely rare. In most of the tactics where you win for tactical reasons you win anyway even if you miss the tactics because you have a won position. Or you play the right move even though you do not yet see the tactics. Of course from time to time you can throw the win away - but again - that's not the big problem in computer chess.
When I did the similarity tester last year it was an eye opener for me. Not because of the clone issues or anything like that, but because it showed that a lot of decisions a program makes are "baked in" to each chess program. You can call it a stylistic preference and there is nothing wrong with that, but comparing any program against itself at a much deeper level doesn't change it's playing style and it's "baked in" preferences.
That is all well and good, but a percentage of those preferences can be considered biases that hurt the program and cause bad strategic decisions. In one case that we identified, Komodo plays a "weak" move and a super deep search does not correct it because it's not a tactical issue and it does not reveal anything that changes Komodo's mind. It might not have been a losing move technically but it turns the game from a possible win to a sure (and perhaps even difficult) draw.
That's why I believe this will be the next big thing that we must learn how to deal with and improve upon. Systematic error and misconceptions if you want to call it that. Of course knowing that and fixing it are two different things - but we are trying to attack the problem.
It's a little tricky because sometimes you see the odd move that no human would make that looks rather ugly - but the more you analyze it the more you see that it may not be so bad or even that it's good and YOU are the one that is wrong - the computer was not as stupid as you thought. But every program will occasionally plays the odd move that constitutes a bad decision point.
Another way to see this, and something that is along the same lines, is trying to win more games when you have an advantage. As programs get stronger you see more and more draws and that is how it should be. However, it's my belief that in some cases the advantage may have been enough for a win but it required an understanding of the position that the program did not possess. So we are looking into that too.
This post is extremely interesting to me! I have posted the question here many times over many years, "will tactics eventually refute positional play?" Although I cannot decide, it is an interesting thing to ponder.
Given enough depth, the game could be solved technically with no need for an evaluation function other than win/loss/draw information.
However, in the real world a deep search is a like a magnifying glass - it magnifies the power of the evaluation function. Whatever is wrong with the evaluation at end nodes is what is mini-maxed back to the root and it is what matters.
A search can overcome incorrect evaluation - but it has to "see past" the misconception. I'll give you a real simple example that everyone should understand:
Bishop of opposite color endings are generally drawn even when one side is up a pawn or even two. Not always, but usually. So let's imagine that the program has to make a decision that will EVENTUALLY take the game into either a bishop of opposite color ending where you are 2 pawns up or some other ending where you are just have a good position but you are not up any material - but with a technical win. Perhaps it takes a 30 ply search just to see that you basically are presented with just these 2 types of positions that you can achieve. So you need a 30 ply search to see that you have these 2 "choices" but you might need an additional 50 ply search to see that the bishop of opposite color is a draw, and the other position is a win.
The "won" position may involved the ability to created a passed pawn that cannot be stopped without giving up something - but the program cannot see that any time soon, it has to have a strong sense that it needs to get into that type of position even without much of a search. The bishop of opposite color position which is a draw (in our example) has a material advantage of 2 pawns but the story is the same, the program really has to understand that the two pawn advantage doesn't mean anything. So the scoring of BOTH of these endings must conspire in order to make the correct decision and it is critical that the programs has a good sense of each.
My example is somewhat exaggerated and simplified, but I think it makes the point. Once the program is in either position it will probably play either very well, but that is not a big problem with computers, it's knowing what positions to go for when a choice of significantly different positions are available. Program are very good at determine which of two very similar positions are better, but very poor at determining which position is better when they are significantly different.
Years ago Cilkchess was in a tournament and I remember that it made a major decision giving it 2 connected flank passed pawns but allowing what seemed to me to be a pretty crushing center by the opponent. Cilkchess was searching far deeper than any program at the tournament but I remember thinking that the game might come down to this one decision and have little to do with the depth of search. Would it ever be able to make any progress before getting crushed in the center? Cilkchess won that game and probably made the right decision, but it illustrated to me that tactics and seeing a little deeper is not everything. Of course I always knew that, but this just drove the point home for me. As it turned out I don't think Cilkchess was ever in trouble and I probably was just nervous for my program - but that is besides the point - which is that it had to make a decision that it couldn't just search it's way through, it had to JUDGE the positions.
Another issue is that not all draws are created equal. You can have a technically drawn position but one of them might be very difficult to hold, and the other may have good chances for winning because it is difficult for the opponent to hold. No amount of searching can EVER give you the right answer for those positions if a draw is draw is a draw .... but those will be important for a long time to come. I can imagine in the future when program play 4000 ELO level most of the games will be draws but what might distinguish the best program from the 50th rank program might be that one game in 20 or 30 than the 50th program could not hold.
It's already like that in checkers for example in opening selection. Shaeffer and others have noticed that in checkers every opening is a draw, but to get that occasional win you have to find the tricky ones, the ones have some potential for the opponent to make a mistake and that are less easily played. Chess openings are a little like that already - some openings have a reputation for being more drawish than others and you don't play them if you need a win.
However, regarding engine strength, what is it that makes Houndini still noticeably stronger than all the other engines. Is it the better positional player? Or is Houdini's strength based on a great tactical search and some positional knowledge?
Houdini is based strongly on the Ippo family of programs and plays in a very similar way. However I believe Houdart put some work into every aspect of Houdini including the evaluation function. All of these program are very strong and have good evaluation functions and superb searches. I believe their searches are far better than their evaluation functions but it's not really that easy to categorize these things and computer chess is much like a black art where things are not always as they seem.
By the way, you can find tons of examples where any given program will make a better decision than another and will appear to have a much better evaluation function. That is not odd, what would be odd is if some program always played a better move in every position. Every program has unique positional strengths and weakness and holes that need to be plugged.