Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Nonlinear programming

From Wikipedia, the free encyclopedia
Solution process for some optimization problems

Inmathematics,nonlinear programming (NLP) is the process of solving anoptimization problem where some of the constraints are notlinear equalities or the objective function is not alinear function. Anoptimization problem is one of calculation of the extrema (maxima, minima or stationary points) of anobjective function over a set of unknownreal variables and conditional to the satisfaction of asystem ofequalities andinequalities, collectively termedconstraints. It is the sub-field ofmathematical optimization that deals with problems that are not linear.

Definition and discussion

[edit]

Letn,m, andp be positive integers. LetX be a subset ofRn (usually a box-constrained one), letf,gi, andhj bereal-valued functions onX for eachi in {1, ...,m} and eachj in {1, ...,p}, with at least one off,gi, andhj being nonlinear.

A nonlinear programming problem is anoptimization problem of the form

minimize f(x)subject to gi(x)0 for each i{1,,m}hj(x)=0 for each j{1,,p}xX.{\displaystyle {\begin{aligned}{\text{minimize }}&f(x)\\{\text{subject to }}&g_{i}(x)\leq 0{\text{ for each }}i\in \{1,\dotsc ,m\}\\&h_{j}(x)=0{\text{ for each }}j\in \{1,\dotsc ,p\}\\&x\in X.\end{aligned}}}

Depending on the constraint set, there are several possibilities:

  • feasible problem is one for which there exists at least one set of values for the choice variables satisfying all the constraints.
  • aninfeasible problem is one for which no set of values for the choice variables satisfies all the constraints. That is, the constraints are mutually contradictory, and no solution exists; the feasible set is theempty set.
  • unbounded problem is a feasible problem for which the objective function can be made to be better than any given finite value. Thus there is no optimal solution, because there is always a feasible solution that gives a better objective function value than does any given proposed solution.

Most realistic applications feature feasible problems, with infeasible or unbounded problems seen as a failure of an underlying model. In some cases, infeasible problems are handled by minimizing a sum of feasibility violations.

Some special cases of nonlinear programming have specialized solution methods:

  • If the objective function isconcave (maximization problem), orconvex (minimization problem) and the constraint set isconvex, then the program is called convex and general methods fromconvex optimization can be used in most cases.
  • If the objective function isquadratic and the constraints are linear,quadratic programming techniques are used.
  • If the objective function is a ratio of a concave and a convex function (in the maximization case) and the constraints are convex, then the problem can be transformed to a convex optimization problem usingfractional programming techniques.

Applicability

[edit]

A typical non-convex problem is that of optimizing transportation costs by selection from a set of transportation methods, one or more of which exhibiteconomies of scale, with various connectivities and capacity constraints. An example would be petroleum product transport given a selection or combination of pipeline, rail tanker, road tanker, river barge, or coastal tankship. Owing to economic batch size the cost functions may have discontinuities in addition to smooth changes.

In experimental science, some simple data analysis (such as fitting a spectrum with a sum of peaks of known location and shape but unknown magnitude) can be done with linear methods, but in general these problems are also nonlinear. Typically, one has a theoretical model of the system under study with variable parameters in it and a model the experiment or experiments, which may also have unknown parameters. One tries to find a best fit numerically. In this case one often wants a measure of the precision of the result, as well as the best fit itself.

Methods for solving a general nonlinear program

[edit]

Analytic methods

[edit]

Underdifferentiability andconstraint qualifications, theKarush–Kuhn–Tucker (KKT) conditions provide necessary conditions for a solution to be optimal. If some of the functions are non-differentiable,subdifferential versions ofKarush–Kuhn–Tucker (KKT) conditions are available.[1]

Under convexity, the KKT conditions are sufficient for aglobal optimum. Without convexity, these conditions are sufficient only for alocal optimum. In some cases, the number of local optima is small, and one can find all of them analytically and find the one for which the objective value is smallest.[2]

Numeric methods

[edit]

