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

VBA Access Discussion :

[Algorythme] Tester toutes les combinaisons possibles


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Par défaut [Algorythme] Tester toutes les combinaisons possibles
    Bonjour,

    Je travail sur une BDD sous access 2003, et je suis face a un probleme,

    j'ai une table, qui contiend une liste de segments de transports, je doits associer ces segments les un avec les autres de maniere a ce que la solution finale soit le moin couteuse possible. malheureusement ces segments n'ont pas de cout fixes, et le prix d'une combinaison de segment depend de sa propre composition (KM temps de route, nb de segment...)

    Je pense donc procèder de la maniere suivante:

    évaluer toutes les combinaisons possible de segments (enchainement en fonction des heures de debut et de fin)

    évaluer le prix de chaque combinaison

    retenir que les combinaisons les plus intéressantes, en excluant les combinaisons qui se recoupent (celles qui contiennent le meme segment)

    mon probleme est que je n'arrive pas a formuler le code qui génère toutes les combinaisons possible.

    Quelqu'un a une idée ?

    cordialement

    Franck

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 352
    Par défaut
    pour avoir toutes les combinaisons possibles, il suffit de faire le produit cartésien de ta table avec elle-même.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select table1.segment, table2.segment from tatable as table1, tatable as table2
    Par contre, cela limite la combinaison à une combinaison de 2 segments. Pour avoir plus, il faut à nouveau réaliser un produit cartésien du résultat de la première requête avec tatable.

  3. #3
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Avril 2007
    Messages : 35
    Par défaut
    bonjour,

    merci de la reponse,

    Le probleme, c'est que cela calcul environ 192 millards de possibilité rien que pour les combinaisons de 5 segments.

    je vais donc affiner ma recherche car le temps de traitement de la requete risque d'etre tres long....

    je m'explique donc.

    chaque segments a un N° qui est chronologique.

    donc si on prend un exemple simpleavec les segment 1 2 3 4 et pour une combinaison de 3 segments je souhaite obtenir le resultat suivant:
    - 1
    - 2
    - 3
    - 4
    - 1 2
    - 1 3
    - 1 4
    - 2 3
    - 2 4
    - 3 4
    - 1 2 3
    - 1 2 4
    - 1 3 4
    - 2 3 4

    il y a t'il un moyen de générer une table ou un recorset contenant ces combinaisons ??

    merci

    Franck

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

Discussions similaires

  1. Tester la somme de toutes les combinaisons possibles
    Par unix27 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/11/2014, 14h39
  2. Algo pour toutes les combinaisons possibles
    Par rantanplan08 dans le forum Général Java
    Réponses: 6
    Dernier message: 03/01/2008, 09h45
  3. Réponses: 5
    Dernier message: 18/06/2007, 20h52
  4. Réponses: 16
    Dernier message: 20/10/2006, 16h31
  5. toutes les combinaisons possibles
    Par marocleverness dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 29/05/2006, 00h11

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