Syed Hassan Amin wrote:
> Dear Sir,
> I am applying vnl_levenberg marquardt optimization.
> I want to know two things about its usage :
> 1). I want to restrict each of my parameter vector to
> certain range ie. b<=p(i)<=a
See http://paine.wiau.man.ac.uk/pub/doc_vxl/books/core/book_6.html#SEC61
for an answer to a similar question.
I am thinking of updating that FAQ with something like the following info:
We don't have any industrialstrength* constrained optimisers in VXL.
Constained optimisation is very difficult, and solutions are usually
very tied to the particular constaints and cost function.
However, optimisation of a convex cost function with box inequality
constraints is a fairly common situation, and I believe there should be
code out there for it. Last time I looked (about 3 years ago) there were
free simple* constained optimisers available  google for Leon Bottou,
and several industrialstrength* tools advertised for sale.
Recently however, Tim Cootes has added a simple* quadraticprogramming
optimiser (core/vnl/algo/vnl_solve_qp.*) However, if you thinking of
using vnl_levenberg_marquardt, then your problem is unlikely to be QP.
*Here I am defining simple to mean "works on numerically easy problems 
ie a cost function with lowdimension parameter vector, a
wellconditioned Hessian and Jacobian". Industrialstrength means "works
with numerically harder problems"
> 2). How do I apply custom updates to my parameter
> vector.
If you want to apply your own update every n iterations:
Set max_iterations to n
run the optimiser, which should terminate early
apply your update to the optimiser's result
repeat until converged.
Ian.
