[Mathématiques appliquées] Planning

Hey les geeks :smiley:

Quoi de mieux pour débuter la semaine qu’un sympa et rigolo petit problème de maths version vie réelle ? :smiley:
Non, parce que là, ça fait deux heures que je suis dessus, je me retrouve à me demander ce que c’est, l’unité qu’on obtient quand on multiplie des gens par des semaines, et je ne sais pas si c’est parce que je sors de garde ou parce que mon cerveau est en état marmeladesque DE BASE, mais je patauge…

Problème, version simple :
Nous sommes 7 personnes, pour un stage de 6 mois soit 25 semaines, dans un service qui comporte 3 ailes : les urgences, et deux autres.
Nous voudrions établir un roulement avec :

  • toujours 3 postes aux urgences, 2 postes dans chacune des 2 autres ailes.
  • chacun passe par les 3 ailes de façon à peu près équitable (il faut rester mettons un mois et demi dans la même aile grand minimum)
  • un minimum de continuité : on ne peut pas se permettre de changer d’aile tous les 3 jours

J’en suis à ne plus savoir avec certitude si une solution EXISTE.
(Après, si vous trouvez, je vous ferai la même avec les détails rigolos. (la 8ème personne mais qui n’est là que pour un ou deux mois et qui peut aller où elle veut, la personne parmi les 7 qui sera peut-être absente un mois pendant que la 8ème est présente et qui peut ne pas aller du tout aux urgences, les gardes, les astreintes, les vacances et les repos de garde B) ))

Vous avez 24h B)
Sauvez-moi

Si je me souviens bien, pas mal de problèmes de ce type sont NP complets, ce qui veut dire qu’il n’y a pas de solution trouvable en temps polynomial…

Oh B)

Une simple permutation circulaire ça suffirait pas ?

Exemple avec les 7 personnes nommées A, B C D E F et G.
On a le tableau suivant (dans l’ordre : Urgence - Aile 1 - Aile 2 ):

A B C - D E - F G
G A B - C D - E F
F G A - B C - D E
E F G - A B - C D
D E F - G A - B C
C D E - F G - A B
B C D - E F - G A

Et hop on a fait le tour.
Ainsi, pour faire un cycle complet, il faut donc 7 permutations.
Comme c’est par tranche de 6 mois, ça fait une permutation toutes les 3,5 semaines environ.

Et ça semble répondre à tes critères : toutes les personnes visitent tous les services. Et y a pas trop de roulement au sein d’un même service, sauf à la première permutation, où C E et G ne passeront que 3,5 semaines dans leur service avant de changer. Après, ils changeront au minimum toutes les 7 semaines.

si on part des principes:

qu’il faut faire des semaines completes
qu’on represente les differentes personnes comme une file (123 45 67)
qu’il faut 6 rotations pour passer par tous les posts

S1-4: 123 45 67 S5-8: 234 56 71 S9-12: 345 67 12 S13-16: 456 71 23 S17-20: 567 12 34 S21-25 671 23 45

mais le 1 passe 2 fois aux urgences (soit 9 semaines au lieu de 4 :x), et le brassage est limité

grillé dans la meme minute, je te hais fmp. ah legere difference, les semaines completes qui resultent dans 6 permutation, pas 7

et on peut toujours reduire cet ecart (1 et ses 9 semaines d’urgence) avec un roulement sur 2 semaines:

S1-2: 1234567 S3-4: 2345671 S5-6: 3456712 S7-8: 4567123 S9-10: 5671234 S11-12: 6712345 S13-14: 7123456 S15-16: 1234567 S17-18: 2345671 S19-20: 3456712 S21-22: 4567123 S23-25: 5671234

En même temps, la solution parfaite n’existe certainement pas, mais une solution qui rentre dans ces critères “a peu près”, ça devrait se trouver.

Edit : tiens, pris de vitesse. Ca m’apprendra a ne pas rafraichir une page avant de repondre

