[Cmpl] objective function with a percentage (divisor)

James Carlson jddcarlson at gmail.com
Sat Nov 25 15:51:03 EST 2017


hey Mike,

Thank you for he prompt reply. As you very accurately stated i am
attempting to minimize the under and over delivery (thank you for the
clarification).  I have implemented your suggestions and it runs in the
Solver.  It appears the u and o arrays are zero could you suggest how i
should define the U and O arrays in CMPL so they are non-zero values?
Attached is an updated model ... thank you again for your help!

James


On Sat, Nov 25, 2017 at 10:38 AM, Mike Steglich <mike.steglich at berlin.de>
wrote:

> Hi James,
>
> If I am right to assume that you want to minimise the under and over
> delivery (beside the transportation costs) then I would like to propose the
> following model:
>
>
>
> %data : sources set, destinations set, s[sources], d[destinations],
> c[sources,destinations]
>
>
>
> parameters:
>
>              { i in sources , j in destinations:
>
>         costs[i,j]:= c[i,j]*d[j];
>
>     }
>
>
>
> variables:
>
>              x[sources,destinations]: binary;
>
>              u[sources]:real[0..];
>
>              o[sources]:real[0..];
>
> objectives:
>
>              #Total_cost: sum{i in sources, j in destinations :
> #costs[i,j] * x[i,j]} +
>
>              sum{i in sources: u[i]+o[i]} ->min;
>
>
>
> constraints:
>
>              supplies {i in sources  : sum{j in destinations:
> d[j]*x[i,j]} +u[i] -o[i] = s[i]*0.8;}
>
> demands  {j in destinations : sum{i in sources : x[i,j]} =  1;}
>
>
>
> There are to new vectors of non-negative, continues variables (u for under
> deliveries and o for over deliveries) to be used in the extended supply
> constraints.
>
>
>
> This absolute differences of the actual quantities to the supplies of the
> sources are to be minimised in the objective function.
>
>
>
> Cheers,
>
>
>
> Mike
>
>
>
> *Von:* Cmpl [mailto:cmpl-bounces at coin-or.org] *Im Auftrag von *James
> Carlson
> *Gesendet:* Samstag, 25. November 2017 04:10
> *An:* cmpl at list.coin-or.org
> *Betreff:* [Cmpl] objective function with a percentage (divisor)
>
>
>
> good evening, I am new to CMPL.  I took several LP and combination
> optimization courses in university - in other words I am very new to this!
> I have successfully created a model in SolverStudio and the results seem
> reasonable.  I am now attempting to change the objective function so the
> that difference between the delivered volume versus the demand is a ratio
> (or absolute).  Attached is my model:
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------
> %data : sources set, destinations set, s[sources], d[destinations],
> c[sources,destinations]
> %display nonZeros
>
> parameters:
>     { i in sources , j in destinations: costs[i,j]:= c[i,j]*d[j]; }
>
> variables:
>     x[sources,destinations]: binary;
>
> objectives:
>     Total_cost: sum{i in sources, j in destinations : costs[i,j] * x[i,j]}
> +
>                 sum{i in sources  : sum{j in destinations: d[j]*x[i,j]} -
> s[i]}  ->min;
>
> constraints:
>     supplies {i in sources  : sum{j in destinations: d[j]*x[i,j]} >=
> s[i]*0.8;}
>     demands  {j in destinations : sum{i in sources : x[i,j]} =  1;}
> ------------------------------------------------------------
> ------------------------------------------------------------
> ------------------
>
> I would like to try something like this for my objectives:
>
>     Total_cost: sum{i in sources, j in destinations : costs[i,j] * x[i,j]}
> +
>                 sum{i in sources  : sum{j in destinations: d[j]*x[i,j]} -
> s[i]}*/s[i]*  ->min;
>
> As i mentioned above I am attempting to make the OF minimize the error as
> a percentage delivered to each destination.  This is meant to overcome the
> problem of an under or over delivery is offset by an equal (negative or
> positive) amount so the function is not really minimizing the value (it is
> always almost zero due to aggregation of offsetting positive and negative
> values).
>
>
>
> Attached is an OpenSolver excel model (in a zip file).  Please note I have
> made all the costs equal to 1 to better diagnose the OF's second term.
>
>
>
> Any suggestions would be appreciated!  thank you.
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cmpl/attachments/20171125/8690c87c/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: tester-added_Mikes_suggestions.zip
Type: application/zip
Size: 15623 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/cmpl/attachments/20171125/8690c87c/attachment.zip>


More information about the Cmpl mailing list