Chess Unwinnability Analyzer is an implementation of a decision procedure for checking whether there exists a sequence of legal moves that allows a certain player to checkmate their opponent in a given chess position.
For example, deciding the starting position requires one minute.
Now in the C++ implementation, I found the logic to reward the previous move (using “pastProgress” in the “find_mate” in dynamic.cpp), which the PDF, however, does not specify.
Using this logic, it takes below one second. Only using this logic, the performance of the full algorithm is in a practical range.
I have implemented the CHA spec in Java.
The full algorithm is correct, thus very slow.
For example, deciding the starting position requires one minute.
Now in the C++ implementation, I found the logic to reward the previous move (using “pastProgress” in the “find_mate” in dynamic.cpp), which the PDF, however, does not specify.
Using this logic, it takes below one second. Only using this logic, the performance of the full algorithm is in a practical range.
Can you please check? Thanks.