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 :

Optimisation de tournées


Sujet :

Algorithmes et structures de données

  1. #1
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut Optimisation de tournées
    Bonjour,

    j'ai un problème plus compliqué que celui du voyageur de commerce et je recherche un algo pour le résoudre.

    J'ai 250 clients à livrer d'un produit X :
    - Ils possèdent soit une ou deux cuves de contenance fixe.
    - La périodicité de livraison est selon le cas de A, B, C, D ou E jours
    - La périodicité doit être fixe (tous les lundis par exemple)

    Deux livreurs assurent quotidiennement l'approvisionnement de ces clients :
    - Leur temps de travail est fixe
    - Leur camion citerne à donc une contenance maximum
    - Le temps standard de livraison est fixé
    - Ils partent et arrivent tous les jours du même lieu

    Le temps de route entre chaque client est connu.

    Je cherche un algorithme qui détermine les tournées quotidiennes pour chaque livreur en définissant le planning périodique.

    C'est algo doit donc répartir les clients sur les tournées en respectant les contraintes ci-dessus et optimiser l'ordre des clients livrés dans chaque tournée.

    Voyez-vous un algo pour ce type de problème ? Sinon, comment feriez-vous pour réduire le problème en sous problèmes plus simples ? le critère de vitesse de résolution du problème est important !

    Par avance, merci.

    Cordialement,

    Philippe

  2. #2
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 94
    Points
    94
    Par défaut
    Bonjour,
    Pour commencer tu n'as aucune chance de trouver un algo qui te garantisse une solution dans un temps fini à tout problème de ce type. Tu ne trouveras que des heuristiques car le problème est trop complexe.
    De plus le calcul de la périodicité de livraison par l'algorithme le complexifie encore.
    Ca ne doit pas t'aider beaucoup je pense...
    J'ai déjà implémenté ce genre de choses à l'aide de 2 algos différents : plus proche voisin et Mole et Jameson. Mais ils peuvent servir à calculer un plan de tournées pas plusieurs...

  3. #3
    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 : 51
    Localisation : France, Hérault (Languedoc Roussillon)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Citation Envoyé par philben
    j'ai un problème plus compliqué que celui du voyageur de commerce et je recherche un algo pour le résoudre.
    Ce type de probleme s'appelle "Vehicle Dispatch Problem". C'est effectivement une variante des problemes VRP, donc pas de methode exacte a part la "brut force" (exploration complete des possibilités).

    Ceci dit, lorsque le nombre de vehicule est fixe, les algos "Fisher" ou "sweep" sont applicables.

    Une bonne source d'info sur les problemes VRP: http://neo.lcc.uma.es/radi-aeb/WebVRP
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2006
    Messages
    41
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Points : 35
    Points
    35
    Par défaut
    Algorithme génétique...

    Comme dit plus haut, tu ne trouveras pas la meilleure solution, mais avec un algorithme génétique tu vas converger asser rapidement, si tu as une bonne machine.

    Il te faudra seulement tester différent paramètres possibles pour optimiser tes solutions.

    Tu peux aussi regarder les colonies de fourmis mais si tu n'as pas de solides bases en mathématiques et en programmation, c'est déjà plus difficile à mettre en oeuvre.

    Bon courage!

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    merci pour les infos, ça m'a permis de potasser quelques articles et de programmer rapidement deux ou trois algos simples pour me rendre compte de la vitesse et de la qualité des résultats pour ordonner les étapes d'une seule tournée.

    TomTom7, je n'ai pas trouvé grand chose sur Mole & Jameson, as-tu quelque chose d'explicite sur l'algo ?

    Cordialement,

    Philippe

  6. #6
    Membre régulier
    Inscrit en
    Mai 2003
    Messages
    86
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 86
    Points : 94
    Points
    94
    Par défaut
    Tu as ça qui aborde un peu M&J : http://www.crt.umontreal.ca/~theo/mb...-semet-crt.pdf

    Mole et Jameson est une méthode d'insertion qui construit une tournée de manière séquentielle. A chaque itération on choisit 1 point à insérer à une place déterminée.

    Je n'ai pas trouvé grand chose sur le sujet sur le net mais je dois avoir de la doc à la maison. Si tu veux je chercherai ce week end.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 399
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 399
    Points : 2 221
    Points
    2 221
    Par défaut
    bonjour tomtom7,

    merci pour le lien, je vais explorer ça !

    Philippe

  8. #8
    Membre éclairé Avatar de reggae
    Profil pro
    Inscrit en
    Août 2005
    Messages
    773
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2005
    Messages : 773
    Points : 795
    Points
    795
    Par défaut
    Moi je me pencherai plutôt sur une implémentation liée à la programmation linéaire, d'où:
    http://www.gnu.org/software/glpk/glpk.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Optimisation de votre SGBDR et de vos requêtes...
    Par SQLpro dans le forum Langage SQL
    Réponses: 35
    Dernier message: 11/01/2013, 11h49
  2. [Débutant] Optimisation de fonction pour programme qui tourne 1 heure !
    Par TopCao dans le forum MATLAB
    Réponses: 24
    Dernier message: 01/02/2010, 23h10
  3. Optimisation de tournées avec contraintes
    Par DelphiManiac dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 25/10/2005, 11h35
  4. [langage]Problème de temps de lecture, optimisation
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 08/01/2003, 08h47
  5. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 2
    Dernier message: 11/06/2002, 10h24

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