The evaluation value and value returned by minimax search

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: The evaluation value and value returned by minimax searc

Post by diep »

Ralph Stoesser wrote:A="small delta => accurate evaluation"

For the perfect evaluation delta is 0. Let's look at the worst possible evaluation. Let's say the worst possible evaluation would always report a loss when the position is a win and vice versa. For a draw position the worst possible evaluation would always report a win. What about delta now? Delta would be obviously 0 again, because the worst possible evaluation is as reliable as the best possible evaluation. Now lets make the best possible evaluation a little weaker and the worst one a little stronger. We could say there is one position p for which the best evaluation report randomly the wrong and the worst evaluation the right outcome. In both cases delta would be the same small value. Therefore I think A is not true.
Your thinking path gets wrongly influenced by comparing apples with pears.

You start with win/draw/loss values and project those onto something
that works in centi-pawns.

If you redenate with WDL values you are busy with accurate logics,
where the notion of a 'delta' doesn't apply at all.

Logically you wrongly conclude A is not true, as your grammar didn't
support delta.

However if you use a fuzzy logic type evaluation, like chessprograms actually use already even before the buzzword 'fuzzy logic' was invented in the 90s, then suddenly delta exists.

So retry your logics and apply it now onto grammar where the notion of a delta does exist.
zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: The evaluation value and value returned by minimax searc

Post by zamar »

diep wrote: If just 1% of the effort put in computerchess would be put in computer-go, you also easily beat of course any go player with todays hardware that also gets used for computerchess.


Just of course it requires a few talented game tree searchers to work in that field, and those guys want to get paid a salary.

What most people do not realize is that in go it's much easier to prune moves, so getting very big search depths there is pretty easy with todays hardware.

Now that said, realize how all search algorithms are total tuned and invented for computerchess.

Name me 1 search algorithm not yet invented/used before by some computerchess researcher that was invented in Go/Shogi or even checkers/draughts.

It all has been invented in chess as the most briliant guys worked on computerchess and not computer-go. That won't quickly change either.

Some stronger go players who also wrote a go program have estimated they need around a 30 ply search depth to get to the world top level tactics in go, not counting of course ladders.

However this is possible to achieve in go, even without reductions and no forward pruning and just nullmove you already get 15 ply.
Sorry, but your writing is complete crap and disinformation. You don't seem to understand much about the subject.

In chess, even a very simple program with material + PSQT plays quite strong chess. And even better, the strentgh of the program continues to increase steadily when increasing the thinking time / processing power.
Why? Because deep search is able to figure out many things by itself.

Some examples:
- When one have a strong king attack, in 14 plies one either delivers mate or wins material. So king safety evaluation is useful, but not essential.
- Passed pawns usually either get promoted or captured or one wins material based on the threat of the promotion. So passed pawn evaluation is helpful, but again it's not a necessity.
- In checkers one can quite complex heuristics to evaluate value of each piece, but in the end pieces promote to kings or not. So I assume that very deep search + very simple evaluation is able to produce a strong checkers program (practically in all variants)

NOTE:
- I didn't write that king safety or passed pawn evaluation or many other features are useless, but that in chess and checkers (I don't know about shogi, but I assume that it also holds there) when one has a substantial non-material advantage, deep search is in 99% of cases able to show a way how to capitalize that advantage into material advantage. And it's often the best way to play! Playing passively when having a non-material advantage, is usually a wrong way to go.
- It's the nature of these games that tactically complicated positions tend to resolve to simple ones in deep search and that's why even very basic evaluation function works okay (See Fruit 1.0).

But now let's talk about Go. Most people (including you) think that the high-branching factor is a problem. That's not the case. If you can give me a very good evaluation function, I'll write you a high-dan level engine in a month! But I believe that even a high-level evaluation function+minimax is not good enough to write a world champion level program,
because even that evaluation would be imperfect in many ways. The difference compared to most games in Go is that:
- When one side has a substantial advantage in one side of the board (let's say he's very thick in one side of the board), it often becomes disadvantageous to play on that region for a very long time (> 50 plies). If you misevaluate the thickness in root, you'll also misevaluate the thickness in all relevant lines in the whole search tree! And thickness is only one example of these kind of advantages. Aji or dead groups are also very long term advantages which can easily take >100 plies to capitalize into concrete territorial advantage.

So IMO the fundamental difference that is overlooked by most people is:
- Chess, Checkers, Shogi, Othello, ... are kind of "self-resolving" games. Misevaluating something is okay, because deep search is able to correct that (fx. showing that optically dangerous looking king attack is in reality worthless).
- Go is not a "self-resolving" game. If evaluation function is misevaluating the value of thickness or dead group in one side of the board, deep search is not able to correct you, because the optimal play does not happen on that region for a very long time.
Name me 1 search algorithm not yet invented/used before by some computerchess researcher that was invented in Go/Shogi or even checkers/draughts.
"Invented" is a pretty strong word. But recently MCTS/UCB has become very popular, because of its applications in computer go

