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 :

Est ce que quelqu'un a travaillé sur les graphes ?


Sujet :

Algorithmes et structures de données

  1. #21
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    La question est :
    Comment peut on faire cela
    Est ce qu'il y'a un algorithme connu qui facilité tout ça ?
    Je trouve ça un peu compliqué de générer aléatoirement un graphe
    The great glory is not in never falling but in rising every time we fall.

  2. #22
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    La question est :
    Comment peut on faire cela
    Est ce qu'il y'a un algorithme connu qui facilité tout ça ?
    Je trouve ça un peu compliqué de générer aléatoirement un graphe
    je ne suis sûr de rien il faut d'abord voir combien de graphe connexe on peut générer à partir de n noeud

    je vais me pencher là-dessus

  3. #23
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    En fait ce que je veux c'est seulement un graphe par simulation.
    Je veux juste connaitre l'algorithme qui peut me générer le graphe.
    Je ne vais pas générer tous les graphes connexes possibles
    The great glory is not in never falling but in rising every time we fall.

  4. #24
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    Le deuxième programme doit me générer aléatoirement une matrice d'un grpahe connexe. Je donne en entrée le nombre de noeuds du graphe. Le programme tourne et me donne une matrice d'un graphe connexe.
    En partant d'un point je dois générer N noeuds aléatoirement mais à condition qu'ils soient connexes
    Le graphe complet tel que tout noeud soit relié à tout noeud me semble être un candidat plosible :-) Tu peux prendre aussi le graphe tel que chaque noeud soit relié au précédent et au suivant, ou tel que chaque noeud est relié au premier.
    Après, si l'exos demande un tirage alléatoire tel que chaque graphe connexe soit équiprobablement tiré, c'est un peu plus difficile...

    Citation Envoyé par condor_01 Voir le message
    Bonjour,
    Est ce qu'il y'a quelqu'un parmi vous qui a travaillé sur les problèmes de graphe avant?
    Ca a du arriver une ou deux fois :-)

    Citation Envoyé par condor_01 Voir le message
    J'essaie de faire un programme pour tester la connexité d'un graphe non orienté à partir de sa matrice d'adjacence.
    Je rappelle que la matrice d'adjacence M est telle que pour un vecteur S de sommets, MS soit le vecteur des sommets accessibles en un coup à partir de ceux de S. Donc par exemple, (I + M + M^2)S avec I la matrice identité est l'ensemble des sommets accessibles depuis S en au plus deux coups. Je te laisse en déduire un algo qui te permettent de déterminer si un graphe non orienté est connexe, mais même si un graphe orienté l'est bien.
    Dernière modification par PRomu@ld ; 14/10/2007 à 18h49. Motif: Fusion

  5. #25
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Salut!

    Citation Envoyé par alex_pi Voir le message


    Je te laisse en déduire un algo qui te permettent de déterminer si un graphe non orienté est connexe, mais même si un graphe orienté l'est bien.
    un graphe orienté n'est pas toujours connexe.

  6. #26
    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 acacia Voir le message
    un graphe orienté n'est pas toujours connexe.
    Ce n'est pas ce qu'il a dit, il a montré qu'avec une matrice d'adjacence, pourvu qu'on comprenait comment l'utiliser, il était trivial de montrer la connexité (ou non) d'un graphe donné, qu'il soit orienté ou non.

    --
    Jedaï

  7. #27
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Ce n'est pas ce qu'il a dit, il a montré qu'avec une matrice d'adjacence, pourvu qu'on comprenait comment l'utiliser, il était trivial de montrer la connexité (ou non) d'un graphe donné, qu'il soit orienté ou non.

    --
    Jedaï
    j'ai mal compris

  8. #28
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    Je veux un algorithme qui:
    - en entrée prend le nombre de noeuds
    - en sortie me donne la matrice d'adjacence d'un graphe non orienté connexe.
    Ce graphe sera généré d'une manière aléatoire.

    J'ai pensé à ça:
    On part d'un point A de coordonnés(0,0,0)
    On ajoute un autre point distance aléatoire
    puis on choisit aléatoirement un point parmi ces 2 points et on le lie à un troisième point
    Et ainsi de suite jusqu'à atteindre le nombre de noeuds souhaité
    The great glory is not in never falling but in rising every time we fall.

  9. #29
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    Je veux un algorithme qui:
    - en entrée prend le nombre de noeuds
    - en sortie me donne la matrice d'adjacence d'un graphe non orienté connexe.
    Ce graphe sera généré d'une manière aléatoire.

    J'ai pensé à ça:
    On part d'un point A de coordonnés(0,0,0)
    On ajoute un autre point distance aléatoire
    puis on choisit aléatoirement un point parmi ces 2 points et on le lie à un troisième point
    Et ainsi de suite jusqu'à atteindre le nombre de noeuds souhaité
    salut!

    j'ai bien compris ce que tu veux faire

    c'est justement la connexité qui pose problème

    le programme pourra te construire aléatoirement un seul chemin

    A-> B -> C -> D ............-> N

    et te dire que c'est un graphe connexe

  10. #30
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    Après la fin du programme qui génère le graphe on peut ajouter des lignes qui ont pour but de tirer aléatoirement des noeuds non connectés (dans la matrice d'adjacence) et les connecter (ajouter des 1 dans les cases apropriées).
    The great glory is not in never falling but in rising every time we fall.

  11. #31
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    Après la fin du programme qui génère le graphe on peut ajouter des lignes qui ont pour but de tirer aléatoirement des noeuds non connectés (dans la matrice d'adjacence) et les connecter (ajouter des 1 dans les cases apropriées).
    donc le graphe généré juste avant la fin du programme n'est pas forcément connexe
    et on lui rajoute des arêtes pour qu'il le soit

  12. #32
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par acacia Voir le message
    donc le graphe généré juste avant la fin du programme n'est pas forcément connexe
    et on lui rajoute des arêtes pour qu'il le soit
    Si. En gros, ce qu'il fait, c'est construire pour commencer un arbre couvrant, puis éventuellement rajouter d'autres arrêtes pour ne pas construire uniquement des arbres mais aussi des graphes avec cycles. La construction de l'arbre l'assure de la connexité.

    En revanche, il est peu probable que tous les graphes soient équiprobables avec une tel méthode. Après il faut voir qu'elle est le besoin.

    http://xkcd.com/221/

  13. #33
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Si. En gros, ce qu'il fait, c'est construire pour commencer un arbre couvrant, puis éventuellement rajouter d'autres arrêtes pour ne pas construire uniquement des arbres mais aussi des graphes avec cycles. La construction de l'arbre l'assure de la connexité.

    En revanche, il est peu probable que tous les graphes soient équiprobables avec une tel méthode. Après il faut voir qu'elle est le besoin.

    http://xkcd.com/221/
    Oui c'est ce que je veux faire.
    je ne sais pas ce que tu veux dire par équiprobable mais le plus important pour moi c'est d'avoir un graphe connexe à la fin.

    Alors passons à la pratique.
    Est ce que vous me conseillez un algorithme particulier ?
    The great glory is not in never falling but in rising every time we fall.

  14. #34
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Si. En gros, ce qu'il fait, c'est construire pour commencer un arbre couvrant, puis éventuellement rajouter d'autres arrêtes pour ne pas construire uniquement des arbres mais aussi des graphes avec cycles. La construction de l'arbre l'assure de la connexité.

    En revanche, il est peu probable que tous les graphes soient équiprobables avec une tel méthode. Après il faut voir qu'elle est le besoin.

    http://xkcd.com/221/
    Bonsoir,

    si avec son algorithme, il réussi à faire un arbre avant la fin, il aurait déjà assuré la connexité (comme tu l'as dit), aurait-il besoin de cycle?

  15. #35
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    Oui c'est ce que je veux faire.
    je ne sais pas ce que tu veux dire par équiprobable mais le plus important pour moi c'est d'avoir un graphe connexe à la fin.

    Alors passons à la pratique.
    Est ce que vous me conseillez un algorithme particulier ?
    tu ne veux pas nous montrer un bout de ton algorithme?

  16. #36
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    Je veux faire cet algorithme !!!!!!!!!!!!
    The great glory is not in never falling but in rising every time we fall.

  17. #37
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    Je veux faire cet algorithme !!!!!!!!!!!!
    ça, on le sait

    tu as une idée maintenant tu ne veux pas commencer?

  18. #38
    Membre habitué Avatar de condor_01
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    294
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 294
    Points : 133
    Points
    133
    Par défaut
    Effectivement c'est ce que je vais faire.
    Je posterai mon code dès que j'avance un peu
    The great glory is not in never falling but in rising every time we fall.

  19. #39
    En attente de confirmation mail
    Étudiant
    Inscrit en
    Août 2007
    Messages
    419
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2007
    Messages : 419
    Points : 263
    Points
    263
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    Effectivement c'est ce que je vais faire.
    Je posterai mon code dès que j'avance un peu
    waiting...

  20. #40
    Membre confirmé Avatar de benratti
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    471
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2004
    Messages : 471
    Points : 649
    Points
    649
    Par défaut
    Citation Envoyé par condor_01 Voir le message
    je ne sais pas ce que tu veux dire par équiprobable
    Equiprobable signifie que toutes les solutions ont une probabilité égale de sortir.

    Pour un entier N, le nombre de graphe connexe ayant N arête est fini. Si ton programme est effectivement equiprobale, cela signifie que chaque graphe doit avoir une probabilité de 1/N d'être généré.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 11
    Dernier message: 16/02/2015, 16h32
  2. Réponses: 4
    Dernier message: 01/02/2007, 20h55
  3. [MySQL] Probleme de requete est ce que quelqu"un pourrait m'aider
    Par sephirothmana dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 20/06/2006, 17h39
  4. est ce que postgresql peut s'installer sur un FAT32 ??
    Par mehdi_swatch dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 31/03/2006, 09h57
  5. Est ce que cette ram peut aller sur mon pc?
    Par Death83 dans le forum Composants
    Réponses: 3
    Dernier message: 29/09/2005, 11h58

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