-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy path更新履歴.txt
531 lines (404 loc) · 14.9 KB
/
更新履歴.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
4.1~4.61 (2017/11/18)(更新履歴を書くのをサボっていた)
4.1から4.61までの主な変更点
elmo式の導入
byteboardのコードを追加
MultiThinkクラスを廃止して、Threadクラスを派生させるように変更
onlineコマンドの実装
スレッド毎に異なる評価関数を読み込んだり置換表を用意できるようにした
stockfishの探索部を一応まねる(全然強くなっていない)
やねうら王形式のbookを読み込めるようにした
recaptureな指し手で敵陣での不成が生成されていなかった問題の修正
ソースの削減(byteboardで追加した分を除けば約5000行削減)
USIオプションの削減
TimeManagerの単純化
USI対応のGUIから評価関数バイナリをコンボボックスで選択できるようにした
bench 52475417
4.1 (2017/5/07)
選手権2日目夜の変更(4.0)を元に戻す
4.0 (2017/5/04)
qsearch内での進行度の計算をしない
思いつく限りの王手延長(帰ってきてから見たらバグっていることに気づいたが、かまわず公開)
使わない関数を無効化できる機能を追加
(選手権が終わってから公開するための変更)
評価関数を縦型に変換し、読み太自身も縦型評価関数を読み込むように変更
vs3.9
3s
205-19-186/391 : 52.3, +16.1, 47.3 - 57.5, 15.6
(2017/05/07にもう一度計測)
78-8-93/171 : 45.8, -29.2, 38.0 - 53.4, 88.9
→強くなったように見えたのは統計誤差だったっぽい。
vsukamuse
3s
596-21-461/1057: 56.3, +43.7, 53.3 - 59.4, 0.0
→ukamuse相手でも強くなってなかった模様
bench 15721018
3.9 (2017/5/02)
pruning at shallow depthで、captureの時の枝刈を減らす
vsukamuse
3s
401-17-237/638 : 62.5, +88.9, 59.0 - 66.6, 0.0
(2017/05/07にもう一度計測)
151-5-103/254 : 59.3, +65.1, 53.1 - 65.5, 0.1
→結局+R70くらいか。
bench 9066264
3.8 (2017/5/01)
DEPTH_NONEを修正
searchでtt_depth >= DEPTH_ZEROの時にtt_scoreを使う
vsukamuse
3s
286-10-215/501 : 56.9, +48.6, 52.6 - 61.5, 0.1
3.7 (2017/4/29)
pruning at shallow depthとLMRをstockfish準拠にする
vs3.6
3s
148-6-110/258 : 57.2, +50.4, 51.1 - 63.5, 0.8
vsukamuse
3s
424-13-357/781 : 54.2, +29.4, 50.7 - 57.8, 0.7
vssilent_majority1.25
3s
135-2-106/241 : 56.0, +41.7, 49.5 - 62.4, 2.7
bench 11010300
3.6
LVAの玉の値を変更
Evasionの時、LVAを引く
vsukamuse
3s
364-16-365/729 : 49.9, -0.5, 46.2 - 53.6, 53.0
vs3.5
3s
257-16-218/475 : 54.0, +27.7, 49.5 - 58.7, 3.3
bench 33885937
3.5 (2017/4/26)
tt_scoreはtt_depth > DEPTH_ZEROの時だけ使う
vs3.4
1s
588-33-495/1083: 54.2, +29.0, 51.3 - 57.3, 0.2
vsukamuse
3s
391-16-403/794 : 49.3, -5.1, 45.7 - 52.8, 67.8
→浮かむ瀬に勝ち越せていない。ショック。
bench 33161993
3.4 (2017/4/21)
雑巾絞り前(4)
雑巾絞り4回目途中(10)
雑巾絞り4回目途中(1110)
10vs4
3s
675-67-536/1211: 55.4, +37.9, 52.9 - 58.6, 0.0
1110vs10
3s
461-36-382/843 : 54.5, +31.3, 51.3 - 58.1, 0.3
1110vs4
290-27-265/555 : 52.1, +14.9, 48.0 - 56.5, 13.5
→1110のほうが10より強いが、4と比べると10のほうが強い?
1110vsgikou
3s
429-7-196/625 : 68.4, +134.4, 64.8 - 72.3, 0.0
10vsgikou
3s
301-5-139/440 : 68.2, +132.6, 63.8 - 72.7, 0.0
→技巧との対局だとどっちも変わらないくらいの強さ。
1110vsShinYane20161010
3s
233-7-200/433 : 53.8, +26.1, 49.0 - 58.6, 5.1
→やっと真やね関数に勝てるようになった。
qsearchでtt_scoreを使わない
vs3.3
3s
316-23-246/562 : 56.0, +41.8, 52.0 - 60.4, 0.1
bench 40938376
3.3 (2017/4/16)
extention nodeで調べるdepthをdepth / 2に変更
seeGeでpin判定のバグを修正
vs3.2
1s
467-25-427/894 : 52.2, +15.1, 48.9 - 55.6, 8.5
bench 35740269
3.2 (2017/4/8)
see >= 0ではない王手も0.5手延長(技巧で行われているもの)
vs3.1
3s
246-22-197/443 : 55.3, +36.7, 50.8 - 60.2, 0.9
bench 14985776
3.1 (2017/4/4)
historyを簡略化
vs3.0
3s
554-41-483/1037: 53.3, +22.9, 50.3 - 56.5, 1.4
vs2.7
5s
354-29-310/664 : 53.2, +22.1, 49.4 - 57.2, 4.0
bench 33304963
3.0 (2017/4/4)
skip_early_pruningの時はhistoryのupdateは行わない
vs2.9
0.1s
395-12-388/783 : 50.4, +3.1, 46.9 - 54.0, 38.7
1s
288-15-273/561 : 51.3, +9.0, 47.1 - 55.5, 25.0
2.9 (2017/4/2)
iidをstocksichにあわせる
vs2.8
0.1s
563-20-514/1077: 52.2, +15.5, 49.2 - 55.3, 6.8
1s
287-20-268/555 : 51.7, +11.5, 47.5 - 55.9, 19.8
probcutをstockfishに合わせる
1s
212-9-194/406 : 52.2, +15.1, 47.2 - 57.2, 17.3
2.8 (2017/3/30)
scoreQuietsでseeをやめる
vs2.7
0.1s
427-11-376/803 : 53.1, +21.8, 49.7 - 56.7, 3.3
3s
247-11-238/485 : 50.9, +6.3, 46.4 - 55.5, 32.5
bench 33353918
2.7 (2017/3/30)
進行度学習しなおした
0.1s
5046-67-4949/9995: 50.5, +3.3, 49.5 - 51.5, 16.6
2.6 (2017/3/27)
historyの変更(テーブル一つだけ節約)
no functional change
2.5 (2017/3/21)
vs2.3
5s
629-86-702/1331: 47.4, -17.9, 44.5 - 50.0, 97.7
→2.4は改悪だった……というわけで2.3に戻す
雑巾絞り3回目
教師データはdepth7でfutility marginを大きめに設定
vsSDT4
1s
683-31-404/1087: 62.5, +88.6, 59.9 - 65.7, 0.0
bench 24391695
2.41 (2017/3/13)
skipplyのリストラ
ためしに2.03と戦わせてみる
vs2.03
0.1s
8458-218-4612/13070: 64.5, +103.5, 63.9 - 65.5, 0.0
10s
119-13-123/242 : 49.2, -5.5, 42.7 - 55.7, 62.6
0.1sと10sの違い……
2.4 (2017/3/10)
優等局面判定で奇数手前の局面も判定対象にした
vs2.3
1s
3032-211-2905/5937: 51.0, +7.2, 49.8 - 52.3, 5.0
bench 9096877
2.3 (2017/3/6)
優等局面判定の追加
10s
vs2.21
370-27-336/706 : 52.3, +16.1, 48.6 - 56.1, 9.4
bench 9096880
2.21 (2017/2/27)
skipPly
機能的な変更はありません。
2.2 (2017/2/25)
futilityMoveCountを変更
FutilityMoveCounts[0][d] = int(7.4 + 0.773 * pow(d + 0.00, 2.5));
FutilityMoveCounts[1][d] = int(7.9 + 1.045 * pow(d + 0.49, 2.5));
10s
vs2.1
200-28-173/373 : 53.4, +23.4, 48.4 - 58.8, 7.4
bench 9096975
2.1 (2017/2/1)
historyの削除
FromToStats→HistoryへのRename
vs2.03
1083-81-1003/2086: 51.8, +12.8, 49.7 - 54.1, 4.0
bench 26638508
2.03 (2016/12/25)
pseudoLegalで網羅できていないパターンがまだあったので修正。
TTはアクセス競合を考慮しないことにした。
x86用の実行ファイルが、評価関数の変換中にbad allocを起こさないようにした。
定跡を追加。
機能的な変更はありません。
2.02 (2016/12/22)
refactoring
置換表のread, writeをatomicに行うように変更。
64core以上使いきれるようにするstockfishのcommitを取り入れた。
pv用のMove配列をstackで確保しないようにした。(stack overflowを起こすことがあったため)
avx2, sse42, x86_nosseの実行ファイルを追加。ただし、x86は起動時に評価関数を読み込むため、とても時間がかかる。
定跡を追加。
機能的な変更はありません。バグ報告がないようであればReleaseで公開したいと思います。
2.01 (2016/12/15)
使っていないコードの削除。
x86用のコードのバグ修正と、いくつかの関数の引数を参照渡しに変更。
avx2, sse42用の実行ファイルを用意。x86用は、実際にx86環境で実験すると動作がおかしかったので保留。
定跡を追加。
機能的な変更はありません。
2.0 (2016/12/08)
MovePickerをstockfishにあわせた。
FutilityMoveCountsをstockfishの値に戻した。
定跡を追加。
bench 10393453
vsgikou
3s
583-12-395/978 : 59.5, +66.8, 56.5 - 62.7, 0.0
→FutilityMoveCountsを増やすと1手3秒くらいの短い対戦でのRは上がるが、長い時間だとそうでもないことが発覚。
ためしにFutilityMarginをstockfishの値に戻すと
vs1.9
1s
162-13-234/396 : 41.2, -61.8, 36.0 - 45.9, 100.0
3s
275-28-301/576 : 47.8, -15.0, 43.6 - 51.9, 87.0
10s
138-25-120/258 : 53.2, +22.1, 47.2 - 59.7, 11.8
vs1.7
10s
188-16-168/356 : 52.7, +18.7, 47.5 - 58.1, 13.3
短い持ち時間で発揮していた強さが長い時間だとそうでもなくなっている。
1.9 (2016/11/28)
nullmove後のsearchの符号を間違えていたので修正。
ONE_PLY周りの修正。ONE_PLYを1以外にしても修正前とbenchが変わらないことを確認。
isNone、isNullの削除。これらを使わない表記と混ざってややこしいので。
TTEntryのdepth8, mate1plyの時に128を書き込んでいるのでint8_maxを超えていた。
ONE_PLYが1以外のときも考えて、depth8をdepth16に変更。
vsgikou
3s
570-16-391/961 : 59.2, +64.4, 56.1 - 62.4, 0.0
vs1.83
3s
670-93-591/1261: 52.9, +20.3, 50.3 - 55.9, 1.3
bench 13397442
1.83 (2016/11/25)
勝ちを読み切った時、ponder中でもbestmoveを返してしまう問題を修正。
定跡を少し修正。
GUIからstopが送られたときにpvを返せていなかったので返すように修正。
1.82 (2016/11/23)
UseBookオプションを追加
詰みを読みきっていても、検討モードの場合は探索を続けるようにした。
1.81 (2016/11/22)
合法手が1手しかなくても検討モードなら探索するように変更
"Ponder"→"USI_Ponder"
1.8 (2016/11/20)
FutilityMoveCountsの調整 + futility marginの計算式の変更
for (int d = 0; d < 16; ++d)
{
FutilityMoveCounts[0][d] = int(17.4 + 0.773 * pow(d + 0.00, 1.8));
FutilityMoveCounts[1][d] = int(17.9 + 1.045 * pow(d + 0.49, 1.8));
}
→さらに増やした。つまりより多くの手を試すようにした。
futility marginの計算式の変更
70 + 100 * progress → 50 + 150 * progress
vs1.7
3s
1071-122-1004/2075: 51.5, +10.6, 49.4 - 53.8, 7.1
vsgikou
3s
650-52-473/1123: 57.5, +52.7, 54.9 - 60.8, 0.0
bench 20973593
また、現在の評価関数の1手読みの評価値と2手読みの評価値の誤差の平均をグラフ化する機能を追加した。
最適なfutility marginを調べるのに役立つはず。
今は、進行度と評価の誤差は正の相関関係があることはわかっただけ。(手数が進むほど評価の誤差が大きくなっていく)
ちょっとだけ定跡も入れた。
MultiPVの追加。
1.7 (2016/11/14)
FutilityMoveCountsを増やす
for (int d = 0; d < 16; ++d)
{
FutilityMoveCounts[0][d] = int(12.4 + 0.773 * pow(d + 0.00, 1.8));
FutilityMoveCounts[1][d] = int(12.9 + 1.045 * pow(d + 0.49, 1.8));
}
vs1.1
0.5s
295-12-161/456 : 64.3, +102.3, 60.1 - 69.1, 0.0
vs1.2
0.5s
2908-108-1643/4551: 63.6, +96.8, 62.5 - 65.3, 0.0
vs1.3
0.5s
1314-25-682/1996: 65.6, +112.4, 63.7 - 67.9, 0.0
vs1.4
0.5s
486-25-307/793 : 60.9, +77.3, 57.8 - 64.7, 0.0
vs1.5
0.5s
282-25-167/449 : 62.1, +86.0, 58.2 - 67.3, 0.0
vs1.6
3s
1570-122-1157/2727: 57.2, +50.7, 56.0 - 59.2, 0.0
vsgikou
3s
673-15-510/1183: 56.8, +47.6, 54.0 - 59.7, 0.0
vsFutilityMarginを70にしたもの
3s
381-25-192/573 : 65.8, +113.7, 62.5 - 70.4, 0.0
→進行度を用いたfutility marginは強くなっていたらしきことがわかってよかった。
bench 15999673
+R50.7はちょっと上がりすぎな気がする。追加検証したい。
→強くなっていた。技巧には+R47.6程度なので少し大きく出ているようだが。
FutilityMoveCountsを無効にしても400局くらいの自己対戦を見ると+R10ほど強くなっていたので
ここはstockfishそのままだとまずい可能性がある。
1.6 (2016/11/12)
updateWeightsのバグ修正&futilityMarginで進行度を考慮
(70 + 100 * progress) * d;
vs1.5
3s
673-49-591/1264: 53.1, +21.7, 50.4 - 56.0, 1.1
0.5s
442-29-378/820 : 53.8, +26.2, 50.4 - 57.4, 1.2
bench 9020986
ただ、これで強くなった理由が進行度かどうかがわからない。
もともとfutilityはかなり大きめに設定してあったので新しいfutilityはそれに比べると小さく、
短い時間の自己対戦で勝率が高く出ている可能性もある。
でも、3秒で勝ち越したし信用しよう。
現在のprogress.binの教師との誤差のrmseは11%程度。
1.52 (2016/11/07)
勾配の計算式の変更
勾配を出現回数で割る必要はなかった。
この条件で学習中。
1.51 (2016/11/07)
進行度計算&学習部を追加
進行度は現在学習中……
1.5 (2016/11/05)
futilityMarginを引かない + seeで1手目だけ成りを考慮
vs1.0
1s
1495-108-1390/2885: 51.8, +12.2, 50.0 - 53.7, 2.5
vs1.3
1s
730-48-733/1463: 49.9, -0.7, 47.3 - 52.5, 53.1
vs1.4
1s
1309-94-1307/2616: 50.0, +0.3, 48.1 - 52.0, 48.4
bench 29835122
微妙だけど採用してみる。
1.4 (2016/11/02)
seeGe
seeのnullwindow探索バージョン + seeで成りを考慮しないように変更
nps 771686 → 776478(+0.6%)
vs1.3
1s
1144-71-1127/2271: 50.4, +2.5, 48.6 - 52.1, 36.1
bench 11766674
弱くはなっていないようなので採用する。
1.3 (2016/11/02)
cmh2を廃止
vs1.2
0.1s
8931-310-9714/18645: 47.9, -14.4, 47.2 - 48.6, 100.0
3s
1029-68-971/2000: 51.4, +9.7, 49.2 - 53.7, 9.7
bench 4585856
0.1sでは弱くなっているが、3sだと強くなっていたので採用。
0.1sと3sの自己対戦の結果が異なることが増えてきた。
1.2 (2016/11/01)
History Stat Comparison
vs1.1
0.1s
2610-78-2738/5348: 48.8, -8.2, 47.7 - 50.0, 96.0
3s
1445-102-1341/2786: 51.8, +12.5, 50.3 - 53.5, 2.4
bench 8150119
1.1 (2016/10/28)
縦型Square用の評価関数バイナリに対応するための座標変換をevaluate()時ではなく読み込み時に行うように変更。機能的な変更はなし。
0.1s
2734-71-2464/5198: 52.6, +17.8, 51.4 - 53.8, 0.0
1.0
電王トーナメントバージョン(SDT4)と同じ
bench 12218296