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 :

[?] Diagramme de pert - liste chemins


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 110
    Points : 137
    Points
    137
    Par défaut [?] Diagramme de pert - liste chemins
    Bonjour,

    Par rapport au schéma donné en pièce jointe, un diagramme de PERT (sans les dates au plus tôt et au plus tard), je recherche un moyen de trouver tous les chemins possibles.

    J'ai défini la table de correspondances suivante :
    ----------
    A;B
    A;D
    B;C
    C;FIN
    D;C
    D;F
    DEBUT;A
    DEBUT;E
    E;G
    F;FIN
    G;F
    G;H
    H;FIN
    ----------

    Le programme doit afficher :
    ---------------------------
    DEBUT -> A -> B -> C -> FIN
    DEBUT -> A -> D -> C -> FIN
    DEBUT -> A -> D -> F -> FIN
    DEBUT -> E -> G -> F -> FIN
    DEBUT -> E -> G -> H -> FIN


    Il faut bien entendu utiliser une fonction récursive.


    Des propositions ?

    (Je code en VBA et en VB.NET.)

    Merci de votre aide !
    Images attachées Images attachées  

  2. #2
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 110
    Points : 137
    Points
    137
    Par défaut
    Voici une solution : (en VBA - Access 2003)
    ------------------


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Option Compare Database
    Private myDAODB As DAO.Database
     
    Private Sub mysubLANCEMENT()
     
        myCHEMIN = ""
        Set myDAODB = CurrentDb
        Call mysubREC("DEBUT", "DEBUT")
     
        Set myDAODB = Nothing
     
    End Sub
     
     
     
    Private Sub mysubREC(myTACHE As String, myCHEMIN As String)
     
    Dim myQuery As String
    Dim myNextTache As String
    Dim myDAOREC As DAO.Recordset
    Dim mycheminsauv As String
     
    If Not myTACHE = "FIN" Then 'si on n'est pas a la dernière tâche
        myQuery = "SELECT tbDEPENDANCES.* FROM tbDEPENDANCES WHERE (tbDEPENDANCES.TACHEDEPART = """ & myTACHE & """);"
        Set myDAOREC = myDAODB.OpenRecordset(myQuery)
        mycheminsauv = myCHEMIN
        Do Until myDAOREC.EOF = True
            myNextTache = myDAOREC!TACHEARRIVEE
            myCHEMIN = myCHEMIN & myNextTache
            Call mysubREC(myNextTache, myCHEMIN)
            myCHEMIN = mycheminsauv
            myDAOREC.MoveNext
        Loop
        myDAOREC.Close
    Else
        'on est à la fin d'un chemin...
        Debug.Print myCHEMIN
    End If
     
     
    End Sub

    Je suis intéressé par d'autres solutions !

    Si qn a une idée...

  3. #3
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Ce que je ne comprends pas c'est que le diagramme de P.E.R.T. sert justement à représenter le chemin critique. Donc pourquoi vouloir afficher l'ensemble des chemins ?

    Et sinon tu n'auras aucune réponse en code dans la rubrique 'algorithmes' donc je te conseillerais vivement d'aller dans la rubrique apporpriée (VBA)
    Moi perso j'en touche pas une en VBA

  4. #4
    Membre habitué
    Inscrit en
    Juillet 2004
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 110
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Pourquoi avoir la liste des chemins ? Parce que j'en ai besoin !

    Pour le langage, je ne pouvais pas aller en VBA, car ce n'est pas trop une question de langage...
    Je le voulais bien aussi en VB.NET, en C# ou autre...

    Alors, soit je postais sur x forum ou sur un forum généraliste...

    Skip78, sinon as-tu une autre solution a mon problème ?

  5. #5
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Bah au niveau algorithmique oui je sais comment fonctionne Pert, mais pour t'aider à partir de ton programme c'est impossible du fait que ca soit en VBA ... Par conséquent je ne connais pas ton problème .

    En effet en language algorithmique, récupérer les chemins se dit 'recuperer les chemins' LOL

    D'ailleurs j'ai pas l'impression que ca soit P.E.R.T. ton truc ???
    Ca ressemble plus à un simple graph orienté je trouve

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par skip78
    En effet en language algorithmique, récupérer les chemins se dit 'recuperer les chemins' LOL
    Ca dépend tout de même de la structure... Ici par exemple un simple parcours en profondeur suffit.

    --
    Jedaï

  7. #7
    Membre habitué Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Points : 133
    Points
    133
    Par défaut
    Oui mais comme je l'ai dit plus haut, BFS ou DFS ca s'utilise dans le cadre des graphs orientés, pas dans les diagrammes de PERT.
    Enfin bref tout ca pour dire qu'il n'y a pas de réel problème ici, à moins que ca soit du code, mais ca ne semble pas être le cas ...

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 192
    Points : 231
    Points
    231
    Par défaut
    Que ce soit du PERT ou la méthode des potentiels ou autre chose, le problème a l'air de n'être que l'énumération des chemins possibles entre deux sommets dans un graphe décomposable en niveau (ça évite de marquer les sommets pour éviter les boucles).
    En récursif pour stocker les chemins de s à t, un algo général peut être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Fonction explorer(s:in,t:in,L:out) (L est la liste de chemins)
    c <- liste composée de s 
    explorer(t,L,c)
    Fin fonction
     
    Fonction explorer(t:in,L:in/out,c:in)
    i <- dernier élément de c
    si i = t alors
      ajouter c à L
    sinon
      pour tout successeur j de i faire
        ajouter j en fin de c
        explorer(t,L,c)
        supprimer le dernier élément de c
      fin pour
    fin si
    Fin Fonction
    C'est assez mal écrit, mais je ne sais pas si tu connais les structures de file et les termes algorithmiques qui vont avec...

Discussions similaires

  1. [XL-2010] Perte liste validation
    Par HakunA59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 16/01/2013, 11h01
  2. diagramme de pert : methode cartesienne
    Par sliders_alpha dans le forum Mathématiques
    Réponses: 0
    Dernier message: 23/01/2011, 17h56
  3. Perte du chemin de départ
    Par muppetshow dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/12/2009, 21h53
  4. Fusion de diagrammes de PERT
    Par Shadew dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 05/10/2009, 16h06
  5. Réponses: 11
    Dernier message: 21/10/2008, 15h02

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