Vous essayez d'écrire un ensemble de règles compréhensibles par l'homme pour un problème qu'une machine peut résoudre bien mieux. Ce que vous avez conçu est un ensemble d'heuristiques pour ce qui est fondamentalement un problème de statistiques. Si vous voulez atteindre une véritable optimalité, je vous recommande de recommencer entièrement.
Il y a 9 pièces, 6 joueurs et 6 armes. Cela signifie qu'il n'y a que 324 suppositions valides différentes (9 * 6 * 6) en général, et si vous limitez cet algorithme à une supposition en fonction de la pièce dans laquelle vous vous trouvez, vous n'avez que 36 options. Si ces chiffres sont trop importants pour qu'un humain puisse les évaluer en temps réel, ils sont négligeables pour un ordinateur. Ce que vous voulez écrire, c'est un ensemble de critères de notation pour chacune de ces combinaisons de cartes, et ensuite choisir la combinaison de cartes qui a le score le plus élevé pour deviner (en brisant les égalités au hasard).
Pour pouvoir continuer à parler d'optimisation, nous devons être rigoureux sur ce mécanisme de notation. D'après votre tentative de départ, il semble qu'il y ait deux choses qui vous intéressent :
-
Obtenir le maximum d'informations que vous ne connaissez pas encore.
-
Révéler aux autres joueurs le moins d'informations possible que vous connaissez déjà.
Il va être assez compliqué de traiter ces deux points, aussi concentrons-nous d'abord sur le point 1 (car c'est le plus important des deux).
Pour obtenir des informations, votre algorithme doit avoir en entrée tout ce que vous savez déjà sur l'endroit où se trouvent les cartes. C'est-à-dire :
-
Combien de cartes possède chaque joueur
-
Les cartes dont vous connaissez l'emplacement (y compris vos propres cartes)
-
Quelles cartes vous savez que certains joueurs ne détiennent pas
Vous construisez ensuite un modèle de probabilité de l'emplacement de chaque carte (y compris le milieu). Les cartes dont vous connaissez l'emplacement auront une probabilité de 100% associée à cet emplacement. Ensuite, pour une estimation arbitraire, vous modélisez ce que les joueurs feront avec cette estimation, à savoir vous montrer une carte ou passer au joueur suivant. À cette fin, vous voudrez probablement supposer le pire des cas, à savoir que si un joueur détient une carte correspondant à votre estimation et dont vous connaissez déjà l'emplacement, c'est cette carte qui vous sera montrée. Avec tout cela, vous pouvez déterminer la probabilité que l'on vous montre une nouvelle carte par rapport à celle que l'on vous montre sans rien vous montrer. Vous devez ajouter un peu de logique pour déterminer ce que vous apprenez si la carte vous est retournée sans que personne ne vous montre quoi que ce soit.
Mais au bout du compte, vous avez une probabilité d'apprendre de nouvelles informations avec une estimation donnée. À ce stade, vous pourriez ajouter une pondération pour les différents types de cartes (je pense que les chambres sont des éléments d'information plus précieux parce que vous devez vous rendre dans la chambre pour la deviner), mais ce n'est pas nécessaire. Comparez cette probabilité pour chaque proposition et choisissez celle qui a le plus de chances de vous apprendre quelque chose de nouveau.
Avec un tel algorithme, vous pourriez même l'exécuter sur les 324 combinaisons de cartes, examiner les 10 suppositions les plus valables et, à partir de là, déterminer la pièce la plus valable à visiter ensuite (ou peut-être même ajouter une pondération pour la distance entre les pièces).
À ce stade, vous pouvez maintenant essayer de vous attaquer à la deuxième partie : donner le moins d'informations possible. Ce que vous voulez probablement faire, c'est soustraire un certain montant du score de chaque proposition en fonction de la quantité d'informations qu'elle révèle, mais cela se complique assez vite car pour le faire de manière optimale, il faut modéliser tout ce que les autres joueurs savent. Vous pourriez simplement ajouter un poids négatif à toute proposition qui révélerait une carte que vous savez être dans l'enveloppe, mais ce serait une chose délicate à calibrer, et à ce stade, nous sommes de retour dans le domaine de l'heuristique plutôt que de pouvoir parler d'une proposition "optimale". Je vous recommande de ne pas inclure cet élément dans votre premier essai de cet algorithme.
0 votes
Je pense que vous comprenez mal quelques points clés du jeu qui peuvent influencer la façon dont vous faites vos suggestions. 1) Vous devez vous déplacer dans la pièce pour faire la suggestion. 2) Lorsque vous faites la suggestion, vous déplacez les autres joueurs dans cette pièce. 3) Lorsque vous apprenez des informations, cela ne signifie pas que les autres peuvent également apprendre des informations.
1 votes
@JoeW Je ne suis pas d'accord avec le point 3. Toute information qui pourrait être apprise serait apprise chaque fois que possible par n'importe quel joueur. Mais 1+2 sont tout à fait corrects, cependant ils ne changent pas les points que l'OP fait, le comportement serait le même, seulement il serait plus difficile ou plus long à maintenir.
0 votes
Je ne dis pas que les autres ne peuvent pas apprendre des informations de vos actions, mais qu'ils n'apprendront pas toujours quelque chose et qu'ils n'apprendront pas toujours ce qu'ils pensent apprendre.
1 votes
Vous semblez optimiser l'option "ne pas révéler d'informations". Je pense que vous perdrez contre une stratégie qui optimise "apprendre l'info plus vite". Notamment, vos règles sur "ils pourraient apprendre quelque chose" n'ont pas d'importance s'ils le savent déjà.
0 votes
@JoeW Je crois que les gens siempre apprendre quelque chose en fonction de vos actions, selon le degré d'avancement de vos adversaires dans la prise de notes tout au long du jeu.
0 votes
@Caleth "... n'ont même pas d'importance s'ils le savent déjà". . Je pense que c'est encore mieux, car vous avez appris quelque chose qu'ils savaient déjà, c'est-à-dire qu'ils n'ont pas obtenu de nouvelles informations à votre tour (mais vous oui). En outre, pourriez-vous nous expliquer comment un "apprendre l'information plus rapidement" pourrait être mise en œuvre ?
0 votes
@DanielDuque - A apprendre des informations plus rapidement La stratégie est la suivante : "si vous ne connaissez pas la personne, utilisez toujours une personne dont vous ignorez l'emplacement ; si vous connaissez la personne, utilisez toujours l'une de vos propres cartes personnes ou la carte enveloppe" ; il en va de même pour les armes et les salles. C'est explicite "n'utilisez pas vos propres cartes", ce qui est quelque chose que votre algorithme n'a pas.