paulflang / SBML2Julia

A tool to for optimizing parameters of ordinary differential equation (ODE) models. SBML2Julia translates a model from SBML/PEtab format into Julia for Mathematical Programming (JuMP), performs the optimization task and returns the results.
https://sbml2julia.readthedocs.io/en/latest/
MIT License
5 stars 1 forks source link

Restoration fails when using objectivePriors #10

Closed paulflang closed 4 years ago

paulflang commented 4 years ago

I am just trying to to test model fitting with parameter priors. DisFit creates the following Julia code: 20200830_Parameter_priors.txt The file runs with the following data: _measurements.txt

Unfortunately, Ipopt exits with EXIT: Restoration Failed!

@sshin23 : can you have a look at what is going wrong here?

Interestingly, when commenting out everything that is related to the parameter priors (lines 126-178 and 184) things work fine.

sshin23 commented 4 years ago

Ipopt sometimes face this type of convergence issue when the problem is highly nonlinaer. But in this case it seems that the solver sometimes finds the solution, depending on the random realization of the initial point. For example, in my computer, Ipopt converges if I set:

import Random; Random.seed!(3)

For this problem, I think some more problem-specific knowledge may be used to get a tighter parameter bounds, or use multiple starting point strategy.

paulflang commented 4 years ago

OK. This explains why I saw inconsistent behaviour. I mean inconsistent behaviour should not be unexpected given the randomisation of starting points. It is just that in my experience the choice of starting points did not have any effect in other examples. For me it is Random.seed!(4) that works. But in the end I just narrowed some of the parameter boundaries. Thanks a lot!