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 :

Algo affectation d'employé à des taches


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut Algo affectation d'employé à des taches
    Bonjours tout le monde.

    Je doit trouver pour demain un algo qui permette de trouver le meilleur planning possible pour un type de graphe particulier.

    J'ai 4 types de taches différentes (etude, programmation, decoupage, assemblage) et pour chaque tache un type d'employé (Analiste, programmeur, decoupeur, assembleur) et une durée.
    Chaque tache à besoin d'un et un seul employé.

    Les graphes sont de la forme :
    Etude-->Etude1-->Prog11-->Decoup11-->Assemblage1-->Assemblage
    _____________-->Prog1a-->Decoup1a-->
    _____-->EtudeN-->ProgN1-->DecoupN1-->AssemblageN-->
    _____________-->ProgNb-->DecoupNb-->

    N,a,b sont des variables en entrée
    Le nombre d'employé de chaque type est aussi en entré

    Si vous avez une idée, une piste...



    édit:
    Finalement il sembleré qu'un graph de la forme ci dessous soit suffisant

    Etude-->Prog1-->Decoup1-->Assemblage
    _____-->ProgN-->DecoupN-->

    et aussi que cet algo fait parti des quelques algo non solutionné à ce jour

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par ninjaja Voir le message
    et aussi que cet algo fait parti des quelques algo non solutionné à ce jour
    yes, tout a fait: c'est du "Job Shop Scheduling".

    Il y a tout de meme des algo pour résoudre ce genre de problème, meme si la solution optimale n'est pas en temps polynomial.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut
    Merci Pseudocode. Je vais de ce pas me renseigné sur "Job Shop Scheduling"

  4. #4
    Membre chevronné
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Par défaut
    Citation Envoyé par ninjaja Voir le message
    et aussi que cet algo fait parti des quelques algo non solutionné à ce jour
    C'est surtout le problème qui est mal résolu. D'après ce que je comprend, c'est surtout du RCPSP (resource constraint project scheduling problem).
    Il faudra bien clarifier ton objectif (ce qu'est une bonne solution) et les contraintes d'affectation des employés (est-ce que chaque employé peut faire toutes les tâches?)

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut
    Une bonne solution est d'avoir le projet terminé en un minimum de temp.
    Que les employé ai le méme temps de travail serai un plus mais ce n'est pas obligatoir.

    Chaque employé a un type de tache définie: un analiste peut faire les études, un programmeur peut faire les programations, etc...

  6. #6
    Membre chevronné
    Profil pro
    Directeur Scientifique
    Inscrit en
    Avril 2005
    Messages
    419
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Par défaut
    Si au départ il n'y a qu'un seul Analiste, un seul programmeur, un seul decoupeur, un seul assembleur c'est effectivement un job-shop (même un flow-shop) car on sait déjà qui va faire quoi. S'il y a plusieurs programmeur par exemple, il faut donc affecter les tâches de programmation aux différents programmeurs et cela devient un flow-shop hybride.

  7. #7
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Par défaut
    Citation Envoyé par ninjaja Voir le message
    Une bonne solution est d'avoir le projet terminé en un minimum de temp.
    Que les employé ai le méme temps de travail serai un plus mais ce n'est pas obligatoir.

    Chaque employé a un type de tache définie: un analiste peut faire les études, un programmeur peut faire les programations, etc...
    Bonsoir,

    si je ne me trompe pas, ta fonction objectif à minimiser est bien la durée du projet devant être minimale, notée Cmax (Completion Time) en ordonnancement et gestion de projets.

    Je pense que ton problème est de type Open shop et revient à résoudre le système : Om | pij = 1| Cmax où :
    m : représente le nombre de poste (analyste, ...),
    pij : signifie que le temps opératoire est identique pour tous les postes,
    Cmax : la durée du projet à optimiser (cf. à minimaliser).

    Les règles d'ordonnancement JLNO-MLNO ou bien MLNO-JLNO donnent une solution optimale !

    Bon courage !

    Cordialement,
    Sidahmed.

  8. #8
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Par défaut
    Citation Envoyé par ninjaja Voir le message
    Bonjours tout le monde.

    Je doit trouver pour demain un algo qui permette de trouver le meilleur planning possible pour un type de graphe particulier.

    J'ai 4 types de taches différentes (etude, programmation, decoupage, assemblage) et pour chaque tache un type d'employé (Analiste, programmeur, decoupeur, assembleur) et une durée.
    Chaque tache à besoin d'un et un seul employé.

    Les graphes sont de la forme :
    Etude-->Etude1-->Prog11-->Decoup11-->Assemblage1-->Assemblage
    _____________-->Prog1a-->Decoup1a-->
    _____-->EtudeN-->ProgN1-->DecoupN1-->AssemblageN-->
    _____________-->ProgNb-->DecoupNb-->

    N,a,b sont des variables en entrée
    Le nombre d'employé de chaque type est aussi en entré

    Si vous avez une idée, une piste...



    édit:
    Finalement il sembleré qu'un graph de la forme ci dessous soit suffisant

    Etude-->Prog1-->Decoup1-->Assemblage
    _____-->ProgN-->DecoupN-->

    et aussi que cet algo fait parti des quelques algo non solutionné à ce jour
    Bonjour,

    aujourd'hui, je suis de bonne humeur , donc je pense que nous sommes tous passé à coté du problème, il s'agit d'un simple problème d'affectation dont la résolution est donnée par la méthode Hongroise, des deux mathématiciens hongrois, Eger Vary et König en 1916.

    Je te demande juste de me confirmer deux choses :
    1 - le nombre de tâches est égal au nombre d'employés,
    2 - Chaque tâche est exécutée par un et un seul employé (tu as dit ça, mais je me répète )
    Sinon, cette méthode ne fonctionne pas tout simplement !

    J'espère que c'est la solution à ton problème ! En retard, mais bon ... J'ai lu ton message à la va-vite.

    Cordialement,
    Sidahmed.

  9. #9
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    Je te demande juste de me confirmer deux choses :
    1 - le nombre de tâches est égal au nombre d'employés,
    2 - Chaque tâche est exécutée par un et un seul employé (tu as dit ça, mais je me répète )
    hum... ca ne me semble pas très réaliste. Le PO dit:
    J'ai 4 types de taches différentes (...) et pour chaque tache un type d'employé (...) et une durée.

    Chaque tache à besoin d'un et un seul employé.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  10. #10
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    hum... ca ne me semble pas très réaliste. Le PO dit:
    Franchement là, j'arrive pas à te comprendre : l'auteur du message a dit qu'il disposait de 04 tâches et 04 postes (employeurs), donc où est le problème ? Une simple matrice de coût 4×4 contenant les durées respectives, ensuite application de la recette sus-mentionnée (c'est une vraie recette) et le tour est joué !

    À bientôt.

  11. #11
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Tel que je vois le problème, cela ressemble a ca:

    On dispose de:

    1 Analiste, 2 programmeurs, 3 decoupeurs, 2 assembleurs

    En on a 2 projets a faire qui sont modelisés par les graphes suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                -->Prog1-->Decoup1--
              /                      \
            /                          \
    Etude1-+------>Prog2-->Decoup2------+-> Assemblage1
            \                          /
              \                      /
                -->Prog3-->Decoup3--
     
     
    Etude2-------->Prog4-->Decoup4--------> Assemblage2
    Sachant que les les charges par taches (en jour) sont:

    Etude1:1j, Etude2:2j
    Prog1:3j, Prog2:2j, Prog3:2j, Prog4:1j
    Decoup1:1j, Decoup2:2j, Decoup1:3j, Decoup4:2j
    Assemblage1:2j, Assemblage2:3j

    Le but est de trouver le planning (= sequence + affectations) optimum, c-a-d la plus petite date de fin pour la réalisation des 2 projets.

    Citation Envoyé par sidahmed Voir le message
    Franchement là, j'arrive pas à te comprendre : l'auteur du message a dit qu'il disposait de 04 tâches et 04 postes (employeurs), donc où est le problème ? Une simple matrice de coût 4×4 contenant les durées respectives, ensuite application de la recette sus-mentionnée (c'est une vraie recette) et le tour est joué !
    Si je comprend bien, tu vas construire une matrice 4x4 comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                  | Analiste | programmeur | decoupeur | assembleur |
    -----------------------------------------------------------------
    etude         |          |             |           |            |
    -----------------------------------------------------------------
    programmation |          |             |           |            |
    -----------------------------------------------------------------
    decoupage     |          |             |           |            |
    -----------------------------------------------------------------
    assemblage    |          |             |           |            |
    -----------------------------------------------------------------
    Question 1: Que mets tu dans les cases ?
    Question 2: comment trouves tu le planning optimum ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  12. #12
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    Tel que je vois le problème, cela ressemble a ca:

    On dispose de:

    1 Analiste, 2 programmeurs, 3 decoupeurs, 2 assembleurs

    En on a 2 projets a faire qui sont modelisés par les graphes suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                -->Prog1-->Decoup1--
              /                      \
            /                          \
    Etude1-+------>Prog2-->Decoup2------+-> Assemblage1
            \                          /
              \                      /
                -->Prog3-->Decoup3--
     
     
    Etude2-------->Prog4-->Decoup4--------> Assemblage2
    Sachant que les les charges par taches (en jour) sont:

    Etude1:1j, Etude2:2j
    Prog1:3j, Prog2:2j, Prog3:2j, Prog4:1j
    Decoup1:1j, Decoup2:2j, Decoup1:3j, Decoup4:2j
    Assemblage1:2j, Assemblage2:3j

    Le but est de trouver le planning (= sequence + affectations) optimum, c-a-d la plus petite date de fin pour la réalisation des 2 projets.



    Si je comprend bien, tu vas construire une matrice 4x4 comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                  | Analiste | programmeur | decoupeur | assembleur |
    -----------------------------------------------------------------
    etude         |          |             |           |            |
    -----------------------------------------------------------------
    programmation |          |             |           |            |
    -----------------------------------------------------------------
    decoupage     |          |             |           |            |
    -----------------------------------------------------------------
    assemblage    |          |             |           |            |
    -----------------------------------------------------------------
    Question 1: Que mets tu dans les cases ?
    Question 2: comment trouves tu le planning optimum ?
    Bonjour pseudocode,

    je vais lire attentivement et à tête reposée ce que tu vient de le décrire ci-dessus, sinon les réponses à tes deux questions sont :

    Réponse 1 :
    Remplir la matrice de coût par les durée des tâches.

    Réponse 2 :
    Énumérer toutes les combinaisons possibles : 4! = 24 affectation et choisir la (les) meilleure(s) qui donne(ent) un coût optimum (minimum).
    Si la taille de la matrice >= 10 => 10! affectation => explosion combinatoire, donc on fait recours à la méthode Hongroise qui nous donne gentillement la solution optimale en un temps record, même avec une taille de matrice suffisamment grande !

    Cordialement,
    Sidahmed.

  13. #13
    Inactif  
    Inscrit en
    Mars 2006
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 352
    Par défaut
    Citation Envoyé par sidahmed Voir le message
    Je te demande juste de me confirmer deux choses :
    1 - le nombre de tâches est égal au nombre d'employés,
    2 - Chaque tâche est exécutée par un et un seul employé (tu as dit ça, mais je me répète )
    Logiquement, la deuxième contrainte entraîne la première !

    Cordialement,
    Sidahmed.

Discussions similaires

  1. [Séquence] diagramme de séquence d'affectation des taches
    Par IAGISG dans le forum Autres Diagrammes
    Réponses: 0
    Dernier message: 11/06/2012, 10h32
  2. Affectation des taches avec POSIX
    Par moktar_bouain dans le forum POSIX
    Réponses: 6
    Dernier message: 26/04/2012, 15h54
  3. [VB6] Gestionnaire des tache de windows 2000 avec VB6
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 12/11/2002, 08h21
  4. [VB6] [Système] Barre des taches
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 08/10/2002, 15h16
  5. desactiver la barre des taches
    Par naili dans le forum C++Builder
    Réponses: 7
    Dernier message: 02/09/2002, 17h57

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