Le 10/07/2012 par BylRO :
Bonjour à tous,
J'ai une variable continue $ x \in [0,M] $
J'aimerais créer une autre variable qui prends les valeur :
$ y = 0 si (x=0) ou (x=M) $ et $ y =1 si x \in ]0,M[ $
Merci d'avance.
Le 11/07/2012 par BylRO :
En gros : si $ y \in \{ 0,1 \} $ et $ x \in [0,1] $, je veux exprimer cette contrainte : $ y*x*(1-x) $ sous forme linéaire !
Si vous avez des idées n'hésitez pas ! je suis preneur :)
Le 11/07/2012 par BylRO :
Mon idée : (J'ai pris la modélisation 2, j'ai divisé x dans (1) par M)
Max z ;
sous :
z <= x ;
z <= (1-x) ;
y <= z* M ;
y >= z ;
z >= 0 ;
y \in \{ 0 ,1 \};
x \in [ 0,1 ].
Le soucis, c'est que j'ai déjà trop d'objectifs dans mon problème et trop de variables : 3000 variables x j'ai rajouté 5000 y et là je dois en rajouter 5000 z pour la plus petite des instances. Sans parler du nombre de contraintes !!
Merci pour vos suggestions ;)
Le 11/07/2012 par rabah_kapi :
salut,
Avec:
y \leq (M-x)*HV
et
y \leq x*HV
(Avec HV une valeur entière assez grande. )
Vous êtes certain que y=0 lorsque x \in {0,M}
reste à garantir que y=1 dans les autres cas :)
bon courage
Le 15/07/2012 par BylRO :
Merci
Le 15/07/2012 par BylRO :
j ai créé 2 var z^1 = 0 quand x =0 et 1 ailleurs et z^2 = 0 quand x =M et 1 ailleurs ... y = (z^1+z^2-1) voilou !
Donc :
z^1 \leq \frac{x}{M} * HV
z^1 \geq \frac{x}{M}
z^2 \leq (1- \frac{x}{M}) * HV
z^1 \geq 1- \frac{x}{M}
z^1,z^2 \in { 0, 1 }
Le 15/07/2012 par BylRO :
sur l avant-dernière contrainte, faut lire :
z^2 \geq 1- \frac{x}{M}
Le 17/07/2012 par rabah_kapi :
ça devrait faire l'affaire :)
de mon coté, je ne vois pas de solution avec une unique variable y!
A+