L'objectif de ce cours est de modéliser et résoudre certains problèmes complexes en utilisant des algorithmes dits « collaboratifs ». Ceux ci ont pour particularités de prendre exemple sur la nature (algorithmes génétiques, colonies de fourmis,..., réseaux de neurones) et d'utiliser l'expérience collective d' « individus » (agents) aux capacités faibles pour en faire une intelligence collective. Par exemple, les réseaux de neurones cherchent à imiter la capacité du cerveau à résoudre un problème en se servant de la multitude de neurones (ayant chacun une faible capacité de résolution) qui le composent. Les applications traitées en cours sont variées : reconnaissance de caractères, détection de contours (dans une image), résolution d'un jeu de poker (simplifié) (voire d'autres jeux), décodage d'un texte, recherche d'un chemin le plus court (Dijkstra, voyageur de commerce), détection de pannes, allocation de bus et Cartographie et Localisation Simultanées par utilisation de robots...