Constructor
new MCTS(nn, C, evaluatePlugin)
コンストラクタ
Parameters:
Name | Type | Default | Description |
---|---|---|---|
nn |
NeuralNetwork | ||
C |
BoardConstants | ||
evaluatePlugin |
function | null |
Classes
Methods
cleanupNodes()
nodesの中の不要なノードを未使用状態に戻します。
clear()
内部状態をクリアします。
同一時間設定で初手から対局できるようになります。
createNode(b, prob) → {Integer}
局面bのMCTSの探索ノードを生成してノードIDを返します。
Parameters:
Name | Type | Description |
---|---|---|
b |
Board | |
prob |
Float32Array |
Returns:
ノードID
- Type
- Integer
(async) evaluate(b, random) → {Array.<Float32Array>}
ニューラルネットワークで局面を評価します。
Parameters:
Name | Type | Default | Description |
---|---|---|---|
b |
Board | ||
random |
bool | true |
Returns:
- Type
- Array.<Float32Array>
getNodeIdInNodes(b)
this.nodesに同じ局面があればそのインデックスを返します。
なければnullを返します。
Parameters:
Name | Type | Description |
---|---|---|
b |
Board |
getSearchTime() → {number}
次の着手の考慮時間を算出します。
Returns:
使用する時間(秒)
- Type
- number
hasEdgeNode(edgeIndex, nodeId, moveNumber) → {bool}
nodeIdのノードのedgeIndexのエッジに対応するノードが既に存在するか返します。
Parameters:
Name | Type | Description |
---|---|---|
edgeIndex |
Integer | |
nodeId |
Integer | |
moveNumber |
Integer |
Returns:
- Type
- bool
isConsistentNode(nodeId, b)
Parameters:
Name | Type | Description |
---|---|---|
nodeId |
Integer | |
b |
Board |
printInfo(nodeId, c)
探索結果の詳細を表示します。
Parameters:
Name | Type | Description |
---|---|---|
nodeId |
Integer | |
c |
BoardConstants |
(async) search(b, time, ponder, clean) → {Array.<Object>}
MCTS探索メソッドです。
局面bをルートノード設定して、終了条件を設定し、time時間探索し、結果をログ出力してルートノードを返します。
Parameters:
Name | Type | Description |
---|---|---|
b |
Board | |
time |
number | 探索時間を秒単位で指定します |
ponder |
bool | ttrueのときstopメソッドが呼ばれるまで探索を継続します |
clean |
bool | 形勢が変わらない限りパス以外の着手を選びます |
Returns:
[Node, Integer] ルートノードと評価数
- Type
- Array.<Object>
setLeftTime(leftTime)
残り時間を設定します。
Parameters:
Name | Type | Description |
---|---|---|
leftTime |
number | 秒 |
setTime(mainTime, byoyomi)
持ち時間の設定をします。
残り時間もリセットします。
Parameters:
Name | Type | Description |
---|---|---|
mainTime |
number | 秒 |
byoyomi |
number | 秒 |
shouldSearch(best, second) → {bool}
検索するかどうかを決定します。
Parameters:
Name | Type | Description |
---|---|---|
best |
Integer | |
second |
Integer |
Returns:
- Type
- bool
stop()
実行中のkeepPlayoutを停止させます。