6 votos

Óptimo Yahtzee (Dice roll) decisiones: Probabilidad y ponderación opciones

Soy un senior en ciencias de la computación, y tengo una manía de tomar en pequeños proyectos que me parece interesante. El actual es un Yahtzee juego óptimo solver. Uno podría entrar en su tirada actual, y ella le dirá si/lo que aferrarse y qué rebollo (si los hubiere). A continuación, le dirá qué campo para poner su puntuación después de que el potencial de 2 re-rollos de diferentes tamaños.

Hasta ahora, he llegado a la siguiente:

  1. Me doy cuenta de que el cálculo de las probabilidades de todas las configuraciones posibles que toma una gran cantidad de matemáticas, como la "Probabilidad de yahtzee si usted puede lanzar dos veces" es acerca de 1/29. Pero la probabilidad con solo un rollo es de 1/7776. Gran diferencia. Así que voy a escribir una simulación para ~1 mil millones al azar juega para ver el (casi exacta) las probabilidades de que se den ciertos resultados después de tres rollos. Así, podemos asumir probabilidades de los resultados están fuera del camino.

  2. I plan para crear algo como esto: Considere la posibilidad de una muy concreta que no sea ambigua ejemplo de números. Decir que su valor es de 20. Si usted rebollo (de esta manera), tiene una probabilidad del 30% a los 30, una probabilidad del 25% a los 20 años, un 35% de posibilidades en 5 y un 10% de probabilidad en los 80. Neto esperado = E(ganancia) - E(Pérdida) = Sum E(val_i - val). Así que tenemos E(cambiar/net) = .3*(30 - 20) + .25*(20 - 20) + .35*(5 - 20) + .10*(80 - 20) = 5.75. Así que las probabilidades son si hacemos el rollo, vamos a obtener 25.75 lugar de nuestro actual 20. Esto es impresionante y funciona muy bien para este sencillo caso... pero cuando hablamos de yahtzee, no es tan simple.

    Por ejemplo, tenemos cuatro de una especie de, digamos, 5. También tenemos un 5 en el marcador. Así que si tenemos un 30% de probabilidad en 4 de una clase, también tenemos una probabilidad del 30% en cuatro 5. El punto que estoy tratando de hacer es que sus porcentajes no suman el 100%. Usted podría normalizar ellos, pero luego te encuentras con el problema de la reducción de peso, en "algo que puedes elegir si lo tengo", que disminuye el esperado valor neto. Por ejemplo, supongamos que tenemos 1 1 2 2 3. Si usted tirar de nuevo el 3 a 1, de un 1/6 de probabilidad, usted podría tomar el 25 de punto full house o el 3 el punto 1. Si nos normalizado, tendría un < 1/6 oportunidad para full house y < 1/6 para 1, dependiendo de cómo muchos otros % están en esta normalización. Así que estamos de ponderación el pleno de la cámara menos, simplemente porque un paralelo caso exhists, aunque lo más probable es que elija el pleno de la cámara y no el 3 a 1 (espero estar haciendo sentido y no sólo de senderismo...) .

De todos modos, me encantaría si uno de sus mentes brillantes que me podría ayudar a pensar de una manera elegante de hacer esto. Es decir, dado un rollo de 5 dados y una de las 31 maneras posibles para retener a los dados y volver a enrollar los demás, que de la nueva tirada de las configuraciones que debe hacer, o si usted no rebollo (32º elección). Este es el "alto nivel" manera de decir esto.

El nivel inferior es la versión "Dadas las 32 selecciones (31 formas de lanzar, 1 manera de no volver a enrollar), que le dará el puntaje óptimo?". Yo tengo la de 32 (5 seleccione 0) formas de lanzar ningún dados + (5 elija 1) formas de lanzar el 1 de dados, etc (5 elija 5) formas de tira 5 dados.

Estoy buscando alguna información sobre cómo el peso de sus decisiones de forma adecuada. Mi corazonada es que usted tiene que hacer un poco de difícil manipulación que si usted tiene la superposición de los casos, el máximo de caso? (Es decir. Tres 1 frente a una casa llena 1 1 1 2 2 después de relaminado el 3 1 1 3 2 2, usted tomaría ese riesgo se multiplica por el pleno de la cámara de valor, y no poner ningún peso para el 3 a 1. Por supuesto, esto supone que necesitamos tanto un FH y 1. Si no se necesita de una casa, que wouldnt estar incluso en la ecuación).

Gracias a todos los que se toma el tiempo para leer esto :).

Juan

[Modificar:]

Gracias de nuevo por tu ayuda. Estoy bastante seguro de que sabe cómo hacer esto ahora, pero yo quería a usted para asegurarse de que no im malentendido nada. Yo sé que usted no puede ajustarse a la totalidad del juego árbol, pero estoy escribiendo esto en general, suponiendo que había infinito de la memoria. Sé que me gustaría en realidad sólo ser capaz de usar esto con algunas inicial no en blanco de estados unidos.

