UCI engine with adjustable elo, piece values, mobility, etc.

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

ChessC

UCI engine with adjustable elo, piece values, mobility, etc.

Post by ChessC »

Is there a free strong UCI engine with

1) a set elo option that is somewhat realistic?

2) in addition to (1) has an option to adjust piece values?

3) in addition to (1) and (2) has options to adjust the emphasis on piece mobility, control of the center, etc...
swami
Posts: 6640
Joined: Thu Mar 09, 2006 4:21 am

Re: UCI engine with adjustable elo, piece values, mobility,

Post by swami »

ChessC wrote:Is there a free strong UCI engine with

1) a set elo option that is somewhat realistic?

2) in addition to (1) has an option to adjust piece values?

3) in addition to (1) and (2) has options to adjust the emphasis on piece mobility, control of the center, etc...
Try Delfi or The King.
JVMerlino
Posts: 1357
Joined: Wed Mar 08, 2006 10:15 pm
Location: San Francisco, California

Re: UCI engine with adjustable elo, piece values, mobility,

Post by JVMerlino »

Unless something has happened recently, The King does not support UCI (at least, not without conversion programs in between The King and the GUI).

jm
vladstamate
Posts: 161
Joined: Thu Jan 08, 2009 9:06 pm
Location: San Francisco, USA

Re: UCI engine with adjustable elo, piece values, mobility,

Post by vladstamate »

JVMerlino wrote:Unless something has happened recently, The King does not support UCI (at least, not without conversion programs in between The King and the GUI).

jm
I can confirm that it does not indeed work. I've tested it against Arena and it could not respond to any UCI commands.

Vlad.
Spock

Re: UCI engine with adjustable elo, piece values, mobility,

Post by Spock »

Glaurung 2.2 has 2) and 3) by the looks of it, and probably Fruit 05/11/03 and 2.3.1 as well. But no set ELO unfortunately
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: UCI engine with adjustable elo, piece values, mobility,

Post by Don »

Spock wrote:Glaurung 2.2 has 2) and 3) by the looks of it, and probably Fruit 05/11/03 and 2.3.1 as well. But no set ELO unfortunately
I think ELO should be a gui option - although it would require some calibration.
User avatar
Eelco de Groot
Posts: 4565
Joined: Sun Mar 12, 2006 2:40 am
Full name:   

Re: UCI engine with adjustable elo, piece values, mobility,

Post by Eelco de Groot »

Don wrote:
Spock wrote:Glaurung 2.2 has 2) and 3) by the looks of it, and probably Fruit 05/11/03 and 2.3.1 as well. But no set ELO unfortunately
I think ELO should be a gui option - although it would require some calibration.
To get believable play for weaker levels that is something of an art form. The new Shredder would be an obvious candidate. Chessmaster is of course also not entirely a free engine, only Rebel, Pro Deo I believe had an option to weaken play that attempted to show human mistakes? I'm not entirely sure anymore because I never tried it. But it is free. It's not UCI but for training purposes the wb2uci option from Odd Gunnar Malin should be good enough.

Set elo is only for UCI engines though, I believe for Rebel there is a parameter called Playing Strength that by default is at 100. I have never tried any of the weaker settings though so I don't know how realistic this was. Lots of tuning options possible but don't know about the combination with set elo or Playing Strength.

Set elo in combination with other settings is not expected to be precise, if you want it for measuring engine performance, or for instance comparing style when the playing strength is not to be affected, that I think is not going to work? If it is not training but some other purpose Jay needs set elo for, maybe the Arena option of allowing one side less time would be a better way to experiment. Just figure out a way to calibrate how much a doubling of time is worth with any setting. A weakened engine maybe does not profit from more time so well so gets less than 50 elo per doubling. Because the longer search may not compensate for an evaluation that is not accurate so well?

Eelco
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: UCI engine with adjustable elo, piece values, mobility,

Post by Don »

Eelco de Groot wrote:
Don wrote:
Spock wrote:Glaurung 2.2 has 2) and 3) by the looks of it, and probably Fruit 05/11/03 and 2.3.1 as well. But no set ELO unfortunately
I think ELO should be a gui option - although it would require some calibration.
To get believable play for weaker levels that is something of an art form. The new Shredder would be an obvious candidate. Chessmaster is of course also not entirely a free engine, only Rebel, Pro Deo I believe had an option to weaken play that attempted to show human mistakes? i'm not entirely sure anumore because I never tried it. But it is free. It's not UCI but for training purposes the wb2uci option from Odd Gunnarc Malin should be good enough. I have never tried any of the weaker settings though so I don't know how realistic this was. Lots of tuning options possible but don't know about the combination with set elo.

