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 :

Sujet pour Solveur


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Par défaut Sujet pour Solveur
    Bonjour à tous,

    j'ai une petite question, je souhaiterai savoir si déjà si mon problème est linéaire ou non linéaire et si un solveur assez trivial pouvait être mis en place.

    -Il y a 10 joueurs
    -Un joueur a une note qui lui est associée
    -Une équipe est composée de 5 joueurs

    Je souhaiterai minimiser la différence entre le total des notes des joueurs de chaque équipe.

    Exemple avec 4 joueurs:

    J1: 1 | J2: 1 | J3: 2 | J4: 2

    Equipe 1 : J1/J3
    Equipe 2 : J2/J4


    Merci à vous d'avoir pris le temps d'arriver jusqu'ici.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 336
    Par défaut
    Salut.

    Ton problème est linéaire (du 1er degré) mais la solution est discrète.
    Le solver Excel est tout à fait capable de faire des optimisations avec des solutions discrètes.
    Par ailleurs il sait aussi faire des optimisations sur des problèmes non-linéaire et de surcroît avec des contraintes.

    Cordialement

  3. #3
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Je suis preneur de toute explication pour l'emploi du solveur dans l'optimisation de cette situation.
    Autre possibilité
    Le problème posé par Pymento m'évoque une situation combinatoire et avec un effectif total de de 10 joueurs et 5 joueurs choisis par équipe, le nombre d'équipes possibles donné par COMBIN(10;5)
    soit 252 n'est tout de même pas un problème insurmontable pour Excel. Un tableau de calcul de 252 lignes ne fait pas peur. La question reste d'écrire les 252 combinaisons.
    Tant que ce nombre en fonction de l'effectif total d'éléments et de l'effectif d'éléments choisis par combinaisons n'est pas trop élevé, quelques formules permettent de les écrire.
    Pour l'exemple de Pymento.
    En définissant les noms EffectifTotal (=10) , EffectifChoix(=5), (ce qui permet d'utiliser la feuille pour un autre problème combinatoite ssans retoucher les formules), puis enfin Test par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    = EffectifTotal + 1 + COLONNE() - EffectifChoix
    on pourra vérifier que dans n'importe quelle cellule d'une des cinq colonnes de la plage A : E , test renvoie successivement les valeurs 7, 8, 9, 10, 11.
    En laissant la ligne 1 pour des titres éventuels, utiliser 5 colonnes (EffectifChoix) à partir de la colonne A et
    ligne 2 dans chacune des cellules de A2 : E2 écrire :
    En ligne 3, on utilisera 3 formules légèrement différentes :
    en A3
    en E3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(E2+1<Test;E2+1;D3+1)
    en B3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(C2<Test;B2;SI(B2+1<Test;B2+1;A3+1))
    à recopier en C3 et D3.
    [IMG][/IMG]

    Recopier les 5 formules de la plage A3 : E3 vers le bas jusqu'à la ligne 253 incluse.
    On a les 252 combinaisons de la combinaison 1; 2 ; 3 ; 4 ; 5 à la combinaison 6 ; 7 ; 8 ; 9 ; 10 .

    Avec une table de deux colonnes donnant la liste des joueurs et la liste des notes, on peut (fonction INDEX) écrire la combinaison de chaque équipe sur une plage de largeur identique ,
    le total des notes (fonction SOMMEPROD) puis pour chaque équipe la détermination de "l'équipe complémentaire" sur une plage de largeur identique (formule matricielle combinant les fonctions INDEX, PETITE.VALEUR et EQUIV),
    le total des notes, la différence entre les scores (fonction ABS) et le minimum de la colonne des différences.

    Cette proposition de recherche se trouve sur le classeur joint.
    Cordialement
    Claude
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éclairé Avatar de Pymento
    Homme Profil pro
    Ingé. Info.
    Inscrit en
    Janvier 2008
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingé. Info.

    Informations forums :
    Inscription : Janvier 2008
    Messages : 366
    Par défaut
    Merci Claude pour votre exhaustivité !
    Effectivement en tordant excel on peut arriver à des résultats, mais ma problématique ne s'arrête pas là. J'ai plusieurs contraintes combinatoires à rajouter par la suite. J'ai décidé de ne pas utiliser le solveur, qui dans le contexte me semble limité définitivement.

    J'ai opté pour un algorithme génétique en python. Qui fait le travail très bien !
    Ou en vb, si on veut rester dans l'environnement excel.

    Si vous avez besoin de plus de détails n'hésitez pas je vous ferai un petit topo.

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

Discussions similaires

  1. Cherche sujet pour TFE
    Par salv-ice dans le forum Sujets
    Réponses: 1
    Dernier message: 14/09/2007, 23h57
  2. Variable shell comme sujet pour mailx
    Par soony dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 25/03/2007, 20h30
  3. 1 sujet pour 1 mémoire de fin d'études à trouver
    Par jomannix dans le forum Langage
    Réponses: 6
    Dernier message: 30/10/2006, 12h18
  4. besoins de sujets pour mon projet
    Par Hydre dans le forum Windows
    Réponses: 2
    Dernier message: 24/08/2005, 11h37
  5. Sujet pour un programme en POO?
    Par dreamanoir dans le forum Langage
    Réponses: 6
    Dernier message: 28/01/2005, 19h18

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