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 :

Calcul du plu court chemin entre 2 sommets d'un graphe valué


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Calcul du plu court chemin entre 2 sommets d'un graphe valué
    bonjour si c possible de m aider ca serait super sympas a bientot


    calculer le plus court chemin entre 2 sommets d'un graphe valué
    on appelle graphe un ensemble de points ( les sommets)orientés , joignant toujours 2 sommets.on affecte à chaque arc une valeur appartenant a R: sa longueur
    un chemin entre deux sommets est une suite consécutive
    prenons dans le bon sens ; sa longueur = somme de celles des arcs
    Atlasm

  2. #2
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    les algos les plus connus sont
    dijkstra, belman, ford fulkerson...

    pour le calcul des plus court chemins.
    il faut que ton graphe n'ait pas un cycle(circuit) de poids(la somme des valeurs des arcs qui le composent) < 0.
    sinon ca boucle.

    d'apres ce que j'ai compri, tu cherches un algo pour les graphes orientés valués dans R, ()

    si tu as le choix de l'algo, je te conseille dijkstra qui est tres facile a comprendre

    dans quel langage cherches-tu le programme?
    donne plus de precision sur ce que tu cherches
    Des chercheurs qui cherchent, on en trouve.
    des chercheurs qui trouvent, on en cherche.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par a.a.a
    les algos les plus connus sont
    dijkstra, belman, ford fulkerson...

    pour le calcul des plus court chemins.
    il faut que ton graphe n'ait pas un cycle(circuit) de poids(la somme des valeurs des arcs qui le composent) < 0.
    sinon ca boucle.

    d'apres ce que j'ai compri, tu cherches un algo pour les graphes orientés valués dans R, ()

    si tu as le choix de l'algo, je te conseille dijkstra qui est tres facile a comprendre

    dans quel langage cherches-tu le programme?
    donne plus de precision sur ce que tu cherches

    je recherche le prog en francais si c est possible et merci bcp pour l aide
    Atlasm

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    d'apres ce que j'ai compri, tu cherches pas a le programmer.
    tu veux juste savoir comment ca fonctionne.
    lequel tu veux au juste : dijkstra?
    a toi.

    algorithme dijkstra dans google ca donne ca entre autre:

    http://www.nimbustier.net/publications/djikstra/
    l'explication implementation et ...
    bon courage.
    Des chercheurs qui cherchent, on en trouve.
    des chercheurs qui trouvent, on en cherche.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 26
    Points
    26
    Par défaut
    SLT
    moi j'ai programmé l'algo de ford en pascal mais je teste pas les longueur negatives et le circuit sinon ca marche. mon bléme c'est avec bellman la representation en memoire et tout donc HELP.
    A+

  6. #6
    Membre du Club
    Homme Profil pro
    Editeur
    Inscrit en
    Juillet 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Editeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    la représentation mémoire n'a rien a voir avec l'algo de Bellman !!

    Bellman est bcp plus simple à implémenter que Dijkstra, même si ce dernier n'est pas vraiment compliqué.
    De plus Bellman de base détecte les circuits négatifs....

    Rappel : ces algo déterminent les plus courts chemins d'un point vers tous les autres du graphe. Penseer donc à la condition d'arrêt pour accélerer le calcul du PCC d'un sommet vers un autre.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 26
    Points
    26
    Par défaut
    slt
    comment ca la representation en memoire n'a rien avoir avec l'algo ??!!! :
    donc je fais l'algo de bellman et pour entrer le graphe je le dessine sur une feuille et je le met sur l'ecran comme ca c'est sure aucun probléme de structure de données.
    A+

  8. #8
    Membre du Club
    Homme Profil pro
    Editeur
    Inscrit en
    Juillet 2002
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Editeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 39
    Points : 50
    Points
    50
    Par défaut
    par définition l'algorithmique est totalement sur papier.... sur PC c'est ensuite la programmation d'un algorithme..
    tout est dans la nuance

  9. #9
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 26
    Points
    26
    Par défaut
    Ok
    si t'a bien lu mon msg ca commence par "j'ai programmé" donc je parle bien de programmation. pour la nuance ca le fait mais bon. Avant de programmer un algo il faut le faire sur papier comme tu dit. Le vrai probléme c que mon tp est bizaroide ouia on me demande faire l'algo de ford d'un grpahe representé par son tableau d'adjacence et bellman d'un graphe representé pas sa matrice d'adjacence alors que pour moi ca veut rien dire tableau matrice

    A+ :

  10. #10
    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
    Liste d'adjacence OK
    Matrice d'adjacence OK
    Tableau d'adjacence

    Hypothèse : Tableau d'adjacence = Matrice d'adjacence

    Rmq : lgirard a raison... La notion de matrice d'adjacence a un sens ici, son implémentation non.

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2002
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 35
    Points : 26
    Points
    26
    Par défaut
    slt
    matrice d'adjacence
    matrice qui contient les sommets et dans les cases d'intersection des 0 ou des 1 ensuite comment je lit les longueurs ? je le fait separement ?
    je peut mettre les longueur directement a la place des 1 mais c plus une matrice d'adjacence non ?
    A+

  12. #12
    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
    Citation Envoyé par fastzombi
    slt
    je peut mettre les longueur directement a la place des 1 mais c plus une matrice d'adjacence non ?
    A+
    Ben je dirais que si...
    L'info se retrouve de la même manière.

  13. #13
    Futur Membre du Club
    Inscrit en
    Mars 2004
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    matrice d'adjacence implique dimension n*n
    c pas bon ca,
    sauf si la matrice est pleine.
    c a dire un gros graphe en nombre d'arcs.
    j'ai jamais vu un exemple d'applications qui utilise ca

    rem : la discussion a derivé un peu.
    Des chercheurs qui cherchent, on en trouve.
    des chercheurs qui trouvent, on en cherche.

  14. #14
    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
    Bon ou pas si c'est le but du TP...
    Moi j'en ai déjà utilisé. Ca a un énorme avantage c'est que l'accès à l'information est immédiat. Pour des calculs puissants cela peut être très intéressant...

  15. #15
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    (n'oubliez pas que Dijkstra ne fonctionne que sur des graphes à couts positifs)
    sinon pour la matrice d'adjacence, tout dépends aussi de la taille du graphe...
    jusqu'à une centaine de sommet, c'est largement envisageable (bien que pas très beau d'un point de vue intellectuel) de coder une matrice d'adjacence n*n (en mettant les distances au lieu de 1-0)
    Et puis, si le graphe est non-orienté, il n'y a besoin que de la moitié des infos de la matrice..

    pour un plus grand nombre de sommet, il vaut mieux faire une liste, plus dur à implémenter, mais plus efficace en terme de place

  16. #16
    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
    Ce qui est marrant c'est que la plupart des gens n'évoluent pas avec les PC... (je ne parle pour personne en particulier ici)
    Il y a encore5-7 ans avec 32 Mo de RAM c'est clair qu'il fallait faire attention mais aujourd'hui c'est 512 Mo minimum sur une bécane pas exceptionnelle...
    Alors même une matrice 1000*1000 c'est vraiment tranquille.

    Je n'aide pas à se recentrer sur le sujet... Donc je

  17. #17
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    bah 1000*1000 c'est tranquille, ca dépends aussi de ce que tu lui demandes:
    si tu lui demandes juste de rentrer des nombres et d'afficher la somme des lignes, là ok, ca va pas trop ramer...
    mais demande lui un algo en O(n^3) ou O(n²m), tu pourras sentir la différence

  18. #18
    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
    Citation Envoyé par duffman
    n'oubliez pas que Dijkstra ne fonctionne que sur des graphes à couts positifs

    Dijkstra fonctionne sur un graphe contenant des coûts négatifs sans circuit à coût négatif...

  19. #19
    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
    Citation Envoyé par duffman
    bah 1000*1000 c'est tranquille, ca dépends aussi de ce que tu lui demandes:
    si tu lui demandes juste de rentrer des nombres et d'afficher la somme des lignes, là ok, ca va pas trop ramer...
    mais demande lui un algo en O(n^3) ou O(n²m), tu pourras sentir la différence
    Ben c'est ce que je disais... C'est carrément plus rapide.

  20. #20
    Membre du Club
    Inscrit en
    Février 2004
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 77
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par Tomtom7
    Citation Envoyé par duffman
    n'oubliez pas que Dijkstra ne fonctionne que sur des graphes à couts positifs

    Dijkstra fonctionne sur un graphe contenant des coûts négatifs sans circuit à coût négatif...
    si si...
    Le problème du plus court chemin n'a aucun sens dans un graphe avec circuit négatif (car le plus court chemin c'est -infini) bien que l'algo de Bellman détecte les circuits de couts nég...là dessus ok..

    En revanche Dijkstra (qui est plus efficace en terme de complexité que Bellman) n'est pas optimal sur des graphes comportant des couts négatifs.. je suis sur de moi

    c'est même écrit là dedans

    http://www.emse.fr/~micheluc/COURS/GR/DOC/thgr009.html

    dans la plupart des pages, ils oublient de le dire...

Discussions similaires

  1. Plus court chemin entre deux états
    Par titi_lion dans le forum Prolog
    Réponses: 8
    Dernier message: 19/12/2014, 15h38
  2. Le plus court chemin entre tous les chemins.
    Par NoIdea dans le forum Intelligence artificielle
    Réponses: 4
    Dernier message: 14/04/2011, 09h42
  3. Algoritme Dijkstra pour le calcul du plus court chemin
    Par choko83 dans le forum Langage
    Réponses: 2
    Dernier message: 10/06/2010, 14h10
  4. Calcul de plus court chemin dans un graphe
    Par Elmilouse dans le forum Prolog
    Réponses: 6
    Dernier message: 21/03/2010, 20h26
  5. recherche du plus cours chemins entre 2 sommets d'1 graphes
    Par must19 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 05/04/2006, 11h57

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