Si está hablando de computadora en lugar de Roshambo humano, ha habido una competencia de programación RoShamBo real y se pueden derivar lecciones reales de ella. Las estrategias básicas son las siguientes:
Henny
Henny ejemplifica la estrategia más simple que funciona bien en la práctica. Elige un movimiento aleatorio que el oponente jugó previamente y reproduce la respuesta que lo supera. Si el oponente tiene alguna tendencia a jugar el mismo movimiento con el tiempo, Henny ganará. Henny también es muy defensivo: el juego óptimo contra él solo tendrá una ventaja muy lenta con el tiempo, e incluso eso podría ser tragado por el ruido.
Cadenas de Markov
- ¿Cómo funcionan las máquinas de juego arcade de la grúa de garra?
- ¿Cuáles son los datos comunes que los paquetes de análisis de juegos recopilan sobre las interacciones del usuario en el juego?
- ¿Qué juegos de mesa o cartas, aparte del ajedrez, se basan fundamentalmente en habilidades?
- ¿Cuáles son algunos juegos de beber coreanos?
- ¿Qué hubiera pasado si Vishy hubiera contrarrestado el movimiento 33 Rd7 con Re8 en el juego 11 del WCC 2014?
Otra estrategia ganadora en la práctica es usar cadenas de markov: mira los últimos n movimientos que hizo tu oponente y predice que continuarán jugando como lo han hecho con mayor frecuencia en el pasado. Es posible una variación considerable en la longitud de las cadenas, lo que nos lleva a …
Polvo de iocaína
El competidor Iocaine Powder combina mágicamente las mejores cualidades del encadenamiento de Henny y Markov al buscar el partido más largo entre los movimientos que su oponente acaba de jugar y cualquier secuencia que hayan jugado en el pasado, y suponiendo que jugarán el mismo movimiento nuevamente. Si el oponente tiene un sesgo basado en los últimos n movimientos para un n, esta estrategia esencialmente elegirá un tiempo aleatorio que jugó los mismos últimos n movimientos que acaba de hacer, que es la estrategia defensiva utilizada por Henny.
Irónicamente, este algoritmo es completamente determinista.
Tenga en cuenta que es un poco mejor cuando hay coincidencias de igual longitud para ir con la primera secuencia de coincidencia en lugar de la última secuencia de coincidencia, para desempeñarse bien cuando un oponente juega una secuencia de papel, luego una tijera y luego una secuencia de papel nuevamente.
Es posible implementar esta técnica de manera muy eficiente usando árboles, lo que extrañamente no hace Iocaine Powder (aunque MemBot sí).
Pero esta estrategia todavía tiene una gran debilidad, y Iocaine Powder tiene otro truco bajo la manga …
Razonamiento siciliano
Una entrada de secuencia fija y cerebral llamada DeBruijn estuvo a punto de limpiarse en el primer torneo. Las secuencias de DeBruijn están sesgadas contra las secuencias que han hecho en el pasado, en lugar de estar a favor de ellas. Una metaestrategia llamada razonamiento siciliano lo supera muy bien. Calcule qué tan bien lo habría hecho hasta la fecha prediciendo que los oponentes se mueven directamente, luego siempre cambiándolo hacia arriba uno (papel-> tijeras, tijeras-> piedra, piedra-> papel), luego hacia abajo uno, luego los mismos tres predicen en su lugar el suyo lado. Juega el que tenga la puntuación más alta hasta ahora.
El razonamiento siciliano derrota limpiamente no solo a DeBruijn, sino todo tipo de variantes baratas.
Debilitándose
Una estrategia tentadora es hacer que su bot se debilite y comience a jugar al azar si no le está yendo bien. Los torneos juegan dos programas uno contra el otro muchas veces sin información persistente entre carreras para evitar que esta estrategia sea efectiva.
Optimizando para la puntuación
La entrada ganadora, Greenberg, analiza el desempeño histórico si su búfer histórico fue de varios tamaños, y tiene una caída exponencial de su desempeño. Esto hace que puntúe muy bien contra oponentes más débiles, pero lo hace más vulnerable a mejores oponentes. El puntaje, las victorias de partidos y la pérdida en el peor de los casos son cosas sutilmente diferentes para optimizar.