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.

Variante 1 : cas de base, la résolution est possible sans relâcher de contrainte

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 :

Trois groupes d'étudiants sont considérés : g1, g2 et g3. Chacun d'eux doit suivre, sur ces deux jours, deux cours de deux heures effectués par chacun des enseignants e1, e2 et e3 (soit, pour chaque groupe, 12h d’enseignement au total).

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 :
 
Une solution possible poru la première variante du problème ETTO

Variante 2 : contraintes supplémentaires sur les salles de cours, résolution possible en relâchant certaines contraintes

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 :
 
Une solution possible à la seconde variante de ETTO

À 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 »).

Variante 3 : les contraintes peuvent changer en temps réel, adaptibilité à un environnement dynamique

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é.
 

Variante 4 : Les acteurs peuvent apparaître ou disparaître dynamiquement, ouverture du système

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.