# Intelligence artificielle distribuée

L'intelligence artificielle distribuée (IAD) est le domaine de l'intelligence artificielle qui concerne la collaboration entre plusieurs agents intelligents pour accomplir des tâches complexes.
Contrairement à un seul système centralisé prenant toutes les décisions, l'IA distribuée répartit la charge de travail et de prise de décision entre plusieurs agents autonomes. C'est un domaine en plein essor, doté d'un fort potentiel d'innovation.
Tirant parti de la puissance de la collaboration, l'IA distribuée peut contribuer à la résolution de problèmes complexes, et à créer des systèmes plus intelligents et plus adaptables.
On distingue :
* les cas où il s'agit d'adapter les approches de l'intelligence artificielle classique à une architecture distribuée (par exemple avec une parallélisation des programmes)
* les approches où l'IA est initialement conçue pour être répartie sur un certain nombre d'entités (réseaux de neurones artificiels, systèmes multi-agents) de façon similaire à une intelligence distribuée.
Bien que le terme intelligence artificielle distribuée soit souvent considéré comme un synonyme pour le champ d'études des systèmes multi-agents, le terme intelligence artificielle Décentralisée peut lui être préféré afin d'éviter toute confusion avec l'intelligence distribuée (intelligence en essaim).

## Spécificités et intérêt

Les systèmes d'IA distribuée présente, notamment, quatre spécificités :
* Décentralisation : Il n'y a pas d'autorité centrale unique. Les agents opèrent de manière autonome et collaborent entre eux pour atteindre un objectif commun.
* Robustesse : Le système est plus robuste aux défaillances individuelles car les agents peuvent compenser les uns pour les autres.
* Évolutivité : Le système peut généralement facilement être étendu par l'ajout de nouveaux agents.
* Flexibilité : Les agents peuvent s'adapter à des environnements et des situations changeantes, dont aux changements dans la définition du problème ou dans l'ensemble de données utilisé.
Ces propriétés lui permettent de résoudre des problèmes nécessitant le traitement de jeux de données très volumineux.
Ces programmes consistent en des nœuds de traitement d'apprentissage autonomes (agents), qui sont distribués, souvent à très grande échelle.
Chaque nœud peut agir indépendamment. Les solutions partielles sont intégrées en communiquant entre les nœuds, souvent de manière asynchrone. Ces systèmes sont robustes et élastiques. Ils ne nécessitent pas que toutes les données pertinentes soient agrégées en un seul endroit, contrairement aux systèmes d'intelligence artificielle monolithiques ou centralisés, qui ont des nœuds de traitement étroitement couplés et géographiquement proches.
En conséquence, ils fonctionnent souvent sur des sous-échantillons de très grands ensembles de données. Enfin, l'ensemble de données source peut changer ou être mis à jour au cours de l'exécution d'un système.

## Utilisations

L'intelligence artificielle distribuée est utilisée pour résoudre des problèmes complexes d'apprentissage, de planification et de prise de décision. La parallélisation des programmes permet d'exploiter le calcul à grande échelle et la distribution spatiale des ressources informatiques.
L'IA distribuée est utilisée dans une variété d'applications, dont par exemple :
* Robotique collective : Typiquement, les essaims de robots sont rendus capables de coopérer pour accomplir des tâches (ex. : recherche et sauvetage, nettoyage de l'environnement).
* Réseaux intelligents : Gestion et optimisation de la distribution d'énergies (de fluides ou d'autres ressources).
* Véhicules autonomes : Communication et coordination entre les véhicules pour une conduite plus sûre et plus efficace.
* Internet des objets (IoT) : Analyse et traitement de données collectées par des millions d'appareils connectés.