Dear All,

I am a new user in NLopt, which is quite useful to me. However, I found
something which are quite strange to me.

For the algorithm nlopt::GN_ISRES, it is said that " This method supports
arbitrary nonlinear inequality and equality constraints in addition to the
bound constraints, and is specified within NLopt as NLOPT_GN_ISRES. "

When I tried to use it to optimize one of my functions. It seems that it
will try some functions that are out-of-the bound.

The constraint functions are

double constraint1(const std::vector<double> &x, std::vector<double> &grad,
void *f_data)
{
      return x.at(0)+x.at(1)-1.0;
}

double constraint2(const std::vector<double> &x, std::vector<double> &grad,
void *f_data)
{
      return x.at(2)+x.at(3)-1.0;
}

And the function calling body is

      nlopt::opt opt(nlopt::GN_ISRES,5);
      //nlopt::opt opt(nlopt::GN_ORIG_DIRECT,5);
      //nlopt::opt opt(nlopt::GN_DIRECT_L,5);
      //nlopt::opt opt(nlopt::LN_COBYLA,5);
      opt.set_min_objective( objFunNLOpt, sinarma);
      double lbv[] = {0.0,0.0,0.0,0.0,0.0};
      double ubv[] = {1.0,1.0,1.0,1.0,20.0};
      std::vector<double> lb(lbv,lbv+sizeof(lbv)/sizeof(
double));
      std::vector<double> ub(ubv,ubv+sizeof(ubv)/sizeof(double));
      opt.set_lower_bounds(lb);
      opt.set_upper_bounds(ub);
      opt.add_inequality_constraint(constraint1,NULL);
      opt.add_inequality_constraint(constraint2,NULL);
      opt.set_ftol_rel(1.0E-4);
      opt.set_xtol_rel(1.0E-6);
      opt.set_maxeval(5000);
      opt.optimize(x,opt_f);


A snap shot of the evaluating process is

