blob: 90540615cea0727528245395eba04a9d3bed16e5 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>BaseMultiStartMultivariateOptimizer (Apache Commons Math 3.3 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BaseMultiStartMultivariateOptimizer (Apache Commons Math 3.3 API)";
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!-- -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BaseMultiStartMultivariateOptimizer.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/optim/AbstractOptimizationProblem.html" title="class in org.apache.commons.math3.optim"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" target="_top">Frames</a></li>
<li><a href="BaseMultiStartMultivariateOptimizer.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.optim</div>
<h2 title="Class BaseMultiStartMultivariateOptimizer" class="title">Class BaseMultiStartMultivariateOptimizer&lt;PAIR&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">org.apache.commons.math3.optim.BaseOptimizer</a>&lt;PAIR&gt;</li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">org.apache.commons.math3.optim.BaseMultivariateOptimizer</a>&lt;PAIR&gt;</li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.optim.BaseMultiStartMultivariateOptimizer&lt;PAIR&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl><dt><span class="strong">Type Parameters:</span></dt><dd><code>PAIR</code> - Type of the point/value pair returned by the optimization
algorithm.</dd></dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/apache/commons/math3/optim/nonlinear/scalar/MultiStartMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.scalar">MultiStartMultivariateOptimizer</a>, <a href="../../../../../org/apache/commons/math3/optim/nonlinear/vector/MultiStartMultivariateVectorOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.vector">MultiStartMultivariateVectorOptimizer</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="strong">BaseMultiStartMultivariateOptimizer&lt;PAIR&gt;</span>
extends <a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">BaseMultivariateOptimizer</a>&lt;PAIR&gt;</pre>
<div class="block">Base class multi-start optimizer for a multivariate function.
<br/>
This class wraps an optimizer in order to use it several times in
turn with different starting points (trying to avoid being trapped
in a local extremum when looking for a global one).
<em>It is not a "user" class.</em></div>
<dl><dt><span class="strong">Since:</span></dt>
<dd>3.0</dd>
<dt><span class="strong">Version:</span></dt>
<dd>$Id: BaseMultiStartMultivariateOptimizer.java 1591835 2014-05-02 09:04:01Z tn $</dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field_summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.commons.math3.optim.<a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</a></h3>
<code><a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#evaluations">evaluations</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#iterations">iterations</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html#BaseMultiStartMultivariateOptimizer(org.apache.commons.math3.optim.BaseMultivariateOptimizer, int, org.apache.commons.math3.random.RandomVectorGenerator)">BaseMultiStartMultivariateOptimizer</a></strong>(<a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">BaseMultivariateOptimizer</a>&lt;<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&gt;&nbsp;optimizer,
int&nbsp;starts,
<a href="../../../../../org/apache/commons/math3/random/RandomVectorGenerator.html" title="interface in org.apache.commons.math3.random">RandomVectorGenerator</a>&nbsp;generator)</code>
<div class="block">Create a multi-start optimizer from a single-start optimizer.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html#clear()">clear</a></strong>()</code>
<div class="block">Method that will called in order to clear all stored optima.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html#doOptimize()">doOptimize</a></strong>()</code>
<div class="block">Performs the bulk of the optimization algorithm.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html#getEvaluations()">getEvaluations</a></strong>()</code>
<div class="block">Gets the number of evaluations of the objective function.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html#getOptima()">getOptima</a></strong>()</code>
<div class="block">Gets all the optima found during the last call to <code>optimize</code>.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html#optimize(org.apache.commons.math3.optim.OptimizationData...)">optimize</a></strong>(<a href="../../../../../org/apache/commons/math3/optim/OptimizationData.html" title="interface in org.apache.commons.math3.optim">OptimizationData</a>...&nbsp;optData)</code>
<div class="block">Stores data and performs the optimization.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html#store(PAIR)">store</a></strong>(<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&nbsp;optimum)</code>
<div class="block">Method that will be called in order to store each found optimum.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.math3.optim.BaseMultivariateOptimizer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.commons.math3.optim.<a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">BaseMultivariateOptimizer</a></h3>
<code><a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getLowerBound()">getLowerBound</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getStartPoint()">getStartPoint</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getUpperBound()">getUpperBound</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)">parseOptimizationData</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.commons.math3.optim.<a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</a></h3>
<code><a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getConvergenceChecker()">getConvergenceChecker</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getIterations()">getIterations</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getMaxEvaluations()">getMaxEvaluations</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getMaxIterations()">getMaxIterations</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#incrementEvaluationCount()">incrementEvaluationCount</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#incrementIterationCount()">incrementIterationCount</a>, <a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#optimize()">optimize</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="BaseMultiStartMultivariateOptimizer(org.apache.commons.math3.optim.BaseMultivariateOptimizer, int, org.apache.commons.math3.random.RandomVectorGenerator)">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BaseMultiStartMultivariateOptimizer</h4>
<pre>public&nbsp;BaseMultiStartMultivariateOptimizer(<a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">BaseMultivariateOptimizer</a>&lt;<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&gt;&nbsp;optimizer,
int&nbsp;starts,
<a href="../../../../../org/apache/commons/math3/random/RandomVectorGenerator.html" title="interface in org.apache.commons.math3.random">RandomVectorGenerator</a>&nbsp;generator)</pre>
<div class="block">Create a multi-start optimizer from a single-start optimizer.
<p>
Note that if there are bounds constraints (see <a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getLowerBound()"><code>BaseMultivariateOptimizer.getLowerBound()</code></a>
and <a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#getUpperBound()"><code>BaseMultivariateOptimizer.getUpperBound()</code></a>), then a simple rejection algorithm is used
at each restart. This implies that the random vector generator should have
a good probability to generate vectors in the bounded domain, otherwise the
rejection algorithm will hit the <a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getMaxEvaluations()"><code>BaseOptimizer.getMaxEvaluations()</code></a> count without
generating a proper restart point. Users must be take great care of the <a
href="http://en.wikipedia.org/wiki/Curse_of_dimensionality">curse of dimensionality</a>.
</p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>optimizer</code> - Single-start optimizer to wrap.</dd><dd><code>starts</code> - Number of starts to perform. If <code>starts == 1</code>,
the <a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html#optimize(org.apache.commons.math3.optim.OptimizationData...)"><code>optimize</code></a> will return the
same solution as the given <code>optimizer</code> would return.</dd><dd><code>generator</code> - Random vector generator to use for restarts.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/NotStrictlyPositiveException.html" title="class in org.apache.commons.math3.exception">NotStrictlyPositiveException</a></code> - if <code>starts &lt; 1</code>.</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getEvaluations()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEvaluations</h4>
<pre>public&nbsp;int&nbsp;getEvaluations()</pre>
<div class="block">Gets the number of evaluations of the objective function.
The number of evaluations corresponds to the last call to the
<code>optimize</code> method. It is 0 if the method has not been
called yet.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#getEvaluations()">getEvaluations</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</a>&lt;<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&gt;</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the number of evaluations of the objective function.</dd></dl>
</li>
</ul>
<a name="getOptima()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOptima</h4>
<pre>public abstract&nbsp;<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>[]&nbsp;getOptima()</pre>
<div class="block">Gets all the optima found during the last call to <code>optimize</code>.
The optimizer stores all the optima found during a set of
restarts. The <code>optimize</code> method returns the best point only.
This method returns all the points found at the end of each starts,
including the best one already returned by the <code>optimize</code> method.
<br/>
The returned array as one element for each start as specified
in the constructor. It is ordered with the results from the
runs that did converge first, sorted from best to worst
objective value (i.e in ascending order if minimizing and in
descending order if maximizing), followed by <code>null</code> elements
corresponding to the runs that did not converge. This means all
elements will be <code>null</code> if the <code>optimize</code> method did throw
an exception.
This also means that if the first element is not <code>null</code>, it is
the best point found across all starts.
<br/>
The behaviour is undefined if this method is called before
<code>optimize</code>; it will likely throw <code>NullPointerException</code>.</div>
<dl><dt><span class="strong">Returns:</span></dt><dd>an array containing the optima sorted from best to worst.</dd></dl>
</li>
</ul>
<a name="optimize(org.apache.commons.math3.optim.OptimizationData...)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>optimize</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&nbsp;optimize(<a href="../../../../../org/apache/commons/math3/optim/OptimizationData.html" title="interface in org.apache.commons.math3.optim">OptimizationData</a>...&nbsp;optData)</pre>
<div class="block">Stores data and performs the optimization.
<p>
The list of parameters is open-ended so that sub-classes can extend it
with arguments specific to their concrete implementations.
<p>
When the method is called multiple times, instance data is overwritten
only when actually present in the list of arguments: when not specified,
data set in a previous call is retained (and thus is optional in
subsequent calls).
<p>
Important note: Subclasses <em>must</em> override
<a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)"><code>BaseOptimizer.parseOptimizationData(OptimizationData[])</code></a> if they need to register
their own options; but then, they <em>must</em> also call
<code>super.parseOptimizationData(optData)</code> within that method.</div>
<dl>
<dt><strong>Overrides:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html#optimize(org.apache.commons.math3.optim.OptimizationData...)">optimize</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim">BaseMultivariateOptimizer</a>&lt;<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&gt;</code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>optData</code> - Optimization data. In addition to those documented in
<a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#parseOptimizationData(org.apache.commons.math3.optim.OptimizationData...)"><code>BaseOptimizer</code></a>,
this method will register the following data:
<ul>
<li><a href="../../../../../org/apache/commons/math3/optim/InitialGuess.html" title="class in org.apache.commons.math3.optim"><code>InitialGuess</code></a></li>
<li><a href="../../../../../org/apache/commons/math3/optim/SimpleBounds.html" title="class in org.apache.commons.math3.optim"><code>SimpleBounds</code></a></li>
</ul></dd>
<dt><span class="strong">Returns:</span></dt><dd>a point/value pair that satisfies the convergence criteria.</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/exception/MathIllegalStateException.html" title="class in org.apache.commons.math3.exception">MathIllegalStateException</a></code> - if <code>optData</code> does not contain an
instance of <a href="../../../../../org/apache/commons/math3/optim/MaxEval.html" title="class in org.apache.commons.math3.optim"><code>MaxEval</code></a> or <a href="../../../../../org/apache/commons/math3/optim/InitialGuess.html" title="class in org.apache.commons.math3.optim"><code>InitialGuess</code></a>.</dd></dl>
</li>
</ul>
<a name="doOptimize()">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>doOptimize</h4>
<pre>protected&nbsp;<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&nbsp;doOptimize()</pre>
<div class="block">Performs the bulk of the optimization algorithm.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html#doOptimize()">doOptimize</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/commons/math3/optim/BaseOptimizer.html" title="class in org.apache.commons.math3.optim">BaseOptimizer</a>&lt;<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&gt;</code></dd>
<dt><span class="strong">Returns:</span></dt><dd>the point/value pair giving the optimal value of the
objective function.</dd></dl>
</li>
</ul>
<a name="store(java.lang.Object)">
<!-- -->
</a><a name="store(PAIR)">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>store</h4>
<pre>protected abstract&nbsp;void&nbsp;store(<a href="../../../../../org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" title="type parameter in BaseMultiStartMultivariateOptimizer">PAIR</a>&nbsp;optimum)</pre>
<div class="block">Method that will be called in order to store each found optimum.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>optimum</code> - Result of an optimization run.</dd></dl>
</li>
</ul>
<a name="clear()">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>clear</h4>
<pre>protected abstract&nbsp;void&nbsp;clear()</pre>
<div class="block">Method that will called in order to clear all stored optima.</div>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!-- -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BaseMultiStartMultivariateOptimizer.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/commons/math3/optim/AbstractOptimizationProblem.html" title="class in org.apache.commons.math3.optim"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../org/apache/commons/math3/optim/BaseMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/commons/math3/optim/BaseMultiStartMultivariateOptimizer.html" target="_top">Frames</a></li>
<li><a href="BaseMultiStartMultivariateOptimizer.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields_inherited_from_class_org.apache.commons.math3.optim.BaseOptimizer">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2014 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>