jdart wrote:I think like many such sacs played by humans, this one is playable but not necessarily the best move.
Interesting to see the different appreciation of programmers, you and Don, and users. You question the quality of a sac while I am happy to see speculative moves by engines
Yes, it is for sure not "the best" move, but it is indeed playable and can turn to the best move for an engine which handles unbalanced positions well.
What I meant was, the sac's eval looks to be within the range that makes it a plausible candidate move, and whether or not it is selected by an engine depends on details of that engine's eval.
For humans there are other factors. Vincent actually said something I agree with, which is that sometimes a sac is the best move against a specific opponent, which is something programs usually don't consider.
jdart wrote:What I meant was, the sac's eval looks to be within the range that makes it a plausible candidate move, and whether or not it is selected by an engine depends on details of that engine's eval.
For humans there are other factors. Vincent actually said something I agree with, which is that sometimes a sac is the best move against a specific opponent, which is something programs usually don't consider.
--Jon
Jon has it exactly right and I was going to post about that. It's pretty silly to show that some program plays the sac and others do not and therefore the program that plays the sac "understands" the position better. Whether your program plays the move or not, at least in this position, is a coincidence of the evaluation function. Since either move is perfectly playable it really comes down to stylistic bias.
I made a minor adjustment to Komodo just for fun which makes it want to play the sacrifice move. I slightly lowered the value of the rook and the bishop pair and presto! It wants to play the sac.
If you want your program to be an exchange sac playing monster, all you have to do is reduce the relative difference between the rook and knight. If you want your program to be willing to sacrifice pawns all you have to do is lower the value of the pawn or conversely raise the positional scores of everything else. But the right way is to improve the evaluation of these pieces so that in any given situation the values of the pieces are adjusted dynamically based on the board situation.
Some would have you believe the myth that only a master can truly appreciate a move like this - but that is complete nonsense.
There are positions that computers do not get right because there are elements that require a kind of reasoning current programs do not possess, but this is not one of them. In most cases the combination of excellent evaluation and a highly selective search that chases down as many ambiguities as possible gives you a program that plays positional moves better than Grandmasters.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
Don wrote:Whether your program plays the move or not, at least in this position, is a coincidence of the evaluation function. Since either move is perfectly playable it really comes down to stylistic bias.
Coincidence? Is it coinsidence that Komodo doesn't play the move, or the result of your evaluation and piece values? Did you roll the dice to get this values?
Of course you can easily make Komodo play it, I can easily make all engines with adjustable piece values play the move. The art is to make the engine play the move only when it is playable and doesn't just lose material. Some authors want to make the engine play the best move, some want to make their engine play sacs.
GenoM wrote:Ask programmers that are strong chess players.
What minimum rating do you have in mind?
FIDE master.
AFAIK, there is 4 chess programmers that fit in: you, Vasik, Vincent and Miguel.
Interesting to hear your opinion on the matter.
Regards,
Geno
Don wrote:Whether your program plays the move or not, at least in this position, is a coincidence of the evaluation function. Since either move is perfectly playable it really comes down to stylistic bias.
Coincidence? Is it coinsidence that Komodo doesn't play the move, or the result of your evaluation and piece values? Did you roll the dice to get this values
I don't want to have a debate on the semantics of the word, "coincidence" so I'll just say that a relatively small adjustment can make Komodo change it's move. Since it is not even clear which move is best, I consider a "coincidence" that Komodo probably played the right move here.
The wise King Solomon said it better than I can. He said, "I returned to see under the sun that the swift do not have the race, nor the mighty ones the battle, nor do the wise also have the food, nor do the understanding ones also have the riches, nor do even those having knowledge have the favor; because time and unforeseen occurrence befall them all."
Basically he was saying that there is a certain amount of randomness (or coincidence) in life and that no about of training (or tuning your evaluation function) or expertise guarantee's that you will get the right result in every case. You can sprain your ankle in a race, in a ground war the weather can change the results, and in chess any given program will outplay yours in some position, even if you are generally superior.
Of course you can easily make Komodo play it, I can easily make all engines with adjustable piece values play the move. The art is to make the engine play the move only when it is playable and doesn't just lose material.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.
GenoM wrote:Ask programmers that are strong chess players.
What minimum rating do you have in mind?
FIDE master.
AFAIK, there is 4 chess programmers that fit in: you, Vasik, Vincent and Miguel.
Interesting to hear your opinion on the matter.
Regards,
Geno
Larry Kaufman is a Grandmaster and you are probably missing others too. Although we work on Komodo together Larry has most of the say on evaluation issues.
Capital punishment would be more effective as a preventive measure if it were administered prior to the crime.