x=        0.1        0.3        0.2        0.4          5 , val=     0.1575
x=      0.252   0.006354     0.6278     0.3216      5.201 , val=     0.8748
*x=     0.9769     0.1116     0.4753     0.8834      1.097 , val=     0.7349
*
x=     0.4307     0.4151      0.136     0.7997      10.62 , val=     0.3994
*x=     0.3367     0.7913    0.03299     0.6773      9.707 , val=      1.034
*
x=     0.9857     0.7385     0.2511    0.06071      7.598 , val=      0.177
x=     0.1413     0.8076     0.3838     0.8355      3.214 , val=     0.9152
x=     0.9222     0.7576     0.5284     0.2475      10.49 , val=     0.1913
x=     0.6246     0.8009    0.08544     0.7071      8.448 , val=     0.9804
x=    0.06238     0.6616     0.5577     0.9688      11.65 , val=      1.639
x=     0.2986     0.9361     0.4704     0.3453      11.07 , val=     0.4449
x=     0.5647     0.3973     0.1084     0.9146      19.25 , val=     0.5597
x=     0.6982     0.9929     0.7448   0.005979       17.7 , val=      0.369
x=     0.8275      0.244     0.2537     0.3359      5.847 , val=     0.8157
x=     0.5472      0.738     0.4852      0.323      2.011 , val=     0.1692
x=      0.871     0.4762     0.4117     0.7949      19.23 , val=      0.345
x=     0.1464    0.05371     0.1009     0.1294         13 , val=      0.445
x=     0.7625     0.6841       0.92     0.3244      4.602 , val=     0.2911
x=     0.5947     0.9206     0.4605     0.4048      15.43 , val=     0.4658
x=     0.1455     0.4868   0.007905     0.8878      11.45 , val=      1.225
x=     0.0982     0.5636     0.2704     0.3108      5.422 , val=     0.2106
x=     0.1422     0.7757     0.1415     0.6585      2.569 , val=     0.7151
x=     0.3913     0.4549     0.6285    0.03469      19.44 , val=     0.8953
x=     0.9991    0.01681     0.1594     0.4513      2.901 , val=      1.109
x=     0.6513     0.4083    0.03732     0.7829      12.03 , val=     0.3776
x=     0.3016     0.9317     0.9791      0.417      2.621 , val=     0.4362
x=     0.5716     0.8347     0.6583     0.1375      6.699 , val=     0.2436
x=     0.2673    0.08167    0.02382     0.5406      18.57 , val=     0.1993
x=     0.9251    0.01322     0.2647      0.768      16.72 , val=     0.8223
x=     0.9798     0.8634     0.3441     0.5656      15.12 , val=      0.608
x=     0.1289     0.2468     0.2779     0.7634      5.479 , val=     0.3331
x=      0.314     0.7607     0.2421     0.4671      5.166 , val=     0.3848
x=     0.3991     0.9786     0.5409     0.1667      9.264 , val=     0.3923
x=     0.5058     0.8677     0.7998     0.4668      6.546 , val=     0.3658
x=      0.311     0.5672     0.2693     0.1908       8.84 , val=     0.2241
x=     0.9026     0.9142     0.3254     0.1825      12.53 , val=      0.391
x=     0.5101     0.4271     0.9811     0.8416      18.74 , val=     0.4403
x=    0.03544     0.1681     0.6343     0.3349       17.7 , val=     0.5255
x=     0.1349     0.8284     0.8843     0.7505      6.137 , val=     0.8526
x=     0.2802     0.3832     0.9529     0.4314      5.721 , val=     0.3922
x=    0.06149      0.654     0.1303      0.991      8.264 , val=      1.592
x=     0.2009    0.01924      0.889     0.2258      16.31 , val=      1.118
x=     0.8749     0.2752     0.7025     0.9188      17.84 , val=     0.3235
x=     0.4582     0.5505     0.0914     0.1348      8.985 , val=     0.2656
x=      0.869     0.4923     0.1652     0.8663      15.21 , val=     0.5364
x=     0.2144     0.9518     0.7998     0.4856      15.32 , val=     0.5424
x=     0.1301      0.768    0.06262     0.9156      7.384 , val=       1.36
x=     0.4991     0.1057     0.2188     0.8549      10.26 , val=     0.2449
x=     0.9309     0.7175    0.06909     0.8789      8.336 , val=      1.027
x=    0.06419     0.9604     0.4447      0.256      1.556 , val=     0.4798
x=     0.2851     0.6309     0.6199     0.1102      10.71 , val=     0.4778
x=     0.8887    0.08937     0.2202    0.08932      11.32 , val=      1.286
x=     0.1138     0.3938     0.8178     0.9821      9.385 , val=      1.222
x=    0.06034     0.6731      0.513     0.1871    0.02326 , val=     0.2188
x=     0.3693     0.5908     0.7289     0.2976      5.327 , val=     0.4653
x=     0.3842     0.5129     0.4673     0.1484     0.9199 , val=     0.4193
x=     0.7231     0.7843     0.3321     0.7079      15.32 , val=     0.6867
x=     0.3203     0.5842     0.9521     0.3439      13.97 , val=      0.393
x=     0.5549     0.3908     0.3115    0.05886      1.513 , val=     0.6893
x=     0.4694     0.2051      0.748    0.04081      3.528 , val=      1.205
x=     0.8148     0.7641     0.8163     0.1833      16.36 , val=     0.4113
x=     0.1599     0.1516      0.814     0.4345      19.09 , val=     0.5042
x=     0.1701      0.862     0.4085     0.8024      17.94 , val=      1.194
x=     0.1274   0.002765   0.004669     0.9684      15.28 , val=     0.9262
x=     0.3388     0.1792     0.4733     0.7473      17.13 , val=     0.1991
x=     0.6277     0.5726    0.02037     0.4521       8.69 , val=     0.2675
x=      0.661     0.6336     0.6935     0.6396      19.35 , val=     0.2337
x=     0.2738     0.9219     0.8693     0.7841      4.806 , val=      1.086
x=     0.7007     0.1666     0.3068     0.3679      11.24 , val=     0.8463
x=     0.8726     0.3964     0.6293     0.2132      8.394 , val=     0.9264
x=      0.978     0.3473     0.3253    0.07669      18.42 , val=     0.9058
x=     0.7954     0.8336      0.275     0.2799      13.23 , val=     0.3533
x=     0.1394     0.4194     0.2798     0.7088      11.77 , val=     0.4092
x=     0.8655     0.7223     0.2758    0.04247       6.58 , val=     0.1971
x=      0.253     0.8305     0.3658     0.7648      16.82 , val=     0.9727
x=      0.897     0.1389     0.4026     0.1023     0.4167 , val=      1.209
x=     0.5593     0.6629     0.7107     0.6119      14.32 , val=     0.2183
x=     0.8853     0.5359     0.1327     0.2818      14.88 , val=     0.2121
x=     0.6062     0.7834     0.9407      0.637      8.446 , val=     0.4872
x=      0.638     0.3629     0.5064     0.4207      15.23 , val=     0.7162
x=     0.4634     0.9808     0.3085     0.1262      8.435 , val=     0.4919
x=     0.2496     0.3246     0.5999     0.1318       18.1 , val=     0.7423
x=     0.4533    0.08726     0.3307     0.8614      14.87 , val=     0.2867
x=     0.8775     0.7979     0.4897      0.641      1.427 , val=     0.4222
x=     0.4696     0.9212     0.5728     0.5208      2.263 , val=     0.5354
x=     0.9144     0.1088     0.4042      0.371      2.167 , val=      1.168
x=     0.2168     0.1427    0.01394     0.9493       13.8 , val=     0.8703
x=     0.1917     0.5173     0.1233     0.2422      10.61 , val=     0.1667
x=    0.09812     0.8152     0.4343     0.3638         11 , val=     0.3411
x=     0.4199      0.868    0.06806     0.8889      6.987 , val=      1.396
x=     0.9482     0.2552     0.5525     0.7784      2.534 , val=     0.5167
x=     0.6495     0.6319     0.5277     0.9971      2.854 , val=     0.6451
x=     0.1404     0.7933    0.08927     0.7301      3.143 , val=     0.8934
x=     0.4493     0.5813     0.7783     0.1266      4.608 , val=     0.6823
x=     0.5509     0.7277     0.5248     0.4996      18.76 , val=     0.1655
x=     0.6262     0.8037     0.1195      0.705       4.53 , val=     0.8246
x=     0.4898     0.9681     0.7606   0.003301      14.21 , val=     0.3306
x=     0.8313     0.6371     0.6731     0.7201      18.85 , val=     0.4189
x=     0.2512     0.3171     0.1158     0.4795      6.893 , val=     0.1726
x=     0.9647     0.1827     0.7537     0.7895      9.693 , val=     0.5332
x=     0.7788     0.1481   0.006264     0.9286      17.89 , val=     0.3308


The bold lines are (some of) the ones that seem to go out of the
constraints.

Does anyone know why? Or am I wrong in some place?

I would very appreciate it if one can give me some guidance.

Best regards,

Chao


-- 
Chao Wang
Email: [email protected]
Web: https://sites.google.com/site/wan9c9/home
Department of Statistics and Actuarial Science
The University of Hong Kong
Hong Kong
_______________________________________________
NLopt-discuss mailing list
[email protected]
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/nlopt-discuss

Reply via email to