[quote=“Teocali, post:6, topic: 46410”]En même temps, la solution parfaite n’existe certainement pas, mais une solution qui rentre dans ces critères “a peu près”, ça devrait se trouver.

Edit : tiens, pris de vitesse. Ca m’apprendra a ne pas rafraichir une page avant de repondre[/quote]
C’est ce que j’allais rajouter avant que la zone ne trouve une solution B)

Excusez moi si je dis une betise mais :

Soit a,b,c,d,e,f,g les 7 personnes (en colonne)
Soit de 1 à 25 le nombre de semaine (LES 25LIGNES)
Soit A, B, C les salles (Urgences et les 2 autres) :
(a) ( b ) ( c) (d) (e) (f) (g)
A A A B B C C
C A A A B B C
C C A A A B B
B C C A A A B
B B C C A A A
A B B C C A
A A B B C C A
A A A B B C C
A A A B B C C
C A A A B B C
C C A A A B B
B C C A A A B
B B C C A A A
A B B C C A A
A A B B C C A
A A A B B C C
A A A B B C C
C A A A B B C
C C A A A B B
B C C A A A B
B B C C A A A
A B B C C A A
A A B B C C A
A A A B B C C
C A A A B B C

Chaque serie se repetant 3 fois (tu peux les regrouper pour que ca ne change que tous les 3 semaines…j’ai bon ?

edit : bon et bien on c’est tous precipité la dessus comme la misere … ca va en faire des bierres

Je suis de l’avis de Kanelloon , d’ailleurs les programme de gestion d’emploi du temps si ils ne sont pas repandu c’est pour cette raison . on ne peut pas les systematiser et donc en tirer un shema directeur pour les etablir en fonction de parametres libres .

J’ai une solution faite à l’arrache où tout le monde change tous les mois et demi ( ca fait que 4 rotations : continuité ok, et personne ne se tape un service pas cool 3 mois d’affilée ), et tout le monde passe par toutes les ailes. Ca donne ca :

123 45 67
456 17 23
137 26 45
246 53 17

Le seul défaut c’est pour l’équité qui n’est pas respectée à 100% : tout le monde passe 2 fois dans un même service ( normal avec 3 services et 4 rotations ), c’est les urgences pour tout le monde sauf pour les numéros 5 et 7 : 5 va deux fois dans l’aile 1 et 7 deux fois dans l’aile 2. Ca fait moins de 30% de “privilégiés”, et je ne serais pas étonné que tu trouves 2 personnes dans le lot qui aient une bonne raison de ne pas trop camper aux urgences ( genre souffrant de mal de dos chronique ou autre problème de santé incompatible avec ce service ).

Ca fait un peu usine à gaz à coté des simples rotations périodiques, mais dans la pratique c’est beaucoup plus simple vu qu’il y a moins de changements, aucun changement “prématuré” ( personne qui part apres moins de 2-3 semaines ), et c’est pas si inégalitaire que ca.

C’est clairement pas la solution mathématique ultime, mais il est évident que dans ce problème l’équité et lun faible nombre de changements de postes sont deux objectifs opposés ; à toi de chercher le bon équilibre. L’équité parfaite, avec un très grand nombre de changement, c’est 10.7 semaines aux urgences pour tous. Avec ce que je propose, c’est 12.5 semaines pour les loosers et 4 changements. A toi de régler le curseur entre ces 2 extrêmes B)

C’est un probleme NP Complet, donc si tu veux la solution optimale, il va falloir emumerer l’ensemble des solutions possibles.

Mais il y a des solutions. Dans un gros lycée les instances sont bien plus compliquées que ton problème, pourtant on a des solutions.

La programmation par contrainte permet de faire facilement ce genre de chose,
On donne à notre systeme une liste de contraintes, et le systeme ce charge de reduire l’arbre de solution…
Ca ne resoud pas P=NP mais ca donne des heurstiques qui permettent de resoudre ce genre de probleme en un temps raisonable.

Malheuresement, je te le ferai bien dans les 24h, mais je ne peut utiliser la licence du logiciel qui fait ça qu’a la fac, et j’ai pas encore mes mdp. Donc je peux pas te le faire… Mais ptet la semaine prochaine…

Mais pour plus d’information : http://fr.wikipedia.org/wiki/Programmation_par_contraintes
Logiciel : http://www.ilog.com/products/cp/

Roh waaah, j’ai jamais fait une sieste aussi productive de ma vie :smiley:
Merci le monde, vraiment B)

Je n’avais pas pensé qu’on puisse ne pas fonctionner en semaine complète, mais avec la solution de FMP, en définitive, ça ne fait que deux changements vraiment rapides (aux deux extrémités de la boucle), et les autres enchaînent tous 7 semaines de suite… Je vais regarder ce que ça donne sur un vrai calendrier, ça devrait être jouable !

Pour les autres propositions, ça risque d’être plus difficile à faire passer, soit parce qu’on risque de ne pas trouver pile le bon profil de répartition (une seul personne qui va deux fois aux urgences), soit parce que l’administration va nous mettre des bâtons dans les roues (pas le droit de ne pas passer aux urgences).

Mais là, ça me fait plein de pistes à explorer pour adapter aussi aux détails rigolos que j’évoquais plus haut en fin de post.
Un grand merci à vous tous. (Y compris à Avavrin, qui parle trop compliqué pour ma marmelade cérébrale B) )

Même pas en fait, y a qu’un seul changement rapide, c’est quand tu mets en place le planning : au bout de 3,5 semaine, le premier changement arrive, et les personnes C, E et G vont changer de service.
Mais à la 7eme permutation, quand tu reviens à la première, ça fait que :

A est resté 7 semaines en Aile 2 et revient aux Urgences
B est resté 3,5 semaines aux Urgences et entame les 3,5 suivantes
C est resté 7 semaines aux Urgences et entame ses dernières 3,5 semaines
D est resté 10,5 semaines aux Urgences et passe en Aile 1.
E est resté 3,5 semaines en Aile 1 et entame les 3,5 semaines suivantes.
F est resté 7 semaines en Aile 1 et passe en Aile 2
G est resté 3,5 semaine en Aile 2 et entame les 3,5 semaines suivantes.

Bref, chacun est bien dans un cycle d’au moins 7 semaines de suite dans le même service une fois que le planning tourne.

Sur un calendrier ce qui va pas forcément coller, c’est le 3,5 semaines qui est un arrondi (c’est 3,42 et des bananes en réalité).
Mais genre tu fais un changement le mercredi, le suivant le jeudi, et ça doit coller.

Et de rien, ça fait plaisir de voir qu’on peut rendre service B)

Le truc, c’est qu’on partira, au bout de 6 mois B)

Ah ok dans ce cas… B)

ah ben merde alors, tout le monde s’amuse quand je suis pas là !!!

[quote=“FMP_thE_mAd, post:13, topic: 46410”]Sur un calendrier ce qui va pas forcément coller, c’est le 3,5 semaines qui est un arrondi (c’est 3,42 et des bananes en réalité).
Mais genre tu fais un changement le mercredi, le suivant le jeudi, et ça doit coller.[/quote]

En meme temps, 3.42 ça colle mieux que 3.5 sur des semaines de 5 jours. Ca fait un changement toute les 3 semaines, 2 jours et 42 minutes… Je pense que ça va pas être un drame si elle laisse tomber les 42 minutes…
(3.42 semaines… 42minute… C’est bizarre ce nombre… J’me demande si il signifie qqch B))

Ouai enfin bon, c’est peut-être pas des semaines de 5 jours dans les hopitaux en fait… Mais ça colle peut coller un peu quand même non?

(Viens ici, on est que 3 pour 3 ailes)