optimizationBenchmarking.org was the successor project of our TSP Suite. It is a software for rigorously analyzing and comparing the performance of arbitrary combinatorial and numerical optimization algorithms (or machine learning algorithms) implemented in arbitrary programming languages on arbitrary optimization problems. This tool can do more than drawing nice diagrams over your full experimental data or over groups of your data: It combines several machine learning techniques to find the reasons for algorithm behaviors and problem hardness. It generates reports which contain basic statistics and nice diagrams in HTML and LaTeX (also compiled to PDF and ready for re-use in your publications) or exports the data into formats which can be loaded by MatLab, R, etc. Our goal is to provide one central tool which can

  • support researchers in optimization and machine learning to fully understand their algorithms and optimization/machine learning problems in order to develop better and more robust algorithms, as well as
  • support the practitioner in an application field to understand which optimization/machine learning methods work best for her particular needs.

Although we are currently developing this open source software, you can already use an alpha version, either as Java program or as a Docker container which does not require any additional installation or software. Both versions provide a browser-based graphical user interface (GUI) and do not require any programming skills from your side. The software allows you to download several example experiments and evaluator setups from the GUI and also provides extensive help on how to use it.

The most recent release of our software is version 0.8.9.

News

  1. Article "Automatically discovering clusters of algorithm and problem instance behaviors as well as their causes from experimental data, algorithm setups, and instance features" appears in Applied Soft Computing Journal
  2. Black-Box Discrete Optimization Benchmarking (BB-DOB@PPSN) Workshop
  3. Black-Box Discrete Optimization Benchmarking (BB-DOB@GECCO) Workshop
  4. International Workshop on Benchmarking of Computational Intelligence Algorithms (BOCIA)
  5. Workshop on Benchmarking of Computational Intelligence Algorithms approved for ICACI 2018
  6. New Beta Release of our optimizationBenchmarking.org Software for Automating Research in Optimization
  7. Two Papers accepted at GECCO 2017
  8. From Standardized Data Formats to Standardized Tools for Optimization Algorithm Benchmarking (paper at ICCI*CC 2017)

 About the Software

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.

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