Eu pedi esse problema no MathOverflow , sem nenhuma resposta satisfatória.
Considere o seguinte jogo para dois jogadores, que é uma simplificação do jogo de cartas chamado Winner . (A formulação a seguir foi retirada de um comentário de Guillaume Brunerie no MathOverflow.)
Existem dois jogadores A e B. Cada jogador tem um conjunto de cartas (um subconjunto de ) visível dos dois jogadores. O objetivo do jogo é se livrar de seus próprios cartões. O primeiro jogador joga qualquer carta na mesa, então o outro jogador deve jogar uma carta (estritamente) maior, e assim sucessivamente até que um dos jogadores não possa jogar ou decida passar. Em seguida, as cartas na mesa são descartadas e o outro jogador começa novamente jogando qualquer carta (que será seguida por uma carta maior). E assim por diante até que um dos dois jogadores fique sem cartas e vença o jogo.
Quero saber a melhor estratégia para os jogadores (se ele pode ganhar).
Definição formal
Denote por a configuração do jogo em que o conjunto das cartas do primeiro jogador é , o conjunto das cartas do segundo jogador é e a maior carta da mesa é , onde significa que não há cartão na mesa. Eu gostaria que um algoritmo calculasse, dado , se o primeiro jogador tem uma estratégia vencedora na configuração .B i i = 0 i , A , B w ( i , A , B )
Formalmente, eu gostaria de um algoritmo para calcular a função definida da seguinte maneira:
Deixe , .B o o l = { F a l s e , T r u e }
Função
onde
Estratégias erradas
Aqui estão algumas estratégias erradas:
- Sempre jogue a menor carta. Seja , a estratégia vencedora para o jogador A na configuração é jogar o cartão . Se o jogador A jogar o cartão 1, ele perderá.w ( 0 , A , B ) 3
- Jogue a menor carta, a menos que o outro jogador tenha apenas uma carta. É uma estratégia mais forte que a estratégia 1, mas também está errada. Pense apenas na configuração . Se o jogador A usar a estratégia 2, ele perderá: , portanto o jogador A perde.