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 :

Problème sur un réseau routier avec l'algo de Ford-Fulkerson


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 23
    Points : 25
    Points
    25
    Par défaut Problème sur un réseau routier avec l'algo de Ford-Fulkerson
    Bonsoir,
    Je suis en train de concevoir l'algorithme de Ford-Fulkerson pour calculer les flux possibles dans un réseau routier. J'aimerais être sur de la façon de faire pour ne pas partir sur un "mauvais chemin" dans le codage. Voici la façon que j'ai utilisée :
    - Pour représenter le graphe, une liste de successeurs( moins d'espace mémoire qu'une matrice). Je n'ai pas prévu de liste de predecesseurs, car logiquement, 2 villes sont toujours reliées dans les 2 sens (sauf en cas de sens interdit, mais il n'y en a jamais sur les grandes routes). Elle serait donc inutile : un successeurs serait toujours en même temps predecesseur. J'ai aussi prévu des champs "capacité" et "flux" pour chaque element de la liste des successeurs, qui correspond à la capacité et au flux de l'arc correspondant. J'aurais pu aussi faire un tableau pour cela, mais cela aurait aussi fait de l'espace mémoire inutile (avec les cases qui correspondent à des arcs qui n'existent pas).
    - Je me suis aussi demandé si je pouvais prendre des arêtes au lieu d'arcs, vu que les arcs sont toujours symétriques (dans les 2 sens ou pas du tout). Le problème est que je n'ai jamais vu l'algo de F-F appliquable avec des graphes non orientés ; j'aimerais savoir si c'est possible ?
    - Pour coder l'algorithme, il y'a un truc qui me paraît bizarre : quand je trouve un arc dont la destination est le sommet "courant", je peux prendre cet arc en décrémentant son flux(d'après l'algo). Concrètement, cela reviendrait donc à "virer" une voiture d'une voie de circulation, mais je ne vois pas en quoi ça trouve un chemin dans l'autre sens? J'ai aussi un doute sur la condition pour prendre un arc "à l'envers" : logiquement, ce serait que son flux soit supérieur ou égal à 0 (cad qu'il y'ait au moins une voie de circulation occupée) ?
    - Pour le reste, j'ai aussi prévu une structure de liste chaînée pour contenir tous les sommets d'un chemin qu'on trouve, avec leur marquage(pris vers l'avant ou vers l'arrière).
    Voilà, ce serait bien si vous pouviez me donner vos avis sur cette façon de faire pour savoir s'il y'a des choses à changer avant de me lancer dans le codage ...
    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Si tu le fais en C++, regarde du côté de la librairie de graphes de Boost, ça sera plus simple peut-être pour toi.
    En gros, pour stocker tout ça, on stocke la liste des noeuds, puis à chaque noeud, on donne une liste de successeurs avec leur capacité.

Discussions similaires

  1. Probléme sur gestion de projet avec UML
    Par baguidi dans le forum Débuter
    Réponses: 5
    Dernier message: 14/10/2009, 16h28
  2. Réponses: 1
    Dernier message: 04/04/2008, 13h50
  3. Réponses: 1
    Dernier message: 26/03/2008, 17h09
  4. [XSLT]Problème sur une comparaison if avec des strings
    Par LoDev dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 18/01/2008, 09h27

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