L'ensemble des besoins utilisateur est totalement réécrit par l'analyste des besoins.
Voici la nouvelle version. Dans ce problème, les parties impliquées sont :
Chacun de ces acteurs possède certaines contraintes qui doivent être remplies (au mieux).
Un enseignant possède des contraintes à propos de :
Un groupes d'étudiants doit suivre un certain enseignement composé d'un certain nombre de créneaux horaires pour un certain nombre de matières (X plages horaires pour une matière 1, Y créneaux pour une matière 2, ...).
Une salle de cours est équipée ou non de matériel pédagogique particulier (un rétroprojecteur, un vidéoprojecteur, du matériel de TP, ...) et peut être occupée pendant une certaine plage horaire, un jour donné.
Pour chaque acteur, des contraintes doivent être données sous la forme d'une liste ordonnée. L'ordre des contraintes dans la liste donne leur importance relative; ainsi la première contrainte donnée est celle qui sera, si c'est possible, le plus facilement relâchée.
Résoudre le problème consiste à satisfaire toutes les contraintes pour établir un emploi du temps sur une durée donnée.
Afin de comparer les différentes solutions mises en oeuvre pour résoudre le problème, un scenario type est donné. Trois variantes sont proposées pour augmenter progressivement la complexité du problème; pour réaliser un emploi du temps de plus en plus complexe.
Pour chacune des trois variantes proposées ci-dessous, on peut suggérer une solution possible, qui n'est certes pas unique mais qui représente un moyen de clarifier le problème.
Dans cette première version, le problème est simplifié par le fait que seuls des créneaux de deux heures sont utilisés (8h00-10h00, 10h00-12h00, 14h00-16h00 et 16h00-18h00) et que l'emploi du temps doit être donné pour une période de deux jours.
On suppose que trois enseignants e1, e2 et e3 peuvent donner des cours, chacun dans une matière particulière. Chacun possède des contraintes et ne peut pas donner de cours durant certains créneaux horaires. Ainsi :
Pour l’instant, on suppose que le système n’a pas à gérer la disponibilité des salles : on dispose d’une salle par groupe. On suppose aussi que les acteurs ne peuvent pas relâcher de contrainte.
Dans ce cas, une solution pourrait ętre :
On ajoute des contraintes sur les salles. On suppose que trois salles s1, s2 et s3 sont disponibles. Seules les salles s1 et s2 sont munies d’un rétroprojecteur.
Tous les enseignants veulent utiliser un rétroprojecteur au moins une fois pour chaque groupe lors des deux jours.
On suppose qu’un (ou plusieurs) acteur(s) peut(vent) relâcher une(des) contrainte(s) pour proposer une solution.
Dans ce cas, une solution pourrait être :
À condition de relâcher la contrainte « salle s1 non disponible le jour j1 de 10h00 à 12h00 » pour placer e1/s1 à ce créneau et de relâcher la contrainte « salle s2 non disponible j2 de 16h00 à 18h00 » pour placer e3/s2 à ce créneau (on pourrait aussi essayer de relâcher la contrainte « e3 non disponible j2 de 8h00 à 10h00 »).
On ajoute la possibilité de modifier/ajouter des contraintes en temps réel (via une éventuelle interface graphique). Ainsi, un enseignant pourra signaler qu’il est ou non disponible pour un certain créneau horaire, une salle pourra se libérer ou au contraire devenir occupée, ...
Les contraintes pouvant évoluer dynamiquement, il faut être capable de concevoir un système qui soit capable de s'adapter aux changements sans réinitialisation complète du système multi-agent.
Par exemple, au cours de la recherche d’une solution à l’emploi du temps ci-dessus, l’enseignant e1 signale qu’il ne peut plus assurer un cours le jour j1 de 10h00 à 12h00 mais qu’à la place, il est disponible le même jour de 16h00 à 18h00.
Comment le système peut-il résoudre le problème sans interrompre la recherche de la solution et repartir de zéro ?
Une solution serait de demander à l’enseignant e3 de faire cours au groupe g3 le jour j1 de 14h00 à 16h00 pour faire passer e1/s1 du créneau 10h00-12h00 ce jour là, au créneau ainsi libéré.
Une variante 4 éventuelle pourrait être proposée pour tester l'adaptibilité du système au fait qu'il devienne ouvert. De nouveaux acteurs (enseignants, groupes d'étudiants ou salles de cours) peuvent apparaître ou disparaître en temps réel et le système doit être capable de s'adapter à ces évévenements inattendus.