https://github.com/bbopt/styrene
The STYRENE blackbox optimization problem
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
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
Metadata Files
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
- Website: https://www.gerad.ca/nomad
- Repositories: 9
- Profile: https://github.com/bbopt
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