Comenzar algoritmo

Tenemos 13 cajas, cada una con un número determinado de estados. Cuando hacemos el árbol, partimos de que todos los estados se inicializa a "nada", y simplemente proceda a hacer todas las posibilidades de los estados que nos da todos los posibles estados cuando se haya completado. Veamos uno de esos "hoja" nodo, que está al final de un camino a través de nuestro árbol.

En orden a dar marcha atrás en el árbol y dar nodos de valores (puntuaciones), se inicia aquí. Este nodos de valor es la suma de todos los puntajes en todas las cajas. Para dar a su padre un valor, aunque, ponemos nuestro valor(puntuación) a val := (val - stateScore) + (stateScore*probStateScore); Esto, a partir de los progenitores punto de vista, quita el avaladas ganancia de ese nodo de estado y los cambios que el valor esperado (ya que no he conseguido ese estado, sin embargo, no es algo dado, sino una probabilidad). Así que si este nodos valor es de 300, y los puntos ganados desde su última elección fue de 50, con una probabilidad de 10%, se establece su valor a 250 + 5 = 255. Ahora, padre saca el máximo de todos sus hijos y establece su propio valor a val := (max(niños) - thisNodesStateScore) + thisNodesStateScore*probOfThisStateScore; Por el momento de llegar a la parte superior, tenemos un conjunto de nodos (primer nivel del árbol), con la óptima valores esperados debe elegir.

Al jugar el juego, se puede hacer tal vez un 1 1 2 1 5. Podemos clasificar esto como un 0 en cualquier estado, un 3 de un tipo de unos = scoreState(10), 3 queridos = scoreState(3), 5 = scoreState(5), o uno 2 = scoreState(2). Observamos que los valores de estos estados es máxima, y elegir ese estado. Continuar hasta el final del juego.

Final del algoritmo

Si esto es correcto, mi pregunta era ¿cómo funciona el 3 rollos vienen en esto? Si sacas 1 1 2 15 y tiene 2 rollos de izquierda, ¿cómo le das la configuración óptima para sostener y lanzar basado en los valores óptimos en el árbol? De nuevo, podemos asumir que sabemos todas las probabilidades de tirar un dado de instalación. Gracias de nuevo, y pido disculpas de que esta pregunta fue tan largo y lento.

2voto

JiminyCricket Puntos 143

Como escribí en un comentario, si usted está realmente va para el juego óptimo, es necesario considerar todo el resto del juego. El juego tiene un número finito, pero considerable número de estados posibles: Hay $7$ estados diferentes para cada una de las $1$s por $6$s ranuras, $27$ diferentes estados para cada uno de los tres-de-a-kind, cuatro-de-un-tipo y de azar de ranuras, tres binarios de los estados para el pleno de la cámara y las dos rectas y un recuento de yahtzees que probablemente, usted puede de manera segura límite a algo como $0$ a $4$, para un total de $7^6\cdot27^3\cdot3^3\cdot6=375141013254$. Eso es un poco demasiado para mantener en la memoria, pero después de dos o tres obras de teatro, el número se reduce considerablemente y se vuelve factible para calcular el valor del remanente de juego por programación dinámica. Que le permite centrarse en un solo juego, ya que las etapas posteriores del análisis de decirle que para cada resultado final de la partida actual que la ranura de usar.

Asumiendo que usted sabe que la ranura para el uso que el resultado final, el problema que se describe en la pregunta (si he entendido bien) no es un problema. Cada resultado final tiene un cierto valor, dado por el máximo de todos los valores del juego que sería el resultado de un uso en las ranuras puede ser utilizado en, y usted sólo necesita para optimizar el valor esperado de estos resultado final de los valores; las probabilidades de que los resultados finales se suman a $1$, y la probabilidad de obtener un resultado que podría ser utilizado para un espacio determinado son sólo una distracción; lo que cuenta no es lo que la ranura de un resultado podría ser utilizado, pero sólo de ranura que usted realmente va a usar en el juego óptimo.

[Modificar:]

El número de estados acerca de la siguiente manera: En la ranura de la $1$s, puede haber introducido nada de $0$ a $5$ $1$s, que hace seis estados, o puede que no haya entrado nada todavía, que hace siete años. Las ranuras para tres-de-a-kind, cuatro-de-un-tipo y oportunidad puede contener cualquiera de las sumas de$5\cdot1=5$$5\cdot6=30$, lo que hace que $26$ estados, o nada, lo que hace que $27$. Las ranuras para el pleno de la cámara y las dos rectas, cada uno puede contener nada, cero, o el valor de la ranura, lo que hace que $3$ estados. El yahtzee contar, en principio, puede ir hasta el número de partidas en el juego, $13$, pero nunca he visto a nadie rollo de más de $3$ yahtzees en un juego, y creo que puede ser limitada con seguridad a $4$ o así, que hace cinco diferentes estados de la cuenta de$0$$4$, y uno para nada, que hace seis años.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X