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

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

elcabesa
Posts: 855
Joined: Sun May 23, 2010 1:32 pm

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

Post by elcabesa »

my engine "vajolet" is rated 2200 in CCRL 40/40 and has an advanced search function and a basic eval function.
The just released new versione has a totally rewritten eval function and souhld be 200 Elo point stronger I hope :)
Henk
Posts: 7218
Joined: Mon May 27, 2013 10:31 am

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

Post by Henk »

Playing many games is probably not the way to proof correctness.
Twenty five years ago I implemented an algorithm for division of very big integer numbers. There was one branch that would only be executed once in a billion times. And yes I found a bug in it. But of course not through testing on a user level, but by writing a deliberate or special test case.

But more common if your program has many branches some combinations can still go wrong. So writing test cases is better than playing a huge number of games.

I think writing test cases is very boring and makes the program difficult to change. Because if you change the program test cases need to be updated too.
User avatar
hgm
Posts: 27798
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

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

Post by hgm »

The problem is that there is no such thing as "correctness" for playing Chess. There is no such thing even in theory as a 'best move' in every position (what is best depends on your opponent's abilities). And even if there was, it would usually not be known. That is a tad different for division of numbers.

If that is your approach, 2200 might even be an optimistic estimate for the ceiling of a 'fully correct' program...

One does not play games to uncover bugs, but to expose the many trade-offs in search strategy that have to be made due to limited resources and the many strategic eval parameters to a representative sample of positions, so they can be judged on effectiveness.
User avatar
Steve Maughan
Posts: 1221
Joined: Wed Mar 08, 2006 8:28 pm
Location: Florida, USA

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

Post by Steve Maughan »

hgm wrote:The problem is that there is no such thing as "correctness" for playing Chess. There is no such thing even in theory as a 'best move' in every position (what is best depends on your opponent's abilities). And even if there was, it would usually not be known. That is a tad different for division of numbers.

If that is your approach, 2200 might even be an optimistic estimate for the ceiling of a 'fully correct' program...

One does not play games to uncover bugs, but to expose the many trade-offs in search strategy that have to be made due to limited resources and the many strategic eval parameters to a representative sample of positions, so they can be judged on effectiveness.
+1
Henk
Posts: 7218
Joined: Mon May 27, 2013 10:31 am

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

Post by Henk »

Only in a small percentage of Chess Positions there is a best move. For instance in check mate positions. Why would a program postpone a check mate ? (rhetorical question)
Henk
Posts: 7218
Joined: Mon May 27, 2013 10:31 am

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

Post by Henk »

By the way with correctness I meant to say "no software bugs"
or correctly implemented. For instance if your stop condition uses n-1 instead of n-2 while you meant n-2.
User avatar
hgm
Posts: 27798
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

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

Post by hgm »

Well, as explained the reason you need to play millions of games is not to test if you have software bugs. (Although you could catch many bugs that way.) Of course you'd better have no bugs, but achieving that goal is only 1% of the work. I have written engines without bugs that have close to 0 Elo (N.E.G. 0.3d, for instance).

No bugs only means that the program functions 'as designed'. This should never be confused with 'as desired'! :lol:

You need the test games to see if the design is any good. This can only be found out empirically, as it is not known what the program should do, other than "play good moves in positions it will be likely to encounter". Which is not worth much as a description of an algorithm.
Henk
Posts: 7218
Joined: Mon May 27, 2013 10:31 am

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

Post by Henk »

Maybe it's a challenge to write the worst chess playing program ever.
Seems difficult to me because capturing is only an option while in checkers mandatory. So you have to force the opponent to capture the king or other pieces. That means that you should get the opponent in a position where he has no moves instead of captures.

Maybe such a program is appealing for beginning chess players for they cannot lo0se. And then they learn what moves are allowed in chess.
Henk
Posts: 7218
Joined: Mon May 27, 2013 10:31 am

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

Post by Henk »

Tom Likens wrote: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
It took two years for me to get my chess program as it is now. I'm not working on it full time. Only if I have free time. So there is no proof that it is possible to create a program from scratch with only one developer that gets a ELO of 2200 in a few months.

I also had the advantage that I knew about the existence of alfa beta search. Though It was after one year I read about the existence of pvs, quiescence search and null move etc.
Henk
Posts: 7218
Joined: Mon May 27, 2013 10:31 am

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

Post by Henk »

Henk wrote: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
Actually the question should be : Is it possible to create a chess program nowadays running on a single thread (no muti threading) without using special hardware or assembly language (assembler) with an ELO greater than 3000.

I do not belief its possible. But in 1968 many people still thought that it was impossible to get to the moon (am i right?)