Michel wrote:I think it should be safe to delete unreachable positions from the book.
I would appreciate some comments from PG book authors on this. In any case I will write a utility (an extension of polyglot) to do this.
There is no reason why these unreachable positions should remain in the merged book. I think.
Hi Michel
I have exactly the opposite view on this topic.
What you call "unreachable positions" are not unreachable at all!
They just were not reached in the subset of games that have been retained within the book.
This does not mean at all that a game that would follow a slightly different path than the paths explicitly followed by the selected games from which the book was built could not reach one of these "unreachable" positions.
It could be the bookmaker wish that in this precise case his book should include some knowledge for the conduct of this precise and analogous games.
And secondly these "unreachable positions" do not do any harm in actual play. They even prove useful when your engine faces an opponent that uses unusual transpositional paths to enter his favorite openings.
Books are not about games, lines or any sequences of moves. They are actually collections of positions together with some knowledge regarding the optimal continuation from each of these positions.
If you consider that book building is about lines you have to be exhaustive regarding any paths to a given position when you build a book and that's a pretty impossible task. Older programs like Yace or Pharaon had only this kind of book building process (you had to collect recommended sequences of moves, not just positions with favored moves for each of them).
As a bookmaker I may notice that in one precise position my engine tends to choose a wrong move. I may wish to add this precise position with my recommended moves to the book without any consideration for the path or paths that could lead to this precise position.
This whole argumentation was extremely important for Fabien when he defined book functions to be integrated in Fruit and Polyglot!
In fact the one and only negative aspect of what you call "unreachable" positions is that any attempt at a dump-down in the form of sequences of moves will fail !
So if you build a utility for eliminating positions toward which there are no explicit path within the book you will actually lower the amount of knowledge that is included in this book and i am ready to bet that, for example, a version of performance.bin that you would prune this way should perform badly as compared with the original.
I suppose I would almost never use such a utility myself.
Marc