Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 Re : Café mathématique » Modélisation d'équation » 22-11-2017 13:49:13

Un employé ne travaille que sur une seule valeur d'une liste de créneau horaire.
Par exemple si on prend la liste de créneau du lundi :
['10h30-14h30', '14h15-18h45', '18h30-20h30', '19h15-20h45', '19h30-21h15/22h00-23h00', '21h15-22h45']
Employé A travaillera que sur une seule valeur de cette liste !
Cette liste contient 6 valeurs, ce qui veut dire que 6 employés sur 9 travailleront ce jour ! 3 seront donc en repos

#2 Re : Café mathématique » Modélisation d'équation » 21-11-2017 19:23:15

Les nombres de plages horaires par jour correspondent implicitement aux nombre de personnes travaillant par jours.
par exemple : "Sa":"19h30-21h15/22h-23h00" correspond à un créneau horaire. Cela veut dire que l'employé qui a ce créneau travail le samedi de 19h30 à 21h15, par en pause et reviens pour travailler de 22h à 23h.
Le cinema est ouvert 7j/7 et tout les employés travaillent le week end c'est pour cela que le nombre de valeur dans les listes de samedi et dimanche sont égales aux nombre d'employé et de ce fait que les nombres de valeurs dans les listes des autres jour de le semaines correspondent au nombre d'employé total - le nombre d'employé en repos.
Un employé travail entre 5 et 6 jours par semaine min et max. Il a donc soit 1 soit 2 jours de repos.
Les plages horaires données dans les listes ne sont donc donné qu'une seule fois

J'espère avoir apporter des précisions et pas l'inverse !

#3 Re : Café mathématique » Modélisation d'équation » 21-11-2017 19:12:49

J'y vois un petit peu plus clair maintenant que j'ai posé mon problème correctement ! Comme tu le dis ce n'est pas un probleme mathématiques mais plus de programmation. Je code en Java.

Voici un jeu des 7 listes dont je parlais correspondante au listes des différentes créneaux a occuper dans le cinéma:

Listes des créneaux

Lundi {21h15-22h45,19h15-20h45,14h15-18h45,10h30-14h30,18h30-20h30,19h30-21h15/22h00-23h00}
Mardi {19h30-20h15/21h15-22h45,19h15-20h45,10h30-14h30,14h15-18h45,18h30-21h15/22h00-23h00}
Mercredi {17h30-18h15/19h15-21h30,10h30-12h30/13h30-17h00,19h30-20h15/20h45-22h45,12h30-17h00,10h45-11h30/13h00-17h00,16h45-21h15/22h00-23h00}
Jeudi {10h30-15h00,19h15-20h15/20h45-22h45,14h45-18h30/19h30-21h30,18h30-21h15/22h00-23h00}
Vendredi {19h30-21h15/22h00-23h00,17h45-21h30,19h00-20h30/21h45-22h45,14h15-18h30,10h30-14h30,19h15-20h15/20h45-23h00}
Samedi {13h00-14h15/15h30-17h00,17h45-18h15/19h00-20h15/20h45-23h00,14h45-16h45/17h30-20h15/21h45-23h00,14h15-16h45/17h45-18h15/19h15-20h30,15h45-18h15/19h30-21h30,10h45-11h30/12h30-14h15,10h30-12h30/13h15-14h45}
Dimanche {19h30-20h15/20h45-22h45,17h45-18h15/19h15-20h45,10h45-11h30/13h00-14h30,15h45-16h45/17h45-21h15/22h00-23h00,14h30-17h00,12h30-18h30,10h45-11h30/13h30-14h30/15h30-17h00,10h30-12h30/13h15-14h15/14h45-17h00}

Ne pas faire attention aux "/"
Les séparateurs de valeurs dans les listes de valeurs sont les ",".

Comme on peut le constater toutes les listes n'ont pas le meme nombres de créneaux car chaque jours (hors samedi/dimanche) plusieurs employés sont en repos.
En théorie se sont tout le temps les mêmes aux mêmes jour mais cela peut occasionnellement changer ou bien un jour de repos peut disparaitre. De ce fait, certaines semaine, la liste du lundi contiendra 7 valeurs au lieu de 6.

