simplemax.net online optimization
 

introduction

Simplemax provides optimization applications that use iterative direct search solvers.  Problems solved by the applications include function minimization, regression analysis, and resolution of source mixtures.

model

The tasks involved are cleanly separated at the interface between the web client and the web server.  The process which is undergoing optimization is on the web client.  This process may be a numerical function, a scripted function, or an external process whose results are entered into the web client.  An optimization server provides an interface to the solver instance for your optimization.

At each iteration new parameters are provided by a solver running on the web server.  

In this scheme (see below), your function (or other process) is never passed to the server, only the numerical result of the process at each iteration.   This model is simple and parsimonious on the network level, and exchanges no unnecessary information.

This model is generally private and secure because your function is not transmitted over the web, only the results needed for optimization.  If you have concerns that this may disclose information then additional protection may be added by applying scaling factors to the parameters and function values.

function notation

For mathematical function minimization, the parameters for the function are passed as a one-based array 'x'.  See the examples.  Notation is a modification of javascript.  The standard Math object methods and properties are available.  The Math object is presumed: it is not necessary to use the "Math." prefix for Math functions.  A few Number object properties are also useful.

method or property
abs(x)absolute value of x.
acos(x)arc cosine of x in radians.
asin(x)arc sine of x in radians.
atan(x)arc tan of x in radians.
atan2(y, x)Counterclockwise angle between x axis and point (x,y).
cos(x)cosine of x, x is in radians.
exp(x)ex
log(x)natural logarithm (base E) of x.
max(a, b)greater of a and b.
min(a, b)lesser of a and b.
pow(x, y)xy
sin(x)sine of x, where x is in radians.
sqrt(x)square root of x.
tan(x)tangent of x, x is in radians.
Infinity  infinity, Number.POSITIVE_INFINITY is synonymous
-Infinity  -infinity, Number.NEGATIVE_INFINITY is synonymous
E e, base of the natural logarithm, about 2.718281828459045
PI π, about 3.141592653589793

There are several additional functions available, which extend the built-in javascript objects.

method
sqr(x) x2, pow(x,2) is synonymous
log10(x) log10(x), base 10 logarithm
x.tothe(y)  x^y, pow(x,y) is synonymous. Enclose literals in parens, eg (5).tothe(2)

For javascript function minimization the notation is javascript, but you must specifically invoke the Math object to access Math object methods and properties.  Parameters for the function are passed as a one-based array 'x'.  See the examples. 

general information

Solvers are limited to 2000 iterations.  Convergence is controlled with the ftol and xtol parameters.  These set minimum differences for function and parameter values respectively.  For those solvers which allow box bounds, lower bounds and upper bounds are comma-separated lists of values for each parameter of the function.  To optimize without bounds set these to non-numeric values. 

Some hints:  If you want a maximum set the function to the negative of your function.   Don't start with parameter values near zero unless the expected value is near zero.   Excessive values of ftol and xtol may cause the process to quit before the minimum is reached.   Non-numeric values of lower bound and upper bound are ignored.  

Simplemax is built with Twisted, Dojo, Numpy, and OpenOpt.  Many thanks to all of these projects.

Please contact simplemax.net for questions, suggestions, comments, or additional services.  

Simplemax.net uses experimental software under development. Please see our disclaimer.