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 :

Trouver tous les chemins possibles d'un trajet (d'un point A à un point B)


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    langage c
    Inscrit en
    Janvier 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : langage c
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2014
    Messages : 14
    Par défaut Trouver tous les chemins possibles d'un trajet (d'un point A à un point B)
    bonjour .
    j'ai une petit erreur sur la récursivité tabou (j'ai trouver dans le forum ) , j'ai changer le 0 dans la fonction explore par un autre nombre ( entre 1_3) parce que il peut que le point d’arriver être sur la sommet 2 ou 3 .
    mais il donne un erreur de Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 .
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static void main(String[] args) {
            taboo a =new taboo();
            a.explore(1,1);
     
        }
    la classe taboo :
    Code Java : 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
     
    public class taboo {
            // nombre de sommets dans le graphe
            int n=5;
             // matrice d'adjacence du graphe 
            int[][] adjacencymatrix = new int[][] {
    	new int[] {1,1,1,0,0}, //    1
    	new int[] {1,1,1,1,0}, //  / | \
    	new int[] {1,1,1,1,0}, // 0  |  3 - 4
    	new int[] {0,1,1,1,1}, //  \ | /
    	new int[] {0,0,0,1,1}, //    2       
            };
            // stockage du chemin pendant l'exploration recursive
            int[] path = new int[n];
            // verrou pour la recherche taboo (tous initialisés à "false" par défaut)
            boolean[] taboo = new boolean[n];
            // sommets de départ/arrivé souhaités
            int source=0;
            int target=4; 
     
         void explore(int position, int depth) {
    	path[depth]=position; 
     	// on est sur le sommet d'arrivé -> fini
    	if (position==target) {
    		// affiche la solution
    		for(int i=0;i<=depth;i++) System.out.print(path[i]+" ");
    		System.out.print("\n");
    		return;
    	}
    	// sinon...
    	taboo[position]=true; // on pose un caillou
    	// on explore les chemins restants
    	for(int i=0;i<n;i++) {
    		if (adjacencymatrix[position][i]==0 || taboo[i]) continue;
    		explore(i,depth+1);
    	}
    	taboo[position]=false; // on retire le caillou
    }
    }
    le programme affichera les différents lignes à prendre et les stations où doit se faire le changement.

    j'ai posé une image qui donne un exemple (les point sont des Station) :

    Nom : V6tEn1.png
Affichages : 771
Taille : 14,5 Ko

    et s'il vous plait peut il m'expliquer le tableau adjacencymatrix
    merci d'avance .

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 775
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2008
    Messages : 26 775
    Par défaut


    Citation Envoyé par chakirlbr Voir le message
    et s'il vous plait peut il m'expliquer le tableau adjacencymatrix
    Un petit coup de Wikipedia sur ce terme te donne directement une solution : http://en.wikipedia.org/wiki/Adjacency_matrix. Le premier point se résoudra alors relativement facilement avec un débogueur (voir les forums Java pour l'emploi de ce type d'outils).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 298
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 298
    Par défaut
    Bonjour,

    n'aurais-tu pas confondu la classe et le constructeur ?

Discussions similaires

  1. Regex trouver tous les chemins intermédiaires
    Par Pedro4 dans le forum Langage
    Réponses: 7
    Dernier message: 01/02/2012, 12h00
  2. Collecte de tous les chemins possibles
    Par Erable dans le forum Mathématiques
    Réponses: 3
    Dernier message: 26/02/2010, 11h45
  3. Réponses: 0
    Dernier message: 26/05/2009, 01h06
  4. Parcours d'un arbre : examiner tous les chemins possibles
    Par Molos dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 06/04/2009, 17h22
  5. [JGraphT] Obtenir tous les chemin possibles
    Par pmartin8 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 02/06/2006, 19h26

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