Précédent   Forum du club des développeurs et IT Pro > Autres langages > Algorithmes > Intelligence artificielle
Intelligence artificielle Forum d'entraide sur l'intelligence artificielle. Avant de poster : Cours d'intelligence artificielle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 15/03/2006, 17h05   #1
hebmaster
Invité régulier
 
Inscription : novembre 2005
Messages : 27
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 27
Points : 8
Points : 8
Par défaut Algorithme Min-Max appliqué au jeu Puissance 4 en C .

Je suis entrain de develloper le jeu puissance 4 en C mais il me reste la partie Intelligence Artificielle.
J'ai entendu parlé de l'algo Mini-Max .il permet de resoudre cette partie IA du jeu .
Est ce que quelqu'un pourait il me donner cette algo ou mieux le code C de cette partie IA du jeu
hebmaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 17h07   #2
fearyourself
Rédacteur/Modérateur

 
Avatar de fearyourself
 
Homme
Ingénieur Informaticien Senior
Inscription : décembre 2005
Messages : 5 001
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur Informaticien Senior
Secteur : Industrie

Informations forums :
Inscription : décembre 2005
Messages : 5 001
Points : 11 162
Points : 11 162
Par défaut Re: Algorithme Min-Max appliqué au jeu Puissance 4 en C .

Citation:
Envoyé par hebmaster
Je suis entrain de develloper le jeu puissance 4 en C mais il me reste la partie Intelligence Artificielle.
J'ai entendu parlé sur l'algo Mini-Max .il permet de resoudre cette partie IA du jeu .
Est ce que quelqu'un pourait il me donner cette algo ou mieux le code C de cette partie IA du jeu
C'est une question algorithmique et non de C... Effectivement, tu vas le faire en C mais tu ne sais pas encore de quoi il est question alors fait d'abord un tour dans le forum Algorithmes...

Jc
fearyourself est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 18h27   #3
FrancisSourd
Membre expérimenté

 
Inscription : avril 2005
Messages : 417
Détails du profil
Informations personnelles :
Âge : 40
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : avril 2005
Messages : 417
Points : 507
Points : 507
http://www.developpez.net/forums/viewtopic.php?t=463878
FrancisSourd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 18h33   #4
hebmaster
Invité régulier
 
Inscription : novembre 2005
Messages : 27
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 27
Points : 8
Points : 8
Citation:
Envoyé par FrancisSourd
http://www.developpez.net/forums/viewtopic.php?t=463878
je lé deja consulté il ya rien dessus ....
aidez moi svp c urgent je doit rendre le projet prochainement ...il me reste le rapport et tout
hebmaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2006, 20h30   #5
khayyam90
Responsable Portail

 
Avatar de khayyam90
 
