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 :

Chemin le plus court


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Par défaut Chemin le plus court
    Bonjour,

    J'ai un problème que je n'arrive pas à solutionner moi même :

    J'ai un tableau contenant des étapes :

    Nom : Capture.JPG
Affichages : 370
Taille : 13,3 Ko

    A partir de ce tableau je doit créer un programme permettant de trouver le chemin nécessitant le moins d’étape pour faire PARIS > AUXERRE.

    Sachant que dans ce tableau il y a 2 chemin possible :

    - PARIS > MELUN >SENS > AUXERRE

    - PARIS > MONTARGIS > AUXERRE

    le deuxième chemin est évidemment la bonne réponse.

    J'ai beau réfléchir je ne trouve pas comment réaliser se programme de façon générique, pouvez vous m'aider ?

    Merci d'avance.

  2. #2
    Membre très actif

    Homme Profil pro
    Apprenti Langage C, pratiquant OpenOffice et Poo
    Inscrit en
    Février 2015
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Apprenti Langage C, pratiquant OpenOffice et Poo
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 229
    Par défaut
    Bonsoir,

    Serais-tu voyageur de commerce ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Par défaut
    Merci pour l'indice !
    Je vais pousser ma recherche dans cette direction, je reviens vers vous si je bloque !

  4. #4
    Membre très actif

    Homme Profil pro
    Apprenti Langage C, pratiquant OpenOffice et Poo
    Inscrit en
    Février 2015
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Apprenti Langage C, pratiquant OpenOffice et Poo
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 229
    Par défaut
    Ton problème est moins compliqué que le problème du voyageur de commerce.

    Essaies de remplacer les étapes par des distances, elles seront plus facile à gérer, car moins nombreuses.

    Tu poses ton problème de deux manières : le chemin le plus court ou le moins d'étapes ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Par défaut
    Je n'ai pas de distance, c'est vraiment le nombre d'étape qui compte.
    Le titre est trompeur, désolé !

  6. #6
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    26 772
    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 772
    Par défaut
    Les deux manières de formuler le problème sont assez équivalentes : si tu cherches le minimum d'étapes, tu considères que chaque ville est distante de l'autre d'une unité.

    C'est un problème assez courant avec des graphes. Vois, par exemple, http://lapoire.developpez.com/algorithmique/graphes/, http://tcuvelier.developpez.com/tuto...-donnees/#LVII.
    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 !

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 229
    Par défaut
    C'est quoi, l'école ou bien la FAC où on t'a donné cet exercice ?

  8. #8
    Futur Membre du Club
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Par défaut
    @dourouc05 : Merci je vais étudier ça tranquillement.

    @tbc92 : ni l'un ni l'autre j'ai fait un test technique (dans le cadre d'un recrutement) qui ressemble à ça. Pourquoi cette question ?

  9. #9
    Membre très actif

    Homme Profil pro
    Apprenti Langage C, pratiquant OpenOffice et Poo
    Inscrit en
    Février 2015
    Messages
    229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre (Centre)

    Informations professionnelles :
    Activité : Apprenti Langage C, pratiquant OpenOffice et Poo
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2015
    Messages : 229
    Par défaut
    Citation Envoyé par kultt Voir le message
    Je n'ai pas de distance, c'est vraiment le nombre d'étape qui compte.
    Le titre est trompeur, désolé !
    Bonjour,

    Tu pourrais donner une valeur à chaque ville et comparer le total par chemin.

    Soit deux valeur par étape : PARIS = 1, MELUN = 2, total étape = 3

    ou

    ville de départ en dizaine et ville d'arrivée en unité : PARIS = 10, MELUN = 1, total étape = 11

    Ce n'est qu'une idée, je n'ai pas essayé.

  10. #10
    Membre Expert

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Billets dans le blog
    9
    Par défaut Chemin le plus court
    Bonjour,

    Citation Envoyé par kultt Voir le message
    ... J'ai un problème que je n'arrive pas à solutionner moi même :
    J'ai un tableau contenant des étapes :

    Nom : Capture.JPG
Affichages : 370
Taille : 13,3 Ko

    A partir de ce tableau je doit créer un programme permettant de trouver le chemin nécessitant le moins d’étape pour faire PARIS > AUXERRE.
    Sachant que dans ce tableau il y a 2 chemin possible :

    - PARIS > MELUN >SENS > AUXERRE
    - PARIS > MONTARGIS > AUXERRE

    le deuxième chemin est évidemment la bonne réponse.

    J'ai beau réfléchir je ne trouve pas comment réaliser se programme de façon générique, pouvez vous m'aider ?
    Ton énoncé indique 5 villes:
    1_Paris
    2_Melun
    3_Sens
    4_Montargis
    5_Auxerre

    et 5 étapes permises:
    <1 - 2>, <2 - 3>, <3 - 5>, <1 - 4>, <4 - 5> parmi les (5 *4 / 2) = 10 arêtes possibles pour le graphe envisagé.

    Cela peut se consigner dans une matrice d'adjacence d'ordre 5, où l'on trouve aij = 1 ou 0 selon que l'étape est ou non autorisée. Si l'on ne tient compte que des étapes, et non des distances, la solution classique consiste donc à dégager le parcours total de somme (Saij) minimale, mais ne comportant aucun terme nul.

    Une autre recherche est encore envisageable, en considérant qu'il y aura au maximum 3 villes intermédiaires: <1 -a - b - c - 5> , donc 4 étapes. Le parcours total ne dépassant pas 4, on peut reprendre l'initialisation de la matrice précédente en posant aij = 1 (unité de distance convenue pour chaque étape autorisée), et aij = 10 pour les autres, de sorte qu'une simple recherche du minimum de la distance totale éliminera les parcours comportant une étape interdite.

    Le (très) petit nombre de villes autorise une énumération complète des parcours, classés selon le nombre de villes intermédiaires: 0 ,1 , 2 ou 3 , ce qui conduit à l'examen des cas:
    <1 - 5> : une solution, exclue;
    <1 - i - 5>: 3 solutions;
    <1 - i - j - 5> : 6 solutions;
    <1 - i - j - k - 5> : 6 solutions.

    Cela se programme rapidement.

    PS: Il est même possible de se ramener à l'unique dernier cas si l'on autorise l'éventuelle identité de deux étapes consécutives:
    (1 = i ; i = j ; j = k ; k = 5); la nullité des termes diagonaux (aii = 0) s'accordant avec le fait qu'aucune distance n'est parcourue, si l'on ne sort pas de la ville considérée. Mais il faudra en revanche éliminer quelques solutions inutiles, comme <1 - 4 - 4 - 4 - 5> ou <1 - 4 - 4 - 5 - 5> . en les réduisant au parcours le plus simple: <1 - 4 - 5> , comportant le plus petit nombre de déplacements.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. 2D C++ : Améliorer Recherche chemin le plus court
    Par Julien_C++ dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 04/11/2006, 13h58
  2. chemin le plus court
    Par fabetvince dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 01/06/2006, 00h14
  3. Trouver le chemin le plus court
    Par poly128 dans le forum Langage
    Réponses: 8
    Dernier message: 24/04/2006, 08h28
  4. chemin le plus court
    Par fabetvince dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 21/04/2006, 13h38
  5. algorithme de Ford (recherche chemin le plus court)
    Par abstraite dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 19/05/2005, 10h39

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