Regards,
Joona
Joona Kiiski
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: The evaluation value and value returned by minimax searc

Post by diep »

zamar wrote: [snip]
Sorry, but your writing is complete crap and disinformation. You don't seem to understand much about the subject.
So the guy who parameter tunes himself using positions his own program based upon the evaluation difference of positions,
he writes about me that i spread 'desinformation and crap'.

Whereas the only out of us 2 who is clearly lying, is you, as you encouraged the Chinese guy to NOT do the same.

Now *that* is hypocrisy.
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: The evaluation value and value returned by minimax searc

Post by diep »

"Invented" is a pretty strong word. But recently MCTS/UCB has become very popular, because of its applications in computer go

Regards,
Joona
As for computer-go, all those things were invented by computer chess guys in the first place, and their main application are the financial world, not computer-go.

Vincent
Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: The evaluation value and value returned by minimax searc

Post by Uri Blass »

zamar wrote:
diep wrote: If just 1% of the effort put in computerchess would be put in computer-go, you also easily beat of course any go player with todays hardware that also gets used for computerchess.


Just of course it requires a few talented game tree searchers to work in that field, and those guys want to get paid a salary.

What most people do not realize is that in go it's much easier to prune moves, so getting very big search depths there is pretty easy with todays hardware.

Now that said, realize how all search algorithms are total tuned and invented for computerchess.

Name me 1 search algorithm not yet invented/used before by some computerchess researcher that was invented in Go/Shogi or even checkers/draughts.

It all has been invented in chess as the most briliant guys worked on computerchess and not computer-go. That won't quickly change either.

Some stronger go players who also wrote a go program have estimated they need around a 30 ply search depth to get to the world top level tactics in go, not counting of course ladders.

However this is possible to achieve in go, even without reductions and no forward pruning and just nullmove you already get 15 ply.
Sorry, but your writing is complete crap and disinformation. You don't seem to understand much about the subject.

In chess, even a very simple program with material + PSQT plays quite strong chess. And even better, the strentgh of the program continues to increase steadily when increasing the thinking time / processing power.
Why? Because deep search is able to figure out many things by itself.

Some examples:
- When one have a strong king attack, in 14 plies one either delivers mate or wins material. So king safety evaluation is useful, but not essential.
- Passed pawns usually either get promoted or captured or one wins material based on the threat of the promotion. So passed pawn evaluation is helpful, but again it's not a necessity.
- In checkers one can quite complex heuristics to evaluate value of each piece, but in the end pieces promote to kings or not. So I assume that very deep search + very simple evaluation is able to produce a strong checkers program (practically in all variants)

NOTE:
- I didn't write that king safety or passed pawn evaluation or many other features are useless, but that in chess and checkers (I don't know about shogi, but I assume that it also holds there) when one has a substantial non-material advantage, deep search is in 99% of cases able to show a way how to capitalize that advantage into material advantage. And it's often the best way to play! Playing passively when having a non-material advantage, is usually a wrong way to go.
- It's the nature of these games that tactically complicated positions tend to resolve to simple ones in deep search and that's why even very basic evaluation function works okay (See Fruit 1.0).

But now let's talk about Go. Most people (including you) think that the high-branching factor is a problem. That's not the case. If you can give me a very good evaluation function, I'll write you a high-dan level engine in a month! But I believe that even a high-level evaluation function+minimax is not good enough to write a world champion level program,
because even that evaluation would be imperfect in many ways. The difference compared to most games in Go is that:
- When one side has a substantial advantage in one side of the board (let's say he's very thick in one side of the board), it often becomes disadvantageous to play on that region for a very long time (> 50 plies). If you misevaluate the thickness in root, you'll also misevaluate the thickness in all relevant lines in the whole search tree! And thickness is only one example of these kind of advantages. Aji or dead groups are also very long term advantages which can easily take >100 plies to capitalize into concrete territorial advantage.

So IMO the fundamental difference that is overlooked by most people is:
- Chess, Checkers, Shogi, Othello, ... are kind of "self-resolving" games. Misevaluating something is okay, because deep search is able to correct that (fx. showing that optically dangerous looking king attack is in reality worthless).
- Go is not a "self-resolving" game. If evaluation function is misevaluating the value of thickness or dead group in one side of the board, deep search is not able to correct you, because the optimal play does not happen on that region for a very long time.
Name me 1 search algorithm not yet invented/used before by some computerchess researcher that was invented in Go/Shogi or even checkers/draughts.
"Invented" is a pretty strong word. But recently MCTS/UCB has become very popular, because of its applications in computer go

