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

MATLAB Discussion :

Graphe complet d'ordre n


Sujet :

MATLAB

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 32
    Par défaut Graphe complet d'ordre n
    Bonjour,

    J'aimerais réaliser un script matlab qui génère le graphe complet d'ordre n (C'est à dire un graphe de n sommets dans lequel toutes les arrêtes possibles entre les sommets sont présents)

    Ne connaissant pas à priori le nombre de noeud, j'ai l'idée de travailler en coordonnées polaires avec une boucle for:

    Pseudo-code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Initialisation: tracer un cercle de rayon 10 
     
    hold on;
    for i=1:n % positionner les points
    Placer sur ce cercle un point de coordonnée polaire (360/i,10)
    hold on;
    end for
     
    for i=1:n % traçage du graphe
        for j = 1:n-1
             tracer un cercle entre le point i et le point j
        end for
    end for
    La fonction "polar" de matlab génère un graphe en coordonnée polaire, il ne me manque pas grand chose pour arriver à ce que je veux...

    Quelqu'un a une idée?

    Merci, bonne soirée à tous

  2. #2
    Membre émérite Avatar de tubaas
    Homme Profil pro
    Acousticien
    Inscrit en
    Août 2009
    Messages
    641
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Acousticien
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2009
    Messages : 641
    Par défaut
    tu peux t'inspirer du code de la fonction POLAR (cherche dans le dossier d'installation de Matlab)
    tu verras qu'elle utilise les fonctions PATCH, LINE et PLOT mais qui prennent des coordonnées caertésiennes. il faut donc faire la conversion
    la fonction POL2CART peut aussi être utile.

    edit : code à ne regarder qu'après avoir réfléchi au problème
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    n=10;
    theta0=pi/2;
    r = ones(n,1);
    theta =theta0+[(0:n-1)'/n]*2*pi;
    [x,y] = pol2cart(theta,r);
    for i=1:n-1
    for j=i+1:n
    line([x(i) x(j)],[y(i) y(j)]);
    end
    end 
    axis([-1 1 -1 1]);
    axis('square');%sinon c'est laid

  3. #3
    Membre averti
    Inscrit en
    Novembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 32
    Par défaut
    Après réflexion du problème j'avais presque ta solution, sauf que j'ai un n=n+1 avant de commencer à tracer, cas sinon il y a n-1 points

    Edit: Au temps pour moi, tu avais modifié ton programme entre temps

    Merci pour ton aide

    Bonne journée!

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/07/2009, 08h10
  2. Algorithme génétique et probleme de voyageur de commerce avec graphe non complet
    Par marmarnassouf dans le forum Intelligence artificielle
    Réponses: 2
    Dernier message: 30/04/2009, 16h51
  3. Etude de graphes complets ou symétriques
    Par info bachir dans le forum C
    Réponses: 0
    Dernier message: 21/03/2009, 17h54
  4. generer aléatoirement un graphe non complet !
    Par oldscrout dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 31/12/2008, 07h23
  5. (Graphe complet/Clique) de Taille N et somme des poids des arcs maximales
    Par psyko72 dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 21/02/2008, 11h43

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