In most realistic cases, it is very hard to solve the KKT conditions analytically, and so the problems are solved usingnumerical methods. These methods are iterative: they start with an initial point, and then proceed to points that are supposed to be closer to the optimal point, using some update rule. There are three kinds of update rules:[2]: 5.1.2 

  • Zero-order routines - use only the values of the objective function and constraint functions at the current point;
  • First-order routines - use also the values of thegradients of these functions;
  • Second-order routines - use also the values of theHessians of these functions.

Third-order routines (and higher) are theoretically possible, but not used in practice, due to the higher computational load and little theoretical benefit.

Branch and bound

[edit]

Another method involves the use ofbranch and bound techniques, where the program is divided into subclasses to be solved with convex (minimization problem) or linear approximations that form a lower bound on the overall cost within the subdivision. With subsequent divisions, at some point an actual solution will be obtained whose cost is equal to the best lower bound obtained for any of the approximate solutions. This solution is optimal, although possibly not unique. The algorithm may also be stopped early, with the assurance that the best possible solution is within a tolerance from the best point found; such points are called ε-optimal. Terminating to ε-optimal points is typically necessary to ensure finite termination. This is especially useful for large, difficult problems and problems with uncertain costs or values where the uncertainty can be estimated with an appropriate reliability estimation.

Implementations

[edit]

There exist numerous nonlinear programming solvers, including open source:

  • ALGLIB (C++, C#, Java, Python API) implements several first-order and derivative-free nonlinear programming solvers
  • NLopt (C/C++ implementation, with numerous interfaces including Julia, Python, R, MATLAB/Octave), includes various nonlinear programming solvers
  • SciPy (de facto standard for scientific Python) has scipy.optimize solver, which includes several nonlinear programming algorithms (zero-order, first order and second order ones).
  • IPOPT (C++ implementation, with numerous interfaces including C, Fortran, Java, AMPL, R, Python, etc.) is aninterior point method solver (zero-order, and optionally first order and second order derivatives).

Numerical Examples

[edit]

2-dimensional example

[edit]
The blue region is thefeasible region. Thetangency of the line with the feasible region represents the solution. The line is the best achievablecontour line (locus with a given value of the objective function).

A simple problem (shown in the diagram) can be defined by the constraintsx10x20x12+x221x12+x222{\displaystyle {\begin{aligned}x_{1}&\geq 0\\x_{2}&\geq 0\\x_{1}^{2}+x_{2}^{2}&\geq 1\\x_{1}^{2}+x_{2}^{2}&\leq 2\end{aligned}}}with an objective function to be maximizedf(x)=x1+x2{\displaystyle f(\mathbf {x} )=x_{1}+x_{2}}wherex = (x1,x2).

3-dimensional example

[edit]
The tangency of the top surface with the constrained space in the center represents the solution.

Another simple problem (see diagram) can be defined by the constraintsx12x22+x322x12+x22+x3210{\displaystyle {\begin{aligned}x_{1}^{2}-x_{2}^{2}+x_{3}^{2}&\leq 2\\x_{1}^{2}+x_{2}^{2}+x_{3}^{2}&\leq 10\end{aligned}}}with an objective function to be maximizedf(x)=x1x2+x2x3{\displaystyle f(\mathbf {x} )=x_{1}x_{2}+x_{2}x_{3}}wherex = (x1,x2,x3).

See also

[edit]

References

[edit]
  1. ^Ruszczyński, Andrzej (2006).Nonlinear Optimization. Princeton, NJ:Princeton University Press. pp. xii+454.ISBN 978-0691119151.MR 2199043.
  2. ^abNemirovsky and Ben-Tal (2023)."Optimization III: Convex Optimization"(PDF).

Further reading

[edit]

External links

[edit]
Functions
Gradients
Convergence
Quasi–Newton
Other methods
Hessians
Graph of a strictly concave quadratic function with unique maximum.
Optimization computes maxima and minima.
General
Differentiable
Convex
minimization
Linear and
quadratic
Interior point
Basis-exchange
Paradigms
Graph
algorithms
Minimum
spanning tree
Shortest path
Network flows
National
Other
Retrieved from "https://en.wikipedia.org/w/index.php?title=Nonlinear_programming&oldid=1240445515"
Category:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp