diff options
Diffstat (limited to 'src/main/java/org/apache/commons/math/optimization/package.html')
-rw-r--r-- | src/main/java/org/apache/commons/math/optimization/package.html | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/main/java/org/apache/commons/math/optimization/package.html b/src/main/java/org/apache/commons/math/optimization/package.html new file mode 100644 index 0000000..8550a80 --- /dev/null +++ b/src/main/java/org/apache/commons/math/optimization/package.html @@ -0,0 +1,72 @@ +<html> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + --> + <!-- $Revision: 758074 $ --> +<body> +<p> +This package provides common interfaces for the optimization algorithms +provided in sub-packages. The main interfaces defines optimizers and convergence +checkers. The functions that are optimized by the algorithms provided by this +package and its sub-packages are a subset of the one defined in the <code>analysis</code> +package, namely the real and vector valued functions. These functions are called +objective function here. When the goal is to minimize, the functions are often called +cost function, this name is not used in this package. +</p> + +<p> +Optimizers are the algorithms that will either minimize or maximize, the objective function +by changing its input variables set until an optimal set is found. There are only four +interfaces defining the common behavior of optimizers, one for each supported type of objective +function: +<ul> + <li>{@link org.apache.commons.math.optimization.UnivariateRealOptimizer + UnivariateRealOptimizer} for {@link org.apache.commons.math.analysis.UnivariateRealFunction + univariate real functions}</li> + <li>{@link org.apache.commons.math.optimization.MultivariateRealOptimizer + MultivariateRealOptimizer} for {@link org.apache.commons.math.analysis.MultivariateRealFunction + multivariate real functions}</li> + <li>{@link org.apache.commons.math.optimization.DifferentiableMultivariateRealOptimizer + DifferentiableMultivariateRealOptimizer} for {@link + org.apache.commons.math.analysis.DifferentiableMultivariateRealFunction + differentiable multivariate real functions}</li> + <li>{@link org.apache.commons.math.optimization.DifferentiableMultivariateVectorialOptimizer + DifferentiableMultivariateVectorialOptimizer} for {@link + org.apache.commons.math.analysis.DifferentiableMultivariateVectorialFunction + differentiable multivariate vectorial functions}</li> +</ul> +</p> + +<p> +Despite there are only four types of supported optimizers, it is possible to optimize a +transform a {@link org.apache.commons.math.analysis.MultivariateVectorialFunction +non-differentiable multivariate vectorial function} by converting it to a {@link +org.apache.commons.math.analysis.MultivariateRealFunction non-differentiable multivariate +real function} thanks to the {@link +org.apache.commons.math.optimization.LeastSquaresConverter LeastSquaresConverter} helper class. +The transformed function can be optimized using any implementation of the {@link +org.apache.commons.math.optimization.MultivariateRealOptimizer MultivariateRealOptimizer} interface. +</p> + +<p> +For each of the four types of supported optimizers, there is a special implementation which +wraps a classical optimizer in order to add it a multi-start feature. This feature call the +underlying optimizer several times in sequence with different starting points and returns +the best optimum found or all optima if desired. This is a classical way to prevent being +trapped into a local extremum when looking for a global one. +</p> +</body> +</html> |