Regards,
Joona
I disagree with vincent but also disagree with you.
There is often non material advantage that you cannot translate to material advantage in the horizon of the search.

You may translate it to some simple non material advantage so simple evaluation may be enough but there are many bad moves that you cannot
refute by 14 plies

1.a4 e5 2.h4 d5 is not good for white but with 14 plies search of only material evaluation you cannot show that white lose material.
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: The evaluation value and value returned by minimax searc

Post by diep »

Uri Blass wrote:
zamar wrote:
diep wrote: If just 1% of the effort put in computerchess would be put in computer-go, you also easily beat of course any go player with todays hardware that also gets used for computerchess.
[snip]
"I disagree"

.. [snip]

You may translate it to some simple non material advantage so simple evaluation may be enough but there are many bad moves that you cannot
refute by 14 plies

1.a4 e5 2.h4 d5 is not good for white but with 14 plies search of only material evaluation you cannot show that white lose material.
Look Uri, this guy is basically promoting the opposite of what the engines are doing;

- Razoring is very bad tactical
- a bigger reduction factor for nullmove is tactical very bad

Yet most engines with a simple evaluation are using exactly this. So their 'own' engines if the word' own' applies anyhow, are doing the opposite of what gets written down here in the first place.

They're simply throwing away all lines outside say roughly a 1 pawn window around the current nullwindow. Not many attempts get undertaken at all to catch all tactics there.

It's just a positional search basically, not tactical at all.

You can also easily prove this with tactics; Not seldom Stockfish needs a ply or 40 for problems that are nominal 18-20 ply or so.

Take for example e4-e5!! problem in Nolot.

[pos]r2qrb1k/1p1b2p1/p2ppn1p/8/3NP3/1BN5/PPP3QP/1K3RR1 w - - bm e5;

Todays computerchess programs are not focussed upon solving tactics at all.

Vincent
zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: The evaluation value and value returned by minimax searc

Post by zamar »

Uri Blass wrote:
You may translate it to some simple non material advantage so simple evaluation may be enough but there are many bad moves that you cannot
refute by 14 plies

1.a4 e5 2.h4 d5 is not good for white but with 14 plies search of only material evaluation you cannot show that white lose material.
No, but black can place pieces on better squares, so he has advantage even in simple material+PSQT implementation.
Joona Kiiski
zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: The evaluation value and value returned by minimax searc

Post by zamar »

diep wrote:
zamar wrote: [snip]
Sorry, but your writing is complete crap and disinformation. You don't seem to understand much about the subject.
So the guy who parameter tunes himself using positions his own program based upon the evaluation difference of positions,
he writes about me that i spread 'desinformation and crap'.

Whereas the only out of us 2 who is clearly lying, is you, as you encouraged the Chinese guy to NOT do the same.

Now *that* is hypocrisy.
I wrote about one tuning experiment which failed. Of course it's possible that it works, but I got the details wrong... I'm not intentionally encougaring/discouraging anybody.
Joona Kiiski
zamar
Posts: 613
Joined: Sun Jan 18, 2009 7:03 am

Re: The evaluation value and value returned by minimax searc

Post by zamar »

diep wrote: Look Uri, this guy is basically promoting the opposite of what the engines are doing;

- Razoring is very bad tactical
- a bigger reduction factor for nullmove is tactical very bad
I'm not promoting anything. This thread is not about razoring or nullmoves.
Yet most engines with a simple evaluation are using exactly this. So their 'own' engines if the word' own' applies anyhow, are doing the opposite of what gets written down here in the first place.
Is this again some KGB crap?
Joona Kiiski
diep
Posts: 1822
Joined: Thu Mar 09, 2006 11:54 pm
Location: The Netherlands

Re: The evaluation value and value returned by minimax searc

Post by diep »

zamar wrote:
diep wrote:
zamar wrote: [snip]
Sorry, but your writing is complete crap and disinformation. You don't seem to understand much about the subject.
So the guy who parameter tunes himself using positions his own program based upon the evaluation difference of positions,
he writes about me that i spread 'desinformation and crap'.

Whereas the only out of us 2 who is clearly lying, is you, as you encouraged the Chinese guy to NOT do the same.

Now *that* is hypocrisy.
I wrote about one tuning experiment which failed. Of course it's possible that it works, but I got the details wrong... I'm not intentionally encougaring/discouraging anybody.
Your main vehicle of tuning is exactly this - you obviously spit out desinformation here deliberately that it failed for you, as it didn't.

It's your main form of tuning.