https://github.com/bbopt/styrene

The STYRENE blackbox optimization problem

https://github.com/bbopt/styrene

Science Score: 39.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 10 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.6%) to scientific vocabulary

Keywords

blackbox optimization problem
Last synced: 5 months ago · JSON representation

Repository

The STYRENE blackbox optimization problem

Basic Info
  • Host: GitHub
  • Owner: bbopt
  • License: gpl-2.0
  • Language: C++
  • Default Branch: master
  • Size: 681 KB
Statistics
  • Stars: 4
  • Watchers: 1
  • Forks: 1
  • Open Issues: 1
  • Releases: 0
Topics
blackbox optimization problem
Created almost 6 years ago · Last pushed 10 months ago
Metadata Files
Readme License

README.md

STYRENE is a blackbox optimization problem offered as a benchmark case for the derivative-free optimization community. It simulates a styrene production process, seen as a blackbox simulation for which derivatives do not exist. The objective is to maximize the net present value subject to several process and economic constraints. The code is standard C++ initially developed by Vincent Béchard.

Two versions are provided in the blackbox/ directory: - blackbox/truth/ corresponds to the "true" blackbox, the one to optimize. - blackbox/surrogate/ corresponds to a static surrogate, i.e. a cheaper but imprecise approximation of the true blackbox. It is typically used to assist an optimization algorithm for the optimization of the true problem.

The problem is defined by 8 optimization variables, all scaled in [0;100], and 11 constraints of the form c_j(x) <= 0, divided in two groups: 4 unrelaxable and nonquantifiable constraints and 7 relaxable and quantifiable constraints, following the taxonomy of constraints defined here.

The blackbox execution gives 12 outputs: The 11 constraints values and the objective. A point is feasible when the 11 first outputs are lower than or equal to zero.

Finally two starting points are provided in points/: - points/x0_feasible.txt: Feasible. - points/x0_infeasible.txt: Infeasible.

Compilation:

Makefiles are provided for the true and surrogate problems. To compile, go to blackbox/truth/ or blackbox/surrogate/ and type make. This will create the executable files blackbox/truth/truth.exe and blackbox/surrogate/surrogate.exe. To compile on Windows, it is possible to create a MS Visual project from the C++ source files. For convenience, an already compiled executable of the true problem is provided (blackbox/truth/truth_WINDOWS.exe).

Usage:

From the top directory of the project, type ./blackbox/truth/truth.exe x.txt to execute the true blackbox and ./blackbox/surrogate/surrogate.exe x.txt to execute the surrogate.

x.txt is a text file containing the 8 coordinates of the point to evaluate, each in [0;100], separated by spaces or line breaks. Examples of points can be found in points/.

Best solution:

The current best solution is provided in points/xs.txt. Its coordinates are 99.999953599999997778 94.029649999999946886 95.15957000000000221 0.04209999999999999853 0 50.142644800000006455 32.61161999999998784 51.59949660000002325

The outputs of the blackbox are obtained with the command ./blackbox/truth/truth.exe ./points/xs.txt which gives 0 0 0 0 -0.00712512 -0.00834278 -0.579333 -0.75 -6691 -0.565971 -0.414844 -3.37137e+07 for an objective value of -3.37137e+07.

This solution has been obtained by Guillaume Lameynardie. The previous best solutions were provided by Solène Kojtych and Mathieu Tanneau.

Solvers:

The solvers/ directory includes executions of the two solvers NOMAD and PSwarm. Note that the latter showcases an interface between STYRENE and MATLAB.

References:

The problem was described in the followind reference. Please cite it if you use STYRENE:

@article{AuBeLe08, Author = {C. Audet and V. B\'echard and S. {Le~Digabel}}, Title = {{Nonsmooth optimization through Mesh Adaptive Direct Search and Variable Neighborhood Search}}, Journal = {Journal of Global Optimization}, Volume = {41}, Number = {2}, Pages = {299--318}, Year = {2008}, Doi = {10.1007/s10898-007-9234-1}, Url = {http://dx.doi.org/doi:10.1007/s10898-007-9234-1} }

Also note that a triobjective version of STYRENE is defined in this article:

@article{AuSaZg2010a, Author = {C. Audet and G. Savard and W. Zghal}, Title = {{A mesh adaptive direct search algorithm for multiobjective optimization}}, Journal = {European Journal of Operational Research}, Volume = {204}, Number = {3}, Pages = {545--556}, Year = {2010}, Doi = {10.1016/j.ejor.2009.11.010}, Url = {https://dx.doi.org/10.1016/j.ejor.2009.11.010} }

Owner

  • Name: Blackbox Optimization
  • Login: bbopt
  • Kind: organization
  • Email: nomad@gerad.ca
  • Location: Montréal, Qc, Canada

GitHub organization of the research group from Polytechnique Montréal and GERAD for derivative-free and blackbox optimization

GitHub Events

Total
  • Watch event: 1
  • Member event: 2
  • Push event: 1
Last Year
  • Watch event: 1
  • Member event: 2
  • Push event: 1