Hello,
I'm trying to generate large amounts of random quiesce chess positions (for tuning).
For that I created a python-script: https://vanheusden.com/permshare/rq.py
Unfortunately it is very slow (also compiled).
Not the part where it searches for the best move, but the generation of the board.
Any ideas how to improve this? Or are there existing programs which do so that my google search did not show up?
generating EPD strings with quiesce positions
Moderator: Ras
-
- Posts: 558
- Joined: Tue Jul 03, 2018 10:19 am
- Full name: Folkert van Heusden
-
- Posts: 1062
- Joined: Tue Apr 28, 2020 10:03 pm
- Full name: Daniel Infuehr
Re: generating EPD strings with quiesce positions
I recommend you just use this:
https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/
together with one of these:
https://database.lichess.org/
Then pipe the fens into a C++ compiled piece of software the reads stdin and outputs those position that pass your predicate.
You can literally have one unix pipe from the tar.bz2 -> fen stream -> your software -> file
https://www.cs.kent.ac.uk/people/staff/djb/pgn-extract/
together with one of these:
https://database.lichess.org/
Then pipe the fens into a C++ compiled piece of software the reads stdin and outputs those position that pass your predicate.
You can literally have one unix pipe from the tar.bz2 -> fen stream -> your software -> file
Worlds-fastest-Bitboard-Chess-Movegenerator
Daniel Inführ - Software Developer
Daniel Inführ - Software Developer
-
- Posts: 60
- Joined: Sat Dec 11, 2021 5:03 am
- Full name: expositor
Re: generating EPD strings with quiesce positions
To generate quiet positions, I run game positions through a modified version of Expositor's quiescing search which prints the leaves – positions that she considers to be tactically quiet enough to stop at. This happens here.
Alternatively, if I don't want to generate new positions but simply filter existing features, I compare the static evaluation of each position with the score from quiescing search, and reject the position if the two differ by more than some amount. This happens here.
Alternatively, if I don't want to generate new positions but simply filter existing features, I compare the static evaluation of each position with the score from quiescing search, and reject the position if the two differ by more than some amount. This happens here.
-
- Posts: 4398
- Joined: Fri Mar 10, 2006 5:23 am
- Location: http://www.arasanchess.org
Re: generating EPD strings with quiesce positions
If this is for Texel (i.e. logistic regression) tuning, you can just use non-quiescent positions. What I do in my tuner is, every 20 iterations or so, search each position and extract the position at the end of the PV. Then store those derived quiet positions internally and use for the next 20 iterations. (This idea was used in the MMTO algorithm https://www.semanticscholar.org/paper/L ... 2d77f1dc19 for computer go). It is not too inefficient, but I have a big multi-core machine to run it on.