[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-glpk] lpx_set_col_bnds twice
From: |
Andrew Makhorin |
Subject: |
Re: [Help-glpk] lpx_set_col_bnds twice |
Date: |
Tue, 27 Mar 2007 10:29:43 +0400 |
> I solve an optimization problem where I need to specify variables
> (columns) to be in one of possible states:
> 1) within an set interval lpx_set_col_bnds(lpx, id, LPX_DB, from,
> to)
> 2) zero
>
> Is there a way how to set a column to be in interval <from, to> or
> zero?
This is so called disjunctive constraint; in your case it can be
modeled as follows:
from * z <= x <= to * z
or, in the standard format:
x - from * z >= 0
x - to * z <= 0
where x is your variable, z is a *binary* variable (z = 0 means that
x = 0, and z = 1 means that from <= x <= to). Note that each original
variable needs two constraints (rows) and one binary variable.
Another way could be using semi-continuous variables, however, glpk
does not support such kind of variables.