Hello Everyone,
I've been working on a new chess engine Igel that is based on a source code of GreKo 2018.01. With the permission of Vladimir Medvedev (author of GreKo) I made the code of Igel licensed under GPL-3.0.
The project lives on github at page https://github.com/vshcherbyna/igel, it's first official released version is 0.8 and it can be downloaded from https://github.com/vshcherbyna/igel/releases. It contains compiled binaries for Windows (x32/x64), Linux (x32/x64) and Mac (x64).
The purporse of the project is to study chess programming, make Igel/GreKo stronger and also have some fun. I do not intend to qualify for uniqueness of the project to separate it from GreKo family. This is not my main intention, however along the way more and more code will be re-written and the gap will increase.
In terms of testing I mostly used lichess where Igel is represented as a bot where it plays against other engines (mostly stockfish) as well as against latest versions of GreKo, here is the link to the igel-bot on lichess: https://lichess.org/@/igel-bot.
In terms of strength, not surprisingly it should be around GreKo, maybe slightly stronger. I've created a greko-bot on lichess (https://lichess.org/@/greko-bot) so that Igel and GreKo can play there non-stop in different time controls. So far they are more or less on pair with Igel slightly ahead as seen in cross table (below) at link https://lichess.org/tKxok2kWpoPO
In terms of differences. Igel has some improvements over GreKo, here is the changelog:
What's new:
- lazy smp (first, basic implementation)
- more compact tt (30% smaller than in GreKo)
- max tt size increased from 1024 Mb to 16384 Mb
- razoring at depth <= 2
- futility check improvements
- variable reduction depth in null move prunning
- smaller, variable aspiration window
- variable time management that takes into account opponent time
- miscellaneous improvements
Removed features:
- xboard
So far most of the changes were done to the search, the evaluation function is still the one used in GreKo 2018.01. My next project is start working on evaluation as well as improve lazy smp implementation, because it is very basic and I may have there some bugs.
Introducing Igel chess engine
Moderator: Ras
-
- Posts: 297
- Joined: Sat Jun 30, 2018 10:58 pm
- Location: Ukraine
- Full name: Volodymyr Shcherbyna
-
- Posts: 269
- Joined: Fri Jul 10, 2015 9:23 pm
- Location: Russia
Re: Introducing Igel 0.8 engine
А как нибудь по-другому можно было назвать? ))
Eugene Kotlov author Hedgehog 2.407 64-bit
-
- Posts: 297
- Joined: Sat Jun 30, 2018 10:58 pm
- Location: Ukraine
- Full name: Volodymyr Shcherbyna
Re: Introducing Igel 0.8 engine
Igel is a nice short name, not necessary relating to Hedgehog, not all people speak german, so ...
-
- Posts: 956
- Joined: Sat May 13, 2006 1:08 am
Re: Introducing Igel 0.8 engine
Hey Volodymyr,
as suggested: http://www.talkchess.com/forum3/viewtop ... 20#p836205
I'll continue here
Overnight 35 (only) games were played without any time forfeit!
Conditions are:
Intel i7 - 2600 @ 3,4 GHZ
8 GB RAM / 512 MB Hash each engine
1 Core (this list is singlecore only)
TC: 5 minutes/game + 3 seconds/move (5'+3")
Ponder: ON
Arena 3.5.1
Adjudication rules:
- adjudicate game as lost when both (!) engines show -999 centipawns for 5 moves
- adjudicate game as a draw after 160 full moves (Arena counts 320 half moves...)
- "early draw" i.e. both (!) engines show 0.00 for three consevutive (!)moves: not before 100 full moves of the game
- draw by tablebases: OFF
Looks good so far but of course much too few games!
I'll post a crosstable here from time to time
as suggested: http://www.talkchess.com/forum3/viewtop ... 20#p836205
I'll continue here
Overnight 35 (only) games were played without any time forfeit!
Conditions are:
Intel i7 - 2600 @ 3,4 GHZ
8 GB RAM / 512 MB Hash each engine
1 Core (this list is singlecore only)
TC: 5 minutes/game + 3 seconds/move (5'+3")
Ponder: ON
Arena 3.5.1
Adjudication rules:
- adjudicate game as lost when both (!) engines show -999 centipawns for 5 moves
- adjudicate game as a draw after 160 full moves (Arena counts 320 half moves...)
- "early draw" i.e. both (!) engines show 0.00 for three consevutive (!)moves: not before 100 full moves of the game
- draw by tablebases: OFF
Looks good so far but of course much too few games!
I'll post a crosstable here from time to time
-
- Posts: 2937
- Joined: Wed Mar 08, 2006 10:09 pm
- Location: Germany
- Full name: Werner Schüle
-
- Posts: 1872
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Introducing Igel 0.8 engine
A tribute to the 25 pages long, Minic thread
-
- Posts: 297
- Joined: Sat Jun 30, 2018 10:58 pm
- Location: Ukraine
- Full name: Volodymyr Shcherbyna
Re: Introducing Igel engine
Hello Wolfgang,
1. Igel finds a winning mate
2. Igel reaches maximum depth (127)
3. Once the maximum depth is reached, it exits the aspiration loop
4. When in ponder if an aspiration loop is exited Igel waits on an explicit ponderhit/stop
5. Due to the bug the exit from the wait (after aspiration loop) did not happen
So, once you use adjudication, you basically invalidate the condition #2 and #3 and this is why you did not see the issue with ponder in your list.
You can test this theory by running a single game between Igel 2.3.1 and some weaker opponent without adjudication, the moment Igel finds mate and reaches max ply you should see a freeze.
In 2.4.0 this is fixed
I think the adjudication of 999 cp is the trick that causes the games to end smoothly on your side. When I fixed the bug yesterday, I realized it was in a very specific condition:
1. Igel finds a winning mate
2. Igel reaches maximum depth (127)
3. Once the maximum depth is reached, it exits the aspiration loop
4. When in ponder if an aspiration loop is exited Igel waits on an explicit ponderhit/stop
5. Due to the bug the exit from the wait (after aspiration loop) did not happen
So, once you use adjudication, you basically invalidate the condition #2 and #3 and this is why you did not see the issue with ponder in your list.
You can test this theory by running a single game between Igel 2.3.1 and some weaker opponent without adjudication, the moment Igel finds mate and reaches max ply you should see a freeze.
In 2.4.0 this is fixed
Last edited by voffka on Sat Mar 28, 2020 2:42 pm, edited 1 time in total.
-
- Posts: 297
- Joined: Sat Jun 30, 2018 10:58 pm
- Location: Ukraine
- Full name: Volodymyr Shcherbyna
Re: Introducing Igel engine
Hey Werner,
Well, I don't know if it is possible to change the title of this thread, it was created long time ago when Igel was a weak 2600 elo engine, and no one was really interested in it (probably still the case), so the thread did not get much traction.
Last edited by voffka on Sat Mar 28, 2020 2:42 pm, edited 2 times in total.
-
- Posts: 297
- Joined: Sat Jun 30, 2018 10:58 pm
- Location: Ukraine
- Full name: Volodymyr Shcherbyna
-
- Posts: 1872
- Joined: Sat Nov 25, 2017 2:28 pm
- Location: France
Re: Introducing Igel chess engine
Here's today results at LTC (8min+4sec) Igel 2.4.0 versus Minic 1.55
Code: Select all
Score of igel-last vs minic_dev: 41 - 29 - 76 [0.541]
Elo difference: 28.6 +/- 39.1, LOS: 92.4 %, DrawRatio: 52.1 %