Bonjour,
Après modélisation de mon problème je me retrouve avec un système linéaire contraint. Ce problème là me résiste, je vais essayé de vous l'exposer clairement.
Mais le problème se sont les contraintes.
J'ai des contraintes de borne :
x est un vecteur de dimension n.
Avec:
La plus part du temps min = 0 et max = 1 (pour tous les x, mais il existe des cas où non)
Des contraintes par couple :
Avec :
(i et j sont entre 1 et n avec i différent de j)
Les contraintes de combinaison linéaire L :
Et des contraintes d'exclusion mutuelle E :
SiAlors
J'ai une collection de contrainte L et E... Je n'ai pas de contrôle sur le nombre de ces contraintes.
J'ai voulu résoudre ça avec le multiplicateur de Lagrange il m'a fallu transformer mes contraintes :
J'ai donc :
Et la contrainte d'exclusion mutuelle, je pourrais peut être m'en sortir avec un max :
Qui devient :
Qui lui aussi devient :
Et là j'ai une contrainte avec un "ou" (je voulais essayer de m'en débarasser en passant dans les complèxes peut être à coup de) et une autre non dérivable.
Mais comme mes contraintes sont non dérivable, j'ai abandonné l'idée d'utiliser le multiplicateur de Lagrange.
Monest un système sur-contraint, donc j'essaye juste de minimiser
sachant
où
et
sont les contraintes de borne de chaque élément i de x.
Les contrainteset
sont nombreuses, de l'ordre de 50. Et la taille du système linéaire est de 300 lignes et 150 colonnes. Ce système doit être résolu de l'ordre de 15000-20000 fois.
Dans 99.999% les contraintes sont symétriqueset
et néglige les cas où elle ne le sont pas (sauf si c'est "gratuit").
Le système devrait avoir plusieurs solutions, ce que je cherche seulement la solution qui minimise.
Je suis ouvert à toute propositions/remarques/questionnement pouvant m'aider à résoudre ce problème, dans un temps (d’exécution) raisonnable (bruteforce est exclu).
Merci
Partager