Computer Science 6676, Spring 1999                                         April 21, 1999

Class Project, Phase IV

Due at project meetings on May 6 or 7 (see below)


  1. Modify your trust region code for unconstrained optimization into a Truncated-Newton method, as detailed in the attached pseudo-code. As stated on the first page, this involves eliminating the calls to the Hessian evaluation or secant approximation and the calls to MODELHESS and CHOLSOLVE, and modifying the trust region driver into TNDRIVER, modifying the trust region update module into TNTRUPDATE, and writing the new Truncated-Newton module TNSTEP which also calls the small new modules HESSPROD and QUAD. (For HESSPROD, analgrad will be false unless you have coded analytic gradients.)
  2. Test your Truncated-Newton code on the following problems: Extended Rosenbrock and Extended Powell with n = 100, and Variable Dimension and Penalty 1 (attached) with n = 100. Run each from the standard starting point x_0 and from 10 (x_0 ). In addition to the information requested below for all problems, please report the following for each run of the truncated-Newton method: 1) the number of times the truncated-Newton step terminated due to each of the four stopping conditions (omega < 0, || stemp || >= delta, gnorm <= tolerance, or k>n, respectively); 2) the average number of inner iterations (ie the average value of k upon termination of the inner loop) per outer iteration. Also run the Newton and secant codes on these same problems if this is not a problem with your computing resources and include these runs in the tables requested below.

  3. Each group will schedule a half hour meeting with the instructor to discuss the project. To this meeting, please bring tables of the results of your Newton/trust region, secant/trust region, and Truncated-Newton codes on each of the test problems and starting points that have been assigned in Phases II, III, and IV. Please arrange these by problem so that we can easily compare the performance of the three methods for a given problem. For each problem and method, the table should show: the starting point (denoted by x_0, 10 ( x _0), 100 (x_0); the termination code; the function value at the final point; the total number of iterations; the total number of function evaluations not counting those used for finite differences; and the total number of function evaluations counting those used for finite differences. In addition, please bring along (in a format that one can refer to easily) the additional information that was requested for Phase II (you only need to do this for the Newton/trust region code): the number of iterations that take the Newton step; the number of iterations where the trust region is decreased within the iteration (and how many times it was decreased in each case); and the number of iterations where the trust region is increased within the iteration (and how many times it was increased in each case). Finally, please bring the additional information requested above for the Truncated-Newton code, in a format that one can refer to easily.
  4. At the meeting, we will discuss your experiences with the project and what you have learned about the methods, including: the comparisons in efficiency between the three methods, and the performance of the trust region updating strategy and the truncated-Newton inner iterations.