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 :

Dijkstra: optimisation?


Sujet :

Algorithmes et structures de données

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 77
    Points : 89
    Points
    89
    Par défaut Dijkstra: optimisation?
    (Pardon pour les accents => clavier qwerty)

    Bonjour,

    Les sites comme Mappy utiliseraient des algorithmes de recherche basé sur Dijkstra. Mais dans le cas d'une recherche a grande échelle (comme un parcours Madrid - Berlin), Dijkstra ne me parrait plus vraiment adapté, en raison de l'explosion combinatoire qui en resulte.

    Connaissez vous les formes d'optimisations utilisees?
    a) un systeme informatique TRES puissant?
    b) une optimisation au niveau des graphes? Par exemple, creer un graphe de plus haut niveau dont chaque noeud representerait une zone plus ou moins large de la carte reelle... Les arcs liant les noeuds representeraient les autoroutes, ou le meilleurs vecteur de transport?
    la premiere recherche se ferait donc sur ce graphe, puis le systeme analyserait les chemins sur la carte reelle concernant le point depart et le point d'arrivee?
    c) utilisaton d'une heuristique/fonction d'arret de la recherche a partir d'un noeud? Lancer un Dijkstra "normal", mais en arretant le parcours a partir d'un noeud si il s'éloigne trop de la destination (selon un critere géographique) par rapport à la solution optimale... Cela permettrait de bloquer un parcours qui va dans des direction estimàes "abérantes". L'evaluation (la fonction d'arret de la recherche a partir d'un noeud) devrait etre assez souple pour permettre de petits détours qui font gagner du temps, au final.
    d) ....?

    En se basant sur la solution b)
    En se basant sur cette orientation:
    b1) Soit regrouper un ensemble de noeuds en un seul,
    b2) soit garder le meme graphe en ne considerant que les types de routes rapides (autoroutes, voies express...) pour les trajets dont les points de depart et d'arrivé sont eloignés d'une certaine distance. Ca elaguerait toutes les petites routes. On aurait donc un meme graphe dont la densité serait variable en fonction de l'éloignement des points de départ et d'arrivée. Il faudrait donc gérer de maniere optimale le probleme d'élagage des arcs, car il n'est pas le meme partout: pres des points de depart et d'arrivee, la totalite du graphe doit etre considerée.
    b3) ....?

    Dans le cas b1), il s'agirait de construire un graphe de plus haut niveau, et dans le cas b2), d'elaguer le graph existant en fonction de la nature des arcs...

    Curieusement, je ne trouve pas de documentation sur cette question. Les seules optimisations concernent l'algorithme de Dijkstra proprement dit, mais le gain de compléxité en temps ne semble pas suffisant (sauf erreur de ma part) pour résoudre le probleme à grande échelle.

    Comme si les solutions implementées chez Mappy, ViaMichelin ou Autoroute66 étaient des solutions "maisons" gardées secretes. Il doit pourtant éxister une théorie concernant ce type de problemes ^^

    J'ai bien trouvé un rapport de stage d'une equipe des Mines, mais ca reste assez léger, car ils ne travaillent que sur un réseau de bus. Ce n'est donc pas le meme probleme, et une adaptation de Dijkstra suffit amplement.


    Des idées, des commentaires, des liens?
    Merci!

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

    Informations professionnelles :
    Activité : Directeur Scientifique

    Informations forums :
    Inscription : Avril 2005
    Messages : 419
    Points : 554
    Points
    554
    Par défaut
    C'est effectivement un sujet de recherche. J'ai récemment vu une conférence intéressante de Dorothea Wagner dont voici l'article:

    http://i11www.ilkd.uni-karlsruhe.de/algo/people/dwagner/papers/ww-gsutf-03.pdf

    Un autre papier trouvé par Google:
    http://citeseer.ist.psu.edu/holzer04combining.html

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    A* est une otpimisation de Dijkstra

  4. #4
    Inactif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 77
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par FrancisSourd
    C'est effectivement un sujet de recherche. J'ai récemment vu une conférence intéressante de Dorothea Wagner dont voici l'article:
    http://i11www.ilkd.uni-karlsruhe.de/algo/people/dwagner/papers/ww-gsutf-03.pdf
    Un autre papier trouvé par Google:
    http://citeseer.ist.psu.edu/holzer04combining.html
    Merci pour ces liens
    Du travail d'universitaires. Le probleme n'est donc pas simple!

    A* est une otpimisation de Dijkstra
    Effectivement. A* introduit la notion d'Heuristique pour guider le parcours dans le graph. Je le connaissais dans d'autres contextes, mais je n'y ai pas songé pour ce cas de figure
    Merci

  5. #5
    Inactif
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 77
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par FrancisSourd
    C'est effectivement un sujet de recherche. J'ai récemment vu une conférence intéressante de Dorothea Wagner dont voici l'article:

    http://i11www.ilkd.uni-karlsruhe.de/algo/people/dwagner/papers/ww-gsutf-03.pdf

    Un autre papier trouvé par Google:
    http://citeseer.ist.psu.edu/holzer04combining.html
    Je viens de parcourir ces documents, et ce sont des mines d'or.
    Merci encore!

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. [langage] Optimiser la lecture d'un fichier
    Par And_the_problem_is dans le forum Langage
    Réponses: 4
    Dernier message: 05/02/2003, 08h54
  3. [VB6] [BDD] Optimisation de l'accès aux données
    Par LadyArwen dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/01/2003, 13h27
  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