"aborting engine think"

Discussions about Winboard/Xboard. News about engines or programs to use with these GUIs (e.g. tournament managers or adapters) belong in this sub forum.

Moderator: Andres Valverde

Re: "aborting engine think"

Postby janggi-korea » 14 Jan 2021, 10:42

Thank you very much for your kind answer.
I now understand everything correctly,
Learned how to use only one side book in a tournament.
And I made some mistakes in my stereotypes.
Because I thought the symmetrical position was always the same.
However, when I made a book, the left and right positions were not always the same.
In the end, when mirroring is applied, it is applied only when there is no movement in symmetry or when the movement is the same.

Thank you again.^_^

ps. Oh, and the janggi engine developer actually applies the 50 movement rule to determine the engine test win or loss.
However, for the average user, the 50 move rule in chess is not very meaningful.
Posts: 114
Joined: 18 Aug 2020, 12:12

Re: "aborting engine think"

Postby H.G.Muller » 14 Jan 2021, 11:08

Well, in engine matches you have to put some limit, otherwise a single game could go on forever. The engine is already not very intelligent, and the game-playing software knows even less, so it cannot conclude by reasoning that it is impossible to force a win in a given position. It can just try to do its best to win, and when it nevertheless does not make any progress for a long time, accept that it must be a draw. Whether 'a long time' here should be 50 moves or some other number is of course debatable.

