12 febrero 2013

Los piratas lógicos: solución

Ésta es la solución al acertijo descrito en esta entrada. Si no lo has intentado solucionar por tu cuenta, te recomiendo que lo hagas antes de comenzar a leer el siguiente párrafo.

¿Cómo podía el señor Morcillo saber el reparto final de las monedas? La primera clave para solucionar el acertijo, es saber identificar que estamos ante un problema de teoría de juegos para 5 jugadores. La estrategia a seguir se basa en los mismos principios que otros juegos como el ajedrez o el póker, en los que cada jugador intenta minimizar su máxima perdida. Aunque sería perfectamente válido invertir el objetivo para que cada jugador maximice sus ganancias, me parece más fácil plantearlo como un problema minimax. De ahora en adelante, me referiré al pirata de mayor rango como P1 (pirata 1), P2 para el segundo, etc. De modo que P5 es el pirata de menor rango. Intuitivamente, mucha gente piensa que P5 se quedará con todas las monedas porque, desde el punto de vista de cualquiera de los piratas de menor rango, siempre será mejor que haya menos piratas para repartirse las monedas entre menos. Sin embargo, leyendo el procedimiento descrito en el acertijo, nos daremos cuenta de un detalle fundamental:
  1. El pirata de mayor rango haría una proposición para el reparto de las monedas, y entonces todos los piratas votarían a favor o en contra del reparto (incluido el pirata que hace la proposición).
  2. Si la votación resulta en una mayoría (50% o más de los votos) aceptando el reparto, se reparten las monedas y se acabó la historia.
  3. Si el número de piratas que aceptan el reparto es menos de la mitad, el pirata que propuso el reparto será arrojado por la borda y el siguiente pirata hará una nueva proposición hasta que se acepte el reparto (vuelta al paso 1) o no queden más piratas.
Las letras en negrita indican que no es necesario tener más del 50% de los votos, porque con la mitad exacta ya sería suficiente para que el reparto fuera aprobado. Teniendo eso en cuenta, cuando queden 2 piratas, P4 y P5, el de mayor rango, es decir, P4, puede con su propio voto conseguir la mayoría. Evidentemente, siendo un pirata sanguinario y avaricioso, P4 propondría el siguiente reparto:

PirataReparto
P4100 monedas
P50 monedas

P4, por supuesto, se votaría a si mismo y P5 votaría en contra. Como P4 tiene la mitad o más de los votos, el reparto es aprobado y P5 se queda con nada. Sorprendentemente, añadir otro jugador no cambia mucho la lógica. Si quedan los piratas P3, P4 y P5, P3 tiene que proponer un reparto que le de al menos uno de los votos de P4 y P5. El pirata P5 sabe que, si P3 se va al agua, P4 se queda con todo y él con nada. Este juego, como el ajedrez y al contrario que el póker, es un juego de informacion perfecta, porque todos los piratas tienen la misma información y pueden deducir no solo su estrategia óptima, sino también la de los demás piratas. Entonces P3 sabe que, si él pierde la votación y acaba en el agua, P5 se quedaría con nada (el reparto sería el descrito anteriormente). Como el peor caso para P5 es quedarse con nada, por poco que le ofrezca P3 ya estaría minimizando su máxima perdida y debería aceptar el reparto sea lo injusto que sea. Sabiendo eso, P3 propondría el siguiente reparto:

PirataReparto
P399 monedas
P40 monedas
P51 moneda

Entonces podemos estar seguros de que, si P3 decide hacer la anterior proposición, nunca se dará el caso en el que queden 2 piratas porque P5 aceptara el reparto. ¿Pero que pasa si añadimos otro jugador mas? P2, al igual que P3 en la anterior situación, solo necesitaría un voto para, junto con el suyo, obtener la mayoría. Sin embargo, el peor caso (la máxima perdida) de cada uno de los piratas ha cambiado. P4 sabe que, si P2 no gana la votación, se quedará sin ninguna moneda. Por tanto, si P2 le ofrece tan solo una moneda, debería aceptar puesto que es una mejora respecto a su máxima perdida posible. Para P5, cuyo mejor caso es quedarse con una sola moneda, también debería aceptar si se le ofrece un reparto igual a su mejor caso (esa afirmación es debatible pero, desde un punto de vista lógico  ¿para qué iba a arriesgarse si le ofrecen un reparto igual a su máxima ganancia posible?). Por lo tanto, los posibles repartos a hacer serían:

PirataReparto 1Reparto 2
P299 monedas99 monedas
P30 monedas0 monedas
P41 monedas0 monedas
P50 moneda1 moneda

A partir de este punto, añadir un quinto jugador es trivial si aplicamos la misma lógica. P1 sólo tiene que igualar el mejor casi posible (o mejorar el peor caso si este es cero monedas) para otros 2 piratas y, así, obtendrá la mayoría de los votos evitando ser arrojado por la borda:

PirataReparto 1Reparto 2Reparto 3
P198 monedas98 monedas98 monedas
P20 monedas0 monedas0 monedas
P31 monedas1 monedas0 monedas
P41 monedas0 monedas1 monedas
P50 moneda1 moneda1 monedas

La pregunta interesante ahora podría ser, ¿qué pasa si extrapolamos esto a un problema con N piratas?

No hay comentarios:

Publicar un comentario