On Wed, 7 Aug 2013, Andrew Makhorin wrote:

-------- Forwarded Message --------
From: Gustavo Cavalcanti <[email protected]>
To: [email protected]
Subject: Re: [Help-glpk] fraction with vars
Date: Wed, 7 Aug 2013 00:22:06 -0300

I'm trying to solve a similar problem: the division of the variable
'a' by the variable 'b'.

I couldnt figured out how GLPK's ln() (or log()) and exp() functions
work in these cases, which we are appliyng these functions on
variables. Is any linearization/transformation necessary?

And do the piecewise linear function using SOS2 constraints stand for
fractions? I tried to follow the example

I've never done it that way and never had the urge.

x * y

so i did

a * (1 / b)

but then I dont know what to do with 1 / b.

Also, I cant see how the method appointed by Michael
(http://web.archiveorange.com/archive/v/5brOt80Ug9CHEU5WVM6q#6WwvpMWTxhPTY2D)
could be applied once we have something like

k / w_su - 1

and wouldnt be that a division of the variable 'a' by the variable 'b'?

Don't know exactly what you are trying to accomplish.
In general, to model w = x * y, where range(x) is finite and all are bounded:

x = SUM k*qx[k]
   k in range(x)

1 = SUM qx[k]
   k in range(x)

qk[range(x)] binary

if qx[k]==1, w=k*y    for k in range(x)
use the small-M method.

The size of the representation will be proportional to the size of range(x).

If x is continuous one could select a finite subset
of range(x) and subject qx to an SOS2 constraint instead of binary.
If the resulting approximation is not good enough,
one could change the subset and try again,
perhaps decreasing resolution at the ends
and increasing it near the previous solution.

--
Michael   [email protected]
"On Monday, I'm gonna have to tell my kindergarten class,
whom I teach not to run with scissors,
that my fiance ran me through with a broadsword."  --  Lily

_______________________________________________
Help-glpk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-glpk

Reply via email to