Horizon 4.3 bug

Discussions about Winboard/Xboard. News about engines or programs to use with these GUIs (e.g. tournament managers or adapters) belong in this sub forum.

Moderator: Andres Valverde

Horizon 4.3 bug

Postby H.G.Muller » 11 Apr 2010, 09:36

I know this is an old version, so that newer versions might have this already fixed, but I report in anyway, because it is a bug with a very low detection probability:

Code: Select all
[Event "Computer Chess Game"]
[Site "SCHAAK_PC"]
[Date "2010.04.07"]
[Round "1.5"]
[White "Neww Engine 0.16"]
[Black "Horizon 4.3"]
[Result "1-0"]
[TimeControl "40/60"]
[Number "196"]

1. d4 Nf6 2. c4 e6 3. Nf3 Bb4+ 4. Bd2 Qe7 5. g3 Nc6 6. Bg2 Bxd2+ 7. Nbxd2
d6 8. O-O O-O 9. e4 e5 10. d5 Nb8 11. Qb3 Na6 12. Qa4 Bd7 13. Qa3 c5 14.
Qb3 Rab8 15. Qa3 Ra8 16. Qb3 Rab8 17. Qa3 Ra8
{False draw claim: 'Draw by Repetition (Horizon)'} 1-0


This version also makes false draw claims in KBKN, which occurs a lot more often.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Horizon 4.3 bug

Postby Ron Murawski » 12 Apr 2010, 06:15

H.G.Muller wrote:I know this is an old version, so that newer versions might have this already fixed, but I report in anyway, because it is a bug with a very low detection probability:

Code: Select all
[Event "Computer Chess Game"]
[Site "SCHAAK_PC"]
[Date "2010.04.07"]
[Round "1.5"]
[White "Neww Engine 0.16"]
[Black "Horizon 4.3"]
[Result "1-0"]
[TimeControl "40/60"]
[Number "196"]

1. d4 Nf6 2. c4 e6 3. Nf3 Bb4+ 4. Bd2 Qe7 5. g3 Nc6 6. Bg2 Bxd2+ 7. Nbxd2
d6 8. O-O O-O 9. e4 e5 10. d5 Nb8 11. Qb3 Na6 12. Qa4 Bd7 13. Qa3 c5 14.
Qb3 Rab8 15. Qa3 Ra8 16. Qb3 Rab8 17. Qa3 Ra8
{False draw claim: 'Draw by Repetition (Horizon)'} 1-0


This version also makes false draw claims in KBKN, which occurs a lot more often.


Hi HG,

I just looked at my Horizon development notes and I have these comments listed:
- Horizon 4.3.049: "draw bugfix"
- Horizon 4.3.142: "3-fold rep: calc hash key"
I suspect that using Horizon 4.4 will solve the repetition problem. The 4.4 version fixed a lot of bugs from 4.3.

And, yes, I know about the KBKN false draw issue. It is present in all versions of Horizon. In all games I've looked at, the 'false' draw claim proved to be correct. For my own testing purposes I preferred ending the game sooner, rather than by FIDE law. For that reason I never fixed it.

In my spare time I am (slooooowly) doing a complete code rewrite, so I am very unlikely to go back to the old codebase and make fixes. I regard all previous versions of Horizon as dead code. If you (or anyone else) can think of a compelling reason to fix the KBKN false draw claim, then I will reconsider.

In my new engine I intend making no false claims! ;-) I intend to support many, maybe all, the new Winboard protocol features too! :-)

Best regards,
Ron
User avatar
Ron Murawski
 
Posts: 352
Joined: 26 Sep 2004, 21:50
Location: Schenectady, NY, USA

Re: Horizon 4.3 bug

Postby H.G.Muller » 12 Apr 2010, 07:26

I suspect that using Horizon 4.4 will solve the repetition problem. The 4.4 version fixed a lot of bugs from 4.3.

That is what I expected, but I thought I'd better report it anyway, as a 3-fold rep being spoiled by e.p. rights is really an extremely rare occurrence, so I could imagine that it had not been detected even after a few years.

