Package com.webcab.ejb.math.optimization
Offers a range refined procedures for solving and performing sensitivity analysis on
uni and multi dimensional, local or global optimization problems which may or may
not have linear constraints.
See:
Description
|
Interface Summary |
| EasySolver |
This Enterprise JavaBean offers a declarative means by which you can find the solution to
uni or multi dimensional (non-linear) optimization problems. |
| EasySolverHome |
The home interface of the EasySolver Enterprise JavaBeansTM component. |
| Function |
This interface identifies both uni and multi dimensional functions. |
| FunctionDelivery |
All FunctionDelivery parameters in the remote and home
interfaces use a special mechanism for sending instances of
user-defined types over to the EJB components. |
|
Class Summary |
| ExtremumTypes |
|
| LocalFunctionDelivery |
This class assists the delivery of a user-defined class instance over
from the client-side to the J2EE server-side. |
| RMIFunctionDelivery |
This class assists the delivery of an RMI bound class instance over
from the client-side to the J2EE server-side. |
|
Exception Summary |
| EasySolverException |
This is the generic exception class for the EasySolver Enterprise JavaBean. |
| FunctionDeliveryException |
This exception may be thrown during the instantiation of any of the
FunctionDelivery classes. |
| ReferencedServiceException |
This exception is signaled by a Enterprise JavaBean to describe an error that
occured while calling another Enterprise JavaBean. |
Package com.webcab.ejb.math.optimization Description
Offers a range refined procedures for solving and performing sensitivity analysis on
uni and multi dimensional, local or global optimization problems which may or may
not have linear constraints. Specialized Linear programming algorithms based on the
Simplex Algorithm and duality are included along with a framework for sensitivity
analysis w.r.t. boundaries (duality, or direct approach), or object function coefficients.
Detailed Description of the Functionality Offered
This module includes the following features:
- Local unidimensional optimization - finds global
minima / maxima for continuous functions in one dimension
- Fast `Low level' algorithms - use these algorithms when your primary concern is the speed and
not the accuracy of the results. You will have to chose one bracketing algorithm and one locate algorithm
(note, they are useful only in pairs). Also you will have to manually provide a lot of parameters (tolerance, maximum cycles etc)
which can dramatically change the algorithm performance
- Bracketing algorithms - these methods find an interval where at least one extrema of a continuous function exists
- Acceleration bracketing - this method can be used with any continuous functions
- Parabolic extrapolation bracketing - gives better results than acceleration bracketing for
a large class of functions (functions that are locally parabolic about the extrema)
- Acceleration bracketing for derivable functions - requires derivatives to be
known; it's slower than the general acceleration algorithm but also safer
- Locate algorithms - these methods converge to the extrema if the extrema is bracketed and the
function under consideration is continuous
- Parabolic interpolation locate - very fast algorithm but with moderate accuracy
- Linear locate - slow algorithm but exhibits stable convergence
- Brent locate - medium speed with good accuracy. With a good balance of speed and accuracy, this algorithm is very efficient to use
- Cubic interpolation locate - very fast algorithm with reasonable accuracy; requires the derivatives to be known}
- Brent method for derivable functions - medium speed and good accuracy but requires derivatives to be known
- Accurate `High level' algorithms - these algorithms are easy to use and offer high accuracy
but are also very slow compared with the `Low 'level' algorithms above (
1,000 to 10,000
times slower). Use these algorithms when you need reliable results. The probability for a `High level'
algorithm to make a mistake is much less than that of `Low level' algorithms.
- Method for continuous functions
- Method for derivable functions
- Global unidimensional optimization - finds global minima / maxima.
- Methods for continuous functions
- Methods for derivable functions
- Unconstrained local multidimensional optimization
- Methods for general functions - these algorithms do not require continuous functions
- Downhill simplex method of Nelder and Mead - minimizes the function over a sequence of equal volume simplexes
- Methods for continuous functions - these algorithms require the function to be continuous
- Conjugate direction algorithms - this algorithm searches by iterating along conjugate paths
- Powell's method - an implementation of the conjugate direction algorithm
- Methods for derivable functions - these algorithms require the gradient of the function to be known
- Steepest descent - a classical method with poor results, this method should mainly be used for testing purposes
- Conjugate gradient algorithms - speed and accuracy highly dependent on the particular function, these methods can be
deceived by `Valleys' in the N-dimensional space
- Fletcher-Reeves - an implementation of the conjugate gradient method
- Polak-Riviere - an implementation of the conjugate gradient method
- Variable metric algorithms/Quasi-Newton algorithms - slow speed; good results on a large class of
continuous functions. The basic idea is to find the sequence of matrices which converges to the inverse Hessian
of the function.
- Fletcher-Powell - an implementation of the variable metric algorithm
- Broyden-Fletcher-Goldfarb-Shanno - an implementation of the variable metric algorithm
- Unconstrained global multidimensional optimization
- Simulated annealing - a technique that has attracted significant attention as suitable for optimizing
problems of large scale, especially ones where a desired global extremum is hidden among many poorer, local extrema
- Constrained optimization for derivable functions with linear constraints
- Rosen's gradient projection algorithm - uses the Kuhn-Tucker conditions as a termination criteria.
- Linear programming - here the functions are linear and the constraints are linear
- Simplex algorithm - Kuenzi, Tszchach and Zehnder implementation of the simplex algorithm for linear programming
- Duality - Construct and solve the dual problem for a given primal linear programming problem.
- Sensitivity Analysis - Study how the location and value of the extremum varies under perturbations of the object
function and parallel shifts of the linear constraints. Sensitivity analysis of the boundaries can very efficient be carried
out with the application a duality techniques.
- Sensitivity Analysis - Stability of the value and location of the extremum
- General Framework - Perform sensitivity analysis on any optimization problem/algorithm combination.
- Flexibility - Perform sensitivity analysis on the object function, constraints and/or algorithm.
Business Classes contained within the Optimization module
- LinearProgramming - Provides methods to solve and perform sensitivity analysis on Linear programming problems.
- UniDimensionalSolver - Offers methods for finding the location of the extremum (i.e. minimum or maximum) of a function
of one real variables with or without linear constraints.
- MultiDimensionalSolver - Offers methods for finding the location of the extremum (i.e. minimum or maximum) of a function
of many real variables with or without linear constraints.
- SensitivityGrid - Implements methods by which the Sensitivity Grid of an optimization problem can be evaluated.