~ubuntu-branches/ubuntu/natty/commons-math/natty

« back to all changes in this revision

Viewing changes to src/main/java/org/apache/commons/math/optimization/package.html

  • Committer: Bazaar Package Importer
  • Author(s): Damien Raude-Morvan
  • Date: 2009-08-22 01:13:25 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20090822011325-hi4peq1ua5weguwn
Tags: 2.0-1
* New upstream release.
* Set Maintainer field to Debian Java Team
* Add myself as Uploaders
* Switch to Quilt patch system:
  - Refresh all patchs
  - Remove B-D on dpatch, Add B-D on quilt
  - Include patchsys-quilt.mk in debian/rules
* Bump Standards-Version to 3.8.3:
  - Add a README.source to describe patch system
* Maven POMs:
  - Add a Build-Depends-Indep dependency on maven-repo-helper
  - Use mh_installpom and mh_installjar to install the POM and the jar to the
    Maven repository
* Use default-jdk/jre:
  - Depends on java5-runtime-headless
  - Build-Depends on default-jdk
  - Use /usr/lib/jvm/default-java as JAVA_HOME
* Move api documentation to /usr/share/doc/libcommons-math-java/api
* Build-Depends on junit4 instead of junit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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>