Simple cases of 'dead draws' can of course be recognized, and adjudicated draw on that bases. WinBoard has an option for that, where it rules end-games like King + Rook vs King + Rook as a draw. But what is a 'trivial draw' is very much variant dependent. And it would of course always be preferable when the engine would know what is a trivial draw; then it can adapt its strategy to that, and avoid converting a winning advantage to a seemingly larger but in practice drawing advantage. (The infamous case in Chess for this is KNPPKN, where white would trade the two Pawns for a Knight when it doesn't know that KNK is a dead draw, because normally a Knight is worth more than 2 Pawns.)

And no matter how much knowledge you put in the engine, there will always be complex positions (i.e. with many pieces) where no progress is possible, which are not covered by the rules. The only options then are to play on forever, or declare draw after a number of moves. (In some of the Janggi flavors of course 'draw' would mean applying the counting rule.)
User avatar
Posts: 3340
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: "aborting engine think"

Postby janggi-korea » 15 Jan 2021, 10:03

Currently I am doing game judgments with centipawns and moves control.

janggi also has a combination of pieces for which draws are determined. (Data exist)
Could you please add some code to "adjudicate trivial draws" if I give you these data?
But janggi has an important point here. Even combinations of pieces can be drawn or beat depending on the position of the pieces.
So, when there are simply pieces left, the judgment immediately seems to have a problem.
Of course, if it is a combination of king and rock, there is no problem to judge immediately. The same goes for janggi. Combinations of King and Soldier can never be beat.
Another issue arises here.
What if it is a point system? janggi has a rule that judges by score when there are draws pieces .
So these parts also require additional code.
Does Winboard recognize the scores of pieces?
Personally, I think it would be nice to express the score on the Winboard.
Humans always care about the pieces score while playing janggi.

PS. Anyway, some seem to overlap with the janggi-EGTB implementation.

i will find the open source janggi code you can refer to.
Of course, it is difficult to find open source in most Korea.
When Korean developers access janggi, they mostly edit open xiangqi code.
Posts: 114
Joined: 18 Aug 2020, 12:12

Re: "aborting engine think"

Postby H.G.Muller » 15 Jan 2021, 16:28

If it depends on the details of the position, it might not be trivial. In Chess WinBoard adjudicates the trivial draws only 3 moves after the latest capture, to avoid adjudicating while tactics is still in progress. E.g. K+R vs K+R is a trivial draw, but there do exist positions where one Rook can check, and the other is far behind the King on the same rank, and there a player still gets time to convert to K+R vs K. For K+Q vs K+Q this is already a problem; WinBoard considers it a trivial draw, but in reality there are some rare positions where one player can win, and it can take more than 10 moves to do gain the opponent Queen. So it is better to adjudicate such games based on EGT.

Having WinBoard display the points would be a form of computer help. Players are supposed to keep track of such things by themselves. Of course using an engine for analysis is intended to be computer help. So it would be more logical if the engine showed the point count. Then it can also make that dependent on whether you play a sub-variant where the point count matters.

A more serious problem is that there are two kinds of wins in Janggi. So new notation would have to be invented for results in PGN. I suppose we could do 2-0 for a checkmate, and 1-0 for a victory on points. Or we could just leave it to the 'result message' to make the distinction between a winning draw and a losing draw.
User avatar
Posts: 3340
Joined: 16 Nov 2005, 12:02
Location: Diemen, NL

Re: "aborting engine think"

Postby janggi-korea » 15 Jan 2021, 20:05

That's right, I thought the same thing as you.. Judging after at least 3 moves is objectivity.
Personally, I don't like the points rule. In all board games, the ultimate goal of catching the king is important. And that's how we win. Stockfish only thinks about the final checkmate. If the engine follows the scoring rules, the intensity of play will be very low. The rules of scoring are only intended to produce results in a Human-to-Human battle. If the stockfish gets smarter, it will be a hybrid that can catch the king with scores. But I think its implementation method will be very complicated.
Anyway, I'm talking about the Korean implementation of janggi coordinates and the compatibility of Korean janggi files (*.gib) to make Winboard more compatible with janggi. gib files are also in text format. The only difference from pgn is that it does not use FEN, and some are displayed in Korean or Chinese characters (e.g. the name of the piece). The way to distinguish between wins and losses in the file is simply marked as score win/time win/checkmate win.
1 move= only my 1 move (chess = me and you move)
The names of the pieces are can displayed in Korean depending on the printing method.

[대회명 "온라인 카장"] => Means Event
[회전 "미상"] Means Round
[대국일자 "2020.01~2020.06"] Means Date
[대국장소 "장기 for Kakao"] Means Site
[초대국자 "수희짱쨩 9단"] Means White
[한대국자 "정마노 9단"] Black White
[초차림 "상마상마"] Means White FEN
[한차림 "마상상마"] Means Black FEN
[제한시간 "5분"] Means TimeControl
[총수 "106"] Means move count
[대국결과 "한 시간승"] Means Result

1. 79卒78 2. 12馬33 3. 08馬87 4. 32包35 5. 88包85 6. 18馬37
7. 02象74 8. 45兵44 9. 71卒72 10. 33馬45 11. 09車69 12. 49兵59
13. 69車68 14. 19車49 15. 75卒76 16. 47兵48 17. 68車62 18. 11車31
19. 62車32 20. 35包55 21. 32車22장군 22. 14士24 23. 85包89 24. 59兵58
25. 07象79 26. 55包59 27. 03馬84 28. 31車33 29. 82包85장군 30. 38包35
31. 04士94 32. 44兵54 33. 89包86 34. 54兵64 35. 86包04 36. 43兵53
37. 95將05 38. 64兵65 39. 94士95 40. 48兵47 41. 06士96 42. 59包54
43. 04包09 44. 49車48 45. 09包03 46. 65兵64 47. 72卒62 48. 54包14
49. 76卒75 50. 45馬66 51. 77卒76 52. 66馬78卒 53. 73卒63 54. 64兵74象
55. 75卒74兵 56. 14包74卒 57. 03包53兵 58. 13象45 59. 53包83 60. 33車31
61. 01車71 62. 45象22車 63. 71車74包 64. 31車34 65. 74車75 66. 17象45
67. 75車71 68. 34車44 69. 83包23장군 70. 25將15 71. 23包03 72. 78馬57
73. 76卒75 74. 58兵68 75. 87馬66 76. 47兵46 77. 03包06 78. 68兵67
79. 06包04 80. 44車42 81. 85包82 82. 42車43 83. 66馬54 84. 35包55
85. 75卒65 86. 57馬65卒 87. 84馬65馬 88. 67兵66 89. 05將06 90. 66兵65馬
91. 71車77 92. 37馬58 93. 77車73 94. 43車23 95. 79象07 96. 22象54馬
97. 73車74 98. 45象22 99. 63卒64 100. 65兵64卒 101. 74車64兵 102. 58馬77
103. 07象75 104. 77馬56 105. 82包22象 106. 54象22包

Lastly, I want to talk about game time control. janggi usually has a full match time. And there is an extra countdown time. The additional countdown time is 3 times 30 seconds.
For example, if you have a 15 minute game and 3 countdowns, your opponent and I each have 5 minutes of free time, and when 5 minutes are exhausted, you have to move the piece once every 30 seconds. There are 3 chances.

To summarize, it is 5 minutes of free time in incremental time and a fixed time fer move per unit.
chess is the increment is added to the time after 5 minutes of use, but the difference is that janggi is immediately converted to "fixed time per move" (30 seconds 1 move x 3).

Chess is controlled by the number of moves, but janggi is controlled by the total playing time.
And when the total playing time is exhausted, the score determines the win or loss.
The 30 second countdown time does not exceed the total game time.

PS. Summary
1. Korean janggi coordinate display (E.g -fSAN)
2. Compatible with Korean text janggi file (gib file)
3. Trivial judgment after 3 move (data)
- A combination of clearly and concisely applicable pieces that can cover various janggi rules.
4. time contol (initial number of minutes + maxium seconds per move)

(And if you tell me how we can donate, I'll post it on my cafe.)
Posts: 114
Joined: 18 Aug 2020, 12:12


Return to Winboard and related Topics

Who is online

Users browsing this forum: No registered users and 15 guests