A question to test my assumption

This forum is for general discussions and questions, including Collectors Corner and anything to do with Computer chess.

Moderators: Harvey Williamson, Steve B, Watchman

Forum rules
This textbox is used to restore diagrams posted with the fen tag before the upgrade.
Post Reply
overtond
Member
Posts: 167
Joined: Wed Aug 01, 2007 4:52 am

A question to test my assumption

Post by overtond »

Hi,

Whilst I have limited knowledge of chess engines (I have some experience of using Hiarcs) I understand that there are many strong chess engines available and that most of these use different code that ultimtely leads to a move selection considered to be 'best' by the engine. This code I understand is often referred to as the 'evaluation' function. I aslo understand that this evaluation function has another important feature which is its' ability to filter-out move choices to help speed up the selection of the best move within the time constraint the engine has been given. Assuming all of this is true (and I still have your attention!) then my question is, there must be several ways to reach the same answer. I make this statement based on the fact that from what I have read about engines such as Fritz, Hiarcs, Junior, Rybka, etc., although they all have there own way of determining the 'best move', they almost always select the same move for a given position. If this is true then the different code accounts for the small number of differences that exist and that in time this difference will become less and less. If the above is not true then can someone explain?

If the above is not true than I guess the opposite is true (or somewhere between) and what will occur over the years to come will be code structures/patterns becoming more similar. Again, if this is true then I guess piracy will become a big problem for commercial programmers such as Mark and the HIarcs team. Again, any thoughts on this would be very welcome.
Uri Blass
Member
Posts: 82
Joined: Sun Aug 12, 2007 1:40 pm

Post by Uri Blass »

You understand wrong.

1)Evaluation function is only part of the engine and it is a function that take a position and return number without searching.

The engine choose the move based on evaluation and search.

2)It is not correct that
engines almost always select the same move for a given position.

This is not only because of the fact that engines are not perfect but also because of the fact that there are many positions when the choice is a question of style and there is no single best move.

Uri
overtond
Member
Posts: 167
Joined: Wed Aug 01, 2007 4:52 am

Post by overtond »

Thanks Uri but your reply doesn't seem to fit with what I have read. Also, surely the evaluation funtion determines the 'best move'; search is just the code that sorts through each position offered to the evaluation function? What am I missing?

I do appreciate the fact that you have responded, even though it hasn't really helped answer my question.
Uri Blass
Member
Posts: 82
Joined: Sun Aug 12, 2007 1:40 pm

Post by Uri Blass »

The evaluation function only gives a number for every chess position that is the evaluation of that position.

The evaluation does not decide about the move and 2 programs with the same evaluation function can choose different move if they search different trees.

If you use one ply search you may play wrong moves because of missing mate in 1.
If you search deeper you are going to play better.

Computer never search only to depth 1 but they can certainly search to depth that is not enough to see something positional or tactical and play wrong move because of it.

programs also do not search balanced tree and they have search rules to tell them which line is more important to search so they certainly can play different move based on the lines that they search.

Uri
Post Reply