A Framework for Optimization of Algorithms

View the Project on GitHub dpo/opal

OPAL—A Framework for Optimization of Algorithms

What is OPAL?

OPAL is a Python modeling language for algorithmic optimization. Most algorithms depend on parameters. Although changing the values of those parameters doesn't affect the correctness of the algorithm, it typically affects its performance, where performance is understood broadly. How can we best choose those parameter values so as to maximize a certain measure of performance?

OPAL is a framework that allows to easily declare algorithms and the parameters on which they depend along with representative test cases. It provides a convenient syntax to formulate the optimization problem to be solved. A black-box optimization solver takes care of the rest.




To run the following test, Numpy is required. Install it with pip install numpy.

Assuming your PYTHONPATH is set correctly, you should be able to do:

cd examples/fd
python fd_optimize.py