FIDE & Google Efficient Chess AI Challenge
Moderators: hgm, chrisw, Rebel
-
- Posts: 18839
- Joined: Thu Mar 09, 2006 6:40 pm
- Location: US of Europe, germany
- Full name: Thorsten Czub
Re: FIDE & Google Efficient Chess AI Challenge
What a pity then.
What seems like a fairy tale today may be reality tomorrow.
Here we have a fairy tale of the day after tomorrow....
Here we have a fairy tale of the day after tomorrow....
-
- Posts: 12097
- Joined: Thu Mar 09, 2006 12:57 am
- Location: Birmingham UK
- Full name: Graham Laight
Re: FIDE & Google Efficient Chess AI Challenge
To achieve the stated aims of the competition, how about...
1. Relax the source code size restriction (obviously there has to be an upper limit - so maybe 10 Mb)
2. Specify the source code language to be one that most languages can be transpiled to (I have JavaScript in mind because it is a universal scripting language)
3. Time limit will be 0.1 seconds per move (plus lag time)
4. The following model type disallowed: neural networks
5. The following programming techniques disallowed: recursion and looping
6. Given that the restrictions in (5) make legal move generation difficult, the API will have a singe parameter, which will be a position. The return value will be an evaluation of that position. The calling program will request an evaluation for each position that can be reached in one move from the current position. If more than one move-position has the same top evaluation, random selection will be used by the calling program to choose the move from the ones which have the top evaluation.
1. Relax the source code size restriction (obviously there has to be an upper limit - so maybe 10 Mb)
2. Specify the source code language to be one that most languages can be transpiled to (I have JavaScript in mind because it is a universal scripting language)
3. Time limit will be 0.1 seconds per move (plus lag time)
4. The following model type disallowed: neural networks
5. The following programming techniques disallowed: recursion and looping
6. Given that the restrictions in (5) make legal move generation difficult, the API will have a singe parameter, which will be a position. The return value will be an evaluation of that position. The calling program will request an evaluation for each position that can be reached in one move from the current position. If more than one move-position has the same top evaluation, random selection will be used by the calling program to choose the move from the ones which have the top evaluation.
Want to attract exceptional people? Be exceptional.
-
- Posts: 525
- Joined: Sat Mar 02, 2013 11:31 pm
Re: FIDE & Google Efficient Chess AI Challenge
Seems like a really boring task. 65000 characters.
You don't even have to program own move generator.
But use some boring python library.
Maybe I will submit some ChatGPT engine monstrosity.
Or can you submit a 64KiB C++ exe?
You don't even have to program own move generator.
But use some boring python library.
Maybe I will submit some ChatGPT engine monstrosity.
Or can you submit a 64KiB C++ exe?
-
- Posts: 10632
- Joined: Thu Mar 09, 2006 12:37 am
- Location: Tel-Aviv Israel
Re: FIDE & Google Efficient Chess AI Challenge
I wonder how much memory does Stockfish HCE use for the data structure.
If I understand correctly no more than 5Mbytes can be used including hash tables so the question is what is the size of hash tables that stockfish HCE can use.
-
- Posts: 10632
- Joined: Thu Mar 09, 2006 12:37 am
- Location: Tel-Aviv Israel
Re: FIDE & Google Efficient Chess AI Challenge
The question is if there is no advantage to have own move generator because it may be faster than the python library.
-
- Posts: 10632
- Joined: Thu Mar 09, 2006 12:37 am
- Location: Tel-Aviv Israel
Re: FIDE & Google Efficient Chess AI Challenge
I see no problem with the time control.abulmo2 wrote: ↑Sat Nov 23, 2024 1:38 amFor what I understand other languages are allowed but they need to be interfaced with a python file to communicate with the "kaggle environment". Many things are unclear to me. They use lawyers jargon everywhere and just give some (poorly written) code examples on how to proceed. I guess the usual UCI or xboard protocols are useless here.towforce wrote: ↑Thu Nov 21, 2024 5:25 pmAre you sure about this? I cannot find any rules that say the agent must be written in Python. All I have seen is the the standard Kaggle Docker container includes some Python libraries: these would not actually be usable: if you attempted to import them, you'd break the 5 Mb memory limit - link.
As I understand the 64kb limit is the size of the compressed source code (with the docker configuration files), not the executable. You have to use Docker to compile your code & execute it. Of course limiting the size of source code is an invitation to write obfuscated code without comments, without indentation, and with unreadable short names every where. That way I guess stokfish with hand crafted evaluation can easily fit the limitation.
The 5Mb limits does not count python size & "the kaggle environment". They are above them...
The rules are not very smart either. For example using a 10s + 0.1s simple delay per move is something unseen on computer chess.
Terrible !
people use 10+0.1 time control to test engines.
-
- Posts: 10632
- Joined: Thu Mar 09, 2006 12:37 am
- Location: Tel-Aviv Israel
Re: FIDE & Google Efficient Chess AI Challenge
I do not think that it is interesting to disallow recursion and looping.towforce wrote: ↑Sat Nov 23, 2024 12:02 pm To achieve the stated aims of the competition, how about...
1. Relax the source code size restriction (obviously there has to be an upper limit - so maybe 10 Mb)
2. Specify the source code language to be one that most languages can be transpiled to (I have JavaScript in mind because it is a universal scripting language)
3. Time limit will be 0.1 seconds per move (plus lag time)
4. The following model type disallowed: neural networks
5. The following programming techniques disallowed: recursion and looping
6. Given that the restrictions in (5) make legal move generation difficult, the API will have a singe parameter, which will be a position. The return value will be an evaluation of that position. The calling program will request an evaluation for each position that can be reached in one move from the current position. If more than one move-position has the same top evaluation, random selection will be used by the calling program to choose the move from the ones which have the top evaluation.
I believe that even engines from 1980 used recursion and looping.
It may be interesting to have a competition of what you can achieve with very old hardware but for this you do not need to disallow recursion and looping.
-
- Posts: 525
- Joined: Sat Mar 02, 2013 11:31 pm
Re: FIDE & Google Efficient Chess AI Challenge
There's no python Stockfish. AFAIK. So it's a daunting task to rewrite.Uri Blass wrote: ↑Sat Nov 23, 2024 12:42 pmI see no problem with the time control.abulmo2 wrote: ↑Sat Nov 23, 2024 1:38 amFor what I understand other languages are allowed but they need to be interfaced with a python file to communicate with the "kaggle environment". Many things are unclear to me. They use lawyers jargon everywhere and just give some (poorly written) code examples on how to proceed. I guess the usual UCI or xboard protocols are useless here.towforce wrote: ↑Thu Nov 21, 2024 5:25 pmAre you sure about this? I cannot find any rules that say the agent must be written in Python. All I have seen is the the standard Kaggle Docker container includes some Python libraries: these would not actually be usable: if you attempted to import them, you'd break the 5 Mb memory limit - link.
As I understand the 64kb limit is the size of the compressed source code (with the docker configuration files), not the executable. You have to use Docker to compile your code & execute it. Of course limiting the size of source code is an invitation to write obfuscated code without comments, without indentation, and with unreadable short names every where. That way I guess stokfish with hand crafted evaluation can easily fit the limitation.
The 5Mb limits does not count python size & "the kaggle environment". They are above them...
The rules are not very smart either. For example using a 10s + 0.1s simple delay per move is something unseen on computer chess.
Terrible !
people use 10+0.1 time control to test engines.
I always use increment whether I play myself or engine testing. Cyclical time controls are pita to implement. Let's say you have 50 minutes for the first 30 moves. Then 25 minutes for the next 20 moves. Then 30s increment starting from move 60. And 1 hour for the remainder of the game...
My engines play 1minute + 1 second increment per move. That's super simple.
-
- Posts: 28265
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
-
- Posts: 28265
- Joined: Fri Mar 10, 2006 10:06 am
- Location: Amsterdam
- Full name: H G Muller
Re: FIDE & Google Efficient Chess AI Challenge
5MB should be large enough for a hash table. Standard Stockfish might not function optimally when hash size becomes tight, but it should be easy enough to change its replacement algorithm by a decent one.