Something new coming down the highway

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

Moderators: hgm, Rebel, chrisw

Mike Sherwin
Posts: 868
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Something new coming down the highway

Post by Mike Sherwin »

It may be a new Diablo Countach or maybe just an old clunky Geo Metro but it is new as far as chess engines go.

About 30 years ago I had an idea to make a statistical driven search. I got part way done but had to give up on the idea because of life circumstances. When I started to program chess again around 2003 I decided on writing a more conventional chess engine that eventually turned into RomiChess. But, I always wanted to pursue my original idea. Then my mom came down with Alzheimer's and all chess activity came to a screeching halt as I had to take care of her. However, when my own health started to suffer from the strain of taking care of my mom I had no choice but to put her in a nursing home. Shortly after that I was shoveling snow and had a heart attack. I managed to get back into the house but could not make it to the phone. I must have laid there for a very long time because when I came to I had pissed and s__t myself. I was able to make it into the bathroom and clean myself off. Then I went and got into bed. I slept 20 hours a day for I do not know how long. No, I never went to the hospital. Then I remembered that my step father had a large stash of coumadin so I started to take one twice a week. Slowly my strength started to return. I lost a ton of weight.

Anyway, I have been struggling ever since to program chess once more. I would give up and then decide, no I do not want to give up. Now after all these years (thanks to help by TommyTC) I have written a very minimal example of a statistical driven search. It is not as far along as what I had 30 years ago. Thirty years ago it self played 1 e2e4 e7e5 2 f1c4 f8c5 3 g1f3 b8c6, etc. And it could more than hold its own against CM5000. I don't remember everything I did back then. It will be a rediscovery process. It understood king safety which means that I must have included checks in the statistics. This is so far the most basic idea of counting beta cutoffs and nothing more. So just consider this very first self played game as a first peek! Understand that this engine, Bricabrac, has absolutely no evaluation function whatsoever!!! Enough blah blah blah, here is the game.
[pgn][Event "Computer chess game"]
[Site "DESKTOP-HFVHK2B"]
[Date "2020.10.01"]
[Round "?"]
[White "mjshe"]
[Black "mjshe"]
[Result "*"]
[BlackElo "2400"]
[ECO "D00"]
[Opening "Hodgson Attack"]
[Time "10:15:03"]
[Variation "2...f6"]
[WhiteElo "2400"]
[TimeControl "40/7200:40/7200:7200"]
[Termination "unterminated"]
[PlyCount "65"]
[WhiteType "human"]
[BlackType "human"]

1. d4 d5 2. Bg5 f6 3. Bf4 g5 4. Bg3 f5 5. f4 Bh6 6. e3 g4 7. Bb5+ Bd7 8.
Qd3 b6 9. Nd2 Bxb5 10. Qxb5+ Qd7 11. a4 Qxb5 12. axb5 c5 13. Ke2 c4 14. h4
a6 15. b4 Nf6 16. h5 Ne4 17. Nxe4 fxe4 18. f5 Rf8 19. f6 Rxf6 20. Be5 Rf8
21. g3 Nd7 22. Rxa6 Rxa6 23. bxa6 b5 24. c3 Rf5 25. a7 Nb6 26. Bc7 Na8 27.
Be5 Kd7 28. Rh2 Rf8 29. Rf2 Rxf2+ 30. Kxf2 Ke6 31. Ke2 Kd7 32. Kd2 Ke6 33.
Ke2 *
[/pgn]
P.S. The search may still have bugs and probably does.
mar
Posts: 2559
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Something new coming down the highway

Post by mar »

you mean this is pure material eval or that everything evaluates to 0 unless it's a checkmate?

either way, pure material typically just moves the pieces (and especially pawns) randomly around the board so this play certainly looks better than that.
Martin Sedlak
Mike Sherwin
Posts: 868
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Something new coming down the highway

Post by Mike Sherwin »

mar wrote: Fri Oct 02, 2020 7:48 pm you mean this is pure material eval or that everything evaluates to 0 unless it's a checkmate?

either way, pure material typically just moves the pieces (and especially pawns) randomly around the board so this play certainly looks better than that.
It is strictly a material search where moves are differentiated by accumulated statistics for each root move.
P.S. Give me a moment and I'll post the sources in my, "I don't want to give up" thread.
Last edited by Mike Sherwin on Fri Oct 02, 2020 8:11 pm, edited 1 time in total.
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Something new coming down the highway

Post by CMCanavessi »

Welcome back Mike! Hope you're doing better now and get well :D

Hope to see where this new road leads you!
Follow my tournament and some Leela gauntlets live at http://twitch.tv/ccls
Mike Sherwin
Posts: 868
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Something new coming down the highway

Post by Mike Sherwin »

CMCanavessi wrote: Fri Oct 02, 2020 8:07 pm Welcome back Mike! Hope you're doing better now and get well :D

