Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
702 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Excel - Algo/prog pour résoudre une équation

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Excel - Algo/prog pour résoudre une équation

n°2125360
latruffe
Bdovore
Posté le 08-02-2012 à 11:57:50  profilanswer
 

Bonjour à tous,
 
Dans le cadre de mon boulot, je suis amené à devoir résoudre un problème et je dois dire que je ne sais pas par quel bout m’y prendre. En deux mots, voilà la situation :
 
L’objectif est de fixer des objectifs à des commerciaux. Ces objectifs sont répartis entre plusieurs catégories. Sont connus : Le total a atteindre par objectifs et le total a atteindre par commercial.
 
J’ai donc un tableau comme ceci (en réalité, il y a 10 objectifs et 10 commerciaux) :
 

                  Com.1         Com.2       Com.3
Objectif 1         x1.1          y1.2       y1.3      
Objectif 2         x2.1          y2.2       z.2.3
Objectif 3                         etc


 
Je dois donc remplir mon tableau pour faire en sorte que mes agrégats collent entre eux.  
 
Comment procéderiez-vous pour développer une logique de la sorte ?  (je ne cherche pas une formule ou une macro magique, juste déjà un angle sous lequel aborder le problème).
 
Merci d’avance pour l’aide que vous voudriez bien m’apporter et n’hésitez pas à bouger ce fil si il n’est pas à sa place.  


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !
mood
Publicité
Posté le 08-02-2012 à 11:57:50  profilanswer
 

n°2132696
alecail
Posté le 23-03-2012 à 19:43:22  profilanswer
 

Salut,
 
Si l'OP est encore interesse..
C'est un problème classique de recherche opérationnelle.
http://en.wikipedia.org/wiki/Assignment_problem
(la version en francais est un stub)
C'est soluble facilement avec glpsol de GLPK: il y a plein d'exemples sur:
http://www.ibm.com/developerworks/ [...] y/l-glpk1/
 
J'avais dans ma base de code un modèle semblable:
 

Code :
  1. set EMPLOYES;
  2. set RAYONS;
  3. /* parameters */
  4. param Pref {i in EMPLOYES, j in RAYONS};
  5. param Contrat {i in EMPLOYES};
  6. param BesoinRayon {j in RAYONS};
  7. #horaires = temps sur chaque poste dans chaque
  8. var Horaires {i in EMPLOYES, j in RAYONS} >= 0;
  9. # maximize HoraireOptimal: sum{i in EMPLOYES, j in RAYONS} Horaires[i,j];
  10. #### le minimum pour que ca marche
  11. maximize ConfortHoraireOptimal: sum{i in EMPLOYES, j in RAYONS} Horaires[i,j] *  Pref[i,j];
  12. #### prend en compte les preferences des employes pour chaque poste
  13. # minimize  ConfortHoraireOptimal: sum{i in EMPLOYES, j in RAYONS} Horaires[i,j] *  Pref[i,j];
  14. #### favorise la decouverte de nouveaux horizons pour les employes! (emmerdement maximum...)
  15. #### noter le maximize --> minimize
  16. s.t. constrRayon  {r in RAYONS}   : sum{e in EMPLOYES}  Horaires[e,r] >= BesoinRayon[r];
  17. s.t. constrEmploye{e in EMPLOYES} : sum{r in RAYONS}    Horaires[e,r] <= Contrat[e];
  18. solve;
  19. display{i in EMPLOYES, j in RAYONS}: Horaires[i,j];
  20. data;
  21. set EMPLOYES := Kevin Sophie Fernand;
  22. set RAYONS   := Telephone Maison Livres;
  23. #heures travaillees:
  24. param Contrat:=
  25.   Kevin 35
  26.   Sophie 15
  27.   Fernand 35;
  28. # Heures necessaires:
  29. param BesoinRayon:=
  30.   Telephone 35
  31.   Maison 25
  32.   Livres 25;
  33. param Pref (tr):
  34.             Kevin Sophie Fernand :=
  35. Telephone     3      1     2     
  36. Maison        2      2     1
  37. Livres       1      3      3;
  38. end;


 
