Optimization Benchmarking

Introduction

This is the main website of the optimizationBenchmarking.org framework, a (dockerized) Java 1.7 software designed to make the evaluation, benchmarking, and comparison of optimization or Machine Learning algorithms easier. This software can load log files created by (experiments with) an optimization or Machine Learning algorithm implementation, evaluate how the implementation has progressed over time, and compare its performance to other algorithms (or implementations) – over several different benchmark cases. It can create reports in LaTeX (ready for publication) or XHTML formats or export its findings in text files which may later be loaded by other applications. It does not make any requirements regarding the implementation of the algorithms under investigation (also not regarding the programming language) and does not require any programming for your side! It has a convenient GUI. A short set of introduction slides about this project can be found here.

Quick Start

If you want to directly run our software and see the examples, you can use its dockerized version. Simply perform the following steps:

  1. Install Docker following the instructions for Linux, Windows, or MacOS.
  2. Open a normal terminal (Linux), the Docker Quickstart Terminal (Mac OS), or the Docker Toolbox Terminal (Windows).
  3. Type in docker run -t -i -p 9999:8080/tcp optimizationbenchmarking/evaluator-gui and hit return. Only the first time you do that, it downloads our software. This may take some time, as the software is a 600 MB package. After the download, the software will start.
  4. Browse to
    • http://localhost:9999 under Linux
    • http://<dockerIP>:9999 under Windows and Mac OS, where dockerIP is the IP address of your Docker container. This address is displayed when you run the container. You can also obtain it with the command docker-machine ip default.
  5. Enjoy the web-based GUI of our software, which looks quite similar to this web site.

Posts

Workflow

The optimizationBenchmarking.org framework prescribes the following work flow, which is discussed in more detail in this set of slides:

  1. Algorithm Implementation: You implement your algorithm. Do it in a way so that you can generate log files containing rows such as (passed runtime, best solution quality so far) for each run (execution) of your algorithm. You are free to use any programming language and run it in any environment you want. We don’t care about that, we just want the text files you have generated.
  2. Choose Benchmark Instances: Choose a set of (well-known) problem instances to apply your algorithm to.
  3. Experiments: Well, run your algorithm, i.e., apply it a few times to each benchmark instance. You get the log files. Actually, you may want to do this several times with different parameter settings of your algorithm. Or maybe for different algorithms, so you have comparison data.
  4. Use Evaluator: Now, you can use our evaluator component to find our how good your method works! For this, you can define the dimensions you have measured (such as runtime and solution quality), the features of your benchmark instances (such as number of cities in a Traveling Salesman Problem or the scale and symmetry of a numerical problem), the parameter settings of your algorithm (such as population size of an EA), the information you want to get (ECDF? performance over time?), and how you want to get it (LaTeX, optimized for IEEE Transactions, ACM, or Springer LNCS? or maybe XHTML for the web?). Our evaluator will create the report with the desired information in the desired format.
  5. By interpreting the report and advanced statistics presented to you, you can get a deeper insight into your algorithm’s performance as well as into the features and hardness of the benchmark instances you used. You can also directly use building blocks from the generated reports in your publications.

[home] • [status] • [atom feed] • [rss feed]

Contact: Dr.  Thomas Weise, http://www.it-weise.de, tweise@ustc.edu.cn