And, yes, I know about the KBKN false draw issue. It is present in all versions of Horizon. In all games I've looked at, the 'false' draw claim proved to be correct. For my own testing purposes I preferred ending the game sooner, rather than by FIDE law. For that reason I never fixed it.

That is certainly a valid reason. It is quite annoying to see gmes drag on in dead-drawn positions, especially in 40 moves/T testing. I solved that by adding the trivial-draws adjudication option to WinBoard, so my engines would not have to do it. Adjudication is more a GUI task than an engine task.

In my spare time I am (slooooowly) doing a complete code rewrite, so I am very unlikely to go back to the old codebase and make fixes. I regard all previous versions of Horizon as dead code. If you (or anyone else) can think of a compelling reason to fix the KBKN false draw claim, then I will reconsider.

In my new engine I intend making no false claims! ;-) I intend to support many, maybe all, the new Winboard protocol features too! :-)

Great! I have also started writing an engine from scratch, after a 2-year pause in Chess-engine programming. (I won't call it Joker, though; it is just too different.) Horizon has always been in my gauntlets (which explains why I am using this old version: I am now having my new engine run the old Joker gauntlets, to have a comparison). I like it because it plays pretty wild, with large mood swings.
User avatar
H.G.Muller
 
Posts: 3453
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: Horizon 4.3 bug

Postby Ron Murawski » 13 Apr 2010, 02:30

H.G.Muller wrote:
Ron Murawski wrote:I suspect that using Horizon 4.4 will solve the repetition problem. The 4.4 version fixed a lot of bugs from 4.3.

That is what I expected, but I thought I'd better report it anyway, as a 3-fold rep being spoiled by e.p. rights is really an extremely rare occurrence, so I could imagine that it had not been detected even after a few years.

I played more than a million test games with various Horizon versions and went over them with the George Lyapko utility for detecting bad claims. I think 4.4 cleared up all those rare problems. 4.4 was essentially a vast bugfix of the 4.3 codebase.
H.G.Muller wrote:
Ron Murawski wrote:And, yes, I know about the KBKN false draw issue. It is present in all versions of Horizon. In all games I've looked at, the 'false' draw claim proved to be correct. For my own testing purposes I preferred ending the game sooner, rather than by FIDE law. For that reason I never fixed it.

That is certainly a valid reason. It is quite annoying to see gmes drag on in dead-drawn positions, especially in 40 moves/T testing. I solved that by adding the trivial-draws adjudication option to WinBoard, so my engines would not have to do it. Adjudication is more a GUI task than an engine task.

All my test games were played on old versions of Winboard with no adjudications. Those long, non-adjudicated draws were stealing a lot of my testing time.
H.G.Muller wrote:
Ron Murawski wrote:In my spare time I am (slooooowly) doing a complete code rewrite, so I am very unlikely to go back to the old codebase and make fixes. I regard all previous versions of Horizon as dead code. If you (or anyone else) can think of a compelling reason to fix the KBKN false draw claim, then I will reconsider.
In my new engine I intend making no false claims! ;-) I intend to support many, maybe all, the new Winboard protocol features too! :-)

Great! I have also started writing an engine from scratch, after a 2-year pause in Chess-engine programming. (I won't call it Joker, though; it is just too different.) Horizon has always been in my gauntlets (which explains why I am using this old version: I am now having my new engine run the old Joker gauntlets, to have a comparison). I like it because it plays pretty wild, with large mood swings.

My new program does not resemble my old one, but I will stick to the Horizon name.

Horizon's wild eval swings are due to overly-optimistic king safety scoring. My scheme nearly worked, but there were some blind spots that I think I can fix. I suspect that traditional king safety probably works better than my own home-grown approach. I need to find a way to do my king safety an order of magnitude faster. So far this does not seem possible.

I'm working on some weird and complex stuff inside a legal-move movegen. I still don't know if doing some extra work in the movegen will offset the time it will save in the search. I won't be able to answer that question until I have a working program. Good luck with your new engine!
User avatar
Ron Murawski
 
Posts: 352
Joined: 26 Sep 2004, 21:50
Location: Schenectady, NY, USA


Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 18 guests

cron