Hope to see where this new road leads you!
Thanks! I just want to have some fun with it. :D
mar
Posts: 2559
Joined: Fri Nov 26, 2010 2:00 pm
Location: Czech Republic
Full name: Martin Sedlak

Re: Something new coming down the highway

Post by mar »

so, if I understand you correctly: you simply use number of beta cutoffs for stm (=even plies) to resolve root move ties?
I think this could be tried in engines with full eval as well to sort non-pv root moves instead of total node count which I do now
Martin Sedlak
User avatar
maksimKorzh
Posts: 771
Joined: Sat Sep 08, 2018 5:37 pm
Location: Ukraine
Full name: Maksim Korzh

Re: Something new coming down the highway

Post by maksimKorzh »

Mike Sherwin wrote: Fri Oct 02, 2020 7:25 pm It may be a new Diablo Countach or maybe just an old clunky Geo Metro but it is new as far as chess engines go.

About 30 years ago I had an idea to make a statistical driven search. I got part way done but had to give up on the idea because of life circumstances. When I started to program chess again around 2003 I decided on writing a more conventional chess engine that eventually turned into RomiChess. But, I always wanted to pursue my original idea. Then my mom came down with Alzheimer's and all chess activity came to a screeching halt as I had to take care of her. However, when my own health started to suffer from the strain of taking care of my mom I had no choice but to put her in a nursing home. Shortly after that I was shoveling snow and had a heart attack. I managed to get back into the house but could not make it to the phone. I must have laid there for a very long time because when I came to I had pissed and s__t myself. I was able to make it into the bathroom and clean myself off. Then I went and got into bed. I slept 20 hours a day for I do not know how long. No, I never went to the hospital. Then I remembered that my step father had a large stash of coumadin so I started to take one twice a week. Slowly my strength started to return. I lost a ton of weight.

Anyway, I have been struggling ever since to program chess once more. I would give up and then decide, no I do not want to give up. Now after all these years (thanks to help by TommyTC) I have written a very minimal example of a statistical driven search. It is not as far along as what I had 30 years ago. Thirty years ago it self played 1 e2e4 e7e5 2 f1c4 f8c5 3 g1f3 b8c6, etc. And it could more than hold its own against CM5000. I don't remember everything I did back then. It will be a rediscovery process. It understood king safety which means that I must have included checks in the statistics. This is so far the most basic idea of counting beta cutoffs and nothing more. So just consider this very first self played game as a first peek! Understand that this engine, Bricabrac, has absolutely no evaluation function whatsoever!!! Enough blah blah blah, here is the game.
[pgn][Event "Computer chess game"]
[Site "DESKTOP-HFVHK2B"]
[Date "2020.10.01"]
[Round "?"]
[White "mjshe"]
[Black "mjshe"]
[Result "*"]
[BlackElo "2400"]
[ECO "D00"]
[Opening "Hodgson Attack"]
[Time "10:15:03"]
[Variation "2...f6"]
[WhiteElo "2400"]
[TimeControl "40/7200:40/7200:7200"]
[Termination "unterminated"]
[PlyCount "65"]
[WhiteType "human"]
[BlackType "human"]

1. d4 d5 2. Bg5 f6 3. Bf4 g5 4. Bg3 f5 5. f4 Bh6 6. e3 g4 7. Bb5+ Bd7 8.
Qd3 b6 9. Nd2 Bxb5 10. Qxb5+ Qd7 11. a4 Qxb5 12. axb5 c5 13. Ke2 c4 14. h4
a6 15. b4 Nf6 16. h5 Ne4 17. Nxe4 fxe4 18. f5 Rf8 19. f6 Rxf6 20. Be5 Rf8
21. g3 Nd7 22. Rxa6 Rxa6 23. bxa6 b5 24. c3 Rf5 25. a7 Nb6 26. Bc7 Na8 27.
Be5 Kd7 28. Rh2 Rf8 29. Rf2 Rxf2+ 30. Kxf2 Ke6 31. Ke2 Kd7 32. Kd2 Ke6 33.
Ke2 *
[/pgn]
P.S. The search may still have bugs and probably does.
Mike, does your statistical search take care of squares occupied buy piece? I mean do the certain squares contribute to the overall result prediction?
Mike Sherwin
Posts: 868
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Something new coming down the highway

Post by Mike Sherwin »

mar wrote: Fri Oct 02, 2020 9:33 pm so, if I understand you correctly: you simply use number of beta cutoffs for stm (=even plies) to resolve root move ties?
I think this could be tried in engines with full eval as well to sort non-pv root moves instead of total node count which I do now
yes, so far! Many more stats can be collected and weighed. Some that come to mind are check, checkmate, and a big one will be null move failures that indicate lots of good tactics for one side or the other. And heavily weighted bonus stats in the opening for getting pieces off the back ranks. And also yes, it can be melded with regular eval if desired. The beauty of this is that all processing is done at the root moves making it practically cost nothing! :D
Mike Sherwin
Posts: 868
Joined: Fri Aug 21, 2020 1:25 am
Location: Planet Earth, Sol system
Full name: Michael J Sherwin

