Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Génération distribuée demploi du temps agents sous stress Pierre Chevaillier, Pierre De Loor...
-
Upload
andrion-lafon -
Category
Documents
-
view
105 -
download
1
Transcript of Génération distribuée demploi du temps agents sous stress Pierre Chevaillier, Pierre De Loor...
Génération distribuée d’emploi du temps
agents sous stress
Pierre Chevaillier, Pierre De Loor
LI2-ENIB
Plan
PrincipesModèleImplémentation : démonstrationExtensionConclusions
Principes
Simplicité ne pas distribuer un algorithme de résolution
classique ne pas négocier (mémorisation-historique-usine
à gaz) multi-agents : diffusion/influence
Observation de réunions stress individuel stress collectif seuils de tolérance
Principes
prof détendu
prof détendu
prof détendu
élèves détendus
élèves détendusélèves détendus
Principes
Fixer des objectifs aux élèves obtenir un cours E1 obtenir un cours E2 etc.
Objectifs non atteints stress -> requête
prof détendu
prof détendu
prof détendu
Diffusion« nous voulons un coursE1 »
« nous voulons un coursE1 et E2»
Principes
Elèves stressés
Principes
Un prof perçoit une requête ça le stresse s’il est compétent (matière enseignée)
il cherche un créneau disponible• s ’il le trouve, il le propose• sinon il se stresse
s’il n ’est pas compétent il ne fait rien
prof stressé
prof stressé
prof détendu
Principes
Lundi 8-10 E2
Lundi 8-10 E1
Principes
Les élèves peuvent refuser une offre créneau déjà pris les refus stressent tous les agents les profs trop stressés « piquent une
colère »annulation de leurs cours descente du stress
Principes
prof en colère
prof stressé
prof stressé
« nous voulons un coursde E1 et de E2 »
« nous ne voulons pas de l ’offre »
elèves stressés
elèves stressés
« j ’annule mes cours »
La variable de stress
temps
stress1
0
tolérance
crise
colèrerequête
La variable de stress
Probabilité de colère tous les agents ne se mettent pas en
colère au même moment les agents concernés par les refus sont
plus stressés que les autres (gêneurs)
ModèleAgent sous stress
buts personnels buts requis (par les autres) compétences
Messages requête (compétence) offre (but) refus (offre) désengagement (but)
Agent stressé
Agent
Request
Bid
Message
BidDenialGoal
Skill
Stress
Cancellation
createGoal() skills
name : string1 *
1
reachedPersonalGoals
personalGoals
+messageProcess(In msg:Message)
0..1 0..1
-stress
1
#behavior()
#reach(In goal:Goal):boolean#accept(In goal:Goal):boolean
*
goal1
goal 1goal1
*
RequestedGoals
*
*
*
0..1
0..1
reachedRequestedGoals
0..1
Dynamique du stress
State
Cool
Stressed
Crisis
[evaluate() > toleranceLevel]
[evaluate() <= toleranceLevel]
[evaluate() > crisisLevel]
/relax()
request or BidDenial or Cancellation received/increase()
[(personalGoals) not empty ]/increase()
Request sent/decrease()
[no messages received]/decrease()
bidSent/decrease()
Comportement
Behavior
p roAction
Request(personalGoal)Cancellation
coolBehavior
[stress.state = Stressed]
[stress.state = Crisis][stress.state = Cool]
Traitement des messagesrequête - offre
Request Processing: Bid processing:
RequestBid
newGoal = createGoal(request.skill)
Bid
ok = accept(bid.goal)
personalGoals.remove(bid.goal)
reachedPersonalGoals.add(bid.goal)
BidDenial
ok = reach(newGoal)
requestedGoals.add(newGoal)
[bid.goal in self.personalGoals][request.skill in self.skills]
[ok]
[ok]
[not ok]
[not ok]
Traitement des messagesRefus offre - abandon buts
BidDenial Processing: Cancellation Processing:
BidDenial
reachedRequestedGoal.remove(bidDenial.goal)
Cancellation
ok = cancellation.goal in reachedPersonalGoals
reachedPersonalGoals.remove(goal)
personalGoals.add(newGoal)
[bidDenial.goal in reachedRequestedGoals]
[ok]
[not ok]
Agent Prof
Attributs stress buts personnels : aucuns buts requis : PlacerUnCours compétences : Trouver Prof et Créneau
Messages émis offre (PlacerUnCours) désengagement (PlacerUnCours)
Agent Elève
Attributs stress buts personnels : placerUnCours buts requis : aucuns compétences : aucunes
Messages émis requête (Trouver Prof et Créneau) refus (placerUnCours)
Prof-élèves : agents stressés
CourseS ettingTimeS lot
Agent
CourseProposal
Skill
Goal
TeacherS tudent
0..1
accep t()
student1
reach()teacher0..1
subject : string
subject : string
Implémentation
oRismodification dynamique
ajout d ’étudiants ajout de professeurs ajout de créneaux disponibles
Introduction de salles
Agents stressés stress buts personnels : aucun buts requis : Localiser un Cours compétences : trouver une salle
Mise en œuvre obtenir un comportement générique pas de « séquence » de résolution
Compétences plus génériques : unification partielle
Unification d ’attributs Cours
élèves : g1prof : e2horaire : Xsalle : X
Compétence = unification partielle d ’attributs prof : unifie prof et horaire salle : unifie salle
Notion de But « presque atteint »
Nouvelles requêtes
Contiennent un but « pas ou presque atteint »
Acceptation Si les compétences permettent d ’enrichir
le but requis Si le but requis possède certaines
caractéristiquesexemple : les salles n ’accepteront de traiter le
but « Cours » que si celui-ci possède un créneau.
Acceptation d ’une offre
Si le but proposé était non atteint acceptation
Sinon si le but proposé enrichit un but presque
atteint : acceptation un attribut contradictoire par rapport à
un but presque atteint : refus
Conclusion
Résolution multi-agentsSimpleExtensibleDynamiquePremiers résultats encourageants