From: Ali on 8 Aug 2010 15:56 Hello there, I have a problem in using fmincon. I am trying to solve a nonlinear optimization problem using fmincon. My goal is to find the optimal power allocation for a wireless system under some constraints (having a maximum acceptable power at each carrier and a maximum budget for the total power at each node), and my objective is to minimize a convex function called network criticality. I solve the problem in two cases: 1) There is no channel noise (ideal). 2) At the presence of noise. There is no problem in first part, and I can smoothly get the result, but when I add noise (i.e. every few iterations I slightly change some coefficients of my objective function), then fmincon gets quickly terminated with the following message: "Optimization terminated: current point satisfies constraints and relative change in x is less than options.TolX." It looks that everything is fine, but the point is that when I check my X, the TolX constraint is not met, the same is true for TolFun. Any idea why does this happen? Thanks Ali
From: John D'Errico on 8 Aug 2010 19:11 "Ali " <ali.tizghadam(a)gmail.com> wrote in message <i3n24m$oij$1(a)fred.mathworks.com>... > Hello there, > > I have a problem in using fmincon. I am trying to solve a nonlinear optimization problem using fmincon. My goal is to find the optimal power allocation for a wireless system under some constraints (having a maximum acceptable power at each carrier and a maximum budget for the total power at each node), and my objective is to minimize a convex function called network criticality. > I solve the problem in two cases: 1) There is no channel noise (ideal). 2) At the presence of noise. There is no problem in first part, and I can smoothly get the result, but when I add noise (i.e. every few iterations I slightly change some coefficients of my objective function), then fmincon gets quickly terminated with the following message: > "Optimization terminated: current point satisfies constraints and relative > change in x is less than options.TolX." > > It looks that everything is fine, but the point is that when I check my X, the TolX constraint is not met, the same is true for TolFun. > > Any idea why does this happen? So you are changing your objective function after every few iterations? Are you surprised that creating a discontinuous objective function causes fmincon to fail? John
From: Ali on 10 Aug 2010 13:09 "John D'Errico" <woodchips(a)rochester.rr.com> wrote in message <i3ndi8$6oi$1(a)fred.mathworks.com>... > "Ali " <ali.tizghadam(a)gmail.com> wrote in message <i3n24m$oij$1(a)fred.mathworks.com>... > > Hello there, > > > > I have a problem in using fmincon. I am trying to solve a nonlinear optimization problem using fmincon. My goal is to find the optimal power allocation for a wireless system under some constraints (having a maximum acceptable power at each carrier and a maximum budget for the total power at each node), and my objective is to minimize a convex function called network criticality. > > I solve the problem in two cases: 1) There is no channel noise (ideal). 2) At the presence of noise. There is no problem in first part, and I can smoothly get the result, but when I add noise (i.e. every few iterations I slightly change some coefficients of my objective function), then fmincon gets quickly terminated with the following message: > > "Optimization terminated: current point satisfies constraints and relative > > change in x is less than options.TolX." > > > > It looks that everything is fine, but the point is that when I check my X, the TolX constraint is not met, the same is true for TolFun. > > > > Any idea why does this happen? > > So you are changing your objective function after every > few iterations? Are you surprised that creating a > discontinuous objective function causes fmincon to fail? > > John Thanks for the reply. The objective of my optimization is continuous, but there is a small noise on some of the parameters of the objective function. To be more clear, I give an example. for a tree on 4 links (say with weights x1, x2, x3, x4,x5), the objective function equals sum_i(a_i/x_i), where a_i is a coefficient which is a constant, but due to uncertainties we add a small noise to a_i. Ali
From: Matt J on 10 Aug 2010 13:33
"Ali " <ali.tizghadam(a)gmail.com> wrote in message <i3s13k$rak$1(a)fred.mathworks.com>... > > Thanks for the reply. The objective of my optimization is continuous, but there is a small noise on some of the parameters of the objective function. To be more clear, I give an example. for a tree on 4 links (say with weights x1, x2, x3, x4,x5), the objective function equals sum_i(a_i/x_i), where a_i is a coefficient which is a constant, but due to uncertainties we add a small noise to a_i. ============= Be that as it may, fmincon doesn't expect your objective function to change iteration-dependently. If you do strange stuff, you can't expect the code to accomodate it. |