fmincon pump scheduling optimization problem
이전 댓글 표시
Hi, I am trying to minimise the energy cost(cost of operating pumps) of a water network by linking Matlab with a simulation software called epanet. My input is a vector of 24 elements (0-4) representing the amount of pumps on at each hour. I have a constraint function (nonlinear constraints) and objective function. I have been having difficulties with fmincon. My problem is non convex so I assume I need to use the Interior Point Algoirthm. However the optimtool never gets past the first iteration, it says "Initial point is a local minimum that satisfies the constraints.
Optimization completed because at the initial point, the objective function is non-decreasing in feasible directions to within the selected value of the function tolerance, and constraints were satisfied to within the selected value of the constraint tolerance. " Even if I change the values of the tolerance. Do I need to supply my own gradient and hessian? Is there an easy way of doing this? Is it possible fmincon wont work at all for my problem?
Thanks,
Adam
댓글 수: 1
Walter Roberson
2012년 7월 30일
Did you try randomizing your starting point?
답변 (1개)
Alan Weiss
2012년 7월 31일
0 개 추천
It is possible that your simulation software does not give you sufficiently accurate estimates of the gradient when fmincon passes it small perturbations. You might try setting the DiffMinChange option to a larger value, such as 1e-3 or 1e-4. Or you might use the FinDiffRelStep option if you have a newer version of Optimization Toolbox.
Yes, it would be even better to avoid finite differences by including a gradient. It is often difficult to include a gradient, though, when your objective function is given by a simulation.
By the way, the interior-point algorithm is not the only one that can address this type of problem, you could also try sqp or even active-set.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation
카테고리
도움말 센터 및 File Exchange에서 Genetic Algorithm에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!