Set elo in combination with other settings is not expected to be precise, if you want it for measuring engine performance, or for instance comparing style when the playing strength is not to be affected, that I think is not going to work? If it is not training but some other purpose Jay needs set elo for, maybe the Arena option of allowing one side less time would be a better way to experiment. Just figure out a way to calibrate how much a doubling of time is worth with any setting. A weakened engine maybe does not profit from more time so well so gets less than 50 elo per doubling. Because the longer search may not compensate for an evaluation that is not accurate so well?

Eelco
I think almost any engine can play weak if you set it below 5 or 6 ply - where weak is below master level. Of course some programs are much stronger at a given depth of search. Spike is very strong for the stated depth, although pretty slow too.

At 1 or 2 ply, you have something very weak assuming that the program is not doing a super sophisticated quies search where attacks and defences are resolved beyond the standard classic quies search.

For instance, with a "classic" 1 ply search a human can win with a capture that sets up a fork for instance. A 1 ply search cannot see simple forks or other kinds of double attacks.

I personally don't think anyone should play a program weaker than that. If you want weaker play, you might as well just resign at the start of the game if the goal is to make it so that a really weak human can win without having to know anything about the game.

Most programs allow you to turn off checks in quies which would be definitely recommeded for teaching beginners. 1 ply is perfect because it doesn't just hang pieces but at least has minimal common snese - i.e. move a piece if attacked (duh!) and if a piece is not defended capture it!

The only other issue for weaker play is the positional knowledge that program have. A 1 ply search with modern programs is pretty strong positionally, compared to most non-tournament players. However, I have an objection to trying to make a program play too much weaker if the goal is to have a practice partner for weaker players. Do you want to learn to improve your play based on expecting your opponent to play terrible? Playing really weak players screws up your own game if you do too much of it.

I think I would be happy with a 1 ply search, any interesting extensions turned off. It may be difficult for a really weak player to beat, but it's certainly within their grasp.

As you point out, it's difficult to make it play weaker than that and still resemble what a weak player might play. But I remind you that a weak player is likely to open with 1. h4 in order to develop his rook. You almost have to play randomly to simulate that kind of logic.

Here is something I did once that works to weaken positional play without it looking completely random. You cannot just add a random factor because good and bad terms will still dominated - you have to scale down all the positional terms then add a random noise factor to the final evaluation. The noise might be a random value from -20 to +20 inclusive for instance.
BubbaTough
Posts: 1154
Joined: Fri Jun 23, 2006 5:18 am

Re: UCI engine with adjustable elo, piece values, mobility,

Post by BubbaTough »

Most chess coaches recommend only playing a computer when you can't find a human opponent. There is a reason. Computers play very different. This remains true when you add ply limitations. If your goal is to beat humans, practicing against a program is nowhere near as useful as practicing against humans. Of course, playing against a computer is still fun, and better than nothing...

Now, if serious work were put into creating a program that played more like a human, that might be a different story. I know a few people have done a little of that in the past, but not with great success as far as i can tell.

-Sam
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: UCI engine with adjustable elo, piece values, mobility,

Post by bob »

BubbaTough wrote:Most chess coaches recommend only playing a computer when you can't find a human opponent. There is a reason. Computers play very different. This remains true when you add ply limitations. If your goal is to beat humans, practicing against a program is nowhere near as useful as practicing against humans. Of course, playing against a computer is still fun, and better than nothing...

Now, if serious work were put into creating a program that played more like a human, that might be a different story. I know a few people have done a little of that in the past, but not with great success as far as i can tell.

-Sam
That's the reason I have always said that limiting depth is _not_ the way to reduce a program's strength. You end up with a tactically inferior player, but a positionally strong player. That is quite unlike what you get with weaker humans.

Crafty's skill command is actually very good, and was developed with the idea that everything decays at the same rate. It still does deep searches and takes the same amount of time to complete a search, regardless of the skill setting chosen. But the eval swings to a more random value as skill goes down, which leads to reasonable play in general with less regard for material and positional considerations as it is weakened. I even calibrated the thing down to -600 Elo. Main problem is that while skill 50 is 400 Elo worse than normal, "normal" varies wildly depending on the hardware.