Monchester

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

Moderators: Harvey Williamson, Dann Corbit, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
unserializable
Posts: 31
Joined: Sat Oct 24, 2020 4:39 pm
Full name: Taimo Peelo

Re: Monchester 1.0

Post by unserializable » Mon Nov 09, 2020 4:47 pm

Guenther wrote:
Mon Nov 09, 2020 4:31 pm
I compiled a default version, just wanna know if a version with a one ply higher default depth is desired too for 1.0?
Thank you and thanks for asking! I personally do not care for the depth 5 version (odd depths have their odd behaviours without quiescence), but if you feel that some experimenters might benefit from it, feel free to provide that compile. There is some support in Makefile for tagging custom versions too, for specifying the version suffix that is reported at the console and to the interfaces, e.g. you could do (after modifying globals.c):

Code: Select all

$ make CC=clang EXTFLAGS="-DEXTRA_VERSION=dpth5" clean release
rm -f monchester *.o core
clang -DNDEBUG -Os -Wformat -Wstrict-prototypes -Wall  -DMONCHESTER_VERSION="1.0" -DEXTRA_VERSION=dpth5 -c globals.c
clang -DNDEBUG -Os -Wformat -Wstrict-prototypes -Wall  -DMONCHESTER_VERSION="1.0" -DEXTRA_VERSION=dpth5 -c iomain.c
clang -DNDEBUG -Os -Wformat -Wstrict-prototypes -Wall  -DMONCHESTER_VERSION="1.0" -DEXTRA_VERSION=dpth5 -c xtdlib.c
clang -DNDEBUG -Os -Wformat -Wstrict-prototypes -Wall  -DMONCHESTER_VERSION="1.0" -DEXTRA_VERSION=dpth5 -c move.c
clang -DNDEBUG -Os -Wformat -Wstrict-prototypes -Wall  -DMONCHESTER_VERSION="1.0" -DEXTRA_VERSION=dpth5 -c brdlist.c
clang -DNDEBUG -Os -Wformat -Wstrict-prototypes -Wall  -DMONCHESTER_VERSION="1.0" -DEXTRA_VERSION=dpth5 -c compmove.c
clang -DNDEBUG -Os -Wformat -Wstrict-prototypes -Wall  -DMONCHESTER_VERSION="1.0" -DEXTRA_VERSION=dpth5 -c fen.c
clang -DNDEBUG -Os -Wformat -Wstrict-prototypes -Wall  -DMONCHESTER_VERSION="1.0" -DEXTRA_VERSION=dpth5 main.c -o monchester globals.o iomain.o xtdlib.o move.o brdlist.o compmove.o fen.o
$ ./monchester  --version
Monchester 1.0-dpth5
Copyright (C) 2020 Taimo Peelo
License GPLv3: GNU GPL version 3 <https://www.gnu.org/licenses/gpl-3.0.html>
Source repository: 
  https://github.com/unserializable/monchester

Build information:
  Compiler : clang 6.0.0 (tags/RELEASE_600/final)
  Time     : Nov  9 2020 18:41:52
Best regards!
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester

Guenther
Posts: 3566
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Monchester 1.0

Post by Guenther » Mon Nov 09, 2020 4:47 pm

Guenther wrote:
Mon Nov 09, 2020 4:31 pm
unserializable wrote:
Sun Nov 08, 2020 7:43 pm
Guenther wrote:
Sun Nov 08, 2020 6:51 pm
I will look at it tomorrow!
Thank you Guenther, have a good evening :)!
I compiled a default version, just wanna know if a version with a one ply higher default depth is desired too for 1.0?

Code: Select all

git clone --branch 1.0-branch https://github.com/unserializable/monchester.git

Code: Select all

# Monchester 1.0 ~(4338 kN/s)
command : bench 6
Nodecount 124132536, 29.510s, 4206 kN/s
command : help
commands understood: new, resign, help, bench, quit
a bit optimized for my hardware ;-)

Code: Select all

# Monchester 1.0 ~(4751 kN/s)
command : bench 6
Nodecount 124132536, 26.640s, 4659 kN/s
command :

unserializable
Posts: 31
Joined: Sat Oct 24, 2020 4:39 pm
Full name: Taimo Peelo

Re: Monchester 1.0

Post by unserializable » Mon Nov 09, 2020 4:55 pm

