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 :

Recherche de tous les chemins


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2015
    Messages : 17
    Par défaut Recherche de tous les chemins
    Bonjour,
    je travaille sur une application java qui cherche tous les chemins possibles entre deux points dans une carte. j'ai pensé à utiliser l'algorithme de recherche en profondeur
    est-ce qu'on peut utiliser cet algorithme sur une carte en java?
    est-ce que je dois utiliser la base de données de pays (dans ce cas j'ai besoin de pays de Tunisie) pour utiliser l'algorithme?
    comment afficher toutes les routes sur la carte?
    Cordialement

  2. #2
    Membre expérimenté
    Avatar de ChipsAlaMenthe
    Homme Profil pro
    Ingénieur en eau chaude et ballon rond
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur en eau chaude et ballon rond
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Par défaut
    Salut à toi!
    Alors concrètement c'est quasiment impossible à ma connaissance d'afficher tous les chemins possibles pour aller d'un point à un autre, car il y en a une infinité. Par contre afficher les N plus courts chemins ça c'est possible!
    Pour aller d'un point A à un point B, il faut utiliser ce qu'on appelle l'algorithme de Dijkstra. Il te permettra de trouver le chemin le plus court pour y parvenir. Il existe bien sûr d'autres algos mais celui-là est pas mal.
    Il ne te reste plus qu'à améliorer l'algo ou alors l'intégrer dans une autre fonction pour trouver d'autres chemins, comme par exemple le 2ème chemin le plus court, le 3ème, etc...

  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

    Tous les chemins mènent à Rome. Tu n'auras jamais l'exhaustivité.

    Alors concrètement c'est quasiment impossible à ma connaissance d'afficher tous les chemins possibles pour aller d'un point à un autre, car il y en a une infinité.
    Sauf en considérant les routes déjà construites qui sont monotones (toujours croissantes) sur le chemin à vol d'oiseau entre ton départ et ton arrivée.
    Ce modèle ne convient pas aux routes de montagnes par exemple.

  4. #4
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 776
    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 776
    Par défaut


    Citation Envoyé par ChipsAlaMenthe Voir le message
    Alors concrètement c'est quasiment impossible à ma connaissance d'afficher tous les chemins possibles pour aller d'un point à un autre, car il y en a une infinité.
    . Puisque l'ensemble des routes est fini (on peut le représenter dans un ordinateur, par essence fini), non, il existe un nombre fini de chemins entre deux points, sous l'hypothèse d'élimination des boucles (par exemple, interdire de faire trois fois le tour du pâté de maisons ; en faisant le tour une fois de plus, tu as un nouveau chemin, mais pas très intéressant). (Par contre, s'il y avait un ensemble infini mais dénombrable de routes, je ne me prononcerais pas sur la dénombrabilité de l'ensemble des chemins, ça ressemble fort à l'ensemble des sous-ensembles.) Cela ne préjuge cependant en rien de la faisabilité d'une visualisation utile .

    Par conséquent, l'idée d'effectuer un parcours complet du graphe me semble bonne — en largeur, en profondeur, je ne vois pas d'inconvénient, il faut juste éviter les boucles (éviter l'exploration d'un chemin si tu repasses par une arête déjà visitée, en gros). Niveau complexité en temps, par contre, ça risque d'être un peu plus qu'élevé (donc algorithme impraticable sur de "grands" graphes). Si tu veux éviter ce traitement spécifique des boucles ou utiliser l'algorithme en pratique, alors utilise une recherche de plus court chemin (à adapter), comme suggéré par ChipsAlaMenthe.
    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 !

  5. #5
    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
    Citation Envoyé par dourouc05 Voir le message
    . Puisque l'ensemble des routes est fini (on peut le représenter dans un ordinateur, par essence fini), non, il existe un nombre fini de chemins entre deux points,
    Si on va par là, la quantité de parties d'échecs possibles est finie.

  6. #6
    Membre expérimenté
    Avatar de ChipsAlaMenthe
    Homme Profil pro
    Ingénieur en eau chaude et ballon rond
    Inscrit en
    Mai 2015
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur en eau chaude et ballon rond
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2015
    Messages : 138
    Par défaut
    Citation Envoyé par dourouc05 Voir le message
    . Puisque l'ensemble des routes est fini (on peut le représenter dans un ordinateur, par essence fini), non, il existe un nombre fini de chemins entre deux points, sous l'hypothèse d'élimination des boucles (par exemple, interdire de faire trois fois le tour du pâté de maisons ; en faisant le tour une fois de plus, tu as un nouveau chemin, mais pas très intéressant).
    En fait je considèrais à ce moment là qu'un chemin déjà parcouru peut être parcouru plusieurs fois ^^, même si ça n'a aucun intérêt sauf si le mec s'entraine pour son footing matinal ^^.

Discussions similaires

  1. Recherche tous les chemins possibles
    Par ammoula55 dans le forum Général Java
    Réponses: 2
    Dernier message: 02/07/2015, 01h23
  2. Algorithme de recherche de tous les pairs-chemins dans un graphe
    Par bilzzbenzbilz dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 29/10/2010, 00h38
  3. une requete effectuant une recherche sur tous les champs
    Par raynor911 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/02/2006, 16h06
  4. [MySQL] Rechercher dans tous les champs
    Par Faure dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/10/2005, 15h52
  5. Recherche sur tous les fichiers d'un projet
    Par Kaorichan dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 28/04/2005, 12h28

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