|Made by Dmitrey|
OpenOpt has multifactor analysis tool to search for a set of parameters that optimizes (minimizes or maximizes) an output value (e.g. efficiency of engine, chemical reaction output) for experiment planning in physics, chemistry, biology etc. It has easy and convenient GUI written in Python and Tkinter.
It is based on BOBYQA solver, invented in 2009 by Michael J.D. Powell, and works much better than first order decision diagrams and similar stuff, that is still used somewhere by inertia or absence of willing to pay for commercial software like Statistica. As well as OpenOpt, BOBYQA is free, even for commercial purposes; to use it from OpenOpt, you should have nlopt with its Python API installed; nlopt license is LGPL. Also, you should have tkinter installed (free lightweight Python GUI library, is included into many Python distributions like PythonXY, EPD, ActivePython, see Install page for details).
As you see below, it doesn't require any special skills to use it, all you should know:
- This feature works only with Python2 and doesn't work with Python3 yet
- Objective function tolerance is its measurement error
- Variable tolerance is its adjusting error, i.e. trying to perform experiment with value a of variable x your real value of the variable x will be inside range (a-tol, a+tol) instead
- If you have one or several variables where (upper_bound - lower_bound) / variable_tolerance is too small (e.g. 2-3), your problem is close to combinatorial and you'd better involve other software
- To use it you should have both OpenOpt and nlopt installed (latter contains BOBYQA converted to C language by f2c)
- future plans include graphical convergence output and export to txt / xls files, possibility for autosave, adopting for work in Python3
- MFA interface is unestablished yet and probably will be modified wrt users requests
- Button "About" leads to this webpage
from openopt import MFA MFA()
Also, you can mere create a link from your desktop to the file .../openopt/kernel/mfa.py and start it by mouse click.