meaning of new functions: evalfc,evalgjac,evalhl

22 views
Skip to first unread message

dmitrey

unread,
Jun 14, 2008, 11:40:37 AM6/14/08
to TANGO Project - ALGENCAN
hi all,
could you explain what do these new funcs should do:
evalfc,evalgjac,evalhl?

They are absent in 1.0 and present in algencan 2.0 beta w/o any
description (at least in toyprob.py and toyprob.c, mb the description
is present somewhere?)

Thank you in advance,
Dmitrey

Ernesto G. Birgin

unread,
Jun 16, 2008, 8:59:13 AM6/16/08
to TANGO Project - ALGENCAN
Dear Dmitrey,

Subroutine evalfc is an alternative for the user supplied subroutines
evalf and evalc, i.e., the user have now two choices:

1) Choice 1: to provide evalf to evaluate the objective function and
to provide evalc to compute (given an index ind) the ind-th
constraint; or

2) Choice 2: to provide a unique subroutine called evalfc to compute
both the objective function and all the constraints at once.
Parameters of evalfc are the same as the ones for evalf and evalc with
the exception of "c" that in evalfc is an array of dimension m instead
of a scalar.

The same analogy applies for subroutine evalgjac that computes the
gradient of the objective function adn the Jacobian of the
constraints. Subroutine evalgjac is an alternative for the user
provided subrutines evalg and evaljac.

Subroutine evalhl is an optional subroutine and should compute the
Hessian of the Lagrangian. In the computation, the Hessian of the
objective function must be multiplied by sf while the Hessian of the j-
th constraint must be multiplied by sc(j).

Last but not least, the user MUST INDICATE which subroutines he/she
coded setting array "coded" appropriately in subroutine inip.

I will post soon a very first draft of a user manual for ALGENCAN
explaining this and other staff with mode detail.

Ernesto.

dmitrey

unread,
Jun 16, 2008, 3:28:47 PM6/16/08
to TANGO Project - ALGENCAN
Does choosing 1st or 2nd approach lead to change of algorithm that
ALGENCAN chose to solve the problem?
IIRC you mentioned ALGENCAN doesn't need derivatives for inactive
constraints, but 2nd approach will calculate all derivatives.
D.

Ernesto G. Birgin

unread,
Jun 17, 2008, 6:19:05 AM6/17/08
to TANGO Project - ALGENCAN
If the user codes evalf and evalc or if he/she codes a unique
subroutine evalfc, the ALGENCAN algorithmic options will be the same
(the same sequence of point will be generated by the algorithm).

On the other hand, in a general way, the algorithmic available choices
will depend on the user-supplied subroutines. For example, the
acceleration step needs second-derivatives to be provided by the user
(The acceleration step is a new feature of ALGENCAN 2.0. See E. G.
Birgin and J. M. Martínez, "Improving ultimate convergence of an
Augmented Lagrangian method", Optimization Methods and Software 23,
pp. 177-195, 2008, for details). So, if second derivatives are not
provided, the acceleration-step option (PERFORM-ACCELERATION-STEP in
the specification file algencan.dat) will not be available.

I probably mentioned in the past that ALGENCAN does not evaluate
constraints that are very satisfied at the current point. In this
sense, to provide subroutine evalc to compute individual constraints
may be more efficient than providing subroutine evalfc to compute the
objective function and all the constraints at once. In the case of
evalfc being provided by the user, the unnecessary constraints values
will be ignored by ALGENCAN. However, in particular situations, some
users prefer to code evalfc instead of evalc.

Concluding, more information about the problem to be solved means more
available algorithmic options. Note that information means first
derivatives and, if possible, second-derivatives too. Regarding
objective function and constraints evaluation (and their derivatives):

1) to provide evalf and evalc or to provide evalfc;
2) to provide evalg and evaljac or to provide evalgjac;

depends on the user preference. To provide one or the other will allow
the user to make the same algorithmic choices, being the difference
related to performance. Which one is preferable may be problem-
dependent.

Ernesto.
Reply all
Reply to author
Forward
0 new messages