save_used_hash() Der von dieser Funktion ausgeführte Prozess besteht darin, ein verwendetes Flag für alle erweiterten Knoten unterhalb des dem Argument angegebenen Knotens zu setzen.
#Lassen Sie den Knoten in Gebrauch
def save_used_hash(self, board, uct_node, index):
self.node_hash[index].flag = True
self.used += 1
current_node = uct_node[index]
child_index = current_node.child_index
child_move = current_node.child_move
child_num = current_node.child_num
for i in range(child_num):
if child_index[i] != NOT_EXPANDED and self.node_hash[child_index[i]].flag == False:
board.push(child_move[i])
self.save_used_hash(board, uct_node, child_index[i])
board.pop()
Setzen Sie das verwendete Flag des im Argument angegebenen Knotens. Informationen zu untergeordneten Knoten abrufen.
Setzen Sie das verwendete Flag des untergeordneten Knotens. Rufen Sie die Informationen des untergeordneten Knotens des untergeordneten Knotens ab.
Dies wird wiederholt. Schließlich werden die verwendeten Flags aller erweiterten Knoten unter dem übergeordneten Knoten gesetzt.
delete_old_hash() Der von dieser Funktion ausgeführte Prozess besteht darin, das verwendete Flag aller erweiterten Knoten unterhalb des Knotens der Phase zu setzen, die dem Argument zugewiesen wurde, und das nicht verwendete Flag der anderen Knoten zu setzen.
Setzen Sie das verwendete Flag für alle node_hash auf False (nicht verwendet).
Führen Sie save_used_hash () für die aktuelle Phase aus und setzen Sie die verwendeten Flags aller erweiterten Knoten unterhalb des aktuellen Phasenknotens.
Recommended Posts