MPCPy icon indicating copy to clipboard operation
MPCPy copied to clipboard

Setting optimization options after initial optimization

Open dhblum opened this issue 6 years ago • 0 comments

This issue is to address the raising of an error when optimization options try to be changed after an initial optimization is solved. That is in something like the following:

# Instantiate optimization problem
opt_problem = optimization.Optimization(model, \
                                        optimization.EnergyMin, \
                                        optimization.JModelica, \
                                        'q_flow');
# Solve optimization problem                     
opt_problem.optimize(start_time, final_time);
# Get options
opt_options = opt_problem.get_optimization_options();
# Set new options
opt_options['IPOPT_options']['max_iter'] = 2;
opt_options['n_e'] = 2;
opt_options['result_mode'] = 'mesh_points';
opt_problem.set_optimization_options(opt_options)
# Resolve optimization problem                     
opt_problem.optimize(start_time, final_time);

It will raise the following error:

Traceback (most recent call last):
  File "/home/dhb-lx/git/mpcpy/MPCPy/unittests/test_optimization.py", line 261, in test_set_options_iterative
    opt_problem.set_optimization_options(opt_options)
  File "/home/dhb-lx/git/mpcpy/MPCPy/mpcpy/optimization.py", line 177, in set_optimization_options
    return self._package_type._set_optimization_options(opt_options);
  File "/home/dhb-lx/git/mpcpy/MPCPy/mpcpy/optimization.py", line 835, in _set_optimization_options
    raise KeyError('Key {} is set automatically upon solve.'.format(key));
KeyError: 'Key external_data is set automatically upon solve.'

dhblum avatar Apr 17 '18 17:04 dhblum