% time moves generator vs. evaluation vs search?

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: % time moves generator vs. evaluation vs search?

Post by stegemma »

Luis Babboni wrote:Grazie Stefano!

If I´m right, the better way is to just evaluate the position after the last ply "simulated", I´m right?

That is in just 3 ply deep analyze:
1-e4 e5
2-Cf3
the engine at whites just evaluate the board after Cf3, but not after e4 nor after e4 e5.

Is like this?
This is a programmer choice but normally is exactly as you say. In Satana, for sample, I have only one kind of evaluation function that evaluates statically from the point of view of the actual color. That means that i examine my pawn structure and not the one of the opponent. In this situation, i need to call the evaluate function in the last two plyes, to get a decent values:

1. e4, e5 (evaluate for black)
2. Cf3 (evaluate for white)

This is not very efficient but I will change it in the future. Normally you evaluate position at the end of quiescence search (i suppose... because i don't have quiescence search).
User avatar
Luis Babboni
Posts: 464
Joined: Sat Feb 28, 2015 4:37 pm
Location: Argentina

Re: % time moves generator vs. evaluation vs search?

Post by Luis Babboni »

Question..... I´m understanding wrong or "iterative search" is not like this?
Seems to me like "All horizontal,+1 vertical, all horizontal" search :?
User avatar
stegemma
Posts: 859
Joined: Mon Aug 10, 2009 10:05 pm
Location: Italy
Full name: Stefano Gemma

Re: % time moves generator vs. evaluation vs search?

Post by stegemma »

Luis Babboni wrote:Question..... I´m understanding wrong or "iterative search" is not like this?
Seems to me like "All horizontal,+1 vertical, all horizontal" search :?
No, simply i call evaluate() at last ply and the ply before the last (ultimo e penultimo, in italiano). There is not a valid reason for that, it is just a patch until i'll finish my evaluate function. I think that everybody does evaluate only at last ply of the search.