Mercurial > hg > de.mpg.mpiwg.itgroup.digilib.core
diff libs/commons-math-2.1/docs/apidocs/org/apache/commons/math/optimization/package-summary.html @ 15:878723cc40fb
commons-math-2.1 added
author | dwinter |
---|---|
date | Tue, 04 Jan 2011 10:02:41 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libs/commons-math-2.1/docs/apidocs/org/apache/commons/math/optimization/package-summary.html Tue Jan 04 10:02:41 2011 +0100 @@ -0,0 +1,324 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!--NewPage--> +<HTML> +<HEAD> +<!-- Generated by javadoc (build 1.6.0_17) on Sat Mar 27 22:46:17 EDT 2010 --> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<TITLE> +org.apache.commons.math.optimization (Commons Math 2.1 API) +</TITLE> + +<META NAME="date" CONTENT="2010-03-27"> + +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style"> + +<SCRIPT type="text/javascript"> +function windowTitle() +{ + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="org.apache.commons.math.optimization (Commons Math 2.1 API)"; + } +} +</SCRIPT> +<NOSCRIPT> +</NOSCRIPT> + +</HEAD> + +<BODY BGCOLOR="white" onload="windowTitle();"> +<HR> + + +<!-- ========= START OF TOP NAVBAR ======= --> +<A NAME="navbar_top"><!-- --></A> +<A HREF="#skip-navbar_top" title="Skip navigation links"></A> +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> +<TR> +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> +<A NAME="navbar_top_firstrow"><!-- --></A> +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> + <TR ALIGN="center" VALIGN="top"> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> + <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> + </TR> +</TABLE> +</TD> +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> +</EM> +</TD> +</TR> + +<TR> +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> + <A HREF="../../../../../org/apache/commons/math/ode/sampling/package-summary.html"><B>PREV PACKAGE</B></A> + <A HREF="../../../../../org/apache/commons/math/optimization/direct/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD> +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> + <A HREF="../../../../../index.html?org/apache/commons/math/optimization/package-summary.html" target="_top"><B>FRAMES</B></A> + <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> + <SCRIPT type="text/javascript"> + <!-- + if(window==top) { + document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>'); + } + //--> +</SCRIPT> +<NOSCRIPT> + <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A> +</NOSCRIPT> + + +</FONT></TD> +</TR> +</TABLE> +<A NAME="skip-navbar_top"></A> +<!-- ========= END OF TOP NAVBAR ========= --> + +<HR> +<H2> +Package org.apache.commons.math.optimization +</H2> + +This package provides common interfaces for the optimization algorithms +provided in sub-packages. +<P> +<B>See:</B> +<BR> + <A HREF="#package_description"><B>Description</B></A> +<P> + +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> +<B>Interface Summary</B></FONT></TH> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/DifferentiableMultivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization">DifferentiableMultivariateRealOptimizer</A></B></TD> +<TD>This interface represents an optimization algorithm for <A HREF="../../../../../org/apache/commons/math/analysis/DifferentiableMultivariateRealFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>scalar differentiable objective functions</CODE></A>.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/DifferentiableMultivariateVectorialOptimizer.html" title="interface in org.apache.commons.math.optimization">DifferentiableMultivariateVectorialOptimizer</A></B></TD> +<TD>This interface represents an optimization algorithm for <A HREF="../../../../../org/apache/commons/math/analysis/DifferentiableMultivariateVectorialFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>vectorial differentiable objective functions</CODE></A>.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/MultivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization">MultivariateRealOptimizer</A></B></TD> +<TD>This interface represents an optimization algorithm for <A HREF="../../../../../org/apache/commons/math/analysis/MultivariateRealFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>scalar objective functions</CODE></A>.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/RealConvergenceChecker.html" title="interface in org.apache.commons.math.optimization">RealConvergenceChecker</A></B></TD> +<TD>This interface specifies how to check if an <A HREF="../../../../../org/apache/commons/math/optimization/MultivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>optimization + algorithm</CODE></A> has converged.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/UnivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization">UnivariateRealOptimizer</A></B></TD> +<TD>Interface for (univariate real) optimization algorithms.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/VectorialConvergenceChecker.html" title="interface in org.apache.commons.math.optimization">VectorialConvergenceChecker</A></B></TD> +<TD>This interface specifies how to check if a <A HREF="../../../../../org/apache/commons/math/optimization/DifferentiableMultivariateVectorialOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>optimization algorithm</CODE></A> has converged.</TD> +</TR> +</TABLE> + + +<P> + +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> +<B>Class Summary</B></FONT></TH> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/LeastSquaresConverter.html" title="class in org.apache.commons.math.optimization">LeastSquaresConverter</A></B></TD> +<TD>This class converts <A HREF="../../../../../org/apache/commons/math/analysis/MultivariateVectorialFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>vectorial + objective functions</CODE></A> to <A HREF="../../../../../org/apache/commons/math/analysis/MultivariateRealFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>scalar objective functions</CODE></A> + when the goal is to minimize them.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/MultiStartDifferentiableMultivariateRealOptimizer.html" title="class in org.apache.commons.math.optimization">MultiStartDifferentiableMultivariateRealOptimizer</A></B></TD> +<TD>Special implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/DifferentiableMultivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>DifferentiableMultivariateRealOptimizer</CODE></A> interface adding + multi-start features to an existing optimizer.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/MultiStartDifferentiableMultivariateVectorialOptimizer.html" title="class in org.apache.commons.math.optimization">MultiStartDifferentiableMultivariateVectorialOptimizer</A></B></TD> +<TD>Special implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/DifferentiableMultivariateVectorialOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>DifferentiableMultivariateVectorialOptimizer</CODE></A> interface adding + multi-start features to an existing optimizer.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/MultiStartMultivariateRealOptimizer.html" title="class in org.apache.commons.math.optimization">MultiStartMultivariateRealOptimizer</A></B></TD> +<TD>Special implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/MultivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>MultivariateRealOptimizer</CODE></A> interface adding + multi-start features to an existing optimizer.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/MultiStartUnivariateRealOptimizer.html" title="class in org.apache.commons.math.optimization">MultiStartUnivariateRealOptimizer</A></B></TD> +<TD>Special implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/UnivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>UnivariateRealOptimizer</CODE></A> interface adding + multi-start features to an existing optimizer.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/RealPointValuePair.html" title="class in org.apache.commons.math.optimization">RealPointValuePair</A></B></TD> +<TD>This class holds a point and the value of an objective function at this point.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/SimpleRealPointChecker.html" title="class in org.apache.commons.math.optimization">SimpleRealPointChecker</A></B></TD> +<TD>Simple implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/RealConvergenceChecker.html" title="interface in org.apache.commons.math.optimization"><CODE>RealConvergenceChecker</CODE></A> interface using + only point coordinates.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/SimpleScalarValueChecker.html" title="class in org.apache.commons.math.optimization">SimpleScalarValueChecker</A></B></TD> +<TD>Simple implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/RealConvergenceChecker.html" title="interface in org.apache.commons.math.optimization"><CODE>RealConvergenceChecker</CODE></A> interface using + only objective function values.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/SimpleVectorialPointChecker.html" title="class in org.apache.commons.math.optimization">SimpleVectorialPointChecker</A></B></TD> +<TD>Simple implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/VectorialConvergenceChecker.html" title="interface in org.apache.commons.math.optimization"><CODE>VectorialConvergenceChecker</CODE></A> interface using + only point coordinates.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/SimpleVectorialValueChecker.html" title="class in org.apache.commons.math.optimization">SimpleVectorialValueChecker</A></B></TD> +<TD>Simple implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/VectorialConvergenceChecker.html" title="interface in org.apache.commons.math.optimization"><CODE>VectorialConvergenceChecker</CODE></A> interface using + only objective function values.</TD> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/VectorialPointValuePair.html" title="class in org.apache.commons.math.optimization">VectorialPointValuePair</A></B></TD> +<TD>This class holds a point and the vectorial value of an objective function at this point.</TD> +</TR> +</TABLE> + + +<P> + +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> +<B>Enum Summary</B></FONT></TH> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/GoalType.html" title="enum in org.apache.commons.math.optimization">GoalType</A></B></TD> +<TD>Goal type for an optimization problem.</TD> +</TR> +</TABLE> + + +<P> + +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> +<B>Exception Summary</B></FONT></TH> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD WIDTH="15%"><B><A HREF="../../../../../org/apache/commons/math/optimization/OptimizationException.html" title="class in org.apache.commons.math.optimization">OptimizationException</A></B></TD> +<TD>This class represents exceptions thrown by optimizers.</TD> +</TR> +</TABLE> + + +<P> +<A NAME="package_description"><!-- --></A><H2> +Package org.apache.commons.math.optimization Description +</H2> + +<P> +<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><A HREF="../../../../../org/apache/commons/math/optimization/UnivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>UnivariateRealOptimizer</CODE></A> for <A HREF="../../../../../org/apache/commons/math/analysis/UnivariateRealFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>univariate real functions</CODE></A></li> + <li><A HREF="../../../../../org/apache/commons/math/optimization/MultivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>MultivariateRealOptimizer</CODE></A> for <A HREF="../../../../../org/apache/commons/math/analysis/MultivariateRealFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>multivariate real functions</CODE></A></li> + <li><A HREF="../../../../../org/apache/commons/math/optimization/DifferentiableMultivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>DifferentiableMultivariateRealOptimizer</CODE></A> for <A HREF="../../../../../org/apache/commons/math/analysis/DifferentiableMultivariateRealFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>differentiable multivariate real functions</CODE></A></li> + <li><A HREF="../../../../../org/apache/commons/math/optimization/DifferentiableMultivariateVectorialOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>DifferentiableMultivariateVectorialOptimizer</CODE></A> for <A HREF="../../../../../org/apache/commons/math/analysis/DifferentiableMultivariateVectorialFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>differentiable multivariate vectorial functions</CODE></A></li> +</ul> +</p> + +<p> +Despite there are only four types of supported optimizers, it is possible to optimize a +transform a <A HREF="../../../../../org/apache/commons/math/analysis/MultivariateVectorialFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>non-differentiable multivariate vectorial function</CODE></A> by converting it to a <A HREF="../../../../../org/apache/commons/math/analysis/MultivariateRealFunction.html" title="interface in org.apache.commons.math.analysis"><CODE>non-differentiable multivariate +real function</CODE></A> thanks to the <A HREF="../../../../../org/apache/commons/math/optimization/LeastSquaresConverter.html" title="class in org.apache.commons.math.optimization"><CODE>LeastSquaresConverter</CODE></A> helper class. +The transformed function can be optimized using any implementation of the <A HREF="../../../../../org/apache/commons/math/optimization/MultivariateRealOptimizer.html" title="interface in org.apache.commons.math.optimization"><CODE>MultivariateRealOptimizer</CODE></A> 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> +<P> + +<P> +<DL> +</DL> +<HR> + + +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<A NAME="navbar_bottom"><!-- --></A> +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> +<TR> +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> +<A NAME="navbar_bottom_firstrow"><!-- --></A> +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> + <TR ALIGN="center" VALIGN="top"> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> + <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> + </TR> +</TABLE> +</TD> +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> +</EM> +</TD> +</TR> + +<TR> +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> + <A HREF="../../../../../org/apache/commons/math/ode/sampling/package-summary.html"><B>PREV PACKAGE</B></A> + <A HREF="../../../../../org/apache/commons/math/optimization/direct/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD> +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> + <A HREF="../../../../../index.html?org/apache/commons/math/optimization/package-summary.html" target="_top"><B>FRAMES</B></A> + <A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> + <SCRIPT type="text/javascript"> + <!-- + if(window==top) { + document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>'); + } + //--> +</SCRIPT> +<NOSCRIPT> + <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A> +</NOSCRIPT> + + +</FONT></TD> +</TR> +</TABLE> +<A NAME="skip-navbar_bottom"></A> +<!-- ======== END OF BOTTOM NAVBAR ======= --> + +<HR> +Copyright © 2003-2010 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All Rights Reserved. +</BODY> +</HTML>