[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-glpk] function
From: |
Mate Hegyhati |
Subject: |
Re: [Help-glpk] function |
Date: |
Fri, 17 Aug 2012 10:17:35 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20120714 Thunderbird/14.0 |
Hi Zvonko,
maybe something like this?
R >= 0
R <= P - PMIN*X
R <= PMAX*X - P
This should be enough, if R is not represented anywhere else, and it
should be as much as possible in the objective.
Otherwise I think You need an additional binary variable, Y,
representing whether P is closer to PMIN or to PMAX.
P <= (PMIN + PMAX) / 2 + (1-Y) * (PMAX-PMIN)/2
P >= (PMIN + PMAX) / 2 - (1-Y) * (PMAX-PMIN)/2
And then You can add these to the above constraints:
R >= P - PMIN - Y * PMAX
R >= PMAX - P - (1-Y)*PMAX
Hope this is what You are looking for, best regards,
Mate
On 08/17/2012 10:02 AM, Zvonko Bregar wrote:
> Hi,
>
> My name is Zvonko Bregar.
>
> Please help me with the following problem.
>
> There is a real variable P having disjunct definition area {0} + [PMIN, PMAX].
> There is also a binary variable X helping in this definition.
> If X = 0 then P = 0
> And if X = 1 then PMIN < P < PMAX.
> So variables X an P work simultaneously.
> This should be a rather standard construction.
>
> The question is to construct another variable, say R, from X an P
> Such that
> If X = P = 0 then also R = 0
> Else R = min {P-PMIN,PMAX-P}
>
> In other words, R measures the minimal distance of P to its boundaries PMIN
> and PMAX.
> But if P = 0 then R must be set to 0 too.
>
> For example, if PMIN = 200 and PMAX = 400, than the required function should
> be something like the "upside down" absolute value function:
>
> R = - | P - 300 | + 100 if 200 < P < 400
>
> But also R = 0 if P = 0.
>
> I have been trying this for quite some time but didn't succeed. It looks
> simple and perhaps there is a simple solution? Or perhaps this cannot be done
> at all?
>
> Thank you
>
> OPOZORILO: To elektronsko sporo?ilo in vse njegove morebitne priloge lahko
> vsebujejo zaupne in/ali privilegirane informacije, ki so last
> Elektroin?tituta Milan Vidmar in so namenjene izklju?no naslovniku. ?e ste
> sporo?ilo prejeli pomotoma zaradi napake v naslovu ali pri prenosu sporo?ila,
> Vas prosimo, da nas o tem obvestite s povratno po?to. V tem primeru vsebine
> prejetega sporo?ila ne smete uporabiti, kopirati, tiskati, objaviti ali
> distribuirati, ampak ga morate takoj uni?iti.
>
> DISCLAIMER: This e-mail is for the intended recipient only. It contains
> proprietary information some or all of which may be legally privileged. If
> you received this e-mail by mistake please notify us by replying to this
> e-mail. Consequently, the contents of this e-mail must be deleted and not be
> used, copied, printed, disclosed or distributed.
>
>
>
>
> _______________________________________________
> Help-glpk mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/help-glpk
>
hegyhati.vcf
Description: Vcard
signature.asc
Description: OpenPGP digital signature