Willow 2.5 (first release)

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

User avatar
Graham Banks
Posts: 44599
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: Willow 2.5 (first release)

Post by Graham Banks »

Graham Banks wrote: Sat Mar 11, 2023 10:57 pm
Graham Banks wrote: Sat Mar 11, 2023 10:13 pm Willow moves instantly for every move for me.
Also, there are no engine parameters displayed when setting up the engine.
Adam is fixing this now. :)
Fixed - new download there.
gbanksnz at gmail.com
Whiskers
Posts: 246
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Willow 2.5 (first release)

Post by Whiskers »

Well, Willow got entered in its first tournament and whoops! In the first game it hung its queen. Can't say I'm surprised :lol:
Turns out this was a fairly big bug with researches on a fail low that happened in several steps;

1 - the principal variation was getting overwritten and deleted by the fail low search, so when it came time to do the principal variation search, there was no principal variation and no hash hit, so it was often searching a different move first, sometimes one that was utterly losing (like QxB, or in the game, QxP!)

2 - When it searched QxB first, it obviously failed low over and over again until the aspiration window was large enough to get that move to not fail low. This means that all the other, better moves also get searched with that giant window, really slowing things down...

3 - At short time controls it was usually able to find a good move from a near full window search before it hit the "cold turkey" timeout limit, but at depth 18 a research from scratch takes basically forever and it wasn't able to get far beyond that first QxB move before being forced to move.

4 - when Willow runs out of time for the move, it checks to see if it found a move that improved alpha that iteration, and if not uses the best move from the previous iteration.

You can see where this is going... the QxB move gets researched over and over again, eventually raising alpha when the window becomes big enough, and if the iteration doesn't have enough time to finish searching a better move that blunder is what the engine gets told to play. It didn't affect my tests at 30"+0.5" because there it was nearly always able to find a good move after recovering from searching a bad move over and over again, but it turned out to be a reaaaaallly big deal at longer TCs.

It was an easy fix - on a fail low I now put the first move searched as the best move in the TT entry, which ensures that on a research it will search that principal variation before anything else. Graham Banks was kind enough to replay Willow's first couple games, and while it still lost the first one, it won the second one - against the 2500 ELO Svart 2 to boot! :mrgreen:
Gregory Owett
Posts: 259
Joined: Fri Mar 10, 2006 10:26 am
Location: France

Re: Willow 2.5 (first release)

Post by Gregory Owett »

Pity, Willow 2.5.1 loses half of its games on time! ( /Arena TC 2'+1", 3'+2" ). Too bad, because his game is quite interesting. :(
Whiskers
Posts: 246
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Willow 2.5 (first release)

Post by Whiskers »

Gregory Owett wrote: Mon Mar 13, 2023 3:27 pm Pity, Willow 2.5.1 loses half of its games on time! ( /Arena TC 2'+1", 3'+2" ). Too bad, because his game is quite interesting. :(
It probably was a mistake to only force it to move if it detects that the remaining time is under 0.1 seconds - that's just too little, especially for Arena which runs slower than Banksia for me. I'll increase it to 0.3-0.5 for next release.

There was also bad time implementation at least in the original 2.5 (i have fixed it now, i do not know if those changes are in Willow 2.5.1). It used to add the increment to the time it had to think every move, now it only does so if Willow has 5x more time than the increment value.
Gregory Owett
Posts: 259
Joined: Fri Mar 10, 2006 10:26 am
Location: France

Re: Willow 2.5 (first release)

Post by Gregory Owett »

Thank you for your reply.
Whiskers
Posts: 246
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Willow 2.5 (first release)

Post by Whiskers »

Willow 2.6 is now out. It is ~90 elo stronger than 2.5.1 based on tests.
Testing against 2.5 is difficult due to the tendency of 2.5 to time out, but I believe Willow 2.6 is now approaching 2600 CCRL.
https://github.com/Adam-Kulju/Willow/releases/tag/2.6

I sincerely apologize to everyone for releasing Willow in such a broken state. While it currently still has many flaws, like the inability to be run on stidn/stdout programs like cute-chess, it will no longer hang queens, and (hopefully!) no longer run out of time.

Two things I'm working on:
1. When Willow is in the downloads folder, Banksia will sometimes refuse to load it in saying UCI does not support it, but when I move it to some local folder it loads perfectly fine. I do not know why this is and have failed to fix it in this version. Any help will be most appreciated.

2. Willow is horribly written right now - one giant super inefficient C file with broken UCI commands everywhere you look. For that reason, I am undertaking a full scale rewrite of Willow with bitboards, one that will split it up into multiple files and make it far more efficient and clean. I may also change the language it's written in to Rust but am not sure of that yet.
Whiskers
Posts: 246
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Willow 2.5 (first release)

Post by Whiskers »

Willow 2.7 is now out, it is written in 0x88 after I chickened out of bitboards. It also has a few search optimizations, chief among them a switch to fail-soft and a TT replacement scheme. I estimate it to be 130 +- 10 ELO stronger than Willow 2.6.

https://github.com/Adam-Kulju/Willow/releases/tag/2.7
Whiskers
Posts: 246
Joined: Tue Jan 31, 2023 4:34 pm
Full name: Adam Kulju

Re: Willow 2.5 (first release)

Post by Whiskers »

Willow 2.8 is out! Estimated elo: ~2850
More importantly, it finally supports hash options :mrgreen:
https://github.com/Adam-Kulju/Willow/releases/tag/2.8
bastiball
Posts: 5360
Joined: Tue Oct 20, 2020 4:18 am
Full name: Basti Dangca

Re: Willow 2.5 (first release)

Post by bastiball »

Whiskers wrote: Wed May 10, 2023 3:23 am Willow 2.8 is out! Estimated elo: ~2850
More importantly, it finally supports hash options :mrgreen:
https://github.com/Adam-Kulju/Willow/releases/tag/2.8
Congrats for the release!
Basti Dangca
CCRL testing group