Résolution: (besoin du programme glpsol fourni avec GLPK, The GNU Linear Programming Kit.)

Code :
  1. $ glpsol --math assignementProblem.mod
  2. GLPSOL: GLPK LP/MIP Solver, v4.43
  3. Parameter(s) specified in the command line:
  4. --math assignementProblem.mod
  5. Reading model section from assignementProblem.mod...
  6. Reading data section from assignementProblem.mod...
  7. 54 lines were read
  8. Generating ConfortHoraireOptimal...
  9. Generating constrRayon...
  10. Generating constrEmploye...
  11. Model has been successfully generated
  12. GLPK Simplex Optimizer, v4.43
  13. 7 rows, 9 columns, 27 non-zeros
  14. Preprocessing...
  15. 6 rows, 9 columns, 18 non-zeros
  16. Scaling...
  17. A: min|aij| =  1.000e+00  max|aij| =  1.000e+00  ratio =  1.000e+00
  18. Problem data seem to be well scaled
  19. Constructing initial basis...
  20. Size of triangular part = 6
  21.       0: obj =   0.000000000e+00  infeas =  8.500e+01 (0)
  22. *     5: obj =   2.200000000e+02  infeas =  0.000e+00 (0)
  23. *     6: obj =   2.200000000e+02  infeas =  0.000e+00 (0)
  24. OPTIMAL SOLUTION FOUND
  25. Time used:   0.0 secs
  26. Memory used: 0.1 Mb (134225 bytes)
  27. Display statement at line 29
  28. Horaires[Kevin,Telephone] = 35
  29. Horaires[Kevin,Maison] = 0
  30. Horaires[Kevin,Livres] = 0
  31. Horaires[Sophie,Telephone] = 0
  32. Horaires[Sophie,Maison] = 15
  33. Horaires[Sophie,Livres] = 0
  34. Horaires[Fernand,Telephone] = 0
  35. Horaires[Fernand,Maison] = 10
  36. Horaires[Fernand,Livres] = 25
  37. Model has been successfully processed


 
Et en  variant la fonction objectif:

Code :
  1. Horaires[Kevin,Telephone] = 10
  2. Horaires[Kevin,Maison] = 0
  3. Horaires[Kevin,Livres] = 25
  4. Horaires[Sophie,Telephone] = 15
  5. Horaires[Sophie,Maison] = 0
  6. Horaires[Sophie,Livres] = 0
  7. Horaires[Fernand,Telephone] = 10
  8. Horaires[Fernand,Maison] = 25
  9. Horaires[Fernand,Livres] = 0


 
Excel possède sûrement un solver LP. Il te suffit de regarder comment créer des contraintes et fixer la fonction objectif et d'adapter ma méthode, mais ce n'est pas forcement trivial.
--  
al

n°2132868
rufo
Pas me confondre avec Lycos!
Posté le 26-03-2012 à 09:57:49  profilanswer
 

L'algo s'appelle le Simplexe : http://fr.wikipedia.org/wiki/Algorithme_du_simplexe


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2133012
latruffe
Bdovore
Posté le 26-03-2012 à 13:53:47  profilanswer
 

Merci beaucoup pour vos réponses. je vais essayer de mettre ça en pratique !
 
Je me disais bien que quelque chose comme ça devait exister !


---------------
« Lorsque le bûcheron pénétra dans la forêt avec sa hache, les arbres se dirent : ne nous inquiétons pas, le manche est des nôtres. » | Gérez votre collection de BD en ligne !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Excel - Algo/prog pour résoudre une équation

 

Sujets relatifs
besoin d'aide (URGENT) pour une macro-EXCEL VBADans ACCESS, pb références EXCEL
aide sur fonction excelcomparer des lignes sur macro excel
A supprimer[Résolu] Petite aide vba Excel
Excel macro, grille de nombre, changer couleur fond selon choix[Résolu]Aide pour créer un petit prog
créer une boite de dialogue pour rentrer une valeur dans excel[VBA Excel] Problème chemin absolu 2 classeurs - 2 chemins différents
Plus de sujets relatifs à : Excel - Algo/prog pour résoudre une équation


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR