あしたのために・その1の1

…は、最低不可欠の 遠隔PCを使用し、盤面の評価値を計算する です。打つべし、打つべし。

やること

1.遠隔PC(ノード)の初期準備処理として評価関数のパラメターを読み込んでおくこと

2.盤面データを受け取る

3.評価値を計算する

4.結果を送り返す

投稿者: webMaster 投稿日時: 月, 05/28/2018 - 06:36 categories [ ]

コメントの表示オプション

お好みの表示方法を選択し、「設定の保存」をクリックすると、表示方法を変更することができます。

次なる試練は… P2

データを打ち間違えたので思わぬ回り道…

初手30手を…

ローカルで計算 約15ミリ秒
リモートノードで計算 約100ミリ秒

…と、通信に時間を取られた分遅いですね。まあこれは想定内です。打つべし。

次なる試練は…

1.任意の盤面 と 全合法手 を用意

2.盤面データと各合法手をセットにしてノードに転送… 50手あるなら50の処理リクエストとなります

3.ノードが全リクエストを並列処理

4.戻ってきた計算結果を処理

…と、ここまで出来れば残りは大したことなしですにゃん。打つべし。

盤面データの受け渡し P2

…は、意図通り動いているみたいです。

送信した盤面データは

lns1k1bnl/1r2g1g2/ppppppspp/6p2/7P1/2P6/PPBPPPP1P/2GS3R1/LN1K1GSNL b - 1

…を人間用に表示すると、

 9  8  7  6  5  4  3  2  1
ky ke gi .. oh .. ka ke ky a
.. hi .. .. ki .. ki .. .. b
fu fu fu fu fu fu gi fu fu c
.. .. .. .. .. .. fu .. .. d
.. .. .. .. .. .. .. FU .. e
.. .. FU .. .. .. .. .. .. f
FU FU KA FU FU FU FU .. FU g
.. .. KI GI .. .. .. HI .. h
KY KE .. OH .. KI GI KE KY i

{P1: TOTAL=0, FU=0, KY=0, KE=0, GI=0, KI=0, KA=0, HI=0}
{P2: TOTAL=0, FU=0, KY=0, KE=0, GI=0, KI=0, KA=0, HI=0}

…となり、計算できました。打つべし。

盤面データの受け渡し

盤面データをノードに受け渡すのですが、その際に考慮すべきは…

データの長さは出来るだけ短く - 通信に時間を掛け過ぎてはいけません

…なので内部使用のデータ構造をそのまま送る訳にはいきませぬ。

http://www.geocities.jp/shogidokoro/usi.html

ここは将棋所で使用されている SFEN(Shogi Forsyth-Edwards Notation)表記法 を使用します。

平手初期盤面は

lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL w - 1

…と、比較的コンパクトに収まります。打つべし。

ノードの初期準備処理 と 評価値計算 P2

動いた…といってもツギハギだらけなので整理しないとね。

あとベンチマーク取っておかないと…

ノードの初期準備処理 と 評価値計算

...は、成功しましたです。

ノードに十分なメモリーを割り当ていなかったので、しばらく混乱しましたが修正後は動いています。ウキウキ。打つべし。

コメントの表示オプション

お好みの表示方法を選択し、「設定の保存」をクリックすると、表示方法を変更することができます。