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 :

Algorithme de classement


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    63
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 63
    Points : 57
    Points
    57
    Par défaut Algorithme de classement
    Bonjour,

    Je cherche à faire un algorithme qui me remette des villes dans un ordre géographique.
    Le problème est le suivant : j'ai des fiches horaires de bus qui parcourent une ligne donnée, mais ne s'arrêtent que dans certains points.
    J'ai une fiche horaire par bus, qui ne comprend que les arrêts du bus.
    Avec toutes les fiches horaires, je souhaiterais avoir une liste de tous les arrêts de la ligne dans l'ordre :
    par exemple, avec :
    Bus 1 : Dammartin, Soissons, Anzy
    Bus 2 : Soissons, Laon
    Bus 3 : Paris, Aulnay, Soissons, Laon
    Je souhaite obtenir : Paris, Aulnay, Dammartin, Soissons, Anzy, Laon.
    En l'occurrence, il me semble qu'on ne peut pas déduire de manière certaine que Anzy soit avant Laon, ni que Dammartin se trouve après Aulnay. Il faut donc un bus 4 :
    Bus 4: Aulnay, Dammartin, Anzy, Laon.
    Une petite complexité supplémentaire : je ne reçois pas toutes les fiches horaires en même temps, il faudrait donc une forme de stockage intermédiaire pour que le programme puisse mettre la liste à jour au fur et à mesure. Je suppose donc qu'il faut une deuxième liste qui marque la relation d'ordre :
    Après le bus 3, on aurait :
    Paris (?,1)
    Aulnay (-1,2)
    Dammartin (?,1)
    Soissons (-1,1)
    Anzy (-1,?)
    Laon(-2,?)
    Dans les parenthèses se trouvent les positions relatives des points qui ont permis de donner l'ordre de chaque point (premier chiffre pour avant, deuxième pour après) L'ordre est certain quand tous les chiffres sont égaux à 1 ou -1.

    Est-ce que vous connaissez un type d'algorithme dont je pourrais m'inspirer ? Le programme tournerait sous VBA.
    En vous remerciant,
    Bon week-end

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour,

    il n'y a pas de relation d'ordre dans les espaces à plus d'une dimension.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    bah, en général les lignes ont une direction globale. (ça pourrait par exemple être la moyenne des arctangentes des arrêts)

    Suivant cette direction tu as une distance depuis le point initial.

    Donc, suivant ton plan initial des lignes (par exemple pour Paris RP c'est à peu près une roue de vélo), tu peux établir, par ligne, une "liste des distances".. par exemple en prenant la projection par rapport à la ligne "moyenne" ...

    De là tu peux "joindre" les lignes en cherchant les plus proches voisins (début, fin)
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 050
    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 050
    Points : 9 386
    Points
    9 386
    Par défaut
    Bonjour,
    Selon ce que tu dis, s'il y a un bus qui passe par V1 puis V2, il semblerait que V1 soit forcément AVANT V2... et donc dans tes données, on a l'assurance que aucun bus ne passera par V2 PUIS V1.
    C'est surprenant. Tu confirmes ?

    Pour un besoin un peu similaire, (mais avec possibilité d'avoir V1 avant V2 sur une ligne, et V1 après v2 sur une autre ligne), je procède de la façon suivante :
    Pour chaque Ville V1, calcul du rang moyen.
    Puis tri sur ce rang moyen.

    C'est très basique, mais selon les besoins, ça peut suffire.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

Discussions similaires

  1. Réponses: 12
    Dernier message: 20/03/2015, 09h52
  2. Classement algorithme genetique
    Par scartik dans le forum ASP.NET
    Réponses: 10
    Dernier message: 05/05/2011, 23h06
  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