[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
## Re: [Help-glpk] Variable in logical expression

**From**: |
Mate Hegyhati |

**Subject**: |
Re: [Help-glpk] Variable in logical expression |

**Date**: |
Fri, 24 Aug 2012 07:31:20 +0200 |

**User-agent**: |
Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20120714 Thunderbird/14.0 |

Dear Ajeng Dewi,
You can not do this exactly. You can do the following: if u < 0 then
x=0, and if u>0 then x=1, but int he case of u==0, x should remain
"undefined". (Suppose, that You could do what You asked for, and then
add the constraint y=1. This would basically enforce u>0, that is not
possible in LP)
For the aforementioned case the simplest solution is probably this:
u = pos - neg;
pos <= M * x;
neg <= M * (1-x);
where M is bigger than the maximum of |u|
in this case, at most one of pos or neg is positive. If neg (u<0), then
x must be 0, if it is the pos that is positive (u>0), then x must be 1.
If both of neg and pos are 0, x can be, however, either 0 or 1.
You can also do this thing without pos and neg as well, in a form like this:
u <= 0 + M * x;
u >= 0 - M * (1-x);
if u > 0 then the second is satisfied, and the first can be satisfied
only if x==1. Similarly, if u < 0, the first is satisfied, and the
second needs x to be 0. And again, if u==0, x can be either 0 or 1.
Best regards,
Mate
On 08/24/2012 04:47 AM, address@hidden wrote:
>* I have a problem which has variable named 'u' and 'x'*
>* Variabel x is binary variabel which will have value 0 if u<=0 and 1 if u>0*
>* How can I write this problem?*
>* Thanks in advance*
>* Ajeng Dewi Citra Langeni*
>* Industrial Engineering*
>* Institut Teknologi Bandung*
>* +6285 641 91 000 1*
>* *
>* *
>* _______________________________________________*
>* Help-glpk mailing list*
>* address@hidden*
>* https://lists.gnu.org/mailman/listinfo/help-glpk*
>* *

**
**`hegyhati.vcf`

*Description:* Vcard

**
**`signature.asc`

*Description:* OpenPGP digital signature