Re: Something new coming down the highway

Post by Mike Sherwin »

maksimKorzh wrote: Fri Oct 02, 2020 9:50 pm
Mike Sherwin wrote: Fri Oct 02, 2020 7:25 pm It may be a new Diablo Countach or maybe just an old clunky Geo Metro but it is new as far as chess engines go.

About 30 years ago I had an idea to make a statistical driven search. I got part way done but had to give up on the idea because of life circumstances. When I started to program chess again around 2003 I decided on writing a more conventional chess engine that eventually turned into RomiChess. But, I always wanted to pursue my original idea. Then my mom came down with Alzheimer's and all chess activity came to a screeching halt as I had to take care of her. However, when my own health started to suffer from the strain of taking care of my mom I had no choice but to put her in a nursing home. Shortly after that I was shoveling snow and had a heart attack. I managed to get back into the house but could not make it to the phone. I must have laid there for a very long time because when I came to I had pissed and s__t myself. I was able to make it into the bathroom and clean myself off. Then I went and got into bed. I slept 20 hours a day for I do not know how long. No, I never went to the hospital. Then I remembered that my step father had a large stash of coumadin so I started to take one twice a week. Slowly my strength started to return. I lost a ton of weight.

Anyway, I have been struggling ever since to program chess once more. I would give up and then decide, no I do not want to give up. Now after all these years (thanks to help by TommyTC) I have written a very minimal example of a statistical driven search. It is not as far along as what I had 30 years ago. Thirty years ago it self played 1 e2e4 e7e5 2 f1c4 f8c5 3 g1f3 b8c6, etc. And it could more than hold its own against CM5000. I don't remember everything I did back then. It will be a rediscovery process. It understood king safety which means that I must have included checks in the statistics. This is so far the most basic idea of counting beta cutoffs and nothing more. So just consider this very first self played game as a first peek! Understand that this engine, Bricabrac, has absolutely no evaluation function whatsoever!!! Enough blah blah blah, here is the game.
[pgn][Event "Computer chess game"]
[Site "DESKTOP-HFVHK2B"]
[Date "2020.10.01"]
[Round "?"]
[White "mjshe"]
[Black "mjshe"]
[Result "*"]
[BlackElo "2400"]
[ECO "D00"]
[Opening "Hodgson Attack"]
[Time "10:15:03"]
[Variation "2...f6"]
[WhiteElo "2400"]
[TimeControl "40/7200:40/7200:7200"]
[Termination "unterminated"]
[PlyCount "65"]
[WhiteType "human"]
[BlackType "human"]

1. d4 d5 2. Bg5 f6 3. Bf4 g5 4. Bg3 f5 5. f4 Bh6 6. e3 g4 7. Bb5+ Bd7 8.
Qd3 b6 9. Nd2 Bxb5 10. Qxb5+ Qd7 11. a4 Qxb5 12. axb5 c5 13. Ke2 c4 14. h4
a6 15. b4 Nf6 16. h5 Ne4 17. Nxe4 fxe4 18. f5 Rf8 19. f6 Rxf6 20. Be5 Rf8
21. g3 Nd7 22. Rxa6 Rxa6 23. bxa6 b5 24. c3 Rf5 25. a7 Nb6 26. Bc7 Na8 27.
Be5 Kd7 28. Rh2 Rf8 29. Rf2 Rxf2+ 30. Kxf2 Ke6 31. Ke2 Kd7 32. Kd2 Ke6 33.
Ke2 *
[/pgn]
P.S. The search may still have bugs and probably does.
Mike, does your statistical search take care of squares occupied buy piece? I mean do the certain squares contribute to the overall result prediction?
Not at this stage as only one stat is collected and stm - other side to move is the only processing done. The sky's the limit. If one can imagine a beneficial stat that can be collected it can be factored in!
User avatar
mvanthoor
Posts: 1784
Joined: Wed Jul 03, 2019 4:42 pm
Location: Netherlands
Full name: Marcel Vanthoor

Re: Something new coming down the highway

Post by mvanthoor »

Mike Sherwin wrote: Fri Oct 02, 2020 11:20 pm ...
Not at this stage as only one stat is collected and stm - other side to move is the only processing done. The sky's the limit. If one can imagine a beneficial stat that can be collected it can be factored in!
Aren't those stats going to make up an evaluation function in the end, al be it in a different way?

I can imagine these stats:
- bishop pair available
- (half-)open lines available
- castling pawn shield in tact
- pawns: passed, isolated, backward, double/triple
- center locked (knights more useful) or open (bishops more useful)
Author of Rustic, an engine written in Rust.
Releases | Code | Docs | Progress | CCRL