Génération distribuée demploi du temps agents sous stress Pierre Chevaillier, Pierre De Loor...

Post on 04-Apr-2015

105 views 1 download

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