Motivation of this course: Learn two important techniques, used in the development of systems.

·         Modelling: an abstract representation of the system or of some of their aspects. Often, we have two basic aspects: structural aspect (the rigid and fixed part), and the dynamic aspect (or the behaviour of the system).

·         Performance evaluation: in this activity, we are interested about measuring a set of metrics. These metrics are related to the studied system, or the case study. Here below, we give several examples of metrics.


Les méthodes et techniques de l’IA font intervenir de nombreux concepts mathématiques et logiques. L’objectif de ce cours et de donner une vue générale de certains de ces concepts dont le rôle est essentiel en IA.

Les problèmes de connaissance et « l’art de penser » ne sont pas apparus avec la naissance de l’IA mais bien avant des siècles, par des philosophes comme Aristhote.

Il y a un fait que tous les logiciens ne peuvent nier : les chaînes de déduction qui constituent les preuves formelles dans n’importe quel système logique, ont tendance à être longue. Ainsi, l’IA est née le jour où on disposait d’ordinateurs assez puissants pour leur faire effectuer ces longues preuves que l’on ne pouvait faire à la main.

Pour être efficace dans un contexte donné, un programme doit posséder une connaissance de ce contexte, représentée dans un formalisme exploitable par ce programme. Le but de la logique est de formaliser le raisonnement. Elle constitue précisément d’un formalisme de représentation de la connaissance qui s’accompagne d’outils de manipulation permettant de déterminer la véracité des assertions.

La logique des propositions et des prédicats constituent une théorie importante, mathématiquement développée et formalisée du savoir et du raisonnement et donc indispensable pour la représentation et la manipulation des connaissances. Néanmoins, il s’avère que ces formalismes ne répondent pas à tous les besoins de la représentation de la connaissance ou de raisonnement : les connaissances incertaines, évoluant dans le temps,…

Parmi les logiques qui ont été introduites pour formaliser de telles types de connaissances incomplètes, incertaines ou évolutives : les logiques modales, la logique temporelle, les logiques multi-valuées et la logique floue.

  • The objective of this module is to compare the performance of algorithms that make the same tasks to find a good algorithm. The content of the module is dedicated on the one hand, to the theory of the algorithms complexityproblems complexitygrowth of functions and performance measurement. And on the other hand, to the presentation of the different combinatorial optimization methods.
  • Achieving this objective requires basic knowledge relating to the field of algorithmic analysis and complexity optimization techniques presented by: methods for calculating the complexity of algorithms -uniform cost and logarithmic cost- and the problem complexity classes, optimization , dichotomy and D&C strategy.
  • The content of this module allows you to present the notion of combinatorial optimization, the exact methods: Branch & Bound algorithm as well as approximate methods for solving an optimization problem, and in particular,  the study of specialized heuristics: Greedy Algorithm, exploration methods with information: LS, A* and Hill Climbing Algorithms .
  • And the study of metaheuristic techniques : TS, SA and GA.

Ce module est consacré aux aspects fondamentaux de l’analyse des données  et repose sur le traitement pratique des données et sur les applications des différentes méthodes d’analyse.