This is correct. As long as the optimization variables and the objective 
function, and it’s gradient are real valued, intermediate variables (such as 
PDE states) can be complex.

In principle it is also possible to minimize real valued functions in complex 
variables by converting to rectangular or polar coordinate space and working 
with real numbers only (this will double the size of the optimization problem). 
The same transformation for complex valued functions yields a multi objective 
optimization problem.

There’s no guarantee though that TAO algorithms will work with this out of the 
box. When PETSc is compiled complex, the above transformation yields TAO 
solution vectors that are still complex but carry all the information in the 
real component with zeros in the imaginary. Linear algebra with these vectors 
may not turn out to be equivalent to the real-compiled counterparts.

This potential issue also applies to carrying around complex state variables in 
a PDE constrained problem. Even though the optimization algorithm never sees 
them, the PETSc data structures in TAO would still be complex valued with zeros 
in the imaginary. We’ve never tested TAO this way.

Alp

On Apr 14, 2020, at 5:26 PM, Stefano Zampini <stefano.zamp...@gmail.com> wrote:

 Not true in general when you minimize an objective function as a functional 
of the parameter only
For same methods (Newton for example, gradient descent, etc) the state 
variables do no enter the minimization, so it should be fine to have 
complex-valued state variables


On Apr 15, 2020, at 1:04 AM, Zhang, Hong via petsc-users 
<petsc-users@mcs.anl.gov<mailto:petsc-users@mcs.anl.gov>> wrote:

Sorry for the time travel. As far as I know, optimization over complex-valued 
parameters is not a well-defined problem. I am not sure how you can develop an 
optimization algorithm for it. Perhaps our optimization experts have better 
suggestions in this direction.

The real-valued formulation seems to be more promising to me. The 
preconditioning is hard, but still doable with fieldsplit as Mark mentioned.

Hong (Mr.)

On Apr 14, 2020, at 1:42 PM, Sajid Ali 
<sajidsyed2...@u.northwestern.edu<mailto:sajidsyed2...@u.northwestern.edu>> 
wrote:

Hi Hong,

Apologies for creating unnecessary confusion by continuing the old thread 
instead of creating a new one.

While I looked into converting the complex PDE formulation to a real valued 
formulation in the past hoping for better performance, my concern now is with 
TAO being incompatible with complex scalars. I would've preferred to keep the 
complex PDE formulation as is (given that I spent some time tuning it and it 
works well now) for cost function and gradient evaluation while using TAO for 
the outer optimization loop.

Using TAO has the obvious benefit of defining a multi objective cost function, 
parametrized as a fit to a series of measurements and a set of regularizers 
while not having to explicitly worry about differentiating the regularizer or 
have to think about implementing a good optimization scheme. But if it 
converting the complex formulation to a real formulation would mean a loss of 
well conditioned forward solve (and increase in solving time itself), I was 
wondering if it would be better to keep the complex PDE formulation and write 
an optimization loop in PETSc while defining the regularizer via a cost 
integrand.

Thank You,
Sajid Ali | PhD Candidate
Applied Physics
Northwestern University
s-sajid-ali.github.io<http://s-sajid-ali.github.io/>


Reply via email to