CUMULATIVE RELEASE HISTORY FOR KNITRO NONLINEAR OPTIMIZATION SOLVER ------------------------------------------------------------------- (in reverse chronological order) 5.2.0 - 10 Mar 2008 * New features - Two new KNITRO user options, ``bar_penaltycons'' and ``bar_penaltyrule'' are added for the interior-point algorithms. The first option may be used to apply a special penalty method to the constraints. This can improve performance on problems with degenerate constraints or problems where KNITRO is struggling to get feasible. The second option implements different rules for handling the penalty parameter in the merit function that is used to decide whether or not to accept a trial iterate. In particular, the new rule ``bar_penaltyrule=flex'' can often accelerate convergence. - The existing KNITRO user option, ``feasible'' was renamed ``bar_feasible'', to indicate that it is only used for the barrier/interior-point algorithms. In addition, it was expanded and can now be used to implement a special procedure that emphasizes first getting feasible before optimizing. This can be especially useful on problems where the default version of KNITRO is struggling to get feasible. The related option ``feasmodetol'' was also renamed ``bar_feasmodetol''. - The multi-start option in KNITRO was enhanced with improved features and three new user options, ``ms_num_to_save'', ``ms_savetol'' and "ms_terminate". The first option provides the ability for multi-start to save the best ``ms_num_to_save'' feasible solution estimates. The option ``ms_savetol'' specifies the tolerance for determining if two feasible points are the same. The option ``ms_terminate'' allows the user to terminate multi-start either when the first feasible solution estimate, or first locally optimal point is found. - Two new KNITRO user options, ``outdir'' and ``outappend'' were added to give the user more control over output. The option ``outdir'' lets the user specify a directory where all KNITRO output is directed and the option ``outappend'' determines whether new output is appended to existing files. In addition, the printing generated from the ``outlev'' parameter was modified to only print accepted trial steps. - The KNITRO termination codes were expanded to provide more detailed information and to distinguish between feasible approximate solutions and infeasible approximate solutions when the solution is not determined to be optimal. In addition, the return code numbers were changed to organize different categories of termination. - Matlab users may now interface to the KNITRO 5.2.0 libraries using the mex interface provided in the Optimization Toolbox with Matlab release R2008a. 5.1.2 - 27 Jul 2007 * New features - KNITRO can check out licenses from the Ziena network server and reuse them. This reduces overhead and makes the license server more robust when an application solves thousands of optimization problems. The feature requires Ziena license server 5.1. - KNITRO released for Mathematica 6.0, compiled on all supported platforms (full availability 4 May 2007). - KTR_get_release() can be called without first constructing KNITRO. - AMPL users may now select the knitro_option "gradopt" to compute gradients by using finite differences. - AMPL users can control precision of the displayed final objective. * Bug fixes - Improves multithreaded performance on Windows by using Critical Sections and linking with the MSVC LIBCMT library (/MT). - Adds CPLEX 10.2 to the list of CPLEX libraries searched for when using option "lpsolver". - Allows the Ziena license manager to run on Windows machines installed with the Spanish language option. - Fixes a resource leak in the Ziena license server that can cause failure if logging is enabled. - Fixes an error when fixed variables are present in the problem definition and finite difference gradients are computed using central differences. Memory corruption sometimes resulted in a crash. - Fixes a bug that prevented KNITRO from recognizing certain maximization problems were becoming unbounded. - Corrects an error that caused KTR_save_param_file() to always write option "ms_enable" as "no". 5.1.1 - 20 Feb 2007 * New feature - Allows linking with any BLAS and LAPACK library; in particular, the AMD Core Math Library (ACML). The Intel MKL for BLAS and LAPACK is still distributed, but only as a shared object. - KNITRO released for 64-bit Windows, on Windows XP Professional x64 (full availability 2 Apr 2007). * Bug fixes - Places the KNITRO Java API in a package named com.ziena.knitro. The KNITRO Java class is now distributed as a jar file. - Adds CPLEX 10.1 to the list of CPLEX libraries searched for when using option "lpsolver". - Fixes an error in the solution reported by the KNITRO AMPL solver when the objective is linear with a constant term. The final objective reported in the AMPL status line was incorrect, disagreeing with the correct objective reported by KNITRO. - Fixes a computational error in the limited memory BFGS update if a step needs to be damped. The error was possible only if the KTR_HESSOPT_LBFGS option was selected. - Fixes a crash that may occur when running multiple copies of KNITRO as separate threads in a single process. Core dumps from this bug indicated the error to be in the indefinite system solver. 5.1.0 - Nov 2006 * Minor Release KNITRO 5.1 adds new user options to improve algorithm performance, control multi-start behavior, and save iterates on large, difficult problems. The distribution includes the Intel Math Kernel Library for BLAS and LAPACK functions, providing significant speedup on machines running an Intel processor. The release also includes an object-oriented C++ example test driver. New user options include "bar_maxrefactor", "bar_maxbacktrack", "ms_maxbndrange", "ms_maxtime_cpu", and "ms_maxtime_real". Options are given carefully selected default values, but can be modified to improve performance on difficult optimization problems. The KNITRO interface for Mathematica adds an option "useCompiledFns" to evaluate functions and partial derivatives using compiled objects. The KNITRO interface for AMPL adds several convenience features. See the 5.1 KNITRO User's Manual for more information. * Bug fixes - The Active Set algorithm LP subproblem solver occasionally failed on certain large problems. The fix allows iterations to continue to completion. - Fixes the KNITRO/AMPL interface to submit correct Lagrange multiplier starting values when a model is resolved without resetting. 5.0.3 - 28 Jun 2006 * New features - KNITRO released for 32-bit MacIntosh OS X, as a Universal Binary that runs natively on both PowerPC and Intel x86. - Adds a new function "KTR_new_puts" so applications that embed KNITRO can control all output. - Adds Windows system libraries to the KNITRO library so that applications do not have to include them when linking. *Bug fixes - Fixes the specialization for QP problems to use KTR_BARRULE_DAMPMPC by default. This was the QP default in 4.0, but a code change in 5.0.0 inadvertently changed it to use KTR_BARRULE_MONOTONE. - Linux releases could incorrectly measure CPU time if a problem took more than 72 minutes to complete, causing the "maxtime_cpu" option to fail. The fix uses "getrusage()" instead of "clock()" to measure CPU time. - Modifies multi-start to continue if evaluation of FC (objective function and constraints) at an iterate returns an error. - Fixes a crash in the KNITRO solver for AMPL when a problem has no objective and the KTR_HESSOPT_PRODUCT option is selected. - Fixes KTR_solve to return "lambda" multipliers if the start point is found to be optimal. 5.0.2 - 8 May 2006 * New feature - Adds the Ziena floating network license manager for Linux. Existing stand-alone licenses do not need to be updated. * Bug fixes - Fixes resource leaks in the Ziena stand-alone license manager (the bug was in Windows and Linux). - On Windows the license manager failed to recognize the machine if a network interface was disabled when get_machine_ID.exe is run, but enabled later. The bug appeared on Windows XP machines with a wireless network interface. - Fixes a bug in multi-start. If the first local solve failed and subsequent local solves found an objective value greater than zero, then multi-start reported no solution. - Changes user option "debug" to flush debug files immediately after each line of output. The bug was noticeable on large problems taking a lot of time per iteration. 5.0.1 - 7 Apr 2006 * Bug fix - User option "barrule" was mistakenly ignored if set to a nondefault value. The bug appeared when the Interior-point Direct or CG algorithms were selected. 5.0.0 - Feb 2006 * Major Release KNITRO 5.0 introduces a streamlined programming interface, the capability to solve MPEC problems (i.e., problems with complementarity constraints), a multi-start option for trying to find the global solution, the ability to crossover from an Interior-point solution to the Active Set algorithm for highly accurate solutions,and a new barrier update rule. Other enhancements include built-in derivative checking, option to maximize or minimize the objective, addition of Hessian user option 5 for the KNITRO solver under AMPL, and general improvements in algorithm efficiency and robustness. See the 5.0 KNITRO User's Manual for more information. 4.0.7 - 12 Jan 2006 * Bug fix - A small amount of memory was leaked despite calling KTR_free(). The bug appeared only when the Active Set algorithm was selected. 4.0.6 - 10 Nov 2005 * New features - Adds a Java programming interface. - Adds an out-of-memory handler for the LP component of the Active Set solver. If the LP subproblem runs out of memory, then KNITRO exits gracefully. 4.0.5 - 10 Jun 2005 * Bug fix - Fixes a problem with the GAMS interface to KNITRO. 4.0.2 - 15 Dec 2004 * Bug fix - Fixes a problem with the Tomlab interface to KNITRO. 4.0.0 - Oct 2004 * Major Release KNITRO 4.0 adds the Active Set optimization algorithm, additional barrier update rules, automatic problem scaling, and specializations that improve performance for LPs and QPs. The software is converted entirely to thread-safe C/C++ code. 3.1.0 - Sep 2003 * Minor Release KNITRO 3.1 adds an option for honoring the problem bounds throughout the optimization, and makes several small bug fixes. 3.0.0 - Apr 2003 * Major Release KNITRO 3.0 adds an option to use first derivative finite-difference approximations, a tool for checking derivatives, an option for limited-memory BFGS Hessians, infeasibility detection, an initial point option, and significant improvements to the Interior-point Direct algorithm for greater efficiency and robustness. The API is improved, and a C language wrapper introduced that provides dynamic memory allocation. 2.0.0 - Jan 2002 * Major Release KNITRO 2.0 is the first commercially available release of the KNITRO software product for nonlinear optimization. It offers the Interior-point CG algorithm and a preliminary version of the Interior-point Direct algorithm. The code is written entirely in Fortran, and ported to Linux, Solaris, and Windows. 1.0.0 - Jul 2001 * Initial Release KNITRO 1.0 is a non-commercial version of the Interior-point CG algorithm.