[Ipopt] Ipopt desired convergence tolerance

Michele Castellana michelec at princeton.edu
Mon Apr 8 17:56:07 EDT 2013


Dear Ipopt mailing list members,
I am trying to minimize a function f(\vec{x}) of  51 variables with Ipopt. I have both bound constraints and linear inequality constraints. The function is differentiable and I am running Ipopt with the following options: 

  app->Options()->SetNumericValue("tol",epsilon);
  app->Options()->SetIntegerValue("acceptable_iter",0);
  app->Options()->SetStringValue("mu_strategy", "adaptive");
  app->Options()->SetStringValue("output_file", "ipopt.out");
  app->Options()->SetStringValue("hessian_approximation","limited-memory");

My problem is that if I let Ipopt run several times, each time with a smaller value for the tol parameter epsilon and the same initial condition, I find a (very) different minimum \vec{x}* every time. This is not what I want, because I would like \vec{x}* to converge to a unique minimum as epsilon gets smaller and smaller. 

For instance, here is what I get for there different values of epsilon:
epsilon = 1e-6: 
Number of Iterations....: 48
EXIT: Optimal Solution Found.
Solution of the primal variables, x
x[0] = 0.0005106540838646014953891572041300150885945
x[1] = 0.0005148906889324888005998737128265929641202
x[2] = 0.0005246383559979767713388199013024859596044
x[3] = 0.0005661172804863604706218649376125995331677
x[4] = 0.0006335532843406113017240000040430913941236
x[5] = 0.0006519562790484218243666769687649775733007
x[6] = 0.0006618852192647961757768215740327377716312
x[7] = 0.000688032052017609175274814869993633692502
x[8] = 0.0007346469057897791598427117421010734688025
x[9] = 0.0007923599537560679050007816925926817930304
x[10] = 0.0008633565190130032757434563883691680530319
x[11] = 0.0009348851621499771388096311497406531998422
x[12] = 0.001049952664065995815503851140704227873357
x[13] = 0.00117197068632428152111513153244004570297
x[14] = 0.001409708743123868181570945701253094739513
x[15] = 0.001732743880643766807431171983466811070684
x[16] = 0.002363807754198982234022929915795430133585
x[17] = 0.0005790856105679137357661323548541076888796
x[18] = 0.000616026380828399509718973359184701621416
x[19] = 0.0006748405479343330074654128125644092506263
x[20] = 0.0007891813632870756795023581275927426759154
x[21] = 0.000967220433500447208073624860702466321527
x[22] = 0.001183853336891901864014187140128342434764
x[23] = 0.001378163612080349036126403206026225234382
x[24] = 0.001613096752203940038514207166997493914096
x[25] = 0.001862976554817881436054705091009964235127
x[26] = 0.002107646857334330176697578806965793773998
x[27] = 0.00234923693882512548553043174592858122196
x[28] = 0.002544503644381677833624655349353815836366
x[29] = 0.002832412884050846714478755217214711592533
x[30] = 0.00310409199756584179216711838478204299463
x[31] = 0.003544647666437542032902285882300930097699
x[32] = 0.004078641828662034861385787820609039044939
x[33] = 0.004918054784790828505569582063117195502855
x[34] = 0.9691767151186995166156634695653337985277
x[35] = 0.9559590518221522392749989194271620362997
x[36] = 0.9441222275563250221352973312605172395706
x[37] = 0.935347723448456402906003859243355691433
x[38] = 0.9228687531237609320555748126935213804245
x[39] = 0.8985259785146414435175188373250421136618
x[40] = 0.8622510378732899383180665608961135149002
x[41] = 0.8176924418339842626224367450049612671137
x[42] = 0.7678809998528038915921456464275252074003
x[43] = 0.7140968822619406797258534425054676830769
x[44] = 0.6564684786609371602850160343223251402378
x[45] = 0.59645434659694029910781409853370860219
x[46] = 0.5296402886097192341807726734259631484747
x[47] = 0.4575657730936542044730686029652133584023
x[48] = 0.3777346932618770858347545527067268267274
x[49] = 0.2810003131597793024631926073197973892093
x[50] = 0.1423326173172988207138445204691379331052

Objective value
f(x*) = 0.8436188586872184203002689173445105552673

