2010-04-15 7 views
5

J'ai une application en C#, j'ai besoin de faire des calculs d'optimisation, comme le fait Excel Solver Add-in, une option est certainement d'écrire ma propre implémentation de solveur, mais je manque de temps, donc je suis En regardant dans les bibliothèques qui existent déjà qui peuvent m'aider avec cela.Comment implémenter la fonctionnalité Excel Solver en C#?

J'ai essayé la Fondation Microsoft Solver, qui semble assez cool et cool, le problème est que cela ne semble pas fonctionner avec le genre de calculs que je dois faire.

À la fin de cette question, j'ajoute les informations sur les calculs que je dois effectuer et optimiser. Donc, fondamentalement, ma question est de savoir si quelqu'un d'entre vous connaît une autre bibliothèque que je peux utiliser à cette fin, ou tout tutoriel qui peut aider à faire mon propre solveur, ou toute idée qui me donne une piste pour résoudre ce problème .

Merci.

Informations additionnelles:

Ce sont les données que je dois calculer:

Je 7 variables, permet de les appeler var1, var2, ..., Var7

Les contraintes pour ces variables sont:

  • Ils doivent tous être 0 < = varn < = 0,5 (où n est le nombre o f la variable)
  • La somme de toutes les variables doit être égale à 1

L'objectif est de maximiser la formule cible, qui dans Excel ressemble à ceci:

(MMULT(TRANSPOSE(L26:L32),M14:M20))/(SQRT(MMULT(MMULT(TRANSPOSE(L26:L32),M4:S10),L26:L32)))

La gamme que vous voyez dans cette formule, L26: L32, est en fait la gamme avec les variables de dessus, var1, var2, ..., varn. M12: M20 et M4: S10 sont des plages avec des données que je reçois de différentes sources, il y a plus de valeurs décimales probables. Comme je l'ai déjà dit, j'utilisais Microsoft Solver Foundation, j'ai modélisé à peu près tout avec, j'ai créé des fonctions qui gèrent les opérations de la formule cible, mais quand j'ai essayé de résoudre le modèle, ça échoue toujours, je pense c'est à cause de la complexité des opérations.

Dans tous les cas, je voulais juste montrer ces données afin que vous puissiez avoir une idée du type de calculs que je dois implémenter.

Répondre

Questions connexes