Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Optimisation matricielle

pricer

XLDnaute Nouveau
Bonjour,

Je suis en train de travailler sur un problème d’optimisation matricielle. Dans, le fonds, j’ai une matrice A (donnée) à partir de laquelle je cherche à obtenir une autre matrice X (matrice cible). X doit être obtenue de sorte à ce que la distance D = Somme sur i et j de (aij – xij)^2 soit minimale et tout en respectant un certain nombre de contraintes. Pour ne pas être lourd, j’en citerais ici deux :
Il faut que la somme sur une ligne soit égale a 1 : Somme sur j (xij) =1 quel que soit i
Il faut que l’élément xnn soit égal à 1, dans mon exemple x21,21 = 1.
J’ai d’autres contraintes un peu plus sophistiquées qui m’ont poussée à faire mon programme d’optimisation en utilisant VBA. Le problème c’est que le soleur d’Excel est limité au niveau des cellules variables à un maximum de 200.
Est-ce que vous auriez des idées ou des pistes à me proposer pour aller audela de cette limite ?

Je vous remercie par avance et vous souhaite une bonne soirée,
P.
 

Pièces jointes

  • T21.xlsx
    39.7 KB · Affichages: 50

Iznogood1

XLDnaute Impliqué
Re : Optimisation matricielle

Bonjour,

Je suis surpris par l'expression des contraintes :

Si X(n,n)=1 et que Somme sur j de X(i,j)= 1, alors, X(n,n)=1 et X(n,m)=0 pour tout m différent de n
 

pricer

XLDnaute Nouveau
Re : Optimisation matricielle

Bonjour Iznogood,

Merci pour ton commentaire. Cette contraite voudrait dire tout simplement qu'au niveau de la derniere ligne tous les elements de la matrice sont nuls sauf le dernier element sur la diagonale que lui est egal a 1.

Pour les autres lignes ce n'est pas le cas.

P.
 

pricer

XLDnaute Nouveau
Re : Optimisation matricielle

Y'a pas souci !
Mon probleme est plus avec la capacite du solveur d'excel (limite de 200 cellules variables) qu'avec la logique d'optimisation a proprement parle ...

M.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…