Introducing Igel chess engine

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
voffka
Posts: 114
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Introducing Igel chess engine

Post by voffka » Tue Jul 03, 2018 10:28 am

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.

User avatar
Kotlov
Posts: 216
Joined: Fri Jul 10, 2015 7:23 pm
Location: Russia

Re: Introducing Igel 0.8 engine

Post by Kotlov » Tue Jul 03, 2018 1:11 pm

А как нибудь по-другому можно было назвать? ))
Eugene Kotlov
Hedgehog 2.0 64-bit coming soon...

voffka
Posts: 114
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Re: Introducing Igel 0.8 engine

Post by voffka » Tue Jul 03, 2018 1:15 pm

Igel is a nice short name, not necessary relating to Hedgehog, not all people speak german, so ...

Wolfgang
Posts: 345
Joined: Fri May 12, 2006 11:08 pm

Re: Introducing Igel 0.8 engine

Post by Wolfgang » Sat Mar 28, 2020 12:46 pm

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! :D

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
Best
Wolfgang
CEGT-Team

User avatar
Werner
Posts: 2485
Joined: Wed Mar 08, 2006 9:09 pm

Re: Introducing Igel 0.8 engine

Post by Werner » Sat Mar 28, 2020 1:13 pm

Is this name a good idea, as we have already Igel 2.4.0 :wink:
Werner

User avatar
xr_a_y
Posts: 1111
Joined: Sat Nov 25, 2017 1:28 pm
Location: France

Re: Introducing Igel 0.8 engine

Post by xr_a_y » Sat Mar 28, 2020 1:25 pm

A tribute to the 25 pages long, Minic thread :D

voffka
Posts: 114
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Re: Introducing Igel engine

Post by voffka » Sat Mar 28, 2020 1:32 pm

Hello Wolfgang,
Wolfgang wrote:
Sat Mar 28, 2020 12:46 pm

Adjudication rules:
- adjudicate game as lost when both (!) engines show -999 centipawns for 5 moves
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 1:42 pm, edited 1 time in total.

voffka
Posts: 114
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Re: Introducing Igel engine

Post by voffka » Sat Mar 28, 2020 1:33 pm

Hey Werner,
Werner wrote:
Sat Mar 28, 2020 1:13 pm
Is this name a good idea, as we have already Igel 2.4.0 :wink:
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 1:42 pm, edited 2 times in total.

voffka
Posts: 114
Joined: Sat Jun 30, 2018 8:58 pm
Location: Ukraine
Full name: Volodymyr Shcherbyna
Contact:

Re: Introducing Igel engine

Post by voffka » Sat Mar 28, 2020 1:34 pm

xr_a_y wrote:
Sat Mar 28, 2020 1:25 pm
A tribute to the 25 pages long, Minic thread :D
:mrgreen:

User avatar
xr_a_y
Posts: 1111
Joined: Sat Nov 25, 2017 1:28 pm
Location: France

Re: Introducing Igel chess engine

Post by xr_a_y » Sat Mar 28, 2020 5:15 pm

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 %

Post Reply