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

avec Java Discussion :

Algorithme de Prim


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Par défaut Algorithme de Prim
    Bonjour,
    j'ai un projet qui consiste a programmer l'algorithme de Prim sur Java , les deux classes que j'ai créer sont Prim et WeightGraphe , la première est dont il ya tout le code de l'algorithme et la deuxième représente la taille du graphe ! le problème que j'ai maintenant c'est quand j'execute ca ne m'affiche aucune erreur ni résultat tout reste blanc sans rien avoir sur la console je ne sais pas comment dégager l'erreur que j'ai dans mon programme !! voici les deux classes :
    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
    42
    43
    44
    45
    46
    public class Prim {
     
          // L'algorithme de Prim-Jarnik de trouver MST racine s
          public static int [] prim (WeightedGraph G, int s) {
             final int [] dist = new int [G.size()];  // la plus courte distance connue à MST
             final int [] pred = new int [G.size()];  // précédant nœud dans l'arbre
             final boolean [] visited = new boolean [G.size()]; // tout faux départ
     
             for (int i=0; i<dist.length; i++) {
               dist[i] = Integer.MAX_VALUE;
            }
            dist[s] = 0;
     
            for (int i=0; i<dist.length; i++) {
               final int next = minVertex (dist, visited);
               visited[next] = true;
     
               // Le bord de pred [suite] à côté est en MST (if next!=s)
     
               final int [] n = G.neighbors (next);
               for (int j=0; j<n.length; j++) {
                  final int v = n[j];
                  final int d = G.getWeight(next,v);
                  if (dist[v] > d) {
                     dist[v] = d;
                     pred[v] = next;
                  }
               }
            }
            return pred;  // (ignorer pred [s] == 0!)
         }
     
         private static int minVertex (int [] dist, boolean [] v) {
            int x = Integer.MAX_VALUE;
            int y = -1;   // graphe n'est pas connecté ou les sommets ne sont pas visités
            for (int i=0; i<dist.length; i++) {
               if (!v[i] && dist[i]<x) {y=i; x=dist[i];}
           }
            return y;
         }
     
    	public static void main(String[] args) {
     
    	}
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
    public interface WeightedGraph {
     
    	int size();
     
    	int[] neighbors(int next);
     
    	int getWeight(int next, int v);
     
    }
    Merci de m'aider si c'est possible

  2. #2
    Membre Expert
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Par défaut
    Problème de langage, va dans le forum associé. Mais en partant, prends cet indice :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public static void main(String[] args) {
     
    }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2013
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Juin 2013
    Messages : 6
    Par défaut
    je ne sais pas quoi déclarer dans le main pour afficher le résultat !!

  4. #4
    Membre chevronné Avatar de toutgrego
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2013
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2013
    Messages : 217
    Par défaut
    Salut,

    dans ton main il faut faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Graph graph=new Graph();//Classe qui implémente ton WeightedGraph
            Integer s=0;//Ici ta valeur
            System.out.println("Résultat : "+Prim.prim(graph,s));
    Bon après je n'ai pas regardé l'algo de prim en détail du coup je ne sais pas si il est bon.


    Tchao!

Discussions similaires

  1. [Débutant] arbre couvrant minimal - algorithme de Prim
    Par idées dans le forum MATLAB
    Réponses: 0
    Dernier message: 27/10/2011, 10h32
  2. Algorithme de Prim qui n'entraîne pas le bon résultat
    Par Invité dans le forum Général Java
    Réponses: 2
    Dernier message: 31/03/2009, 17h05
  3. Algorithme de randomisation ... ( Hasard ...? )
    Par Anonymous dans le forum Assembleur
    Réponses: 8
    Dernier message: 06/09/2002, 14h25
  4. Recherche de documentation complète en algorithmes
    Par Anonymous dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/03/2002, 12h09
  5. Algorithme génétique
    Par Stephane.P_(dis Postef) dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 15/03/2002, 17h14

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