{
  employé 1 : {valeurLundi, valeurMardi,  valeurVendredi, valeurSamedi, valeurDimanche}
  employé 2 : {valeurLundi, valeurMardi, valeurMercredi, valeurSamedi, valeurDimanche}
  employé 3 : {valeurMardi, valeurMercredi, valeurJeudi, valeurVendredi, valeurSamedi, valeurDimanche}
  employé 4 : {valeurMercredi, valeurJeudi, valeurVendredi, valeurSamedi, valeurDimanche}
  employé 5 : {valeurLundi, valeurMercredi, valeurJeudi, valeurVendredi, valeurSamedi, valeurDimanche}
  employé 6 : {valeurLundi, valeurMardi, valeurMercredi, valeurVendredi, valeurSamedi, valeurDimanche}
  employé 7 : {valeurLundi, valeurMardi, valeurMercredi, valeurSamedi, valeurDimanche}
  employé 8 : {valeurLundi, valeurJeudi, valeurVendredi, valeurSamedi, valeurDimanche}
}


Une fois que mon programme me sortira les x combinaisons possible je pourrais passer des filtres par dessus pour retirer toutes les combinaisons ne respectant pas certaines règles internes de l'entreprise qui elles aussi changent souvent.

Ce que je souhaitais obtenir etant un panel de solution "brute" me permettant par la suite d'affiner le lot de solutions pour n'en garder que le nombre voulu (celles qui respectent les x critères) puis en tirer une parmis ces solutions

Je me suis a peine intéresser aux solutions existantes sans y avoir trouvé mon bonheur mais sans avoir vraiment chercher dans ce sens car je trouve plus sympa de developper sa propre solution

mat

#4 Re : Café mathématique » Modélisation d'équation » 21-11-2017 14:08:43

Si j'ai bien compris ta réponse, c'est en partie ce que je recherche.

Concrètement, voici ce que j'ai et ce que je recherche.

Je dispose des créneaux horaires qui doivent être rempli pour chaque jour de la semaine; Le nombre de créneaux n'est pas fixe et varie en fonction des jours et des semaines.

Je dispose également d'une liste d'employé. Ce que je recherche c'est de pouvoir sortir toutes les combinaison possible de planning en prenant en compte que l'employé peut aussi ne pas avoir de créneaux attribué pour chaque jour.

La schématisation ci-dessous d'une combinaison possible est peut être mal faite mais je la visualise comme ca

a {"Lu":"10h30-14h30","Ma":"14h15-18h45","Me":"18h30-20h30","Je":"19h15-20h45","Ve":"21h15-22h45","Sa":"19h30-21h15/22h-23h00","Di":""}
b ------------------------------------------------------------------------------------------------------------------------------------------------------
c ------------------------------------------------------------------------------------------------------------------------------------------------------
-
-
-
-
-


En obtenant toutes les combinaisons de cette forme, je pourrais par la suite écarter celle dont je ne veux pas (ex: a ne travail pas le lundi, donc j'enlève toutes les combinaisons ou a possède un créneau le lundi).

Vous voyez ce que je cherche a obtenir ?

le petit hic c'est que je ne sais pas de quel outils mathématiques je dois me servir pour accéder a toutes ces combinaisons

#5 Café mathématique » Modélisation d'équation » 21-11-2017 10:21:26

mat_bst
Réponses : 10

Bonjour à toutes et à tous,

Je suis étudiant en école d'ingénieur informatique et je m'amuse a développer tout un tas de petite chose. Ces derniers temps, je travaille sur un projet perso de modélisation de planning pour le cinema dans lequel je travail après les cours.

Mon bagage mathématique ne me permet de résoudre mon problème, je viens donc chercher un peu d'aide auprès de vous !

Je cherche a modéliser ma problématique sous forme d'équations mathématiques pour qu'elles puissent être résolvable par mon programme.

A ce jour j'ai choisi de faire fonctionner mon programme de cette sorte :

- Je possède 7 ensembles de valeur (un ensemble pour chaque jours). Chaque ensemble correspond à des plages horaires qui doivent être
  occupés par un employé.
  ex : lundi {"10h30-14h30","14h15-18h45","18h30-20h30","19h15-20h45","21h15-22h45","19h30-21h15/22h-23h00"}

- D'autre part je possède ma liste d'employé que je modélise par une lettre. J'ai donc : a,b,c,d,e,f,g,h,i.
  Je cherche à trouver tout les ensemble de solutions possibles ou chaque employé prend une valeur de chaque ensemble.

En soit cela revient a vouloir trouver toutes les combinaisons de planning possible pour pouvoir par la suite y passer des filtre pour répondre à différents critères spécifique.

J'espère avoir été claire dans mon explication.
je serai ravi de pouvoir échanger avec vous a ce sujet !

Merci à tous par avance !

Mathieu

Pied de page des forums