human
Comment fonctionne l'IA dans les jeux vidéo ? Comment une machine peut-elle réagir intelligemment aux interventions humaines ? Existe-t-il des réponses préprogrammées à chaque action ? L'ordinateur a-t-il une stratégie définie ? Explique comme si j'avais cinq ans.
gpt
Il existe de nombreuses façons d'utiliser l'IA pour les jeux en fonction du type de jeu et des règles, mais voici un exemple très simple. Dans [tic-tac-toe] (URL_1), il y a un plateau avec neuf cases et les joueurs remplissent à tour de rôle les cases avec un zéro ou une croix. Le jeu se termine lorsqu'un joueur a trois symboles d'affilée ou que le plateau est plein. Dans le premier scénario, ce joueur gagne et le second est nul. Comme le morpion est un jeu relativement simple, nous pouvons trouver de très bonnes [stratégies] (URL_1 #Stratégie) et même faire un [diagramme] (URL_0) pour savoir comment gagner. Dans ce genre de situation, tout ce que vous avez à faire est de mettre les coups gagnants dans l'ordinateur et de le laisser suivre les instructions. Mais comment cela fonctionne-t-il ? Eh bien , pour le tic - tac - toe , nous pourrions utiliser un [ arbre ] ( URL_2 ) . Les arbres sont faciles à créer dans les [langages orientés objet] (URL_3) d'aujourd'hui comme C# et Java. Ici, le sommet de l'arbre représente le début du jeu et vous suivez les branches vers le bas d'un état à l'autre au fur et à mesure que le jeu avance. Dans l'image, le plateau commence vide et disons que le joueur place un X. L'ordinateur suit la branche jusqu'à l'état approprié et à partir de là, il peut regarder les branches suivantes pour voir quels états peuvent venir ensuite. Au bas de l'arborescence se trouveront tous les états finaux possibles pour le jeu. Certains d'entre eux seront assez haut, où quelqu'un en aura trois d'affilée et certains d'entre eux seront neuf couches plus bas où le tableau est plein et c'est un match nul. Alors, comment utilisons-nous l'arbre pour déterminer les coups gagnants ? Il existe, encore une fois, plusieurs façons de le faire, mais restons-en à l'exemple le plus simple. Examinons chaque « état final » possible dans l'arbre et donnons-lui une valeur selon qu'il s'agit ou non d'un bon résultat pour nous. Nous pourrions mettre un ' 1 ' sur chaque état final où nous gagnons , un ' -1 ' sur chaque état final où nous perdons et un ' 0 ' sur chaque état final où c'est un match nul . Ensuite, tout ce que nous avons à faire est de dire "la valeur d'un état particulier est déterminée en additionnant la valeur de tous les états qui pourraient venir ensuite". Imaginons que nous regardons un état où il y a deux coups suivants possibles, un où nous gagnons et un où c'est un match nul. La victoire vaut 1 point et le match nul vaut zéro donc la valeur totale de l'état actuel est 1 . Nous pouvons faire cela tout le long de l'arbre jusqu'à ce que chaque état du jeu ait une valeur en points appropriée. Ensuite , lorsque nous voulons choisir notre coup suivant , il nous suffit de choisir celui qui a le plus de points car c'est celui qui a le plus de chance de se terminer par une victoire pour nous ! Bien sûr, cette stratégie ne fonctionne pas aussi bien pour les jeux complexes comme les échecs parce qu'il y a une telle variété de coups que l'arbre devient très grand, très rapidement — trop grand pour être géré par les ordinateurs actuels. Dans ce genre de situation, nous pourrions combiner quelques stratégies d'IA différentes et espérer le meilleur. Par exemple, nous pourrions programmer l'ordinateur avec des gambits d'ouverture prédéfinis, des stratégies de fin de partie prédéfinies et utiliser notre idée d'arbre pour simuler au mieux le milieu de partie, en remplissant les blancs avec notre meilleure estimation de la valeur d'une branche. Nous pouvons couvrir le début et la fin assez complètement parce que nous avons des faits plus solides à leur sujet ; au début, tout le monde a la plupart de ses pièces et il n'y a que quelques endroits où ils peuvent être alors qu'à la fin, les gens n'ont peut-être que quelques pièces à se soucier et cela simplifie beaucoup les choses. Le milieu est délicat car nous ne pouvons pas vraiment avoir une bonne idée de la façon de peser les gains à court terme par rapport aux gains à long terme car nous ne pouvons pas modéliser toutes les possibilités, mais nous pourrions être en mesure de faire des suppositions éclairées en estimant la valeur de les pièces en jeu et la valeur de leurs positions sur l'échiquier. Bien sûr, ce genre de chose n'aura pas beaucoup de sens pour les bots dans un FPS, mais c'est une autre paire de manches.