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
Is it ever possible to create a chess program with ELO 3000
Moderators: hgm, Rebel, chrisw
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
-
- 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
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.Null move, LMR, Quiescence etc. won't take you further than 2200 ELO
As stockfish is an open source engine written in C++ rated well over 3000 ELO your statement is really obvious nonsense.
Thomas...
-
- 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
http://computerchess.org.uk/ccrl/4040/Henk wrote:Is it possible to create a real strong playing chess program nowadays without using special hardware or assembly language
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).
They do if you have an evaluation function in there as well. Do you have anything to back up that claim?Null move, LMR, Quiescence etc. won't take you further than 2200 ELO
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: Is it ever possible to create a chess program with ELO 3
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 ?
-
- 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
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...
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...
-
- Posts: 1600
- Joined: Mon Feb 21, 2011 9:48 am
Re: Is it ever possible to create a chess program with ELO 3
You said it,Henk wrote: I don't think an elaborate evaluation function will help very much.
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.
-
- 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
Take a break. It helps enormously to come back to it and look at it again with fresh eyes.Henk wrote:My chess program can not get beyond 2200 ELO.
Sounds about right, but that figure depends very strongly on what you already have in place.But maybe I do not have a good LMR implementation. [...] I read some say LMR gives you only 40 ELO.
LMR certainly is not a magical idea that will transform a 2200 elo engine into a 3000+ elo engine.
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.Also my evaluation function is much too simple. But I do not think that will get me much further.
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".
Jazz has a branching ratio of about 2, but it doesn't search particularly deep. Nor is it particularly strong.So how do they reduce branching factor to two. For that's the only way to get to deep search levels.
Don't focus on numbers like that too much, it's usually meaningless to compare between different engines.
A deep search doesn't automatically gain you 100s of elo points.If deeper levels gives gains of hundreds of ELO points ?
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: Is it ever possible to create a chess program with ELO 3
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.
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.
-
- 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
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):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 ?
- 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).
regards,
--tom
-
- Posts: 5566
- Joined: Tue Feb 28, 2012 11:56 pm
Re: Is it ever possible to create a chess program with ELO 3
Then I really do not understand why you made that statement. There is counterevidence everywhere you look.Henk wrote:I did not say or mean to say that my chess program has 2200 ELO