Programmation linéaire: contrainte difficile

Fermé
Diba - 9 avril 2010 à 17:50
vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 - 9 avril 2010 à 22:03
Bonjour,

j'ai un léger problème pour modéliser une contrainte.
La variable x est continue et peut prendre n'importe quelle valeur.
La variable y est binaire

Je voudrais que lorsque x vaut 0, y vaille 1
ET QUE
lorsque x est positif, y vaille 0.

Pour la première partie, je peux mettre: x>1-y de sorte que si x vaut 0, y est forcé à 1
Par contre pour la deuxième, j'ai pensé à (x/M)>=y où M est un nombre plus grand que x: ça marche pour x>0 car y est alors forcé à 0, mais si x vaut 0, y est aussi forcé à 0, ce qui rentre en conflit avec la première contrainte.

Avez-vous une idée?

1 réponse

vlmath Messages postés 793 Date d'inscription vendredi 20 octobre 2006 Statut Contributeur Dernière intervention 4 septembre 2011 160
9 avril 2010 à 22:03
Salut,

Tu peux utiliser une fonction qui te donne directement 1 ou 0 :
1- Sgn(Abs(x))

Sgn : fonction signe (ici)
Abs : fonction valeur absolue
0