Idea for Michael/RomiChess

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

Moderators: hgm, Rebel, chrisw

BrendanJNorman
Posts: 2526
Joined: Mon Feb 08, 2016 12:43 am
Full name: Brendan J Norman

Idea for Michael/RomiChess

Post by BrendanJNorman »

Michael,

What do you think of this idea:

Create a setting in Romi where even in positions from the learn file, it will pause for a few seconds (or more depending on the time control), before playing the move.

Hopefully, this setting could be switched off for serious games against other engines.

The idea is that one could create a learn file based on a pgn of say 1,000,000 games from lichess (https://database.lichess.org/), of players say 1800-2000.

If Romi plays moves from this learn file, and pauses at certain points for random (but not absurd) periods of time, etc - this will simulate what appears to be human thinking, and then it plays a move from the learn file.

This move might even be a mistake (from a weakish human's game), but it seems like it was well-thought-out and the user-experience from our perspective is of a blitz game with a real human.

IF that move is a mistake, we still have to spot the mistake and refute it.

Sounds like an excellent way to train, but without this move-time-randomizer it's less "realisitic".

I believe Lance Perkins thought up this idea about ten years ago for making Thinker appear more human-like.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Idea for Michael/RomiChess

Post by Ovyron »

BrendanJNorman wrote:I believe Lance Perkins thought up this idea about ten years ago for making Thinker appear more human-like.
Rebel was doing this in 1995, when you'd set it to a weak setting, the engine would decide what to move instantly, but the GUI would wait realistically before moving as if the engine was still thinking :)

The concept is sound, because one tends to imitate the pace of play of opponents, so if the engine plays instantly, one is urged to play instantly, leading to blunders and also, because human pondering is very important and an opponent that moves instantly doesn't let you think on their time.
Ras
Posts: 2487
Joined: Tue Aug 30, 2016 8:19 pm
Full name: Rasmus Althoff

Re: Idea for Michael/RomiChess

Post by Ras »

The CT800 engine has a throttle mode where the virtual CPU speed can be set between 1% and 100%. Technically, every second is divided into a 100 slices of 10 ms each, and at N% speed, the first N of them are spent calculating. Then 100-N-4 with sleeping, and the last 4 with busy waiting.

The throttling is simply available as custom UCI command and shows up in the GUI. Works under Windows, Linux and Android. In order to always have some useful move, no matter how short the time, the 3 ply (plus QS) sorting pre-search at root is not throttled.

The nice thing is that the NPS display is approximately in line with the reduction, and that it scales with more thinking time.
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Idea for Michael/RomiChess

Post by Michael Sherwin »

BrendanJNorman wrote:Michael,

What do you think of this idea:

Create a setting in Romi where even in positions from the learn file, it will pause for a few seconds (or more depending on the time control), before playing the move.

Hopefully, this setting could be switched off for serious games against other engines.

The idea is that one could create a learn file based on a pgn of say 1,000,000 games from lichess (https://database.lichess.org/), of players say 1800-2000.

If Romi plays moves from this learn file, and pauses at certain points for random (but not absurd) periods of time, etc - this will simulate what appears to be human thinking, and then it plays a move from the learn file.

This move might even be a mistake (from a weakish human's game), but it seems like it was well-thought-out and the user-experience from our perspective is of a blitz game with a real human.

IF that move is a mistake, we still have to spot the mistake and refute it.

Sounds like an excellent way to train, but without this move-time-randomizer it's less "realisitic".

I believe Lance Perkins thought up this idea about ten years ago for making Thinker appear more human-like.
It would be trivial to add. I can make it an option that is off by default on my next official release.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
User avatar
CMCanavessi
Posts: 1142
Joined: Thu Dec 28, 2017 4:06 pm
Location: Argentina

Re: Idea for Michael/RomiChess

Post by CMCanavessi »

Michael, when do you think your next official release will be? Is it months away? Weeks? Years?
Looks like you've gotten a lot of ideas and features to implement, some very easy (like learning and using the learn file with book off).
Michael Sherwin
Posts: 3196
Joined: Fri May 26, 2006 3:00 am
Location: WY, USA
Full name: Michael Sherwin

Re: Idea for Michael/RomiChess

Post by Michael Sherwin »

CMCanavessi wrote:Michael, when do you think your next official release will be? Is it months away? Weeks? Years?
Looks like you've gotten a lot of ideas and features to implement, some very easy (like learning and using the learn file with book off).
I must have at least some elo gain to justify another release or a lot of testers will be wasting their time testing the new version. Time is an open question and depends a lot on my health.
If you are on a sidewalk and the covid goes beep beep
Just step aside or you might have a bit of heat
Covid covid runs through the town all day
Can the people ever change their ways
Sherwin the covid's after you
Sherwin if it catches you you're through
BrendanJNorman
Posts: 2526
Joined: Mon Feb 08, 2016 12:43 am
Full name: Brendan J Norman

Re: Idea for Michael/RomiChess

Post by BrendanJNorman »

Michael Sherwin wrote:
BrendanJNorman wrote:Michael,

What do you think of this idea:

Create a setting in Romi where even in positions from the learn file, it will pause for a few seconds (or more depending on the time control), before playing the move.

Hopefully, this setting could be switched off for serious games against other engines.

The idea is that one could create a learn file based on a pgn of say 1,000,000 games from lichess (https://database.lichess.org/), of players say 1800-2000.

If Romi plays moves from this learn file, and pauses at certain points for random (but not absurd) periods of time, etc - this will simulate what appears to be human thinking, and then it plays a move from the learn file.

This move might even be a mistake (from a weakish human's game), but it seems like it was well-thought-out and the user-experience from our perspective is of a blitz game with a real human.

IF that move is a mistake, we still have to spot the mistake and refute it.

Sounds like an excellent way to train, but without this move-time-randomizer it's less "realisitic".

I believe Lance Perkins thought up this idea about ten years ago for making Thinker appear more human-like.
It would be trivial to add. I can make it an option that is off by default on my next official release.
Please do. That would be awesome.