1 | <html>
|
---|
2 | <!--
|
---|
3 | Licensed to the Apache Software Foundation (ASF) under one or more
|
---|
4 | contributor license agreements. See the NOTICE file distributed with
|
---|
5 | this work for additional information regarding copyright ownership.
|
---|
6 | The ASF licenses this file to You under the Apache License, Version 2.0
|
---|
7 | (the "License"); you may not use this file except in compliance with
|
---|
8 | the License. You may obtain a copy of the License at
|
---|
9 |
|
---|
10 | http://www.apache.org/licenses/LICENSE-2.0
|
---|
11 |
|
---|
12 | Unless required by applicable law or agreed to in writing, software
|
---|
13 | distributed under the License is distributed on an "AS IS" BASIS,
|
---|
14 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
---|
15 | See the License for the specific language governing permissions and
|
---|
16 | limitations under the License.
|
---|
17 | -->
|
---|
18 | <!-- $Revision: 758074 $ -->
|
---|
19 | <body>
|
---|
20 | <p>
|
---|
21 | This package provides common interfaces for the optimization algorithms
|
---|
22 | provided in sub-packages. The main interfaces defines optimizers and convergence
|
---|
23 | checkers. The functions that are optimized by the algorithms provided by this
|
---|
24 | package and its sub-packages are a subset of the one defined in the <code>analysis</code>
|
---|
25 | package, namely the real and vector valued functions. These functions are called
|
---|
26 | objective function here. When the goal is to minimize, the functions are often called
|
---|
27 | cost function, this name is not used in this package.
|
---|
28 | </p>
|
---|
29 |
|
---|
30 | <p>
|
---|
31 | Optimizers are the algorithms that will either minimize or maximize, the objective function
|
---|
32 | by changing its input variables set until an optimal set is found. There are only four
|
---|
33 | interfaces defining the common behavior of optimizers, one for each supported type of objective
|
---|
34 | function:
|
---|
35 | <ul>
|
---|
36 | <li>{@link org.apache.commons.math.optimization.UnivariateRealOptimizer
|
---|
37 | UnivariateRealOptimizer} for {@link org.apache.commons.math.analysis.UnivariateRealFunction
|
---|
38 | univariate real functions}</li>
|
---|
39 | <li>{@link org.apache.commons.math.optimization.MultivariateRealOptimizer
|
---|
40 | MultivariateRealOptimizer} for {@link org.apache.commons.math.analysis.MultivariateRealFunction
|
---|
41 | multivariate real functions}</li>
|
---|
42 | <li>{@link org.apache.commons.math.optimization.DifferentiableMultivariateRealOptimizer
|
---|
43 | DifferentiableMultivariateRealOptimizer} for {@link
|
---|
44 | org.apache.commons.math.analysis.DifferentiableMultivariateRealFunction
|
---|
45 | differentiable multivariate real functions}</li>
|
---|
46 | <li>{@link org.apache.commons.math.optimization.DifferentiableMultivariateVectorialOptimizer
|
---|
47 | DifferentiableMultivariateVectorialOptimizer} for {@link
|
---|
48 | org.apache.commons.math.analysis.DifferentiableMultivariateVectorialFunction
|
---|
49 | differentiable multivariate vectorial functions}</li>
|
---|
50 | </ul>
|
---|
51 | </p>
|
---|
52 |
|
---|
53 | <p>
|
---|
54 | Despite there are only four types of supported optimizers, it is possible to optimize a
|
---|
55 | transform a {@link org.apache.commons.math.analysis.MultivariateVectorialFunction
|
---|
56 | non-differentiable multivariate vectorial function} by converting it to a {@link
|
---|
57 | org.apache.commons.math.analysis.MultivariateRealFunction non-differentiable multivariate
|
---|
58 | real function} thanks to the {@link
|
---|
59 | org.apache.commons.math.optimization.LeastSquaresConverter LeastSquaresConverter} helper class.
|
---|
60 | The transformed function can be optimized using any implementation of the {@link
|
---|
61 | org.apache.commons.math.optimization.MultivariateRealOptimizer MultivariateRealOptimizer} interface.
|
---|
62 | </p>
|
---|
63 |
|
---|
64 | <p>
|
---|
65 | For each of the four types of supported optimizers, there is a special implementation which
|
---|
66 | wraps a classical optimizer in order to add it a multi-start feature. This feature call the
|
---|
67 | underlying optimizer several times in sequence with different starting points and returns
|
---|
68 | the best optimum found or all optima if desired. This is a classical way to prevent being
|
---|
69 | trapped into a local extremum when looking for a global one.
|
---|
70 | </p>
|
---|
71 | </body>
|
---|
72 | </html>
|
---|