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
Is it ever possible to create a chess program with ELO 3000
Moderators: hgm, Rebel, chrisw
-
- Posts: 855
- Joined: Sun May 23, 2010 1:32 pm
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: Is it ever possible to create a chess program with ELO 3
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.
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.
-
- Posts: 27809
- 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
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.
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.
-
- 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
+1hgm 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.
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: Is it ever possible to create a chess program with ELO 3
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)
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: Is it ever possible to create a chess program with ELO 3
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.
or correctly implemented. For instance if your stop condition uses n-1 instead of n-2 while you meant n-2.
-
- Posts: 27809
- 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
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'!
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.
No bugs only means that the program functions 'as designed'. This should never be confused with 'as desired'!
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.
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: Is it ever possible to create a chess program with ELO 3
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.
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.
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: Is it ever possible to create a chess program with ELO 3
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.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
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.
-
- Posts: 7220
- Joined: Mon May 27, 2013 10:31 am
Re: Is it ever possible to create a chess program with ELO 3
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.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
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?)