Système utilitaire

From Wikipedia, the free encyclopedia

Dans l'intelligence artificielle des jeux vidéo, un système d'utilité, ou IA utilitaire, est une méthode simple, mais efficace pour modéliser les comportements des personnages non-joueurs . En utilisant des nombres, des formules et des scores pour évaluer l'intérêt relatif des actions possibles, on attribue une utilité à chaque action. Un comportement peut alors être sélectionné en fonction de son score d'utilité le plus élevé, ou en utilisant ces scores pour initialiser la distribution de probabilité d'une sélection aléatoire pondérée. Ainsi, le personnage choisit le comportement le plus adapté à la situation donnée, selon la définition mathématique de ces comportements.

Concepts clés

Le concept d'utilité existe depuis des siècles, principalement dans des domaines fortement dépendants des mathématiques comme l'économie . Cependant, il a également été utilisé en psychologie, en sociologie et même en biologie . De ce fait, et compte tenu de la nécessité inhérente de convertir les concepts en termes mathématiques pour la programmation informatique, son utilisation s'est imposée naturellement comme moyen de concevoir et d'exprimer les comportements des personnages de jeux vidéo.

Naturellement, chaque architecture d'IA présente ses avantages et ses inconvénients. L'un des atouts de l'IA utilitaire réside dans sa conception moins « manuelle » que celle de nombreuses autres architectures d'IA de jeu. Si les comportements d'un système utilitaire sont souvent créés individuellement (et manuellement), leurs interactions et priorités ne sont pas prédéfinies. Par exemple, les arbres de comportement (AC) exigent du concepteur qu'il spécifie les priorités séquentiellement afin de déterminer si une action doit être effectuée. Ce n'est que si ce comportement (ou cette branche de l'arbre) n'est PAS exécuté que le système d'arbre de comportement passe au comportement suivant.

En comparaison, dans de nombreux systèmes utilitaires, les comportements s'organisent automatiquement par priorité selon les scores générés par la modélisation mathématique définissant chaque comportement. De ce fait, le développeur n'a pas besoin de déterminer précisément la place du nouveau comportement dans le schéma global, qui peut comprendre des milliers de « nœuds » comportementaux. L'accent est plutôt mis sur la définition des raisons spécifiques pour lesquelles le comportement en question serait bénéfique (c'est-à-dire son « utilité »). Le système de décision attribue ensuite un score à chaque comportement en fonction du contexte et sélectionne le plus pertinent. Bien qu'il faille veiller au respect des normes afin que l'attribution des scores repose sur des principes identiques ou similaires, la complexité du traitement de dizaines, voire de centaines, de comportements différents est déchargée du concepteur et confiée à l'exécution du système.

Arrière-plan

Utilisation précoce

Les nombres, les formules et les scores sont utilisés depuis des décennies dans les jeux pour définir les comportements. Même une mesure aussi simple que la définition d'un pourcentage de chances pour qu'un événement se produise (par exemple, 12 % de chances d'effectuer l'action X) a constitué une première étape vers l'intelligence artificielle utilitaire. Ce n'est toutefois qu'au début du XXIe siècle que cette méthode a commencé à se formaliser, adoptant l'approche désormais communément appelée « intelligence artificielle utilitaire ».

Modélisation mathématique du comportement

Dans Les Sims (2000), le « besoin » actuel d'un PNJ (par exemple, se reposer, manger, interagir socialement) était combiné à la valeur d'un objet ou d'une activité susceptible de satisfaire ce même besoin. La combinaison de ces valeurs attribuait un score à l'action, indiquant au Sim la marche à suivre. Il s'agissait là d'une des premières utilisations visibles d'une IA utilitaire dans un jeu. Bien que le joueur n'assiste pas aux calculs eux-mêmes, il était conscient des besoins relatifs du Sim et des différents degrés de satisfaction que les objets du jeu pouvaient lui procurer. C'était, en réalité, le mécanisme de jeu principal.

Dans Les Sims 3 (2009), Richard Evans a utilisé une version modifiée de la distribution de Boltzmann pour déterminer les actions des Sims. Il a notamment utilisé une température basse lorsque le Sim est heureux et élevé lorsqu'il est malheureux, afin d'augmenter la probabilité qu'une action peu utile soit choisie[1]. Il a également intégré des « personnalités » aux Sims, créant ainsi une sorte de modèle à trois axes. Ce modèle étend les valeurs numériques des « besoins » et de la « satisfaction » pour inclure les préférences, permettant ainsi à différents PNJ de réagir différemment dans les mêmes circonstances, en fonction de leurs désirs et motivations intrinsèques.

Dans son ouvrage Behavioral Mathematics for Game AI[2], Dave Mark explique en détail comment appréhender mentalement le comportement en termes mathématiques, notamment à travers les courbes de réponse (conversion des variables d'entrée en variables de sortie). Avec Kevin Dill, il a ensuite donné plusieurs conférences pionnières sur la théorie de l'utilité lors du Sommet sur l'IA de la Game Developers Conference (GDC) annuelle à San Francisco, dont « Improving AI Decision Modeling Through Utility Theory » en 2010 [3] et « Embracing the Dark Art of Mathematical Modeling in AI » en 2012 [4] Ces conférences ont contribué à populariser l'IA basée sur l'utilité comme architecture de référence, au même titre que les automates à états finis (AEF), les arbres de comportement et les planificateurs.

Un « système utilitaire »

Alors que les travaux de Richard Evans et des programmeurs d'IA qui lui ont succédé sur la franchise Les Sims, tels que David « Rez » Graham[5], étaient fortement inspirés de l'IA utilitaire, Dave Mark et son collègue d'ArenaNet, Mike Lewis, ont présenté une architecture entièrement autonome qu'il avait développée lors du Sommet sur l'IA de la GDC 2015 : l'Infinite Axis Utility System (IAUS) [6]. L'IAUS a été conçu comme une architecture autonome, pilotée par les données, qui, une fois connectée aux entrées et sorties du système de jeu, ne nécessitait que peu de programmation. D'une certaine manière, cela le rendait similaire aux arbres de comportement et aux planificateurs, où le raisonneur (ce qui prend les décisions) était entièrement défini et où il revenait à l'équipe de développement d'ajouter les comportements selon ses besoins.

Utilité avec d'autres architectures

De plus, plutôt que de proposer une architecture autonome, d'autres chercheurs ont étudié et présenté des méthodes d'intégration des calculs d'utilité dans des architectures existantes. Bill Merrill a rédigé un chapitre du livre Game AI Pro[5] intitulé « Building Utility Decisions into Your Existing Behavior Tree[3] », présentant des exemples de réutilisation des sélecteurs dans les arbres de comportement pour exploiter des calculs mathématiques basés sur l'utilité. Il en résulte une architecture hybride performante qui conserve une grande partie de la structure formelle classique des arbres de comportement tout en bénéficiant de la robustesse offerte par l'utilité. L'IA basée sur l'utilité peut également être intégrée à d'autres architectures selon une approche modulaire, chaque architecture prenant en charge une tâche spécifique. Par exemple, dans une étude[4], les auteurs ont appliqué un système d'utilité pour calculer les valeurs d'utilité des ordres stratégiques de haut niveau dans un jeu tactique en équipe, tandis que la recherche arborescente Monte-Carlo (MCTS) a été utilisée pour exécuter ces ordres au niveau tactique.

Voir aussi

Références

Related Articles

Wikiwand AI