educational framework for constructing black box optimization methods based on Python modules
Many pressing real world problems can be stated as problems of global optimization, where target function is given by values only (a black box function). They range from robot parameter tuning and optimization of chemical processes to biological systems analysis. Typical examples from financial engineering include model calibration, pricing, hedging, VaR/CVaR computation, credit rating assignment, forecasting, strategy optimization in electronic trading systems. The choice of the algorithm for decision making should depend on the type of the objective function and availability of a priori information, as well as user constrains such as budget. Such problems are best approached with a library of optimization methods to help study the nature of the problem. We use python/scipy/scikit-learn to create such library. This approach also has a great educational value giving the students a general roadmap rather than a collection of unrelated heuristic methods. It is essential for understanding and effective use of iterative optimization algorithms in general.