Is it ever possible to create a chess program with ELO 3000

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Henk
Posts: 7220
Joined: Mon May 27, 2013 10:31 am

Is it ever possible to create a chess program with ELO 3000

Post by Henk »

Is it possible to create a real strong playing chess program nowadays without using special hardware or assembly language

Null move, LMR, Quiescence etc. won't take you further than 2200 ELO
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: Is it ever possible to create a chess program with ELO 3

Post by tpetzke »

Null move, LMR, Quiescence etc. won't take you further than 2200 ELO
How do you come to that conclusion? Sure it does, but it takes more than a few days that you have to invest in your engine.

As stockfish is an open source engine written in C++ rated well over 3000 ELO your statement is really obvious nonsense.

Thomas...
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Is it ever possible to create a chess program with ELO 3

Post by Evert »

Henk wrote:Is it possible to create a real strong playing chess program nowadays without using special hardware or assembly language
http://computerchess.org.uk/ccrl/4040/

Seriously, the first 17 entries are all ranked > 3000 elo. Of course, comparing that to human ratings is another matter (the calibration may well be off).
Null move, LMR, Quiescence etc. won't take you further than 2200 ELO
They do if you have an evaluation function in there as well. Do you have anything to back up that claim?
Henk
Posts: 7220
Joined: Mon May 27, 2013 10:31 am

Re: Is it ever possible to create a chess program with ELO 3

Post by Henk »

My chess program can not get beyond 2200 ELO. But maybe I do not have a good LMR implementation. Also my evaluation function is much too simple. But I do not think that will get me much further. I read some say LMR gives you only 40 ELO. I don't think an elaborate evaluation function will help very much. So how do they reduce branching factor to two. For that's the only way to get to deep search levels. If deeper levels gives gains of hundreds of ELO points ?
tpetzke
Posts: 686
Joined: Thu Mar 03, 2011 4:57 pm
Location: Germany

Re: Is it ever possible to create a chess program with ELO 3

Post by tpetzke »

2200 ELO is a good start for a first version, how much time did you spend on it.

My program is currently about 2460 ELO and I'm working on it for 3 years by now. I think you expect miracles or some hidden short cuts. There are none. Chess programming is a lot of work, patience, CPU hours and you need a high frustration tolerance.

If you don't have that you won't enjoy it very much.

I've rewritten my eval 3 times by now and I'm still not fully happy with it. I've played about 500.000 games in the last two month to tune my engine. That is nothing. The developer of the top engine plays about 100.000 games each day.

Usual procedure for the ones that expect huge ELO gains in no time is to go and clone an engine. But I don't recommend to go that path.

Thomas...
User avatar
velmarin
Posts: 1600
Joined: Mon Feb 21, 2011 9:48 am

Re: Is it ever possible to create a chess program with ELO 3

Post by velmarin »

Henk wrote: I don't think an elaborate evaluation function will help very much.
You said it,
but in reverse.

If you have a simple evaluation, your motor is not knowledge.
Another thing is a jumbled evaluation, or overloaded.



See fortes engine evaluation, the PST, ect.
There are engines with shallow depth of search that make a game incredible.
User avatar
Evert
Posts: 2929
Joined: Sat Jan 22, 2011 12:42 am
Location: NL

Re: Is it ever possible to create a chess program with ELO 3

Post by Evert »

Henk wrote:My chess program can not get beyond 2200 ELO.
Take a break. It helps enormously to come back to it and look at it again with fresh eyes.
But maybe I do not have a good LMR implementation. [...] I read some say LMR gives you only 40 ELO.
Sounds about right, but that figure depends very strongly on what you already have in place.
LMR certainly is not a magical idea that will transform a 2200 elo engine into a 3000+ elo engine.
Also my evaluation function is much too simple. But I do not think that will get me much further.
You need a good evaluation function. The search will look for the path that leads to the optimal score, which is ultimately due to the evaluation function. It's not evaluation or search, you need both. Having good evaluation allows you to be more selective in the search, on the other hand having a good search means that you don't have to rely on the evaluation function to resolve threats that the search will resolve on its own.
Note that a simple evaluation function can be a good evaluation function.

Have a look at something like Stockfish. There is no magic there: everything fits together very nicely and the code is well-written and well-tuned, but there is no single feature that you can point to and say "this is worth 100s of elo points".
So how do they reduce branching factor to two. For that's the only way to get to deep search levels.
Jazz has a branching ratio of about 2, but it doesn't search particularly deep. Nor is it particularly strong.

Don't focus on numbers like that too much, it's usually meaningless to compare between different engines.
If deeper levels gives gains of hundreds of ELO points ?
A deep search doesn't automatically gain you 100s of elo points.
Henk
Posts: 7220
Joined: Mon May 27, 2013 10:31 am

Re: Is it ever possible to create a chess program with ELO 3

Post by Henk »

I did not say or mean to say that my chess program has 2200 ELO

My chess program is still under development and I think 2200 ELO will be an upper bound or a barriere very hard to break through.

I always loose if I play against my program, but I'm just an average chess player. So that test does not help very much.
Tom Likens
Posts: 303
Joined: Sat Apr 28, 2012 6:18 pm
Location: Austin, TX

Re: Is it ever possible to create a chess program with ELO 3

Post by Tom Likens »

Henk wrote:My chess program can not get beyond 2200 ELO. But maybe I do not have a good LMR implementation. Also my evaluation function is much too simple. But I do not think that will get me much further. I read some say LMR gives you only 40 ELO. I don't think an elaborate evaluation function will help very much. So how do they reduce branching factor to two. For that's the only way to get to deep search levels. If deeper levels gives gains of hundreds of ELO points ?
I don't want to discourage you, but chess programming is hard. You can spend your entire life on it and still never make it to the top. I don't know how long you've been working on your program, but 2200 isn't that bad if it's only a few months old. I have a few suggestions that might help you progress quicker (take them or leave them of course):
  • 1. Set up a good testing strategy. This isn't easy but it's crucial to making measured progress. Pick 4-5 good opponents and play *thousands* of games against them.

    2. Learn how to use "bayeselo", Ordo or some equivalent program.

    3. Add a ton of debugging scaffolding to your engine. You've likely got a lot of subtle bugs in your code (almost everyone does initially). The sooner you eliminate them the sooner you can concentrate on the fun stuff.

    4. Use source control so you actually have control of your code base

    5. Make and test only one major change at a time. If you change too many things your code is out of control and you won't know what was beneficial and what was harmful, (i.e. you'll regress as often as you progress, one step forward two steps back etc.).

    6. Consider using CLOP or something equivalent for automatic tuning

    7. Don't expect miracles. Creating a really strong chess program is tremendously hard work, especially if you simply don't cut-n-paste other people's code into your engine. You'll make small improvements measured in the 5-10 elo range. 100+ elo improvements are rare, they're usually bug fixes (see step 3 above).
The best computer chess programs on fast hardware are better than Kasparov ever dreamed of being (no knock against Kasparov who I admire, it's just the reality of things). But, they cumulatively represent hundreds of man-years over the course of many people's lifes. The techniques work, but they need to be applied correctly.

regards,
--tom
syzygy
Posts: 5566
Joined: Tue Feb 28, 2012 11:56 pm

Re: Is it ever possible to create a chess program with ELO 3

Post by syzygy »

Henk wrote:I did not say or mean to say that my chess program has 2200 ELO
Then I really do not understand why you made that statement. There is counterevidence everywhere you look.