uct_search() Grob gesagt eine Methode, die Knoten mit einem großen UCB-Wert auswählt und die Gesamtgewinnrate addiert. Es war ziemlich schwer zu verstehen, also machte ich ein Beispiel und verstand es. Angenommen, die Suche vom Start bis zur dritten Suche wird wie folgt durchgeführt.
Jedes Mal, wenn eine Suche durchgeführt wird, wird die Gewinnrate aus Sicht dieses Knotens zu den Variablen hinzugefügt, über die jeder Knoten verfügt. Variable ① Gesamtgewinnrate (Variablenname win): Summe von ② für alle Knoten. (In diesem Beispiel hat ① den gleichen Wert wie ②, aber da jeder Knoten nur nach einem gesucht hat, ist es nur der gleiche Wert, und ① und ② sind unterschiedliche Variablen.) Variable ② Gesamtgewinnrate bei Auswahl des Knotens ** (Variablenname child_win) Es gibt andere Variablen, aber diese beiden sind wichtig: ① und ②. Beachten Sie, dass die vorhergesagte Gewinnrate (Variablenname value_win) des Wertnetzwerks und ① unterschiedliche Variablen sind.
Die Funktion uct_search () zeichnet auch die Anzahl der Besuche an jedem Knoten auf. Nach dem Verlassen dieser Funktion wird der Zug mit der höchsten Anzahl von Besuchen als letzter Zug in der Funktion go () ausgewählt. Zusätzlich wird der Wert, der durch Teilen von ② durch die Anzahl der Besuche erhalten wird, dh die durchschnittliche Gewinnrate, als die Gewinnrate des Zuges behandelt. Wenn Sie dies berücksichtigen, ist das Verständnis einfacher.
In diesem Beispiel habe ich versucht zu verfolgen, wie sich der Inhalt der Variablen in chronologischer Reihenfolge ändert.
Ich habe es endlich verstanden. Es addiert einfach Ihre Gewinnrate und die negative Rate Ihres Gegners (= Ihre Gewinnrate).
Recommended Posts