IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Génération automatique de planning de gardiens veilleurs


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Par défaut Génération automatique de planning de gardiens veilleurs
    Bonjour à tous et tout d'abord bravo pour la qualité du site et de la richesse des informations contenues.

    Je dispose d'une équipe de 8 gardiens veilleurs et la gestion de leur service est lourde. Je cherche à la simplifier en automatisant la génération du tableau des services au travers d'une macro en visual basic dans la mesure où je ne dispose que d’excel comme outil informatique. Le problème est qu’informatiquement, je n'arrive par à transposer en algorithme les données suivantes:

    1. un gardien veilleur a un rythme de travail 24H-48H (48H de récupération consécutives à 24H de service)
    2. un gardien peut assurer au maximum 8 fois 24H par mois, soit 192H
    3. s'il pose des congés, 3 jours de congés correspondent à 1 tour de 24H de garde (par exemple, si un gardien pose 3 jours de congé, il n’aura plus que 7 services dans le mois).
    4. Enfin le poste de surveillance doit en permanence être occupé par deux gardiens veilleurs sauf cas exceptionnel. En effet ne disposant que de 8 personnels au lieu de 9 je ne peux pas assurer l'ensemble des services.

    Le début du tableau est initialisé en fonction des services de la fin du mois précédent et des congés validés.

    Le tableau en pièce jointe est un exemple de mois avec les gardes (G), les récupérations (R) et les congés (C). Pour ce mois-ci, il y a 5 jours où je n'ai pu mettre qu'un seul gardien.

    J'ai l'habitude de programmer en visual basic mais cela reste du bricolage et mes rudiments en programmation sont bien loin et je ne sais vraiment pas par quel bout prendre le problème...

    Merci d'avance de me venir en aide.
    Images attachées Images attachées  

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    Bonjour,

    tu veux un logiciel qui genere le Tableaux, ou qui t'aide à le saisir ? Et comment tu fais si tu génére un Tableaux et qu'un gardien pose un conger pour le mois courant ?
    Sinon pour tes controles, qu'est ce qui te pose probléme ?
    Tu peux avoir pour le premier cas par exemple un Objet Gardien, et un gardienManager qui rends les gardien disponible pour un jour (en calculant qu'ils ont eu deux jours de repos) et puis un cas particulier qui dans le cas ou tu n'as pas deux gardiens disponible ayant eu leurs jours de repos, qui rempli une case par un seul gardien ...
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Par défaut
    Bonjour,

    Tout d'abord merci de me répondre.

    Pour commencer, je cherche à mettre au point une macro qui génère toute seule le contenu du tableau. Cette génération ce fait avec des paramètres initiaux qui sont :
    1. les congés que les gardiens auront fixés au préalable. Par la suite, ils ne
    peuvent en aucun cas modifier leurs dates.
    2. les gardes de la fin du mois précédent qui conditionnent les deux
    premières lignes du mois à cause de la règle des 24h-48h.

    En résumer, au début le tableau contient les congés et les tours de service des deux premiers jours.

    La où je bloque, c'est dans la façon de gérer le remplissage du tableau car il faut tester une possibilité tout en conservant une trace de la précédente pour pouvoir revenir en arrière si le choix effectué n'abouti pas à une solution viable. Et ainsi de suite.

    Que faut-il faire ? Une matrice par gardien et essayer de résoudre l'ensemble de matrice , où il y a une méthode plus simple et rapide ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    1 377
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 377
    Par défaut
    Citation Envoyé par Caillou@50 Voir le message
    Bonjour,

    Tout d'abord merci de me répondre.

    Pour commencer, je cherche à mettre au point une macro qui génère toute seule le contenu du tableau. Cette génération ce fait avec des paramètres initiaux qui sont :
    1. les congés que les gardiens auront fixés au préalable. Par la suite, ils ne
    peuvent en aucun cas modifier leurs dates.
    2. les gardes de la fin du mois précédent qui conditionnent les deux
    premières lignes du mois à cause de la règle des 24h-48h.

    En résumer, au début le tableau contient les congés et les tours de service des deux premiers jours.

    La où je bloque, c'est dans la façon de gérer le remplissage du tableau car il faut tester une possibilité tout en conservant une trace de la précédente pour pouvoir revenir en arrière si le choix effectué n'abouti pas à une solution viable. Et ainsi de suite.

    Que faut-il faire ? Une matrice par gardien et essayer de résoudre l'ensemble de matrice , où il y a une méthode plus simple et rapide ?
    Je dirais à première vu, il te faut un algorithme qui fera en quelques sortes :

    Tant que le tableau n'est pas rempli faire :
    Attribuer gardiens à jour suivant{
    Appeler itérativement une méthode qui fait {
    - Donner les gardiens disponible (Ca sera une méthode qui appel une méthode qui donne les gardiens ayant fait leur deux jours de repos et qui ne sont pas en congés).
    - Tester avec deux gardiens (Tu peux préparer une liste de couple possible), si cette solution n'aboutie pas refaire avec autre couple de gardien.
    }
    }

    Voila en quelques sortes ...

    Sinon vu que la compléxité n'est pas énorme tu peux générer toutes les solutions possible ... Au pire tu as 180 possiblité ...

    PS : Ca étais fait à l'arrache
    Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.

    Twitter Blog Mon site

    Mon article sur l'agilité

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Par défaut
    Citation Envoyé par rad_hass Voir le message
    Je dirais à première vu, il te faut un algorithme qui fera en quelques sortes :

    Tant que le tableau n'est pas rempli faire :
    Attribuer gardiens à jour suivant{
    Appeler itérativement une méthode qui fait {
    - Donner les gardiens disponible (Ca sera une méthode qui appel une méthode qui donne les gardiens ayant fait leur deux jours de repos et qui ne sont pas en congés).
    - Tester avec deux gardiens (Tu peux préparer une liste de couple possible), si cette solution n'aboutie pas refaire avec autre couple de gardien.
    }
    }

    Voila en quelques sortes ...

    Sinon vu que la compléxité n'est pas énorme tu peux générer toutes les solutions possible ... Au pire tu as 180 possiblité ...

    PS : Ca étais fait à l'arrache
    Merci beaucoup pour la proposition d'algorithme qui est tout à fait adapté mais un couple de gardien peut correspondre dans la configuration de l'instant t mais s'avérer inadaptée à t+3 voire plus.

    Comment conserver un historique du cheminement pour pouvoir faire marche arrière et repartir dans un autre direction avec un autre couple de gardien.

    Et j'en reviens donc à mon problème initial qui est de remplir le tableau tout en étant sur que la solution qui va être choisie sera optimale en fonction de la configuration de départ avec un minimum de jour avec un seul gardien (cette possibilité est retenue quand il n'y a pas d'autre possibilité).

    Est-ce qu'un méthode du style diviser pour régner (vieux reste de mes études...) serait adaptée, et dans ce cas comment est-ce qu'on la met en oeuvre dans ce cas?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 9
    Par défaut
    J'espère que vous avez passé un bon WE.

    Ayant eu un peu de temps ce WE, j'ai commencé à travailler sur le principe conseillé. En cours de route, j'ai repensé aux possibilités et finalement il n'y a pas que 180 posibilités (environ).

    En fait, pour un jour donné nous avons effectivement 6 choix. En fonction de la combinaison sélectionnée, les 6 choix pour le jour suivant seront différents avec bien sûr des solutions communes dans tous les cas. Ce raisonnement me pousse donc à croire que le nombre de solutions correpond plutôt au dessin joint qui ne représente qu'une partie du début du raisonnement.

    Et la à nouveau, je "patine dans la semoule" car cela fait plutot 6^28 de solutions différentes pour remplir le tableau. Comment faire pour résoudre un système avec autant de possibilités ?

    Merci d'avance...
    Images attachées Images attachées  

Discussions similaires

  1. [VB.NET] Génération automatique Property (getter / setter)
    Par Husqvarna dans le forum Windows Forms
    Réponses: 7
    Dernier message: 23/07/2020, 11h55
  2. Réponses: 3
    Dernier message: 05/11/2009, 09h02
  3. [INFO]Génération automatique de pages HTML
    Par GreenJay dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 28/09/2005, 16h29
  4. [Plugin]Gestion de génération automatique de code
    Par Maggic dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 11/05/2004, 11h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo