fairy-stockfish / Fairy-Stockfish

chess variant engine supporting Xiangqi, Shogi, Janggi, Makruk, S-Chess, Crazyhouse, Bughouse, and many more
https://fairy-stockfish.github.io/
GNU General Public License v3.0
591 stars 186 forks source link

Xiangqi endgame play weaknesses #411

Open shuangqiao999 opened 2 years ago

shuangqiao999 commented 2 years ago

It would be nice if it could be improved to load the endgame library file. Thank you for letting everyone use the engine. Thank you

ianfab commented 2 years ago

Could you please provide example positions/games and illustrate the misevaluations that occur there?

shuangqiao999 commented 2 years ago

Hello! The xiangqi engine has repeatedly captured the situation, which is in violation of the xiangqi rules will be judged negative interface

ianfab commented 2 years ago

Are you talking about chasing rules, like #55? Either way, examples would help to understand what you mean.

cloudfish commented 2 years ago

Could you please provide example positions/games and illustrate the misevaluations that occur there?

The best way to gather examples would be testing Fairy-SF against stronger engines. I plan to post a tutorial about a stronger Chinese engine on discussions or discord so that anyone interested may find some other examples.

A readily available example would be the game in #405. The endgame of this game is 车马兵有仕相必胜车士象全(KRHPA/E book win KRAAEE) in Xiangqi tutorials (see a similar example in game 261 here).

FEN after turn 61 (last capture) is 4kae2/4a4/4e4/9/PR7/9/3H4P/9/9/2E1K1r2 w 0 1 . Fairy-SF NNUE evaluates it to +0.42 at depth 50. TianTian Xiangqi evaluates it to +7.97 at depth 25.

FEN after turn 90 is 2e1ka3/4a4/4e4/7H1/P2R3P1/2E6/5r3/9/3K5/9 w 0 1 (ply information removed to eliminate influence of 50-move rule). Fairy-SF NNUE evaluates it to +2.81 at depth 36. TianTian Xiangqi evaluates it to +11.41 at depth 23.

Of course a dedicated Xiangqi engine may use hard-coded endgame knowledge here, and I'm not familiar with concepts of NNUE, but could this indicate that the training of NNUE is affected by rule issues like #405 or #55?

shuangqiao999 commented 2 years ago

Now the best Chinese chess engine is the whirlwind engine (www.ccyclone.com) using neural network algorithm, very strong is the commercial engine unfortunately too high fees

shuangqiao999 commented 2 years ago

Hello, can you add a configuration file for the engine? Because the existing Chinese chess interface does not have the option of whether to enable nnue or not, if you do not enable nnue and just use the classical algorithm, you cannot use the maximum power of the engine. The existing Chinese chess world also has problems with setting the hash value to 1024MB, which actually only takes up over 500 MB of memory I really hope you can publish an engine profile and thank you so much for taking the time to read my message.

ianfab commented 2 years ago

NNUE usage is enabled by default, so there should not be a problem if the GUI does not allow to change it. I do not fully understand the issue with the hash size, but if there is a bug or limitation in the GUI that makes it impossible to set larger hash sizes, it should be fixed there and not in the engine. If the issue is related to https://github.com/ianfab/Fairy-Stockfish/issues/412, then it should be solved with the next release.

shuangqiao999 commented 2 years ago

Hello there is no training xiangqi nnue file tool?

ianfab commented 2 years ago

The NNUE training code is private.

shuangqiao999 commented 2 years ago

Thank you I understand I thought training tools are also public please understand my ignorance 😀

15890944033 commented 2 years ago

Hello

15890944033 commented 2 years ago

I want to cooperate with you to develop chess

15890944033 commented 2 years ago

I have excellent Chinese chess source code and won the fourth place in the Chinese chess competition

15890944033 commented 2 years ago

My QQ number is 2237556025

15890944033 commented 2 years ago

I hope you can contact me

ianfab commented 2 years ago

@15890944033 Hi. I do not have QQ, but feel free to open a discussion or join the Fairy-Stockfish discord to discuss more.

hotfics commented 2 years ago

@ianfab for example , FEN : 2bakab2/1c2n4/4r4/C6Np/9/P1P5P/6P2/4B4/4A3n/1c2KAB2 w - - 0 2 white can win the game,but fairy don't play well in this position, the key is to lock the black horse in the south-east

hotfics commented 2 years ago

@ianfab 2cak1b2/4ar3/1R7/9/9/9/9/9/4A4/2BAK4 w - - 0 29

white rook permanent capture black's cannon ,which is ok in chess,but not allowed in xiangqi