Skip to content

Questions about Nonlinear programming

Short answers, pulled from the story.

What is nonlinear programming and how does it differ from linear programming?

Nonlinear programming is the branch of mathematical optimization that handles problems where at least one constraint or the objective function is nonlinear. Linear programming restricts all functions to be linear; nonlinear programming removes that restriction, enabling it to model situations where costs, relationships, or trade-offs do not scale in a straight line.

What are the Karush-Kuhn-Tucker conditions in nonlinear programming?

The Karush-Kuhn-Tucker (KKT) conditions are necessary conditions that any optimal solution must satisfy, provided the functions are differentiable and constraint qualifications hold. Under convexity, the KKT conditions are also sufficient, guaranteeing a global optimum rather than just a local one.

What is the difference between a feasible, infeasible, and unbounded nonlinear program?

A feasible problem has at least one set of variable values satisfying all constraints. An infeasible problem has mutually contradictory constraints, so no solution exists and the feasible set is empty. An unbounded problem is feasible but has no optimal solution because the objective function can always be improved beyond any finite value.

What numerical solvers are available for nonlinear programming?

Open-source solvers include ALGLIB (C++, C#, Java, Python), NLopt (C/C++ with Julia, Python, R, and MATLAB interfaces), SciPy's scipy.optimize module, and IPOPT, an interior point method solver supporting C, Fortran, Java, AMPL, R, and Python. SNOPT is a widely used proprietary solver written in Fortran.

What is branch and bound in nonlinear programming?

Branch and bound divides a nonlinear program into subclasses, solves each with convex or linear approximations that form a lower bound on the true cost, and progressively refines until a feasible solution matches the best lower bound. Solutions within a chosen tolerance of that bound are called epsilon-optimal, and reaching epsilon-optimality is often the practical termination criterion for large problems.

What real-world problems does nonlinear programming solve?

Nonlinear programming addresses problems like petroleum product transportation, where costs across pipelines, rail tankers, road tankers, river barges, and coastal tankships involve economies of scale and discontinuities. It is also central to experimental science, where fitting theoretical models to observed data requires optimizing nonlinear functions over unknown parameters.