1 comment

Update: Since the piecewise linear function is convex in my case, I have solved the problem by treating the piecewise linear term as a minimax problem.

This is done by introducing an auxiliary variable  M and assign constraints such that it represents the pointwise maximum w.r.t the original variable V with piecewise linear term in the objective. That is

M >= y[n] + (y[n+1] - y[n])/(x[n+1] - x[n]) * (V - x[n])  for n = 1,2,...,N-1

where x,y  contain a set of N points defining the piecewise linear function segments.

Although this works, introducing these new constraints and new variables slowed down the model significantly. I wonder if there are other more efficient way to do this?