Thursday, 7 April 2016

oc.optimization control - Continuous optimization

This is how I would develop the formulation (conceptually).



  • Investment costs, $Q$:
    $$Q = sum_{i} m_{i} c_{i}$$


  • Investment returns for $i$ at time $t$: we know that the return for $i$ is $m_{i} r_{i}$ if $t geq t_{i}$, otherwise it is 0. To model this if logical condition:
    $$ R = sum_{i} delta_{i} m_{i} r_{i} $$
    $$ delta_{i} = 1, text{ if } t geq t_{i} $$
    $$ delta_{i} = 0, text{ if } t < t_{i} $$
    where $R$ = overall returns. In this case, $t$ and $t_{i}$ are parameters, therefore $delta_{i}$ are parameters too, not binary variables. They can be pre-calculated for a specified $t$.



In summary, your problem can be represented as follows:



$$ max_{m_{i}} (R - Q)$$
s.t.
$$ Q = sum_{i} m_{i} c_{i}$$
$$ R = sum_{i} delta_{i} m_{i} r_{i}$$
$$ Q leq C $$
$$ m_{i} geq 0quad forall i$$



where $C, c_{i}, r_{i}, delta_{i}, t, t_{i}$ are parameters.



So, if $m_{i} in mathbb{R}$, this would be a linear program. If $m_{i} in mathbb{N}$, this becomes a mixed-integer linear program. (Note: for tractability in the integer case, you may need to specify a reasonably small upper-bound for $m_{i}$ or use partial integer variables)



For $t rightarrow infty$ (i.e. all the investments have reached maturity), simply set all $delta_{i} = 1$.

No comments:

Post a Comment