fmincon pump scheduling optimization problem
1 回表示 (過去 30 日間)
古いコメントを表示
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 件のコメント
回答 (1 件)
Alan Weiss
2012 年 7 月 31 日
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
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Nonlinear Optimization についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!