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を停止させます。