Q. Where can I join a discussion group about KNITRO?
A. We started a Google group called "KNITRO" in 2007. Anyone can view the discussions. To post a message you need to sign into Google, but Google accounts are free.
Q. Why does get_machine_ID.exe say the machine ID could not be determined?
A. On Windows this may happen if your machine is not connected to a network. The machine ID includes an Ethernet address, but Windows does not make the address available unless the network connection is enabled. See the Ziena License Manager User's Manual for details.
Q. Can I install multiple versions of KNITRO on my Windows machine?
A. Yes. Versions 5.0 and up install automatically in separate folders under c:\Program Files\Ziena\. Version 4 installs two files, c:\windows\system32\knitro.dll and c:\windows\knitro.exe, that may conflict with other KNITRO versions. We recommend moving the two files to c:\Program Files\Ziena\KNITRO-4\ and then explicity referencing them with a full path name in Visual Studio or AMPL.
Q. Why is Automatic Differentiation (AD) important?
A. Nonlinear optimization software relies on accurate and efficient derivative computations for faster solutions and improved robustness. KNITRO in particular has the ability to utilize second derivative (Hessian matrix) information for faster convergence.
Computing partial derivatives and coding them manually in a programming language can be time consuming and error prone (KNITRO does provide a function to check first derivatives against finite differences). Automatic Differentiation (AD) is a modern technique which automatically and efficiently computes the exact derivatives so that the user is freed from dealing with this issue. Most modeling languages provide automatic differentiation.
Q. Why is KNITRO not honoring my bound constraints?
A. By default KNITRO does not enforce that simple bounds on the variables (x) are satisfied throughout the optimization process. Rather, satisfaction of these bounds is only enforced at the solution. In some applications, however, the user may want to enforce that the initial point and all intermediate iterates satisfy the bounds bl ≤ x ≤ bu. This can be enforced by setting KTR_PARAM_HONORBNDS to 1 (see the Knitro User's Manual for details)
Please note, the honor bounds option pertains only to the simple bounds defined with vectors bu and bl for x, not to the general equality and inequality constraints defined with the vectors cu, cl, and c.
Q. Do I need to specify a constraint with cu, cl, and c if I already specified it with the bounds parameters bl and bu?
A. No, if you have specified a constraint with the bounds parameters then you should not specify it with the general constraints. For example, x ≤ 2 is best modeled by setting bl = -KTR_INFBOUND and bu = 2. Duplicate specification of a constraint can make the problem more difficult to solve.
Q. Do I need to initialize all of the bounds parameters bu and bl? What if a variable is unbounded?
A. If every variable is unbounded from below (or above), then you can pass a NULL pointer for bl (or bu), and KNITRO will interpret this to mean unbounded (this is new functionality beginning with KNITRO 5.0). If at least one variable is bounded from below (or above), then you must initialize all elements of bl (or bu). Use KNITRO's value for infinity, KTR_INFBOUND to denote unbounded. (If the bound is larger in magnitude than KTR_INFBOUND, then you must rescale the problem. See knitro.h for the definition of KTR_INFBOUND.)
Q. Do I need to initialize all of the constraint parameters parameters cu and cl? What if a constraint is unbounded?
A. You must initialize all elements of bl and bu. If a constraint is unbounded use KNITRO's value for infinity, KTR_INFBOUND. (If the constraint is larger in magnitude than KTR_INFBOUND, then you must rescale the problem. See knitro.h for the definition of KTR_INFBOUND.)
Q. Is volume licensing available?
A. Yes, Ziena offers discounts for additional copies sold to an organization. Contact Ziena for pricing.
Q. Can I use all interfaces if I purchase the KNITRO solver through a modeling language's website?
A. No. When KNITRO is purchased through a modeling language vendor, KNITRO can only be used through that particular modeling language or interface. To embed KNITRO in a C/C++ or FORTRAN program, you must purchase the full KNITRO libraries through Ziena (or Artelys in Continental Europe).