Optimization with sum and max function
Mostrar comentarios más antiguos
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!
1 comentario
Nana
el 4 de Abr. de 2016
Respuestas (1)
Walter Roberson
el 4 de Abr. de 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 comentarios
Nana
el 5 de Abr. de 2016
Walter Roberson
el 5 de Abr. de 2016
That formula does not permit that interpretation. The Sum has to be a sum over i for the formula to make sense.
Nana
el 6 de Abr. de 2016
Walter Roberson
el 6 de Abr. de 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 ?
Categorías
Más información sobre Annotations en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!