Hi Isaac,

On Jan 4, 2019, at 8:41 AM, Isaac, Tobin G via petsc-dev 
<petsc-dev@mcs.anl.gov<mailto:petsc-dev@mcs.anl.gov>> wrote:


I'm interested in exploring various method of multipliers approaches
to optimization for separable objectives.  With the separable
objective interface recently deprecated, how do you think I should go
about doing this?

The separable objective interface isn’t gone. We just changed terminology 
because “separable objective” was not an accurate description of what the 
function was doing. It was being used to define the residual for a nonlinear 
least-squares problem, so we’ve changed the function name to 
TaoSetResidualRoutine(). Otherwise the function signature is the same as before.

In line with this change, we’ve also converted 
TaoSetSeparableObjectiveWeights() to TaoSetResidualWeights(). We’ve also added 
a TaoSetResidualJacobianRoutine() in order to support the regularized 
Gauss-Newton algorithm that has been added to TAO recently (Pounders never 
needed the least-squares Jacobian to be provided).

If you were using Pounders before with the separable objective API, you can 
continue to do so still using the new function names. The functionality 
underneath hasn’t changed.


In general, because on objective function is not an object, just a
routine, how should we go about conveying structure in the objective?
Do we prefer that data to be composed onto the Tao object?


There is no support in TAO at the moment for actual separable objective 
functions. None of the algorithms in TAO have any understanding of structure in 
the objective, or try to do special things to take advantage of that structure. 
That is actually the main reason why we wanted to change the separable 
objective interface because it is misleading to the user, and suggests the 
existence of a TAO functionality that is not actually available.

Thanks,
 Toby



I hope this answers your questions!

Best,
——
Alp Dener
Argonne National Laboratory
https://www.anl.gov/profile/alp-dener

Reply via email to