comparison libs/commons-math-2.1/docs/apidocs/src-html/org/apache/commons/math/optimization/DifferentiableMultivariateVectorialOptimizer.html @ 13:cbf34dd4d7e6

commons-math-2.1 added
author dwinter
date Tue, 04 Jan 2011 10:02:07 +0100
parents
children
comparison
equal deleted inserted replaced
12:970d26a94fb7 13:cbf34dd4d7e6
1 <HTML>
2 <BODY BGCOLOR="white">
3 <PRE>
4 <FONT color="green">001</FONT> /*<a name="line.1"></a>
5 <FONT color="green">002</FONT> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
6 <FONT color="green">003</FONT> * contributor license agreements. See the NOTICE file distributed with<a name="line.3"></a>
7 <FONT color="green">004</FONT> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
8 <FONT color="green">005</FONT> * The ASF licenses this file to You under the Apache License, Version 2.0<a name="line.5"></a>
9 <FONT color="green">006</FONT> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
10 <FONT color="green">007</FONT> * the License. You may obtain a copy of the License at<a name="line.7"></a>
11 <FONT color="green">008</FONT> *<a name="line.8"></a>
12 <FONT color="green">009</FONT> * http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
13 <FONT color="green">010</FONT> *<a name="line.10"></a>
14 <FONT color="green">011</FONT> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
15 <FONT color="green">012</FONT> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
16 <FONT color="green">013</FONT> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
17 <FONT color="green">014</FONT> * See the License for the specific language governing permissions and<a name="line.14"></a>
18 <FONT color="green">015</FONT> * limitations under the License.<a name="line.15"></a>
19 <FONT color="green">016</FONT> */<a name="line.16"></a>
20 <FONT color="green">017</FONT> <a name="line.17"></a>
21 <FONT color="green">018</FONT> package org.apache.commons.math.optimization;<a name="line.18"></a>
22 <FONT color="green">019</FONT> <a name="line.19"></a>
23 <FONT color="green">020</FONT> import org.apache.commons.math.FunctionEvaluationException;<a name="line.20"></a>
24 <FONT color="green">021</FONT> import org.apache.commons.math.analysis.DifferentiableMultivariateVectorialFunction;<a name="line.21"></a>
25 <FONT color="green">022</FONT> <a name="line.22"></a>
26 <FONT color="green">023</FONT> /**<a name="line.23"></a>
27 <FONT color="green">024</FONT> * This interface represents an optimization algorithm for {@link DifferentiableMultivariateVectorialFunction<a name="line.24"></a>
28 <FONT color="green">025</FONT> * vectorial differentiable objective functions}.<a name="line.25"></a>
29 <FONT color="green">026</FONT> * &lt;p&gt;Optimization algorithms find the input point set that either {@link GoalType<a name="line.26"></a>
30 <FONT color="green">027</FONT> * maximize or minimize} an objective function.&lt;/p&gt;<a name="line.27"></a>
31 <FONT color="green">028</FONT> * @see MultivariateRealOptimizer<a name="line.28"></a>
32 <FONT color="green">029</FONT> * @see DifferentiableMultivariateRealOptimizer<a name="line.29"></a>
33 <FONT color="green">030</FONT> * @version $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $<a name="line.30"></a>
34 <FONT color="green">031</FONT> * @since 2.0<a name="line.31"></a>
35 <FONT color="green">032</FONT> */<a name="line.32"></a>
36 <FONT color="green">033</FONT> public interface DifferentiableMultivariateVectorialOptimizer {<a name="line.33"></a>
37 <FONT color="green">034</FONT> <a name="line.34"></a>
38 <FONT color="green">035</FONT> /** Set the maximal number of iterations of the algorithm.<a name="line.35"></a>
39 <FONT color="green">036</FONT> * @param maxIterations maximal number of function calls<a name="line.36"></a>
40 <FONT color="green">037</FONT> * .<a name="line.37"></a>
41 <FONT color="green">038</FONT> */<a name="line.38"></a>
42 <FONT color="green">039</FONT> void setMaxIterations(int maxIterations);<a name="line.39"></a>
43 <FONT color="green">040</FONT> <a name="line.40"></a>
44 <FONT color="green">041</FONT> /** Get the maximal number of iterations of the algorithm.<a name="line.41"></a>
45 <FONT color="green">042</FONT> * @return maximal number of iterations<a name="line.42"></a>
46 <FONT color="green">043</FONT> */<a name="line.43"></a>
47 <FONT color="green">044</FONT> int getMaxIterations();<a name="line.44"></a>
48 <FONT color="green">045</FONT> <a name="line.45"></a>
49 <FONT color="green">046</FONT> /** Get the number of iterations realized by the algorithm.<a name="line.46"></a>
50 <FONT color="green">047</FONT> * @return number of iterations<a name="line.47"></a>
51 <FONT color="green">048</FONT> */<a name="line.48"></a>
52 <FONT color="green">049</FONT> int getIterations();<a name="line.49"></a>
53 <FONT color="green">050</FONT> <a name="line.50"></a>
54 <FONT color="green">051</FONT> /** Set the maximal number of functions evaluations.<a name="line.51"></a>
55 <FONT color="green">052</FONT> * @param maxEvaluations maximal number of function evaluations<a name="line.52"></a>
56 <FONT color="green">053</FONT> */<a name="line.53"></a>
57 <FONT color="green">054</FONT> void setMaxEvaluations(int maxEvaluations);<a name="line.54"></a>
58 <FONT color="green">055</FONT> <a name="line.55"></a>
59 <FONT color="green">056</FONT> /** Get the maximal number of functions evaluations.<a name="line.56"></a>
60 <FONT color="green">057</FONT> * @return maximal number of functions evaluations<a name="line.57"></a>
61 <FONT color="green">058</FONT> */<a name="line.58"></a>
62 <FONT color="green">059</FONT> int getMaxEvaluations();<a name="line.59"></a>
63 <FONT color="green">060</FONT> <a name="line.60"></a>
64 <FONT color="green">061</FONT> /** Get the number of evaluations of the objective function.<a name="line.61"></a>
65 <FONT color="green">062</FONT> * &lt;p&gt;<a name="line.62"></a>
66 <FONT color="green">063</FONT> * The number of evaluation correspond to the last call to the<a name="line.63"></a>
67 <FONT color="green">064</FONT> * {@link #optimize(DifferentiableMultivariateVectorialFunction,<a name="line.64"></a>
68 <FONT color="green">065</FONT> * double[], double[], double[]) optimize} method. It is 0 if<a name="line.65"></a>
69 <FONT color="green">066</FONT> * the method has not been called yet.<a name="line.66"></a>
70 <FONT color="green">067</FONT> * &lt;/p&gt;<a name="line.67"></a>
71 <FONT color="green">068</FONT> * @return number of evaluations of the objective function<a name="line.68"></a>
72 <FONT color="green">069</FONT> */<a name="line.69"></a>
73 <FONT color="green">070</FONT> int getEvaluations();<a name="line.70"></a>
74 <FONT color="green">071</FONT> <a name="line.71"></a>
75 <FONT color="green">072</FONT> /** Get the number of evaluations of the objective function jacobian .<a name="line.72"></a>
76 <FONT color="green">073</FONT> * &lt;p&gt;<a name="line.73"></a>
77 <FONT color="green">074</FONT> * The number of evaluation correspond to the last call to the<a name="line.74"></a>
78 <FONT color="green">075</FONT> * {@link #optimize(DifferentiableMultivariateVectorialFunction,<a name="line.75"></a>
79 <FONT color="green">076</FONT> * double[], double[], double[]) optimize} method. It is 0 if<a name="line.76"></a>
80 <FONT color="green">077</FONT> * the method has not been called yet.<a name="line.77"></a>
81 <FONT color="green">078</FONT> * &lt;/p&gt;<a name="line.78"></a>
82 <FONT color="green">079</FONT> * @return number of evaluations of the objective function jacobian<a name="line.79"></a>
83 <FONT color="green">080</FONT> */<a name="line.80"></a>
84 <FONT color="green">081</FONT> int getJacobianEvaluations();<a name="line.81"></a>
85 <FONT color="green">082</FONT> <a name="line.82"></a>
86 <FONT color="green">083</FONT> /** Set the convergence checker.<a name="line.83"></a>
87 <FONT color="green">084</FONT> * @param checker object to use to check for convergence<a name="line.84"></a>
88 <FONT color="green">085</FONT> */<a name="line.85"></a>
89 <FONT color="green">086</FONT> void setConvergenceChecker(VectorialConvergenceChecker checker);<a name="line.86"></a>
90 <FONT color="green">087</FONT> <a name="line.87"></a>
91 <FONT color="green">088</FONT> /** Get the convergence checker.<a name="line.88"></a>
92 <FONT color="green">089</FONT> * @return object used to check for convergence<a name="line.89"></a>
93 <FONT color="green">090</FONT> */<a name="line.90"></a>
94 <FONT color="green">091</FONT> VectorialConvergenceChecker getConvergenceChecker();<a name="line.91"></a>
95 <FONT color="green">092</FONT> <a name="line.92"></a>
96 <FONT color="green">093</FONT> /** Optimizes an objective function.<a name="line.93"></a>
97 <FONT color="green">094</FONT> * &lt;p&gt;<a name="line.94"></a>
98 <FONT color="green">095</FONT> * Optimization is considered to be a weighted least-squares minimization.<a name="line.95"></a>
99 <FONT color="green">096</FONT> * The cost function to be minimized is<a name="line.96"></a>
100 <FONT color="green">097</FONT> * &amp;sum;weight&lt;sub&gt;i&lt;/sub&gt;(objective&lt;sub&gt;i&lt;/sub&gt;-target&lt;sub&gt;i&lt;/sub&gt;)&lt;sup&gt;2&lt;/sup&gt;<a name="line.97"></a>
101 <FONT color="green">098</FONT> * &lt;/p&gt;<a name="line.98"></a>
102 <FONT color="green">099</FONT> * @param f objective function<a name="line.99"></a>
103 <FONT color="green">100</FONT> * @param target target value for the objective functions at optimum<a name="line.100"></a>
104 <FONT color="green">101</FONT> * @param weights weight for the least squares cost computation<a name="line.101"></a>
105 <FONT color="green">102</FONT> * @param startPoint the start point for optimization<a name="line.102"></a>
106 <FONT color="green">103</FONT> * @return the point/value pair giving the optimal value for objective function<a name="line.103"></a>
107 <FONT color="green">104</FONT> * @exception FunctionEvaluationException if the objective function throws one during<a name="line.104"></a>
108 <FONT color="green">105</FONT> * the search<a name="line.105"></a>
109 <FONT color="green">106</FONT> * @exception OptimizationException if the algorithm failed to converge<a name="line.106"></a>
110 <FONT color="green">107</FONT> * @exception IllegalArgumentException if the start point dimension is wrong<a name="line.107"></a>
111 <FONT color="green">108</FONT> */<a name="line.108"></a>
112 <FONT color="green">109</FONT> VectorialPointValuePair optimize(DifferentiableMultivariateVectorialFunction f,<a name="line.109"></a>
113 <FONT color="green">110</FONT> double[] target, double[] weights,<a name="line.110"></a>
114 <FONT color="green">111</FONT> double[] startPoint)<a name="line.111"></a>
115 <FONT color="green">112</FONT> throws FunctionEvaluationException, OptimizationException, IllegalArgumentException;<a name="line.112"></a>
116 <FONT color="green">113</FONT> <a name="line.113"></a>
117 <FONT color="green">114</FONT> }<a name="line.114"></a>
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178 </PRE>
179 </BODY>
180 </HTML>