# [Ipopt] Convergence issues

Miguel Angel Salazar de Troya salazardetroya at gmail.com
Fri Mar 13 11:03:00 EDT 2015

```Thanks for your response. My objective function is a double p-norm. I have
a solid mechanics problem in time and space and I want to get the maximum
value of a quantity over time and space, hence the double p-norm with a
high p coefficient (14). My variables are the material properties.
Something like topology optimization, but just at specific locations. The
variables change from 0.001 to 1. It's 0.001 to avoid singularities in the
simulation.

I get such a high dual infeasibility when my initial values are 0.5 and the
problem is unconstrained (although I have the penalty function to drive the
solution to a 0.001-1 layout) Imposing a volume constraint (making the sum
of the variables equal to a certain value) doesn't result in such a high
dual infeasibility, although still high (~1e9). For the unconstrained case,
starting with an initial value different than 0.5 results in an inf_du
value around 1e6. Also important, if a variable's initial value is less
than 0.5, the optimal value will be always 0, if it is greater than 0.5,
the optimal value will be always 1. The gradient of the objective function
without the penalty term is of the order of 1e-2 for all the variables. Is
the penalty term dominating the convergence because of this? If I scale the
objective function before applying the penalty term I will get better
results?

Miguel

On Thu, Mar 12, 2015 at 2:52 PM, Greg Horn <gregmainland at gmail.com> wrote:

> Your dual infeasibility is off the charts. Something is really off. It
> would help if you describe your problem more, or give a similar problem.
>
> On Tue, Mar 10, 2015 at 8:05 PM Miguel Angel Salazar de Troya <
> salazardetroya at gmail.com> wrote:
>
>> Hi
>>
>> I'm trying to optimize an unconstrained problem with a penalty function.
>> My goal is to obtain either 0 or 1 for the variables and the penalty term
>> takes care of this.
>>
>> The optimization eventually converges, but at the beginning, for each
>> iteration, the objective function is evaluated many times, over 50 times.
>> For each iteration, I obtain an output like this:
>>
>> iter objective             inf_pr        inf_du     lg(mu)   ||d||
>>   lg(rg)  alpha_du   alpha_pr ls
>>    5  1.4656145e+04 0.00e+00 1.29e+53  -0.1   8.80e+92  -5.4    8.88e-95
>>    2.08e-148f172 FqsWSWs
>>
>> Any idea of what's going on and how I could make it converge faster?
>>
>> Thanks in advance
>> Miguel
>>
>> --
>> *Miguel Angel Salazar de Troya*
>> Graduate Research Assistant
>> Department of Mechanical Science and Engineering
>> University of Illinois at Urbana-Champaign
>> (217) 550-2360
>> salaza11 at illinois.edu
>>
>>  _______________________________________________
>> Ipopt mailing list
>> Ipopt at list.coin-or.org
>> http://list.coin-or.org/mailman/listinfo/ipopt
>>
>

--
*Miguel Angel Salazar de Troya*