Forum Programmation.c algorithme minmax

Posté par  . Licence CC By‑SA.
Étiquettes : aucune
1
12
sept.
2020

Bonjour à tous,
J’essaie de programmer une petite IA sur un Puissance4.
Le problème est que je n’arrive pas à comprendre l’algorithme minmax.
En effet, cette fonction minmax est censée nous renvoyer un score.
Il faut donc qu’à chaque coup sur les 7 que tente la machine, l’algorithme minmax soit appelé à évaluer le joueur… Puis que l’on prenne le minimum des scores obtenus pas le joueur pour trouver le coup optimal pour la machine.
C’est la représentation que je m’en fait. Il faut donc commencer par un Minimazer à ce qu’il me semble. Or l’algorithme negamax commence par un Maximizer.
Et là je bloque.
Est-ce que quelqu’un pourrait me filer un tuyau ?
Merci d’avance.

  • # Ça ne marche pas comme ça

    Posté par  . Évalué à 3.

    Salut,

    Regarde par exemple ici

    Il faut minimiser les chances de l'adversaire (humain) et maximiser tes chances (logiciel).

    Comme le nom l'indique, negamax n'est quasiment qu'une inversion (d'où le préfixe néga)

    C'est pas facile, bon courage !

    Matricule 23415

    • [^] # Re: Ça ne marche pas comme ça

      Posté par  . Évalué à 2. Dernière modification le 12 septembre 2020 à 13:38.

      Oui je sais bien, mais je ne fais pas jouer la machine en premier dans l'algorithme;
      je m'explique: Je fais jouer la machine sur un coup, puis c'est le joueur que j'évalue…
      Je fais ça pour les 7 coups possibles.
      Du coup, ma profondeur est de depth + 1.
      Je ne sais pas si je formule bien.
      En gros j'appelle negamax ( ou bien minmax et là pour le coup ça marche ) 7 fois et je prends la position correspondant au maximum des scores que j'obtiens.
      Mais negamax, comme son nom l'indique est un Maximizer pour la racine.
      J'essaie de trouver le pendant de negamax: negamin.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.