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 :

Répartition de tâches. Quel algorithme ?


Sujet :

Algorithmes et structures de données

  1. #1
    Membre émérite
    Avatar de haskouse
    Homme Profil pro
    Salesforce
    Inscrit en
    Août 2009
    Messages
    923
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Maroc

    Informations professionnelles :
    Activité : Salesforce
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 923
    Points : 2 684
    Points
    2 684
    Par défaut Répartition de tâches. Quel algorithme ?
    Bonjour,

    J'ai le problème suivant :
    un ensemble de personne qui doivent faire un ensemble de tâche, sachant que chaque tâche demande un nombre différents d'heure. Par exemple :

    Personne1, Personne2, Personne3
    puis
    Tâche1(2H), Tâche2(5H), Tâche3(6H), Tâche4(1H), Tâche5(3H)

    Si je suppose que ces 3 personnes peuvent effectuer n'importe laquelle de ces 5 tâches, je voudrais créer un algorithme qui permet de faire la meilleur répartition des tâches de façon à ce que chacun de ces 3 personnes travaille sur au moins deux tâches et au plus trois tâches, et que la somme des heures travaillée par chacun des employé soit proches (voir égales).

    Je ne sais pas si j'ai bien expliqué mon problème.

    En fait je veux savoir quel genre d'algorithme faut-il utiliser pour résoudre ce genre de problème ? J'ai fait des recherches et j'ai pu lire quelques trucs sur les algorithmes génétiques, algorithme de la colonnie de fourmi ...

    Est ce que quelqu'un pourrait me guider ?
    Merci par avance.
    "Le savant qui enseigne le bien aux gens et ne le met pas en pratique, est semblable à la torche qui éclaire en se brûlant." Mohammed le Messager d’Allah (que la paix et le salut d'Allah soient sur lui)

    Tutoriels Talend
    Mes articles publiés
    Mon CV en-ligne

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2008
    Messages : 248
    Points : 119
    Points
    119
    Par défaut
    Le problème que tu essaies de résoudre est un problème d'optimisation. Deux approches sont possibles:
    1- Programmation mathématique
    2- Algorithmes heuristiques

    Avec la programmation mathématique tu peux modéliser mathématiquement ton problème sous forme d'une fonction objective et d'une liste de contraintes. Par la suite, il suffit de passer le modèle mathématique à un solveur de programme mathématique tel que CPLEX qui utilisent des méthodes exactes tel que l'algorithme du simplexe et le "Branch & Bound" pour résoudre ton problème. Pour pouvoir utiliser cette méthode il va falloir que tu apprennes les principes de base de la programmation mathématique.

    Sinon les méthodes heuristiques te permet aussi de résoudre ton problème. N'importe laquelle des métaheuristiques comme l'algorithme génétique, colonies de fourmis, recherche local itérée ou autre, te prémetra de résoudre ton problème mais il va falloir que tu apprennes à les utiliser. Des librairies qui implémentent ces métahreuristiques sont disponible sur le net mais pour savoir les utiliser il va falloir que tu comprennes les principes de bases. Je te conseille de passer par un livre. Mon préféré est "Metaheuristics search concepts" mais il est en anglais.

    La différence entre les deux est que:
    - Les méthodes de programmation mathématique sont généralement des méthodes exactes et déterministes et trouvent la solution optimale au problème dans un temps qui dépend de la taille du problème.
    - Les méthodes heuristiques ne trouvent pas nécessairement la solution optimale à ton problème mais sont généralement plus rapides que les méthodes exactes et permet souvent de trouver des tres bonnes solutions rapidement. Par contre, pour qu'elles soient efficaces, ces méthodes nécessitent beaucoup plus d'effort que les méthodes exactes au niveau du codage et de l'adaptation de ces méthodes pour ton problème.

    L'optimisation est un domaine très large et ce petit résumé est loin d'être complet.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Nehmé Voir le message
    ce petit résumé est loin d'être complet.
    Certes, mais il est très clair

    Note : à mettre dans les "A Lire" ??
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2010
    Messages
    765
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 765
    Points : 1 036
    Points
    1 036
    Par défaut
    Bonjour,

    Ce genre de problème quand il y a des millions de tâches doit effectivement être traité avec un algorithme optimisé, car sinon il est impraticable dans un temps raisonnable.
    Or ici pour ce cas où tu n'auras jamais des millions de tâches. Je te propose l'algorithme glouton en choisissant par exemple d'attribuer en priorité les taches les plus longues.

Discussions similaires

  1. Client serveur : quel algorithme choisir
    Par e-medi dans le forum Réseau
    Réponses: 1
    Dernier message: 15/07/2007, 22h54
  2. Quel algorithme de cryptage je peux utiliser?
    Par bejaouijamil dans le forum Sécurité
    Réponses: 2
    Dernier message: 04/01/2007, 15h33
  3. Réponses: 7
    Dernier message: 12/10/2006, 01h23
  4. Quel algorithme pour insertion d'objets "triés" da
    Par phplive dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2005, 09h27
  5. Quel algorithme utilisé pour faire un arbre hiérarchique
    Par deaven dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 26/01/2005, 21h30

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