Guenther wrote:
Mon Nov 09, 2020 4:47 pm
a bit optimized for my hardware ;-)

Code: Select all

# Monchester 1.0 ~(4751 kN/s)
command : bench 6
Nodecount 124132536, 26.640s, 4659 kN/s
command :
Excellent, very nice progress from the ~3000-3100 kN/s with gcc 10.2 a week ago!
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester

Guenther
Posts: 3566
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Monchester 1.0

Post by Guenther » Mon Nov 09, 2020 5:23 pm

unserializable wrote:
Mon Nov 09, 2020 4:55 pm
Guenther wrote:
Mon Nov 09, 2020 4:47 pm
a bit optimized for my hardware ;-)

Code: Select all

# Monchester 1.0 ~(4751 kN/s)
command : bench 6
Nodecount 124132536, 26.640s, 4659 kN/s
command :
Excellent, very nice progress from the ~3000-3100 kN/s with gcc 10.2 a week ago!
I will upload two compilations, one for core2 and one for haswell (untested because of my hardware).
For now I will not add a compilation with a different default depth, may be on request later.
You can PM me, when you had grabbed them for your github, then I will remove them from my site.
Try it in an hour or so.

unserializable
Posts: 31
Joined: Sat Oct 24, 2020 4:39 pm
Full name: Taimo Peelo

Re: Monchester

Post by unserializable » Mon Nov 09, 2020 7:35 pm

Guenther has kindly provided Windows compiles of Monchester 1.0 that are now up at GitHub: https://github.com/unserializable/monch ... /binaries/ - look into 1.0 folder for
  • core2 optimized build monchester.windows.core2.exe
  • haswell optimized build monchester.windows.haswell.exe
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester

unserializable
Posts: 31
Joined: Sat Oct 24, 2020 4:39 pm
Full name: Taimo Peelo

Monchester 1.0 @ Lichess

Post by unserializable » Sat Nov 14, 2020 9:10 pm

Monchester 1.0 is now playing at lichess bot account: https://lichess.org/@/monchester -- hopefully it stays up to do so, the console messages were appropriately (not too) scary when I left it on the server, go and tickle to see if Monchester still lives :)
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester

Guenther
Posts: 3566
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Monchester 1.0 @ Lichess

Post by Guenther » Sat Nov 14, 2020 9:14 pm

unserializable wrote:
Sat Nov 14, 2020 9:10 pm
Monchester 1.0 is now playing at lichess bot account: https://lichess.org/@/monchester -- hopefully it stays up to do so, the console messages were appropriately (not too) scary when I left it on the server, go and tickle to see if Monchester still lives :)
Nice! Will it play rated too sometimes?
I am curious how far it would come vs. weak Humans.

unserializable
Posts: 31
Joined: Sat Oct 24, 2020 4:39 pm
Full name: Taimo Peelo

Re: Monchester 1.0 @ Lichess

Post by unserializable » Sat Nov 14, 2020 9:21 pm

Guenther wrote:
Sat Nov 14, 2020 9:14 pm
Nice! Will it play rated too sometimes?
I am curious how far it would come vs. weak Humans.
I did set the challenge modes in configuration as both casual and rated, so it should play rated, if it gets a rated challenge -- not certain how commonly these are made against the bots by humans :)
Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester

unserializable
Posts: 31
Joined: Sat Oct 24, 2020 4:39 pm
Full name: Taimo Peelo

Monchester 1.0 @ Lichess

Post by unserializable » Sat Nov 21, 2020 4:27 pm

Monchester 1.0 at Lichess

Monchester 1.0 has now been at Lichess for almost a week, via lichess-bot.

Again it has proved to be resilient against humans and is ATM rated 1679 at Lichess blitz, much higher than I would have expected. It is rated 1854 in bullet, but very few games have been played. Thanks to all the people who played against it or launched their bots at it.

It has not been able to play all the time though, apparently there was approximately three-day period when it did not accept challenges successfully (and the challenges never even showed up in the logs, if they were for time controls supported, unsupported rapid/classic challenges nicely show up as declined from the logs during that time). After the "turn it off and on again" it seems rather stable though, even if logs contain rather many warnings and errors -- lichess-bot support for UCI might be bit better than for CECP.

One of its Lichess opponents reported to me that he seems to have discovered a winning line against Monchester 1.0, and indeed the play appeared deterministic. Its meant as fun scholastic level engine, not the boring one to beat with once-discovered winning line(s), so supposed to apply slight randomization to material scores at all time, to vary its play at all times. However, it is activated when CECP 'random' command is sent, which was never applied via lichess-bot. It might be that only XBoard/Winboard send this command when new game starts. So I decided to enforce score randomization at compile time (https://github.com/unserializable/monchester/issues/3), unless explicitly disabled. No new release for that yet though, as playing code itself remains exactly the same as in 1.0 and randomization works exactly as supposed to in *Boards, -- lichess-bot backend engine has been updated with latest 1.0-branch though and will not repeat games anymore at Lichess :)

Two examples of Monchester's 1.0 resilience at Lichess:



And one example of Monchester's "deadly sting" in game rush at Lichess, where it managed to maneuver its pieces back to the starting position by move 6 :)


Monchester 0.99 at CCRL

To my surprise and to CCRL testers credit, I discovered that already Monchester 0.99 beta version was involved in CCRL 404 testing . Version 0.99 currently holds CCRL 404 rating of 837, placing it at 677th position out of 688 there. I would have expected it to go ahead of ChessPuter (841 at CCRL at the moment), which it beat +210 =250 -40 when I last tried it locally (ChessPuter was almost totally unable to mate even with huge material advantage and thus the many draws and almost no wins for it). Anyway, I will try to look at the CCRL games when I have more time, to see if there is something to learn from there and to understand the adjudication conditions. Quick look revealed at least one very weirdly ended game, which seems like it should have been draw as Monchester simply could take opponents queen on the next move.

Monchester 1.0, chess engine playing at scholastic level: https://github.com/unserializable/monchester ("Daddy, it is gonna take your horsie!")
Tickle Monchester at: https://lichess.org/@/monchester

Guenther
Posts: 3566
Joined: Wed Oct 01, 2008 4:33 am
Location: Regensburg, Germany
Full name: Guenther Simon
Contact:

Re: Monchester 1.0 @ Lichess

Post by Guenther » Sat Nov 21, 2020 4:43 pm

unserializable wrote:
Sat Nov 21, 2020 4:27 pm
Monchester 1.0 at Lichess

Monchester 1.0 has now been at Lichess for almost a week, via lichess-bot.

Again it has proved to be resilient against humans and is ATM rated 1679 at Lichess blitz, much higher than I would have expected. It is rated 1854 in bullet, but very few games have been played. Thanks to all the people who played against it or launched their bots at it.

It has not been able to play all the time though, apparently there was approximately three-day period when it did not accept challenges successfully (and the challenges never even showed up in the logs, if they were for time controls supported, unsupported rapid/classic challenges nicely show up as declined from the logs during that time). After the "turn it off and on again" it seems rather stable though, even if logs contain rather many warnings and errors -- lichess-bot support for UCI might be bit better than for CECP.

One of its Lichess opponents reported to me that he seems to have discovered a winning line against Monchester 1.0, and indeed the play appeared deterministic. Its meant as fun scholastic level engine, not the boring one to beat with once-discovered winning line(s), so supposed to apply slight randomization to material scores at all time, to vary its play at all times. However, it is activated when CECP 'random' command is sent, which was never applied via lichess-bot. It might be that only XBoard/Winboard send this command when new game starts. So I decided to enforce score randomization at compile time (https://github.com/unserializable/monchester/issues/3), unless explicitly disabled. No new release for that yet though, as playing code itself remains exactly the same as in 1.0 and randomization works exactly as supposed to in *Boards, -- lichess-bot backend engine has been updated with latest 1.0-branch though and will not repeat games anymore at Lichess :)

Two examples of Monchester's 1.0 resilience at Lichess:
...

And one example of Monchester's "deadly sting" in game rush at Lichess, where it managed to maneuver its pieces back to the starting position by move 6 :)


...
Thanks for the Lichess report.
The game above looks really like a Human coffeehouse swindle with some teasing in the beginning ;-)

I guess weaker players still underestimate the tactical shots of even very low rated programs in quick play, especially after seeing
their dumb opening play ;)

(BTW sorry, I have closed my last account m*nchester there, because it would have tempted me again to waste too much time there.
If it will once play a similar sounding one, it probably will be me again)

Post Reply