Quiero comenzar con un escenario que me hizo pensar en qué tan bien MCTS puede funcionar: supongamos que hay un movimiento que aún no se ha agregado al árbol de búsqueda. Es algunas capas / movimientos demasiado profundos. Pero si jugamos este movimiento, el juego básicamente se gana. Sin embargo, supongamos también que todos los movimientos que podrían realizarse en el estado de juego dado son muy, muy malos. En aras de la discusión, digamos que hay 1000 movimientos posibles y solo uno de ellos es bueno (pero muy bueno) y el resto es muy malo. MCTS no podría reconocer esto y no¿Creció el árbol de búsqueda hacia este movimiento y también calificó muy mal este subárbol? Sé que MCTS finalmente converge a minimax (y eventualmente construirá todo el árbol si hay suficiente memoria). Entonces debe saber que el movimiento es bueno a pesar de que hay muchas posibilidades malas. Pero supongo que en la práctica esto no es algo en lo que uno pueda confiar. Tal vez alguien pueda decirme si esta es una evaluación correcta de mi parte.
Además de este escenario especial, también me gustaría saber si hay otros escenarios en los que MCTS funcionará mal (o bien extraordinariamente).
Respuestas:
Si se encuentra el movimiento y qué tan rápido se encuentra depende de algunas cosas. Si entiendo correctamente, hay una secuencia de muchos movimientos "malos" que conducen al movimiento "gran victoria", y temes que el algoritmo MCTS no llegue al movimiento "gran victoria" porque seleccionará más prometedores Se mueve más arriba del árbol. Algunas cosas para pensar (lea también el artículo de Wikipedia MCTS ):
al hacer playouts, puedes jugar tu juego solo por algunos movimientos más o hasta el final del juego. Jugar solo unos pocos movimientos más es obviamente más rápido, pero en el caso extremo que describiste, no sería la mejor opción. Si conoce la existencia de tales escenarios, asegúrese de jugar el juego hasta el final en los playouts.
Al hacer playouts, puedes elegir tus movimientos / acciones al azar o en función de algunas heurísticas simples y codiciosas adaptadas a tu problema. ¿Hay quizás heurísticas codiciosas diseñadas para encontrar o tener en cuenta tales escenarios para su juego / problema? En caso afirmativo, impleméntelos. Luego se le llama "playout pesado". Compare los resultados con los playouts usando movimientos aleatorios.
Si elige las acciones utilizando UCT (límite de confianza superior aplicado a los árboles), la primera parte de la expresión es responsable de la explotación. Se prefieren movimientos con una alta tasa de ganancia promedio. La segunda parte, sin embargo, corresponde a la exploración. Si el parámetro de exploración se establece lo suficientemente alto (pruebe empíricamente para su problema), se preferirán movimientos con pocas simulaciones. La alta exploración sería otra forma de encontrar su movimiento dorado, en detrimento de la explotación (lea sobre el dilema de exploración / explotación).
Si describe un juego realista o un escenario problemático, podemos ayudarlo a encontrar una estrategia adecuada.
fuente