Homme
Ingénieur développement logiciels
Inscription : janvier 2004
Messages : 8 924
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Saône et Loire (Bourgogne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2004
Messages : 8 924
Points : 37 571
Points : 37 571
bien le bonsoir,

Citation:
Envoyé par la wikipedia
L'algorithme MinMax est très simple : on visite l'arbre de jeu pour faire remonter à la racine une valeur (appelée « valeur du jeu ») qui est calculée récursivement de la façon suivante :

* MinMax(p) = f(p) si P est une feuille de l’arbre où f est une fonction d’évaluation de la position du jeu

* MinMax(p) = max(MinMax(O1), ..., MinMax(On)) si p est un noeud Joueur avec fils O1, ..., On

* MinMax(p) = min(MinMax(O1), ..., MinMax(On)) si p est un nœud Opposant avec fils O1, ..., On
il faut donc que tu t'inventes une fonction f permettant de calculer la valeur du jeu à un instant donné (selon le nombre de 2-3-4 pions consécutifs par exemple).
L'arbre de jeu correspond aux coups possibles. Les étages de l'arbre sont alternativement pour le joueur 1 ou pour le joueur 2 (appelé Opposant chez la wikipedia).
Donc à chaque mouvement, tu crées un arbre de jeu (ou tu reprends le précédent ... c'est un détail d'implémentation), tu explorer l'arbre récusrivement et tu fais remonter les valeurs avec les 3 formules de la wikipedia.
__________________
Responsable du Portail Developpez.
Mes tutoriels Algo, Web, C++, PHP - Mon CV
khayyam90 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 09h15   #6
ToTo13
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Ingénieur de Recherche
Inscription : janvier 2006
Messages : 4 808
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 34
Localisation : Etats-Unis

Informations professionnelles :
Activité : Ingénieur de Recherche
Secteur : Santé

Informations forums :
Inscription : janvier 2006
Messages : 4 808
Points : 7 054
Points : 7 054
Bonjour,

pour des jeus aussi simple comme Otelo, puisssance 4, les dames,... la meilleur IA est de calculer toutes les possibilitée par récursivité. En effet la taille tres faible de ces jeux compense la compléxité d'un calcul exaustif des solutions.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 10h36   #7
BugFactory
Membre chevronné
 
Inscription : octobre 2005
Messages : 644
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : octobre 2005
Messages : 644
Points : 683
Points : 683
Je dits peut-être une bêtise, mais il me semble que au moins dans le cas d'Othello une recherche exhaustive est aussi peu praticable que pour les échecs.
BugFactory est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 10h47   #8
ToTo13
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Ingénieur de Recherche
Inscription : janvier 2006
Messages : 4 808
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 34
Localisation : Etats-Unis

Informations professionnelles :
Activité : Ingénieur de Recherche
Secteur : Santé

Informations forums :
Inscription : janvier 2006
Messages : 4 808
Points : 7 054
Points : 7 054
Bonjour,

non au contraire.
Les plus grands joueurs de dames et otelo ont été battu depuis longtemps par une simple recherche exhaustive.
C'est la petite taille du jeu et la simplicité des règles qui rend cela possible. D'autant plus pour otelo, où il faut toujours placer les pions contre un pion déjà existant, ce qui réduit encore le nombre de possibilité.
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 10h51   #9
ToTo13
Modérateur
 
Avatar de ToTo13
 
Homme Guillaume
Ingénieur de Recherche
Inscription : janvier 2006
Messages : 4 808
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 34
Localisation : Etats-Unis

Informations professionnelles :
Activité : Ingénieur de Recherche
Secteur : Santé

Informations forums :
Inscription : janvier 2006
Messages : 4 808
Points : 7 054
Points : 7 054
Petit complément,

aux échecs, l'oridinateur DeepBlue a battu Kasparov il y a deux ou trois ans (3.5 à 2.5), mais il s'agit là d'heuristique et d'un ordi spécialement conçu pour les échecs.
Le seul et UNIQUE jeu où les grands maitres sont toujours invaincu est le GO.
Pourtant, il n'y a pas plus simple au niveau règle, mais.... Stratégie quand tu nous tiens....
__________________
Consignes aux jeunes padawans : une image vaut 1000 mots !
- Dans ton message respecter tu dois : les règles de rédaction et du forum, prévisualiser, relire et corriger TOUTES les FAUTES (frappes, sms, d'aurteaugrafe correcteur orthographique pour FiReFox), mettre les ACCENTS et les BALISES => ECRIRE clairement et en Français tu DOIS.
- Le coté obscur je sens dans le MP => Tous tes MP je détruirai et la réponse tu n'auras si en privé tu veux que je t'enseigne.(Lis donc ceci)
- ton poste tu dois marquer quand la bonne réponse tu as obtenu.
ToTo13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 12h16   #10
fearyourself
Rédacteur/Modérateur

 
Avatar de fearyourself
 
Homme
Ingénieur Informaticien Senior
Inscription : décembre 2005
Messages : 5 001
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Ingénieur Informaticien Senior
Secteur : Industrie

Informations forums :
Inscription : décembre 2005
Messages : 5 001
Points : 11 162
Points : 11 162
Citation:
Envoyé par ToTo13
Petit complément,

aux échecs, l'oridinateur DeepBlue a battu Kasparov il y a deux ou trois ans (3.5 à 2.5), mais il s'agit là d'heuristique et d'un ordi spécialement conçu pour les échecs.
Le seul et UNIQUE jeu où les grands maitres sont toujours invaincu est le GO.
Pourtant, il n'y a pas plus simple au niveau règle, mais.... Stratégie quand tu nous tiens....
A savoir que ce n'est pas DeepBlue qui a battu Kasparov mais la deuxième version DeeperBlue (mais c'était un nom non officiel, je l'accorde). Kasparov a gagné 4-2 lors du premier match en 1996 et perdu 3.5-2.5 en 1997 contre DeeperBlue.

Par contre, il a été dit que l'ordinateur avait été programmé pour battre Kasparov et non n'importe quel grand maître. Difficile à prouver par contre...

Jc
fearyourself est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 13h40   #11
Mucho
Membre régulier
 
Avatar de Mucho
 
Inscription : décembre 2005
Messages : 221
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 221
Points : 73
Points : 73
hebmaster :
Il y a des implementations en prolog disponible sur internet :
Par exemple : http://www.montefiore.ulg.ac.be/~van...cification.txt
Tu peux t'en inspirer pour ton programme en C/C++.


Le hors sujet :
Effectivement une recherche exaustive est la surement la meilleure : puisque d'ailleurs la méthode Mini-Max est une recherche exaustive. Même une fois améliorée avec l'alpha bêta, cette amélioration fait uniquement l'économie des possibilité dont on est sûr qu'elles seront obligatoirement moins bonnes que des solutions precedement trouvés. Donc est du même ordre d'idée qu'une recherche exaustive.
Mucho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 14h01   #12
Sivrît
Membre Expert
 
Avatar de Sivrît
 
Inscription : février 2006
Messages : 953
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 953
Points : 1 215
Points : 1 215
Citation:
Envoyé par ToTo13
Le seul et UNIQUE jeu où les grands maitres sont toujours invaincu est le GO.
Pas unique. Aux dernières nouvelles le Shogi résiste aussi aux ordinateurs et leur bon vieux minmax. Bien que ce soient des échecs ils ont une combinatoire bien plus méchante que notre version, principalement parce que les pièces prises peuvent être remises en jeu n'importe où.

Et au Go il n'est même pas nécessaire d'être grand maître pour ridiculiser la machine.


Edit: si le but est de faire un jeu de puissance4 (pas l'IA la plus imbatable possible), mieux vaut ne pas faire une recherche exhaustive et limiter la profondeur lors du parcourt. Sinon, on a mathématiquement perdu d'avance et c'est même plus la peine de jouer
Sivrît est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 14h44   #13
Baptiste Wicht
Expert Confirmé Sénior
 
Avatar de Baptiste Wicht
 
Homme Baptiste Wicht
Étudiant
Inscription : octobre 2005
Messages : 7 459
Détails du profil
Informations personnelles :
Nom : Homme Baptiste Wicht
Âge : 25
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2005
Messages : 7 459
Points : 21 890
Points : 21 890
Envoyer un message via MSN à Baptiste Wicht
Ce site va certainement t'aider, j'ai déja essayé cette IA et c'est tres puissant comme truc
Baptiste Wicht est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2006, 16h27   #14
BugFactory
Membre chevronné
 
Inscription : octobre 2005
Messages : 644
Détails du profil
Informations personnelles :
Âge : 33

Informations forums :
Inscription : octobre 2005
Messages : 644
Points : 683
Points : 683
ToTo13 a écrit:
Citation:
Par contre, il a été dit que l'ordinateur avait été programmé pour battre Kasparov et non n'importe quel grand maître. Difficile à prouver par contre...
J'ai entendu parler de ça. Il semble que Deeper Blue ait eu accès à l'ensemble des parties jouées par Kasparov. En revanche, Kasparov n'a pas eu accès aux parties de Deeper Blue.
BugFactory est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/10/2012, 21h31   #15
Herar01
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Madagascar

Informations forums :
Inscription : août 2011
Messages : 7
Points : 3
Points : 3
Citation:
Envoyé par Mucho Voir le message
hebmaster :
Il y a des implementations en prolog disponible sur internet :
Par exemple : http://www.montefiore.ulg.ac.be/~van...cification.txt
Tu peux t'en inspirer pour ton programme en C/C++.


Le hors sujet :
Effectivement une recherche exaustive est la surement la meilleure : puisque d'ailleurs la méthode Mini-Max est une recherche exaustive. Même une fois améliorée avec l'alpha bêta, cette amélioration fait uniquement l'économie des possibilité dont on est sûr qu'elles seront obligatoirement moins bonnes que des solutions precedement trouvés. Donc est du même ordre d'idée qu'une recherche exaustive.
Je sais que le sujet date de 2006 mais quelqu'un pourrait m'indiquer où je peux voir le fichier du lien.

Merci
Herar01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/10/2012, 18h54   #16
davcha
Membre Expert
 
Avatar de davcha
 
Inscription : avril 2004
Messages : 1 247
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 1 247
Points : 1 359
Points : 1 359
Un minmax sur un truc simple comme p4, c'est possible ? On se retrouve pas face à un problème bien connu de la théorie des jeux ?..
davcha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2012, 18h11   #17
Kirilenko
Membre émérite
 
Avatar de Kirilenko
 
Homme Lucas Pesenti
Étudiant
Inscription : décembre 2011
Messages : 234
Détails du profil
Informations personnelles :
Nom : Homme Lucas Pesenti
Âge : 16
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : décembre 2011
Messages : 234
Points : 858
Points : 858
Envoyer un message via MSN à Kirilenko
Citation:
Envoyé par Herar01 Voir le message
Je sais que le sujet date de 2006 mais quelqu'un pourrait m'indiquer où je peux voir le fichier du lien.
J'ai trouvé un lien qui semble correspondre : ici.
__________________
Récursivité en C : épidémie ou hérésie ?

"Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman
Kirilenko est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/10/2012, 07h33   #18
Herar01
Invité de passage
 
Homme
Inscription : août 2011
Messages : 7
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Madagascar

Informations forums :
Inscription : août 2011
Messages : 7
Points : 3
Points : 3
Citation:
Envoyé par Kirilenko Voir le message
J'ai trouvé un lien qui semble correspondre : ici.
Merci
Herar01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 04h22.


 
 
 
 
Partenaires

Hébergement Web