Assumptions
CONOPT is designed for smooth, continuous nonlinear optimization problems. It performs best under the following conditions:
- All variables are continuous, and all constraints are smooth (with well-defined first derivatives).
- The Jacobian (matrix of first derivatives) is expected to be sparse, allowing efficient numerical handling.
- CONOPT aims to find a local optimum that satisfies the Karush-Kuhn-Tucker (KKT) conditions.
To ensure reliable and efficient performance, we assume:
- The nonlinear functions and their derivatives are computed with high numerical accuracy.
- Second-order derivatives are used internally in some solver components. For models with many degrees of freedom, providing second derivatives can significantly enhance performance.
- Models are generally expected to be reasonably scaled. CONOPT includes an automatic scaling feature, but in larger models, good user-defined scaling often leads to better results.
Considerations
While CONOPT is a powerful tool for a wide range of problems, the following should be kept in mind:
- Discrete variables are not handled directly by CONOPT. However, modeling systems like AIMMS, AMPL, GAMS, and the LINDO API offer hybrid methods (e.g., Branch & Bound, Outer Approximation) that wrap around CONOPT to support such problems.
- Non-differentiable functions can be submitted, but results may vary. CONOPT is optimized for smooth models, and performance or convergence reliability may be reduced in these cases.
- While CONOPT can solve dense models, it is primarily optimized for sparse structures. Solve times may be slightly longer for dense formulations compared to solvers specialized in dense linear algebra.
- Models that rely on noisy or approximate function evaluations (e.g., functions involving iterative solvers or numerical integration) may present challenges. In particular, numerical derivatives (e.g., via finite differences) may not offer sufficient accuracy for stable solver behavior.
- Like most local solvers, CONOPT does not guarantee a global optimum. It will converge to a local solution that satisfies the KKT conditions. For models with multiple local optima or complex infeasibility landscapes, results may vary — and user insight is essential in interpreting the solution.