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

Macros et VBA Excel Discussion :

Réaliser un algorithme d'affectations


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 46
    Points : 15
    Points
    15
    Par défaut Réaliser un algorithme d'affectations
    Bonjour à toutes et tous,

    Je fais encore appel à vous pour avoir quelques conseils.

    Je dois écrire un algorithme d'optimisation en VBA sur Excel. Mais je ne sais pas vraiment dans quels sens prendre le problème...

    Voici les données:
    J'ai des produits (4 types de produits) dans des centres i.
    Ces produits je veux les envoyer dans des centres j, pouvant recevoir 1 à 4 types de produits. les centres j ont des capacités minimales et des capacités maximales.
    Les centres j ne sont pas affectés à un centre i particulier.
    Un type de produit d'un centre i peut être dirigé vers différents centre j.
    On a un coût de transport du centre i vers les centres j. Ces coûts diminuent selon la quantité de produits transférée.

    Donc bien évidemment, je cherche à minimiser mon coût total.

    j'ai commencé à poser mon problème de la manière suivante:
    xij= qté de produit j dans le centre de i
    ykj= qté de produit j dans le centre k
    cik= coût de transport du ventre i vers le centre k
    aikj= qté de produit j transférée de i à k.

    On cherche à minimiser la Somme sur i,k,j des aikj*cik
    avec somme ykj=somme xij
    et aussi par exemple les contraintes:
    100<y12<300.

    En faisant cela manque la donnée sur le fait que selon la quantité aikj, le coût cik n'est pas le même.

    Mes données sont renseignées dans des feuilles Excel.

    Ma façon de raisonner est-elle exacte? Si vous avez des idées ou des informations pour mettre en forme déjà la première étape en VB (sans prendre en compte les variations de coût), ça me permettrait de décoller un peu !!!
    Je vous remercie par avance pour les différents conseils et aides que vous pourrez m'apporter.

    Nanouche

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    On peut déduire de ce que tu dis que dans "100<y12<300", Y12 correspond à ykj... Mais qu'en est-il du centre k que tu n'évoque pas dans "les données" ?
    On peut également déduire que tu as commencé quelque chose... Tu ne ovudrais pas nous montrer ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Bonjour ouskel'n'or,

    Merci d'avoir répondu!

    Visiblement je me suis emmêlée les pinceaux avec mes lettres. Dans les données, ce que j'appelle centre j c'est en fait centre k... Dslée, ce ne doit pas être très clair... Les j sont uniquement les types de produits...

    Pour le moment j'ai travaillé sur le fichier Excel pour le mettre en forme.
    Vu que je ne savais pas trop comment commencer mon code en VB, je pensais pouvoir utiliser le solveur d'Excel. J'ai fait un test pour 12 centres k et 12 centres i et ça semble fonctionner. Cependant, je ne sais pas à quel point ces résultats sont exacts et surtout je me demande s'il existe des limites de variables pour le solveurs. En tout j'ai une centaine de centres i et une 50 aines de centres k, donc je me demande si j'étends mes tableaux, si Excel pourra encore réaliser les calculs et surtout en combien de temps...?
    Si Excel (j'utilise la version 2007) autorise un nombre de variables importants, n'est-il pas plus propre de coder en VB?

    Si je ne suis pas suffisemment claire dites le moi!

    Qu'en penses-tu?

    Merci d'avance

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 46
    Points : 15
    Points
    15
    Par défaut
    Après avoir testé avec une taille de tableau réelle, j'ai 6000 variables environ. ce que le solveur d'Excel ne sait pas gérer (j'ai lu qu'il pouvait avoir maximum 200 variables, alors forcément, 6000 ça fait beaucoup....).

    Je tente donc de me rabbattre sur du VBA, mais si le solveur d'Excel ne peut pas résoudre mon problème, est-il possible que le calcul puisse tout de même se faire?

    Si vous avez la moindre idée/ piste, je suis preneuse!

    Merci!

    Nanouche

Discussions similaires

  1. idée d'algorithme d'affectation
    Par laureat dans le forum Débuter
    Réponses: 8
    Dernier message: 26/08/2009, 17h04
  2. idée algorithme d' affectation
    Par laureat dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 24/08/2009, 23h16
  3. Algorithme d'affectation de personnel
    Par camron dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 28/04/2009, 11h46
  4. Réaliser un algorithme de satisfiabilité
    Par Abdoulive dans le forum Intelligence artificielle
    Réponses: 1
    Dernier message: 01/02/2009, 15h23
  5. [AIDE] besoin d'aide pour réaliser un algorithme
    Par quaresma dans le forum Algorithmes et structures de données
    Réponses: 40
    Dernier message: 18/01/2008, 09h35

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