El ordenamiento de movimientos se refiere a la práctica de seleccionar primero los movimientos más prometedores durante la búsqueda en el árbol de juego (especialmente en ajedrez por computadora ). [ 1 ] [ 2 ] En búsquedas minimax con poda alfa-beta , un buen ordenamiento de movimientos es importante, ya que examinar los movimientos más fuertes al principio provoca cortes que eliminan subárboles, reduciendo enormemente el número de nodos buscados. En el caso ideal de un ordenamiento de movimientos perfecto, la complejidad de la búsqueda disminuye deaproximadamente, reduciendo efectivamente a la mitad el factor de ramificación efectivo ay permitiendo aproximadamente el doble de profundidad de búsqueda para un esfuerzo computacional dado. [ 3 ] Claude Shannon observó que, si bien una posición típica de ajedrez puede tener alrededor de 30 movimientos legales, la poda efectiva y las heurísticas reducen el factor de ramificación útil a solo unos pocos. [ 4 ]
Historia
La idea de ordenar los movimientos surgió antes que las computadoras. En su artículo fundamental de 1950, "Programando una computadora para jugar ajedrez", [ 5 ] Claude Shannon señaló el enorme tamaño del árbol de juego completo (estimado ennodos) y sugirió que una evaluación simple junto con la búsqueda de todas las variaciones a una profundidad fija sería poco práctica. Shannon vio que cualquier programa de ajedrez necesitaría centrarse en movimientos seleccionados y podar agresivamente para ser útil. El algoritmo formal alfa-beta apareció a finales de la década de 1950 y en la de 1960 como una forma de podar ramas sin cambiar el resultado minimax. Desde el principio, se observó que el poder de poda de alfa-beta depende completamente del orden en que se examinan los movimientos. En 1963, Alexander Brudno describió de forma independiente la búsqueda tipo alfa-beta y observó que los recuentos de nodos del mejor caso ocurren cuando los movimientos se prueban en el orden correcto; para la década de 1970, investigadores como Donald Knuth y Ronald Moore habían analizado matemáticamente alfa-beta y demostrado que bajo un ordenamiento perfecto su tiempo es. [ 6 ]
En las décadas de 1970 y 1980 se introdujeron las principales heurísticas prácticas para la ordenación de movimientos. El uso de la profundización iterativa se redescubrió en los programas de ajedrez y se encontró que mejoraba significativamente la ordenación de movimientos para búsquedas más profundas. La idea era usar el mejor movimiento encontrado a poca profundidad como el primer movimiento en la siguiente búsqueda más profunda. [ 7 ] Las tablas de transposición ( Mac Hack de Richard Greenblatt en 1966 usó por primera vez un hash ) permitieron al programa almacenar el mejor movimiento para cada posición y reutilizarlo como la primera opción en visitas posteriores. [ 8 ] En 1968, Barbara Liskov y otros sugirieron independientemente almacenar movimientos que causaban cortes beta. Esto eventualmente se conoció como la heurística asesina . En 1983, Jonathan Schaeffer propuso la heurística del historial . Schaeffer demostró que las puntuaciones del historial superaban a las heurísticas más simples.
Fundamentos teóricos
La eficiencia de la búsqueda de un motor de ajedrez depende casi por completo de su capacidad para ignorar los movimientos "malos" lo más rápido posible. Teóricamente, si un motor pudiera examinar siempre primero el mejor movimiento, el espacio de búsqueda se reduciría efectivamente a su raíz cuadrada. [ 1 ] Esto se logra mediante una combinación de teoría de juegos y poda heurística. [ 9 ]
Una búsqueda en árbol de juego minimax pura explora todos los movimientos hasta una profundidad fija, lo cual es exponencialmente costoso. [ 10 ] La poda alfa-beta mejora esto al incorporar dos límites: Alfa (α) y Beta (β). [ 11 ] Alfa es la puntuación mínima que el jugador que maximiza tiene asegurada, y Beta es la puntuación máxima que el jugador que minimiza puede permitirse. Siempre que el valor de un nodo no pueda influir en la decisión final porque es peor que un movimiento examinado previamente, la rama se corta. Esto tiene una probabilidad de tener el mismo resultado que el minimax completo, pero con menos nodos.
La búsqueda en profundidad iterativa es de uso común. El motor busca repetidamente con límites de profundidad crecientes, utilizando el mejor movimiento desde la profundidadcomo primer movimiento para intentar en profundidad[ 12 ] Esto casi produce un límite inicial fuerte (alfa o beta) en el primer movimiento, lo que reduce la ventana para el resto de la búsqueda . La profundización iterativa convierte una búsqueda en profundidad en algo similar a una búsqueda primero en amplitud aprovechando los resultados anteriores. Cuando una tabla de transposición contiene una entrada para la posición actual, se intenta primero su mejor movimiento almacenado. [ 13 ] Después de considerar un movimiento de transposición, las heurísticas de ordenación típicas priorizan las capturas y los controles, ya que forzar movimientos tácticos a menudo conduce a grandes ventajas o cortes inmediatos. [ 14 ]
Los motores ordenan los movimientos de captura según la heurística de Víctima Más Valiosa-Agresor Menos Valioso (MVV-LVA). [ 8 ] Para evitar intercambios obviamente perdedores, a menudo se aplica una evaluación de intercambio estática (SEE) para podar las capturas que reducen el balance material. Si los movimientos forzados no producen un corte, el motor prueba sus movimientos asesinos almacenados, que se prueban en profundidad temprana. Si un movimiento que no es asesino causa un corte, se convierte en un nuevo asesino. Finalmente, cualquier movimiento silencioso restante se ordena según sus puntuaciones heurísticas históricas, que acumulan bonificaciones cuando un movimiento causa un corte. [ 15 ] Cada vez que un movimiento causa un corte en cualquier parte de la búsqueda, su puntuación histórica aumenta. Por lo tanto, los movimientos que históricamente han causado cortes se clasifican más arriba en el ordenamiento futuro.
Temas avanzados
Los investigadores han desarrollado varios refinamientos más allá de los esquemas básicos. La heurística de contramovimiento asume que muchos movimientos tienen una respuesta "natural", independientemente de la posición real. [ 16 ] Otras técnicas diversas como los "tableros mariposa" [ 17 ] y las heurísticas de "última mejor respuesta" son ideas relacionadas que explotan el historial de búsqueda local. Algunos motores utilizan aprendizaje automático ; los primeros trabajos de Kocsis et al. y Greer aplicaron redes neuronales para predecir valores u ordenamientos de movimientos. La mayoría de los motores robustos aún se basan en el conjunto simple de movimientos PV, movimientos hash, ordenación de captura MVV-LVA, kill y tablas de historial.
Véase también
Referencias
- 1 2 Russell, Stuart ; Norvig, Peter (28 de abril de 2020). Inteligencia artificial: un enfoque moderno (4.ª ed.). Hoboken, Nueva Jersey: Pearson Education . págs. 152–161 . ISBN 978-0134610993.
- ↑ Schaeffer, Jonathan ; Plaat, Aske (20 de febrero de 1996). Nuevos avances en la búsqueda alfa-beta . CSC '96: Actas de la 24.ª Conferencia Anual de la ACM sobre Ciencias de la Computación de 1996. Filadelfia, Pensilvania: Association for Computing Machinery . págs. 124-130 . doi : 10.1145/228329.228344 . ISBN 0-89791-828-2.
- ↑ Reinefeld, Alexander ; Marsland, T. Anthony (31 de julio de 1994). "Búsqueda iterativa de profundización mejorada". IEEE Transactions on Pattern Analysis and Machine Intelligence . 16 (7). IEEE : 701–710 . Bibcode : 1994ITPAM..16..701R . doi : 10.1109/34.297950 . eISSN 1939-3539 . ISSN 0162-8828 . El texto completo está disponible en ResearchGate (en lugar del original).
- ↑ Shannon, Claude E. (marzo de 1950). "Programación de una computadora para jugar ajedrez" (PDF) . Philosophical Magazine . Ser. 7. 41 (314). Taylor & Francis : 256–275 . doi : 10.1080/14786445008521796 .
- ↑ Shannon 1950 , págs. 257–268.
- ↑ Marsland, T. Anthony (1 de marzo de 1986). "Una revisión de la poda de árboles de caza" . ICGA Journal . 9 (1): 3– 19. doi : 10.3233/ICG-1986-9102 . eISSN 2468-2438 . ISSN 1389-6911 – vía Sage Journals .
- ↑ Knuth, Donald ; Moore, Ronald (1 de diciembre de 1975). "An Analysis of Alpha-Beta Pruning" . Artificial Intelligence . 6 (4). Elsevier : 293–326 . doi : 10.1016/0004-3702(75)90019-3 . ISSN 0004-3702 – vía ScienceDirect .
- 1 2 Greenblatt, Richard (1 de enero de 1988). "El programa de ajedrez de Greenblatt" . Compendio de ajedrez por computadora . Nueva York: Springer Nature . págs. 56–66 . doi : 10.1007/978-1-4757-1968-0_7 . ISBN 978-1-4757-1970-3.
- ^ Campbell, Murray ; Hoane Jr., A. José; Hsu, Feng-hsiung (24 de enero de 2002). "Azul profundo" . Inteligencia artificial . 134 ( 1– 2): 57– 83. doi : 10.1016/S0004-3702(01)00129-1 . ISSN 0004-3702 - vía ScienceDirect .
- ↑ Cormen, Thomas ; Leiserson, Charles ; Rivest, Ronald ; Stein, Clifford (5 de abril de 2022). Introducción a los algoritmos (4ª ed.). Prensa del MIT . págs. 1020-1032 . ISBN 978-0-262-04630-5. LCCN 2021037260 . OL 34192801M .
- ↑ Luger, George (26 de febrero de 2008). Inteligencia artificial: Estructuras y estrategias para la resolución de problemas complejos (6.ª ed.). Addison-Wesley . págs. 161–171 . ISBN 978-0321545893. LCCN 2007050376 . OCLC 439520815 . OL 3946606M .
- ↑ Russell, Stuart ; Norvig, Peter (1 de diciembre de 2009). Inteligencia artificial: un enfoque moderno (3.ª ed.). Prentice Hall . ISBN 978-0136042594LCCN 2011-288031 . OCLC 359890490 .
- ↑ Silver, David ; Hubert, Thomas; Schrittwieser, Julian; Antonoglou, Ioannis; Lai, Matthew; Guez, Arthur; Lanctot, Marc; Sifre, Laurent; Kumaran, Dharshan ; Graepel, Thore; Lillicrap, Timothy ; Simonyan, Karen; Hassabis, Demis (5 de diciembre de 2017). "Dominando el ajedrez y el shogi mediante el autoaprendizaje con un algoritmo general de aprendizaje por refuerzo". pág. 10. arXiv : 1712.01815v1 [ cs.AI ]. "Una tabla de transposición facilita la reutilización de valores y órdenes de movimiento cuando se llega a la misma posición mediante múltiples rutas."
- ↑ Levy, David; Newborn, Monty (1991). Cómo juegan al ajedrez las computadoras (1.ª ed.). Nueva York: Computer Science Press. págs. 144–148 . ISBN 0-7167-8239-1LCCN 90039244 . OCLC 826075762 .
- ↑ Schaeffer, Jonathan (30 de noviembre de 1989). "La heurística histórica y el rendimiento de las mejoras alfa-beta". IEEE Transactions on Pattern Analysis and Machine Intelligence . 11 (11): 1203– 1212. doi : 10.1109/34.42858 . eISSN 1939-3539 . ISSN 0162-8828 . OCLC 8557794501 .
- ↑ Uiterwijk, Jos (1 de marzo de 1992). "La heurística del contraataque" . ICGA Journal . 15 (1): 8– 15. doi : 10.3233/ICG-1992-15103 . ISSN 1389-6911 . OCLC 10597453955 – vía Sage Publishing . "La técnica se basa en la premisa de que muchos movimientos tienen una respuesta 'natural', independientemente de la posición real en la que se produzcan."
- ↑ Hartmann, Dap (1 de septiembre de 1988). "La heurística de la mariposa" . ICGA Journal . 11 ( 2–3 ): 64–71 . doi : 10.3233/ICG-1988-112-303 . ISSN 1389-6911 – vía Sage Publishing .
- ajedrez por computadora
- teoría de juegos