Optimization with sum and max function

10 visualizzazioni (ultimi 30 giorni)
Nana
Nana il 4 Apr 2016
Hi. I have a difficulty in writing this objective function for optimization. Especially in defining the second term and the summation. Should I make nested optimization for this?
Sum {[I * (x(i) - x(i-1) + lo(i) - g(i)) * p(i)] + max [I * (x(i) - x(i-1) + lo(i) - g(i)) * pfix]}
I = 1 if x(i) - x(i-1) + lo(i) - g(i)) * p(i) > 0 ; otherwise I = 0
for i = 1:24
Thanks in advance!

Risposte (1)

Walter Roberson
Walter Roberson il 4 Apr 2016
When I = 1 if x(i) - x(i-1) + lo(i) - g(i)) * p(i) > 0 ; otherwise I = 0, then [I * (x(i) - x(i-1) + lo(i) - g(i)) * p(i)] is
max(0, (x(i) - x(i-1) + lo(i) - g(i)) * p(i))
so
max [I * (x(i) - x(i-1) + lo(i) - g(i)) * pfix]
is
max( max(0, (x(i) - x(i-1) + lo(i) - g(i)) * p(i)) * pfix )
Note: that max would only make sense to calculate if pfix is a vector
It is possible to vectorize the sum, but the details of the method would depend upon the orientation of x and lo and g and p and pfix
  4 Commenti
Nana
Nana il 6 Apr 2016
In other words, you suggest to use loop for that objective function other than vectorized?
Walter Roberson
Walter Roberson il 6 Apr 2016
The objective function you wrote can likely be vectorized. I would need to know whether x, lo, g, p, and pfix are row vectors are column vectors, and I need an idea of the size of pfix in order to vectorize the max() term properly.
However, more recently you asked "How can I define that the decision variable is only x(i); and x(i-1) value is from the previous optimization step?". If that were the case, there would not appear to be anything to Sum over. Are you asking how to calculate one term of it without the Sum ?

Accedi per commentare.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by