epsilon = 1e-7: 
Number of Iterations....: 71
EXIT: Optimal Solution Found.
Solution of the primal variables, x
x[0] = 0.0009509032601376650028351944499149794864934
x[1] = 0.0008982117084096869191051082381704873114359
x[2] = 0.0008864116464024018003653448971590478322469
x[3] = 0.0009033816199392536621173843691678939649137
x[4] = 0.0009526649541140668180777550944071663252544
x[5] = 0.001024007410530726122632749763852189062163
x[6] = 0.001121955004208285630595831605660350760445
x[7] = 0.00124955239034427569369545274469146534102
x[8] = 0.001409742284662163268674217597720144112827
x[9] = 0.001606818308410023739621341754002514790045
x[10] = 0.00184643610759049718594848599195756833069
x[11] = 0.002135523921024299210530417170161854301114
x[12] = 0.00248254752240604755278430282317003729986
x[13] = 0.002897569457053348739722364868498516443651
x[14] = 0.003391609024123918864762616820485163771082
x[15] = 0.003979358414937645554987355467346787918359
x[16] = 0.004670504220631878020131289019900577841327
x[17] = 0.00165620518306761380609992695411847307696
x[18] = 0.001908652432108410516159446856931936054025
x[19] = 0.002114341075715380630084538893243006896228
x[20] = 0.002318905402237425236733336930683435639367
x[21] = 0.002554525535080441958624142273492907406762
x[22] = 0.002813648579135887874136390252033379510976
x[23] = 0.00311047983779009313762276001114059909014
x[24] = 0.003456445100191172462716915347868962271605
x[25] = 0.003859739538964431729978210583453801518772
x[26] = 0.004329575806364292615835420718894965830259
x[27] = 0.004876249974767484646198667519456648733467
x[28] = 0.005510538474840899828000040372444345848635
x[29] = 0.006243738897532529613654261879673867952079
x[30] = 0.007086600207972764201014292950731032760814
x[31] = 0.008044888605063756081836601197210256941617
x[32] = 0.009118045042388341070438428914712858386338
x[33] = 0.01024073902747473473195949367209323099814
x[34] = 0.8489456794112901771853785248822532594204
x[35] = 0.7708671848749201194195279640553053468466
x[36] = 0.7225592789364727597245519064017571508884
x[37] = 0.6840039859790976173314902553102001547813
x[38] = 0.6496833881495772677894251501129474490881
x[39] = 0.6172788378430378308792114694369956851006
x[40] = 0.5855764847306790255032638015109114348888
x[41] = 0.5538137743643546384575415686413180083036
x[42] = 0.5213947766008132367332450485264416784048
x[43] = 0.4877763400053663489508437578479060903192
x[44] = 0.4523789111127289319647104548494098708034
x[45] = 0.414501675679084968795251597839524038136
x[46] = 0.3732150938609072321483495215943548828363
x[47] = 0.32709254129117393272707658979925327003
x[48] = 0.2736070570375152000153207154653500765562
x[49] = 0.2072428497617492260118865488038863986731
x[50] = 0.1094775290096580144805216150416526943445

Objective value
f(x*) = 0.8436190523968003507349067149334587156773

epsilon = 1e-8
Number of Iterations....: 235
EXIT: Optimal Solution Found.

x[0] = 3.50474559380519937569833932577978430345e-05
x[1] = 4.718403265408264513416924934574581129709e-05
x[2] = 6.427021417971756048377607317689808041905e-05
x[3] = 8.748814513740467153479068995736156466592e-05
x[4] = 0.0001184843556633626926542085522342517833749
x[5] = 0.0001591161874203695606334180157048763248895
x[6] = 0.0002112309209879937091629970025152829293802
x[7] = 0.0002763319378579729714527635220377987934626
x[8] = 0.000355266387918322216771943589108673222654
x[9] = 0.0004480479121157326894905881253805546293734
x[10] = 0.0005542466643998891556374686295782794331899
x[11] = 0.0006737222860403291975137096692094473837642
x[12] = 0.0008075304982462830870326708776474333717488
x[13] = 0.0009581343026343500058825131127093754912494
x[14] = 0.001129446416156533157873487205336004990386
x[15] = 0.001326494312919906026423944034320356877288
x[16] = 0.001554963289004950097865753733117344381753
x[17] = 0.001655944952285227575461412641288916347548
x[18] = 0.001662025370399528023668267451284918934107
x[19] = 0.001669298128790163478901709126489549817052
x[20] = 0.00167926324538290915391880453455542010488
x[21] = 0.001693571098492590437656346580297395121306
x[22] = 0.001713751971132473168532572849187545216409
x[23] = 0.001742851269700452631478126974684528249782
x[24] = 0.001783989635359704015518667041817479912424
x[25] = 0.001841543448003017235253819805507191631477
x[26] = 0.001920596564168397220664918911836593906628
x[27] = 0.002027145745671964007644794136808741313871
x[28] = 0.002167286114617263635684363265454521751963
x[29] = 0.002347422486137570787206874101116227393504
x[30] = 0.002573900657282475034487445597619625914376
x[31] = 0.002853595044984966709600282541714477702044
x[32] = 0.003193740975847524782293973544256004970521
x[33] = 0.00360010246329317464691888162064969947096
x[34] = 0.09808272562156146456846528280948405154049
x[35] = 0.09168104344016972384601160683814669027925
x[36] = 0.08738118267461787713745735572956618852913
x[37] = 0.0836449787706664560360536597727332264185
x[38] = 0.0800839708773240371852963903620548080653
x[39] = 0.07653970984848522396415404500658041797578
x[40] = 0.07292808999655410462370497270967462100089
x[41] = 0.06919354912602351803663225382479140534997
x[42] = 0.06529088880156627694439919196156552061439
x[43] = 0.06117331259733152504232123192196013405919
x[44] = 0.05678404786917373020527222138298384379596
x[45] = 0.05204682641583486396585911393231071997434
x[46] = 0.04683972892024714645975436155822535511106
x[47] = 0.04097283357179535429049010986091161612421
x[48] = 0.03410371927494702110061908228999527636915
x[49] = 0.02551627501186529839438676958707219455391
x[50] = 0.0127821102979312328090655270784736785572

f(x*) = 0.8436187159943207003465204252279363572598







So I really don't understand why the solution does not converge (it actually varies a lot!) as epsilon gets smaller and smaller. 
Do you have any ideas?

Thank you!
Best,
Michele



 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/ipopt/attachments/20130408/5def4afb/attachment-0001.html>


More information about the Ipopt mailing list