diff --git a/.github/workflows/check_python_package.yaml b/.github/workflows/check_python_package.yaml
index 5bd82ab..33262cb 100644
--- a/.github/workflows/check_python_package.yaml
+++ b/.github/workflows/check_python_package.yaml
@@ -14,7 +14,7 @@ jobs:
python-version: ["3.10", "3.11", "3.12", "3.13"]
runs-on: ${{matrix.runs-on}}
steps:
- - uses: actions/checkout@v6
+ - uses: actions/checkout@v7
with:
fetch-depth: 0
diff --git a/.github/workflows/new_problem_check.yml b/.github/workflows/new_problem_check.yml
index ebc9ba2..7bd1cbf 100644
--- a/.github/workflows/new_problem_check.yml
+++ b/.github/workflows/new_problem_check.yml
@@ -21,10 +21,10 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v7
- name: Set up Python
- uses: actions/setup-python@v4
+ uses: actions/setup-python@v6
with:
python-version: '3.x'
@@ -35,5 +35,5 @@ jobs:
- name: Run New Problem Check
run: |
- python utils/validate_yaml.py problems.yaml
+ uv run utils/validate_yaml.py problems.yaml
diff --git a/.github/workflows/run_to_html.yml b/.github/workflows/run_to_html.yml
index 2d28e87..cf449e1 100644
--- a/.github/workflows/run_to_html.yml
+++ b/.github/workflows/run_to_html.yml
@@ -13,7 +13,7 @@ jobs:
contents: write
steps:
- name: Checkout repository
- uses: actions/checkout@v5
+ uses: actions/checkout@v7
with:
ref: ${{ github.event.pull_request.head.ref }}
persist-credentials: true
diff --git a/OPL_form.csv b/OPL_form.csv
deleted file mode 100644
index 841b7d7..0000000
--- a/OPL_form.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-Timestamp,Submitter Name,Submitter Email,Short name of Suite / Problem / Generator,Type,Types of input variables,Number of Input variables (number or range or 'scalable'),Number of Objectives (number or range or 'scalable'),Problem Characteristics [Constrained],Problem Characteristics [Dynamic],Problem Characteristics [Noisy],Problem Characteristics [Multi-modal],Problem Characteristics [Partial evaluations possible],Problem Characteristics [Multiple fidelities],Problem Source,Reference,Short description of problem(s),Do you wish to provide some more detailed information about the proposed problems?,Full name of suite,Constraint Properties,Number of constraints,Type of Dynamicism,Form of noise model,Type of noise space,Other noise properties,Description of multimodality,Citation / reference,Key challenges / characteristics,Scientific motivation for the proposed suite / problem / generator,Limitations of the proposed suite / problem / generator,Implemenation languages,Approximate time to evaluate a single solution (or times if e.g. multi-fidelity),Links to examples of usage of the proposed suite / problem / generator,Other relevant information,Feedback about the form
-16/10/2025 11:17:36,,,test,Single Problem,Continuous,1,1,Multi-modal,,,,,,Real-World Application,test,test,Yes (go to detailed information),,,,,,,,,,,,,,,,,
-26/11/2025 12:05:57,Anonymized,Anonymized,MECHBench,Problem Suite,Continuous,scalable',1,Present,Not Present,Not Present,Present,Not Present,Not Present,Real-World Application,https://github.com/BayesOptApp/MECHBench,"This is a set of problems with inspiration from Structural Mechanics Design Optimization. The suite comprises three physical models, from which the user may define different kind of problems which impact the final design output.",Yes (go to detailed information),MECHBench,Hard Constraints,1 or 2,None,None,None,None,Unstructured or non isotropic multimodality,https://arxiv.org/abs/2511.10821,Embeds physical simulations and is flexible and modular,Bridge the black-box optimization techniques to a Mechanical Design Problem which require these kinds of algorithms,"The models do not include fracture or damage mechanics, just plasticity.",Python,Times -> from 1 minute to 7 minutes,,,
\ No newline at end of file
diff --git a/docs/index.html b/docs/index.html
index d0e1c9b..ba068bc 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -33,7 +33,7 @@
OPL – Optimisation problem library
Hide all
- ID Name Type Variable Types Total Variables Objectives Properties Constraint Types Total Constraints Dynamics Noise Partial Evaluations Independent Objectives Fidelity Levels Full Name Description Tags References Implementations Modality Evaluation Time Examples Source Binary Vars Categorical Vars Continuous Vars Integer Vars Implementation Names Implementation Languages Implementation Evaluation Times Implementation Links Implementation Descriptions Implementation Requirements Hard Box Constraints Soft Box Constraints Hard Linear Constraints Soft Linear Constraints Hard Function Constraints Soft Function Constraints
+ ID Name Type Variable Types Total Variables Objectives Properties Constraint Types Total Constraints Dynamics Noise Partial Evaluations Independent Objectives Fidelity Levels Full Name Description Tags References Implementations Modality Examples Source Binary Vars Categorical Vars Continuous Vars Integer Vars Implementation Names Implementation Languages Implementation Evaluation Times Implementation Links Implementation Descriptions Implementation Requirements Hard Box Constraints Soft Box Constraints Hard Linear Constraints Soft Linear Constraints Hard Function Constraints Soft Function Constraints
@@ -61,7 +61,6 @@ OPL – Optimisation problem library
References
Implementations
Modality
- Evaluation Time
Examples
Source
Binary Vars
@@ -105,7 +104,6 @@ OPL – Optimisation problem library
unimodal
-
real-world
@@ -132,7 +130,7 @@ OPL – Optimisation problem library
>=2
2
- unknown | box
+ box | unknown
>=2
@@ -145,7 +143,6 @@ OPL – Optimisation problem library
Building spatial design, https://hdl.handle.net/1887/81789
impl_bso_toolbox
- ["1 second", "40 seconds"]
real-world
>=1
@@ -154,7 +151,7 @@ OPL – Optimisation problem library
BSO-toolbox
C++
- {'40 seconds', '1 second'}
+ ~1s (smallest) to ~40s (larger)
https://github.com/TUe-excellent-buildings/BSO-toolbox
Building Spatial Design toolbox (TU/e)
@@ -190,7 +187,6 @@ OPL – Optimisation problem library
-
>=1
@@ -210,11 +206,11 @@ OPL – Optimisation problem library
fn_emdo
Electric Motor Design Optimization
Problem
- integer | continuous
+ continuous | integer
26
1
noisy
- unknown | box
+ box | unknown
>=14
noisy
@@ -227,7 +223,6 @@ OPL – Optimisation problem library
A Multi-Step Evaluation Process in Electric Motor Design, Tea Tušar; Peter Korošec; Bogdan Filipič, https://dis.ijs.si/tea/Publications/Tusar23Multistep.pdf
impl_emdo
multimodal
- 8 minutes
real-world
@@ -236,7 +231,7 @@ OPL – Optimisation problem library
13
Electric Motor Design Optimization
Python
- {'8 minutes'}
+ 8 minutes
Not publicly available
@@ -269,7 +264,6 @@ OPL – Optimisation problem library
-
real-world
@@ -292,7 +286,7 @@ OPL – Optimisation problem library
fn_gasoline
Gasoline direct injection engine design
Problem
- integer | continuous
+ continuous | integer
14
2
multi-fidelity
@@ -309,7 +303,6 @@ OPL – Optimisation problem library
Gasoline direct injection engine design, https://doi.org/10.1016/j.ejor.2022.08.032
impl_gasoline
- []
real-world
@@ -351,7 +344,6 @@ OPL – Optimisation problem library
-
artificial
>=1
@@ -395,7 +387,6 @@ OPL – Optimisation problem library
-
>=1
@@ -432,7 +423,6 @@ OPL – Optimisation problem library
JPNSEC EC-Symposium 2019 competition, http://www.jpnsec.org/files/competition2019/EC-Symposium-2019-Competition-English.html
impl_jsec2019
- 3s
real-world
@@ -441,7 +431,7 @@ OPL – Optimisation problem library
JSEC 2019 competition
- {'3s'}
+ 3s
http://www.jpnsec.org/files/competition2019/EC-Symposium-2019-Competition-English.html
JPNSEC EC-Symposium 2019 competition problem
@@ -474,7 +464,6 @@ OPL – Optimisation problem library
-
artificial
>=1
@@ -515,7 +504,6 @@ OPL – Optimisation problem library
-
artificial
>=1
@@ -555,7 +543,6 @@ OPL – Optimisation problem library
Radar waveform design, https://doi.org/10.1007/978-3-540-70928-2_53
impl_radar_waveform
- []
real-world
@@ -596,7 +583,6 @@ OPL – Optimisation problem library
BEACON, https://dl.acm.org/doi/10.1145/3712255.3734303
impl_beacon
multimodal
- negligible
artificial
@@ -605,7 +591,7 @@ OPL – Optimisation problem library
BEACON
Python
- {'negligible'}
+ negligible
https://github.com/Stebbet/BEACON/
Continuous Bi-objective Benchmark with Explicit Adjustable COrrelatioN control
@@ -637,7 +623,6 @@ OPL – Optimisation problem library
impl_bonobench
multimodal
- []
artificial
@@ -678,7 +663,6 @@ OPL – Optimisation problem library
Ealain, https://doi.org/10.1145/3638530.3654299
impl_ealain
- []
real-world-like
>=1
@@ -719,7 +703,6 @@ OPL – Optimisation problem library
GNBG, https://arxiv.org/abs/2312.07083
impl_gnbg
- []
artificial
@@ -760,18 +743,17 @@ OPL – Optimisation problem library
GNBG-II, https://dl.acm.org/doi/pdf/10.1145/3712255.3734271
["impl_gnbg_ii", "impl_iohgnbg"]
- []
artificial
>=1
- IOHGNBG | GNBG-II
+ GNBG-II | IOHGNBG
- https://github.com/IOHprofiler/IOHGNBG | https://github.com/rohitsalgotra/GNBG-II
- IOHprofiler version of GNBG | Generalized Numerical Benchmark Generator version 2
+ https://github.com/rohitsalgotra/GNBG-II | https://github.com/IOHprofiler/IOHGNBG
+ Generalized Numerical Benchmark Generator version 2 | IOHprofiler version of GNBG
@@ -805,7 +787,6 @@ OPL – Optimisation problem library
-
>=1
@@ -842,7 +823,6 @@ OPL – Optimisation problem library
IOHClustering, https://arxiv.org/pdf/2505.09233
impl_iohclustering
multimodal
- []
artificial-from-real-data
@@ -883,18 +863,17 @@ OPL – Optimisation problem library
MA-BBOB, https://doi.org/10.1145/3673908
["impl_iohexperimenter", "impl_ma_bbob"]
multimodal
- []
artificial
>=1
- MA-BBOB (IOHexperimenter) | IOHexperimenter
+ IOHexperimenter | MA-BBOB (IOHexperimenter)
C++/Python
- https://github.com/IOHprofiler/IOHexperimenter/blob/master/example/Competitions/MA-BBOB/Example_MABBOB.ipynb | https://github.com/IOHprofiler/IOHexperimenter
- Example notebook for MA-BBOB in IOHexperimenter | IOHprofiler experimenter framework
+ https://github.com/IOHprofiler/IOHexperimenter | https://github.com/IOHprofiler/IOHexperimenter/blob/master/example/Competitions/MA-BBOB/Example_MABBOB.ipynb
+ IOHprofiler experimenter framework | Example notebook for MA-BBOB in IOHexperimenter
@@ -924,7 +903,6 @@ OPL – Optimisation problem library
MPM2 technical report TR15-01, https://ls11-www.cs.tu-dortmund.de/_media/techreports/tr15-01.pdf
impl_mpm2
multimodal
- []
@@ -965,7 +943,6 @@ OPL – Optimisation problem library
mUBQP benchmark, https://doi.org/10.1016/j.asoc.2013.11.008
impl_mocobench
["multimodal", "quadratic"]
- []
>=1
@@ -1006,7 +983,6 @@ OPL – Optimisation problem library
PUBOi, https://link.springer.com/chapter/10.1007/978-3-031-04148-8_12
impl_puboi
- []
artificial
>=1
@@ -1047,7 +1023,6 @@ OPL – Optimisation problem library
impl_randoptgen
multimodal
- milliseconds
artificial
>=1
@@ -1056,7 +1031,7 @@ OPL – Optimisation problem library
>=1
RandOptGen
Python
- {'milliseconds'}
+ milliseconds
https://github.com/MALEO-research-group/RandOptGen | https://doi.org/10.1145/3712256.3726478
Unified Random Problem Generator for Single- and Multi-Objective Optimization with Mixed-Variable Input Spaces
@@ -1088,7 +1063,6 @@ OPL – Optimisation problem library
On the design of multi-objective evolutionary algorithms based on NK-landscapes, https://doi.org/10.1016/j.ejor.2012.12.019
impl_mocobench
multimodal
- []
>=1
@@ -1129,7 +1103,6 @@ OPL – Optimisation problem library
On the impact of multi-objective scalability for the ρmTSP, https://doi.org/10.1007/978-3-319-45823-6_40
impl_mocobench
["multimodal", "quadratic"]
- []
@@ -1170,7 +1143,6 @@ OPL – Optimisation problem library
W-model, https://dl.acm.org/doi/abs/10.1145/3205651.3208240
impl_wmodel
- []
artificial
>=1
@@ -1214,7 +1186,6 @@ OPL – Optimisation problem library
-
>=1
>=1
>=1
@@ -1256,7 +1227,6 @@ OPL – Optimisation problem library
-
>=1
COCO framework
@@ -1297,7 +1267,6 @@ OPL – Optimisation problem library
-
2-40
COCO framework
@@ -1317,7 +1286,7 @@ OPL – Optimisation problem library
suite_bbob_biobj_mixint
BBOB-biobj-mixint
Suite
- integer | continuous
+ continuous | integer
10-320
2
@@ -1338,7 +1307,6 @@ OPL – Optimisation problem library
-
5-160
5-160
COCO framework
@@ -1379,7 +1347,6 @@ OPL – Optimisation problem library
-
2-40
COCO framework
@@ -1420,7 +1387,6 @@ OPL – Optimisation problem library
-
20-640
COCO framework
@@ -1440,7 +1406,7 @@ OPL – Optimisation problem library
suite_bbob_mixint
BBOB-mixint
Suite
- integer | continuous
+ continuous | integer
10-320
1
@@ -1461,7 +1427,6 @@ OPL – Optimisation problem library
-
5-160
5-160
COCO framework
@@ -1502,7 +1467,6 @@ OPL – Optimisation problem library
-
>=1
COCO legacy (bbob-noisy)
@@ -1525,7 +1489,7 @@ OPL – Optimisation problem library
continuous
>=1
[10, 2, 3, 4, 5, 6, 7, 8, 9]
- noisy
+
@@ -1543,7 +1507,6 @@ OPL – Optimisation problem library
-
>=1
@@ -1581,7 +1544,6 @@ OPL – Optimisation problem library
multimodal
-
real-world
@@ -1622,7 +1584,6 @@ OPL – Optimisation problem library
impl_car_structure
-
real-world
@@ -1648,7 +1609,7 @@ OPL – Optimisation problem library
continuous
>=1
[10, 2, 3, 4, 5, 6, 7, 8, 9]
- dynamic | noisy
+
unknown
>=1
unknown
@@ -1666,7 +1627,6 @@ OPL – Optimisation problem library
-
>=1
@@ -1704,7 +1664,6 @@ OPL – Optimisation problem library
["impl_cec2013", "impl_iohexperimenter"]
-
artificial
@@ -1748,7 +1707,6 @@ OPL – Optimisation problem library
-
0
@@ -1786,7 +1744,6 @@ OPL – Optimisation problem library
impl_pymoo
-
artificial
@@ -1827,7 +1784,6 @@ OPL – Optimisation problem library
["impl_cec2022", "impl_iohexperimenter"]
-
artificial
@@ -1868,7 +1824,6 @@ OPL – Optimisation problem library
impl_cfd
-
real-world
@@ -1876,7 +1831,7 @@ OPL – Optimisation problem library
CFD test problem suite
- {'15m', '30s'}
+ 30s-15m
https://bitbucket.org/arahat/cfd-test-problem-suite
Expensive real-world CFD-based test problems
@@ -1891,7 +1846,7 @@ OPL – Optimisation problem library
suite_cre
CRE
Suite
- integer | continuous
+ continuous | integer
6-14
[2, 3, 4, 5]
@@ -1909,7 +1864,6 @@ OPL – Optimisation problem library
impl_reproblems
-
real-world-like
@@ -1950,7 +1904,6 @@ OPL – Optimisation problem library
-
artificial
>=1
@@ -1977,7 +1930,7 @@ OPL – Optimisation problem library
>=3
1
- unknown | box
+ box | unknown
>=2
@@ -1991,7 +1944,6 @@ OPL – Optimisation problem library
impl_pycutest
multimodal
-
artificial
>=1
@@ -2035,7 +1987,6 @@ OPL – Optimisation problem library
-
>=1
pymoo
@@ -2073,7 +2024,6 @@ OPL – Optimisation problem library
impl_iohexperimenter
-
artificial
>=1
@@ -2114,7 +2064,6 @@ OPL – Optimisation problem library
impl_emo2017
-
real-world
@@ -2158,7 +2107,6 @@ OPL – Optimisation problem library
-
25-10000
ETMOF
@@ -2178,11 +2126,11 @@ OPL – Optimisation problem library
suite_expobench
EXPObench
Suite
- continuous | categorical | integer
+ categorical | continuous | integer
30-405
1
noisy
- unknown | box
+ box | unknown
>=2
["observational", "real-life"]
@@ -2196,7 +2144,6 @@ OPL – Optimisation problem library
impl_expobench
-
real-world
10-135
@@ -2204,7 +2151,7 @@ OPL – Optimisation problem library
10-135
EXPObench
Python
- {'2 seconds', '80 seconds'}
+ 2 to 80 seconds
https://github.com/AlgTUDelft/ExpensiveOptimBenchmark
EXPensive Optimization benchmark library (wind farm layout, gas filter design, pipe shape, hyperparameter tuning, hospital simulation)
@@ -2237,7 +2184,6 @@ OPL – Optimisation problem library
impl_gbea
multimodal
-
real-world
@@ -2245,7 +2191,7 @@ OPL – Optimisation problem library
coco-gbea
- {'34 seconds', '5 seconds'}
+ 5s-35s
https://github.com/ttusar/coco-gbea
Game-Benchmark for Evolutionary Algorithms (COCO fork)
@@ -2278,7 +2224,6 @@ OPL – Optimisation problem library
impl_gnbg
-
artificial
@@ -2319,17 +2264,16 @@ OPL – Optimisation problem library
["impl_gnbg_ii", "impl_iohgnbg"]
-
artificial
>=1
- IOHGNBG | GNBG-II
+ GNBG-II | IOHGNBG
- https://github.com/IOHprofiler/IOHGNBG | https://github.com/rohitsalgotra/GNBG-II
- IOHprofiler version of GNBG | Generalized Numerical Benchmark Generator version 2
+ https://github.com/rohitsalgotra/GNBG-II | https://github.com/IOHprofiler/IOHGNBG
+ Generalized Numerical Benchmark Generator version 2 | IOHprofiler version of GNBG
@@ -2360,7 +2304,6 @@ OPL – Optimisation problem library
impl_iohclustering
multimodal
-
artificial-from-real-data
@@ -2401,7 +2344,6 @@ OPL – Optimisation problem library
impl_transfer_rf_bbob_rw
unimodal
-
real-world
@@ -2443,7 +2385,6 @@ OPL – Optimisation problem library
-
>=1
>=1
@@ -2486,7 +2427,6 @@ OPL – Optimisation problem library
-
>=1
@@ -2525,7 +2465,6 @@ OPL – Optimisation problem library
-
>=1
>=1
@@ -2568,7 +2507,6 @@ OPL – Optimisation problem library
-
>=1
@@ -2607,7 +2545,6 @@ OPL – Optimisation problem library
-
>=1
>=1
@@ -2632,7 +2569,7 @@ OPL – Optimisation problem library
continuous
>=1
[10, 2, 3, 4, 5, 6, 7, 8, 9]
- noisy
+
@@ -2650,7 +2587,6 @@ OPL – Optimisation problem library
-
>=1
@@ -2688,7 +2624,6 @@ OPL – Optimisation problem library
impl_mechbench
multimodal
-
real-world
@@ -2696,7 +2631,7 @@ OPL – Optimisation problem library
MECHBench
Python
- {'1 minute', '7 minutes'}
+ 1-7 minutes
https://github.com/BayesOptApp/MECHBench
Structural mechanics design optimization benchmark
@@ -2732,7 +2667,6 @@ OPL – Optimisation problem library
-
>=1
mf2
@@ -2773,7 +2707,6 @@ OPL – Optimisation problem library
-
>=1
@@ -2814,7 +2747,6 @@ OPL – Optimisation problem library
-
>=1
@@ -2857,7 +2789,6 @@ OPL – Optimisation problem library
-
MMOPP
@@ -2893,17 +2824,16 @@ OPL – Optimisation problem library
["impl_modact", "impl_pymoo"]
-
real-world
20
20
- pymoo | modact
+ modact | pymoo
Python
- {'20ms'}
- https://github.com/anyoptimization/pymoo | https://github.com/epfl-lamd/modact
- Multi-objective optimization in Python | EPFL-LAMD modact package
+ 20ms
+ https://github.com/epfl-lamd/modact | https://github.com/anyoptimization/pymoo
+ EPFL-LAMD modact package | Multi-objective optimization in Python
@@ -2919,7 +2849,7 @@ OPL – Optimisation problem library
unknown
0
2
- dynamic | noisy
+
unknown
>=1
unknown
@@ -2939,7 +2869,6 @@ OPL – Optimisation problem library
-
MOrepo
@@ -2975,7 +2904,6 @@ OPL – Optimisation problem library
impl_iohexperimenter
-
artificial
>=1
@@ -3016,7 +2944,6 @@ OPL – Optimisation problem library
impl_transfer_rf_bbob_rw
multimodal
-
real-world
@@ -3039,7 +2966,7 @@ OPL – Optimisation problem library
suite_re
RE
Suite
- integer | continuous
+ continuous | integer
4-14
[2, 3, 4, 5, 6, 7, 8, 9]
@@ -3057,7 +2984,6 @@ OPL – Optimisation problem library
impl_reproblems
-
real-world-like
@@ -3098,7 +3024,6 @@ OPL – Optimisation problem library
-
real-world
>=1
@@ -3142,7 +3067,6 @@ OPL – Optimisation problem library
-
>=1
IOHexperimenter
@@ -3165,7 +3089,7 @@ OPL – Optimisation problem library
continuous
>=1
[10, 2, 3, 4, 5, 6, 7, 8, 9]
- dynamic | noisy
+ dynamic
dynamic
@@ -3183,7 +3107,6 @@ OPL – Optimisation problem library
-
>=1
@@ -3221,7 +3144,6 @@ OPL – Optimisation problem library
impl_iohexperimenter
-
artificial
>=1
@@ -3247,7 +3169,7 @@ OPL – Optimisation problem library
continuous
>=1
1
- noisy | multi-fidelity
+ multi-fidelity | noisy
unknown
>=2
@@ -3262,7 +3184,6 @@ OPL – Optimisation problem library
impl_tulipa
unimodal
-
real-world
@@ -3270,7 +3191,7 @@ OPL – Optimisation problem library
TulipaEnergyModel.jl
Julia / JuMP
- {'minutes', 'hours'}
+ minutes to hours
https://tulipaenergy.github.io/TulipaEnergyModel.jl/stable/ | https://github.com/TulipaEnergy/Tulipa-OBZ-CaseStudy
Large linear program for optimal investment and operation of energy systems
@@ -3303,7 +3224,6 @@ OPL – Optimisation problem library
impl_vehicle_dynamics
multimodal
-
real-world
@@ -3347,7 +3267,6 @@ OPL – Optimisation problem library
-
>=1
pymoo
@@ -3386,7 +3305,6 @@ OPL – Optimisation problem library
-
>=1
>=1
@@ -3405,7 +3323,7 @@ OPL – Optimisation problem library
-ID Name Type Variable Types Total Variables Objectives Properties Constraint Types Total Constraints Dynamics Noise Partial Evaluations Independent Objectives Fidelity Levels Full Name Description Tags References Implementations Modality Evaluation Time Examples Source Binary Vars Categorical Vars Continuous Vars Integer Vars Implementation Names Implementation Languages Implementation Evaluation Times Implementation Links Implementation Descriptions Implementation Requirements Hard Box Constraints Soft Box Constraints Hard Linear Constraints Soft Linear Constraints Hard Function Constraints Soft Function Constraints
+ID Name Type Variable Types Total Variables Objectives Properties Constraint Types Total Constraints Dynamics Noise Partial Evaluations Independent Objectives Fidelity Levels Full Name Description Tags References Implementations Modality Examples Source Binary Vars Categorical Vars Continuous Vars Integer Vars Implementation Names Implementation Languages Implementation Evaluation Times Implementation Links Implementation Descriptions Implementation Requirements Hard Box Constraints Soft Box Constraints Hard Linear Constraints Soft Linear Constraints Hard Function Constraints Soft Function Constraints
diff --git a/docs/problems.html b/docs/problems.html
index ab6e46f..38f79e4 100644
--- a/docs/problems.html
+++ b/docs/problems.html
@@ -7,7 +7,7 @@
Hide all
- ID Name Type Variable Types Total Variables Objectives Properties Constraint Types Total Constraints Dynamics Noise Partial Evaluations Independent Objectives Fidelity Levels Full Name Description Tags References Implementations Modality Evaluation Time Examples Source Binary Vars Categorical Vars Continuous Vars Integer Vars Implementation Names Implementation Languages Implementation Evaluation Times Implementation Links Implementation Descriptions Implementation Requirements Hard Box Constraints Soft Box Constraints Hard Linear Constraints Soft Linear Constraints Hard Function Constraints Soft Function Constraints
+ ID Name Type Variable Types Total Variables Objectives Properties Constraint Types Total Constraints Dynamics Noise Partial Evaluations Independent Objectives Fidelity Levels Full Name Description Tags References Implementations Modality Examples Source Binary Vars Categorical Vars Continuous Vars Integer Vars Implementation Names Implementation Languages Implementation Evaluation Times Implementation Links Implementation Descriptions Implementation Requirements Hard Box Constraints Soft Box Constraints Hard Linear Constraints Soft Linear Constraints Hard Function Constraints Soft Function Constraints
@@ -35,7 +35,6 @@
References
Implementations
Modality
- Evaluation Time
Examples
Source
Binary Vars
@@ -79,7 +78,6 @@
unimodal
-
real-world
@@ -106,7 +104,7 @@
>=2
2
- unknown | box
+ box | unknown
>=2
@@ -119,7 +117,6 @@
Building spatial design, https://hdl.handle.net/1887/81789
impl_bso_toolbox
- ["1 second", "40 seconds"]
real-world
>=1
@@ -128,7 +125,7 @@
BSO-toolbox
C++
- {'40 seconds', '1 second'}
+ ~1s (smallest) to ~40s (larger)
https://github.com/TUe-excellent-buildings/BSO-toolbox
Building Spatial Design toolbox (TU/e)
@@ -164,7 +161,6 @@
-
>=1
@@ -184,11 +180,11 @@
fn_emdo
Electric Motor Design Optimization
Problem
- integer | continuous
+ continuous | integer
26
1
noisy
- unknown | box
+ box | unknown
>=14
noisy
@@ -201,7 +197,6 @@
A Multi-Step Evaluation Process in Electric Motor Design, Tea Tušar; Peter Korošec; Bogdan Filipič, https://dis.ijs.si/tea/Publications/Tusar23Multistep.pdf
impl_emdo
multimodal
- 8 minutes
real-world
@@ -210,7 +205,7 @@
13
Electric Motor Design Optimization
Python
- {'8 minutes'}
+ 8 minutes
Not publicly available
@@ -243,7 +238,6 @@
-
real-world
@@ -266,7 +260,7 @@
fn_gasoline
Gasoline direct injection engine design
Problem
- integer | continuous
+ continuous | integer
14
2
multi-fidelity
@@ -283,7 +277,6 @@
Gasoline direct injection engine design, https://doi.org/10.1016/j.ejor.2022.08.032
impl_gasoline
- []
real-world
@@ -325,7 +318,6 @@
-
artificial
>=1
@@ -369,7 +361,6 @@
-
>=1
@@ -406,7 +397,6 @@
JPNSEC EC-Symposium 2019 competition, http://www.jpnsec.org/files/competition2019/EC-Symposium-2019-Competition-English.html
impl_jsec2019
- 3s
real-world
@@ -415,7 +405,7 @@
JSEC 2019 competition
- {'3s'}
+ 3s
http://www.jpnsec.org/files/competition2019/EC-Symposium-2019-Competition-English.html
JPNSEC EC-Symposium 2019 competition problem
@@ -448,7 +438,6 @@
-
artificial
>=1
@@ -489,7 +478,6 @@
-
artificial
>=1
@@ -529,7 +517,6 @@
Radar waveform design, https://doi.org/10.1007/978-3-540-70928-2_53
impl_radar_waveform
- []
real-world
@@ -570,7 +557,6 @@
BEACON, https://dl.acm.org/doi/10.1145/3712255.3734303
impl_beacon
multimodal
- negligible
artificial
@@ -579,7 +565,7 @@
BEACON
Python
- {'negligible'}
+ negligible
https://github.com/Stebbet/BEACON/
Continuous Bi-objective Benchmark with Explicit Adjustable COrrelatioN control
@@ -611,7 +597,6 @@
impl_bonobench
multimodal
- []
artificial
@@ -652,7 +637,6 @@
Ealain, https://doi.org/10.1145/3638530.3654299
impl_ealain
- []
real-world-like
>=1
@@ -693,7 +677,6 @@
GNBG, https://arxiv.org/abs/2312.07083
impl_gnbg
- []
artificial
@@ -734,18 +717,17 @@
GNBG-II, https://dl.acm.org/doi/pdf/10.1145/3712255.3734271
["impl_gnbg_ii", "impl_iohgnbg"]
- []
artificial
>=1
- IOHGNBG | GNBG-II
+ GNBG-II | IOHGNBG
- https://github.com/IOHprofiler/IOHGNBG | https://github.com/rohitsalgotra/GNBG-II
- IOHprofiler version of GNBG | Generalized Numerical Benchmark Generator version 2
+ https://github.com/rohitsalgotra/GNBG-II | https://github.com/IOHprofiler/IOHGNBG
+ Generalized Numerical Benchmark Generator version 2 | IOHprofiler version of GNBG
@@ -779,7 +761,6 @@
-
>=1
@@ -816,7 +797,6 @@
IOHClustering, https://arxiv.org/pdf/2505.09233
impl_iohclustering
multimodal
- []
artificial-from-real-data
@@ -857,18 +837,17 @@
MA-BBOB, https://doi.org/10.1145/3673908
["impl_iohexperimenter", "impl_ma_bbob"]
multimodal
- []
artificial
>=1
- MA-BBOB (IOHexperimenter) | IOHexperimenter
+ IOHexperimenter | MA-BBOB (IOHexperimenter)
C++/Python
- https://github.com/IOHprofiler/IOHexperimenter/blob/master/example/Competitions/MA-BBOB/Example_MABBOB.ipynb | https://github.com/IOHprofiler/IOHexperimenter
- Example notebook for MA-BBOB in IOHexperimenter | IOHprofiler experimenter framework
+ https://github.com/IOHprofiler/IOHexperimenter | https://github.com/IOHprofiler/IOHexperimenter/blob/master/example/Competitions/MA-BBOB/Example_MABBOB.ipynb
+ IOHprofiler experimenter framework | Example notebook for MA-BBOB in IOHexperimenter
@@ -898,7 +877,6 @@
MPM2 technical report TR15-01, https://ls11-www.cs.tu-dortmund.de/_media/techreports/tr15-01.pdf
impl_mpm2
multimodal
- []
@@ -939,7 +917,6 @@
mUBQP benchmark, https://doi.org/10.1016/j.asoc.2013.11.008
impl_mocobench
["multimodal", "quadratic"]
- []
>=1
@@ -980,7 +957,6 @@
PUBOi, https://link.springer.com/chapter/10.1007/978-3-031-04148-8_12
impl_puboi
- []
artificial
>=1
@@ -1021,7 +997,6 @@
impl_randoptgen
multimodal
- milliseconds
artificial
>=1
@@ -1030,7 +1005,7 @@
>=1
RandOptGen
Python
- {'milliseconds'}
+ milliseconds
https://github.com/MALEO-research-group/RandOptGen | https://doi.org/10.1145/3712256.3726478
Unified Random Problem Generator for Single- and Multi-Objective Optimization with Mixed-Variable Input Spaces
@@ -1062,7 +1037,6 @@
On the design of multi-objective evolutionary algorithms based on NK-landscapes, https://doi.org/10.1016/j.ejor.2012.12.019
impl_mocobench
multimodal
- []
>=1
@@ -1103,7 +1077,6 @@
On the impact of multi-objective scalability for the ρmTSP, https://doi.org/10.1007/978-3-319-45823-6_40
impl_mocobench
["multimodal", "quadratic"]
- []
@@ -1144,7 +1117,6 @@
W-model, https://dl.acm.org/doi/abs/10.1145/3205651.3208240
impl_wmodel
- []
artificial
>=1
@@ -1188,7 +1160,6 @@
-
>=1
>=1
>=1
@@ -1230,7 +1201,6 @@
-
>=1
COCO framework
@@ -1271,7 +1241,6 @@
-
2-40
COCO framework
@@ -1291,7 +1260,7 @@
suite_bbob_biobj_mixint
BBOB-biobj-mixint
Suite
- integer | continuous
+ continuous | integer
10-320
2
@@ -1312,7 +1281,6 @@
-
5-160
5-160
COCO framework
@@ -1353,7 +1321,6 @@
-
2-40
COCO framework
@@ -1394,7 +1361,6 @@
-
20-640
COCO framework
@@ -1414,7 +1380,7 @@
suite_bbob_mixint
BBOB-mixint
Suite
- integer | continuous
+ continuous | integer
10-320
1
@@ -1435,7 +1401,6 @@
-
5-160
5-160
COCO framework
@@ -1476,7 +1441,6 @@
-
>=1
COCO legacy (bbob-noisy)
@@ -1499,7 +1463,7 @@
continuous
>=1
[10, 2, 3, 4, 5, 6, 7, 8, 9]
- noisy
+
@@ -1517,7 +1481,6 @@
-
>=1
@@ -1555,7 +1518,6 @@
multimodal
-
real-world
@@ -1596,7 +1558,6 @@
impl_car_structure
-
real-world
@@ -1622,7 +1583,7 @@
continuous
>=1
[10, 2, 3, 4, 5, 6, 7, 8, 9]
- dynamic | noisy
+
unknown
>=1
unknown
@@ -1640,7 +1601,6 @@
-
>=1
@@ -1678,7 +1638,6 @@
["impl_cec2013", "impl_iohexperimenter"]
-
artificial
@@ -1722,7 +1681,6 @@
-
0
@@ -1760,7 +1718,6 @@
impl_pymoo
-
artificial
@@ -1801,7 +1758,6 @@
["impl_cec2022", "impl_iohexperimenter"]
-
artificial
@@ -1842,7 +1798,6 @@
impl_cfd
-
real-world
@@ -1850,7 +1805,7 @@
CFD test problem suite
- {'15m', '30s'}
+ 30s-15m
https://bitbucket.org/arahat/cfd-test-problem-suite
Expensive real-world CFD-based test problems
@@ -1865,7 +1820,7 @@
suite_cre
CRE
Suite
- integer | continuous
+ continuous | integer
6-14
[2, 3, 4, 5]
@@ -1883,7 +1838,6 @@
impl_reproblems
-
real-world-like
@@ -1924,7 +1878,6 @@
-
artificial
>=1
@@ -1951,7 +1904,7 @@
>=3
1
- unknown | box
+ box | unknown
>=2
@@ -1965,7 +1918,6 @@
impl_pycutest
multimodal
-
artificial
>=1
@@ -2009,7 +1961,6 @@
-
>=1
pymoo
@@ -2047,7 +1998,6 @@
impl_iohexperimenter
-
artificial
>=1
@@ -2088,7 +2038,6 @@
impl_emo2017
-
real-world
@@ -2132,7 +2081,6 @@
-
25-10000
ETMOF
@@ -2152,11 +2100,11 @@
suite_expobench
EXPObench
Suite
- continuous | categorical | integer
+ categorical | continuous | integer
30-405
1
noisy
- unknown | box
+ box | unknown
>=2
["observational", "real-life"]
@@ -2170,7 +2118,6 @@
impl_expobench
-
real-world
10-135
@@ -2178,7 +2125,7 @@
10-135
EXPObench
Python
- {'2 seconds', '80 seconds'}
+ 2 to 80 seconds
https://github.com/AlgTUDelft/ExpensiveOptimBenchmark
EXPensive Optimization benchmark library (wind farm layout, gas filter design, pipe shape, hyperparameter tuning, hospital simulation)
@@ -2211,7 +2158,6 @@
impl_gbea
multimodal
-
real-world
@@ -2219,7 +2165,7 @@
coco-gbea
- {'34 seconds', '5 seconds'}
+ 5s-35s
https://github.com/ttusar/coco-gbea
Game-Benchmark for Evolutionary Algorithms (COCO fork)
@@ -2252,7 +2198,6 @@
impl_gnbg
-
artificial
@@ -2293,17 +2238,16 @@
["impl_gnbg_ii", "impl_iohgnbg"]
-
artificial
>=1
- IOHGNBG | GNBG-II
+ GNBG-II | IOHGNBG
- https://github.com/IOHprofiler/IOHGNBG | https://github.com/rohitsalgotra/GNBG-II
- IOHprofiler version of GNBG | Generalized Numerical Benchmark Generator version 2
+ https://github.com/rohitsalgotra/GNBG-II | https://github.com/IOHprofiler/IOHGNBG
+ Generalized Numerical Benchmark Generator version 2 | IOHprofiler version of GNBG
@@ -2334,7 +2278,6 @@
impl_iohclustering
multimodal
-
artificial-from-real-data
@@ -2375,7 +2318,6 @@
impl_transfer_rf_bbob_rw
unimodal
-
real-world
@@ -2417,7 +2359,6 @@
-
>=1
>=1
@@ -2460,7 +2401,6 @@
-
>=1
@@ -2499,7 +2439,6 @@
-
>=1
>=1
@@ -2542,7 +2481,6 @@
-
>=1
@@ -2581,7 +2519,6 @@
-
>=1
>=1
@@ -2606,7 +2543,7 @@
continuous
>=1
[10, 2, 3, 4, 5, 6, 7, 8, 9]
- noisy
+
@@ -2624,7 +2561,6 @@
-
>=1
@@ -2662,7 +2598,6 @@
impl_mechbench
multimodal
-
real-world
@@ -2670,7 +2605,7 @@
MECHBench
Python
- {'1 minute', '7 minutes'}
+ 1-7 minutes
https://github.com/BayesOptApp/MECHBench
Structural mechanics design optimization benchmark
@@ -2706,7 +2641,6 @@
-
>=1
mf2
@@ -2747,7 +2681,6 @@
-
>=1
@@ -2788,7 +2721,6 @@
-
>=1
@@ -2831,7 +2763,6 @@
-
MMOPP
@@ -2867,17 +2798,16 @@
["impl_modact", "impl_pymoo"]
-
real-world
20
20
- pymoo | modact
+ modact | pymoo
Python
- {'20ms'}
- https://github.com/anyoptimization/pymoo | https://github.com/epfl-lamd/modact
- Multi-objective optimization in Python | EPFL-LAMD modact package
+ 20ms
+ https://github.com/epfl-lamd/modact | https://github.com/anyoptimization/pymoo
+ EPFL-LAMD modact package | Multi-objective optimization in Python
@@ -2893,7 +2823,7 @@
unknown
0
2
- dynamic | noisy
+
unknown
>=1
unknown
@@ -2913,7 +2843,6 @@
-
MOrepo
@@ -2949,7 +2878,6 @@
impl_iohexperimenter
-
artificial
>=1
@@ -2990,7 +2918,6 @@
impl_transfer_rf_bbob_rw
multimodal
-
real-world
@@ -3013,7 +2940,7 @@
suite_re
RE
Suite
- integer | continuous
+ continuous | integer
4-14
[2, 3, 4, 5, 6, 7, 8, 9]
@@ -3031,7 +2958,6 @@
impl_reproblems
-
real-world-like
@@ -3072,7 +2998,6 @@
-
real-world
>=1
@@ -3116,7 +3041,6 @@
-
>=1
IOHexperimenter
@@ -3139,7 +3063,7 @@
continuous
>=1
[10, 2, 3, 4, 5, 6, 7, 8, 9]
- dynamic | noisy
+ dynamic
dynamic
@@ -3157,7 +3081,6 @@
-
>=1
@@ -3195,7 +3118,6 @@
impl_iohexperimenter
-
artificial
>=1
@@ -3221,7 +3143,7 @@
continuous
>=1
1
- noisy | multi-fidelity
+ multi-fidelity | noisy
unknown
>=2
@@ -3236,7 +3158,6 @@
impl_tulipa
unimodal
-
real-world
@@ -3244,7 +3165,7 @@
TulipaEnergyModel.jl
Julia / JuMP
- {'minutes', 'hours'}
+ minutes to hours
https://tulipaenergy.github.io/TulipaEnergyModel.jl/stable/ | https://github.com/TulipaEnergy/Tulipa-OBZ-CaseStudy
Large linear program for optimal investment and operation of energy systems
@@ -3277,7 +3198,6 @@
impl_vehicle_dynamics
multimodal
-
real-world
@@ -3321,7 +3241,6 @@
-
>=1
pymoo
@@ -3360,7 +3279,6 @@
-
>=1
>=1
@@ -3379,7 +3297,7 @@
-ID Name Type Variable Types Total Variables Objectives Properties Constraint Types Total Constraints Dynamics Noise Partial Evaluations Independent Objectives Fidelity Levels Full Name Description Tags References Implementations Modality Evaluation Time Examples Source Binary Vars Categorical Vars Continuous Vars Integer Vars Implementation Names Implementation Languages Implementation Evaluation Times Implementation Links Implementation Descriptions Implementation Requirements Hard Box Constraints Soft Box Constraints Hard Linear Constraints Soft Linear Constraints Hard Function Constraints Soft Function Constraints
+ID Name Type Variable Types Total Variables Objectives Properties Constraint Types Total Constraints Dynamics Noise Partial Evaluations Independent Objectives Fidelity Levels Full Name Description Tags References Implementations Modality Examples Source Binary Vars Categorical Vars Continuous Vars Integer Vars Implementation Names Implementation Languages Implementation Evaluation Times Implementation Links Implementation Descriptions Implementation Requirements Hard Box Constraints Soft Box Constraints Hard Linear Constraints Soft Linear Constraints Hard Function Constraints Soft Function Constraints
diff --git a/form_processing/OPL_form.csv b/form_processing/OPL_form.csv
new file mode 100644
index 0000000..7dc00a8
--- /dev/null
+++ b/form_processing/OPL_form.csv
@@ -0,0 +1,3 @@
+Timestamp,Submitter Name,Submitter Email,Short name of Suite / Problem / Generator,Type,Types of input variables,Number of Input variables (number(s) or range or 'scalable'),Number of Objectives (number(s) or range or 'scalable'),Problem Characteristics [Constrained],Problem Characteristics [Dynamic],Problem Characteristics [Noisy],Problem Characteristics [Multi-modal],Problem Characteristics [Partial evaluations possible],Problem Characteristics [Multiple fidelities],Problem Source,Link to Implementation,Short description of problem(s),Do you wish to provide some more detailed information about the proposed problems?,Full name of suite,Constraint Properties,Number of constraints,Type of Dynamicism,Form of noise model,Type of noise space,Other noise properties,Description of multimodality,Citation / reference,Key challenges / characteristics,Scientific motivation for the proposed suite / problem / generator,Limitations of the proposed suite / problem / generator,Implemenation languages,Links to implementations,Approximate time to evaluate a single solution (or times if e.g. multi-fidelity),Links to examples of usage of the proposed suite / problem / generator,Other relevant information,Feedback about the form,Code example / instructions,Problem Characteristics [Objectives evaluated independently], [Row 1]
+x,,,test,Single Problem,Continuous,1,1,Multi-modal,,,,,,Real-World Application,test,test,Yes (go to detailed information),,,,,,,,,,,,,,,,,,,,,
+x,Anonymized,Anonymized,MECHBench,Problem Suite,Continuous,scalable',1,Present,Not Present,Not Present,Present,Not Present,Not Present,Real-World Application,https://github.com/BayesOptApp/MECHBench,"This is a set of problems with inspiration from Structural Mechanics Design Optimization. The suite comprises three physical models, from which the user may define different kind of problems which impact the final design output.",Yes (go to detailed information),MECHBench,Hard Constraints,1 or 2,None,None,None,None,Unstructured or non isotropic multimodality,https://arxiv.org/abs/2511.10821,Embeds physical simulations and is flexible and modular,Bridge the black-box optimization techniques to a Mechanical Design Problem which require these kinds of algorithms,"The models do not include fracture or damage mechanics, just plasticity.",Python,https://github.com/BayesOptApp/MECHBench,Times -> from 1 minute to 7 minutes,,,,,,
diff --git a/form_processing/Readme.md b/form_processing/Readme.md
new file mode 100644
index 0000000..8ec7eb3
--- /dev/null
+++ b/form_processing/Readme.md
@@ -0,0 +1,38 @@
+# CSV to YAML import
+
+This folder contains a small Python script that merges the content of the form-response CSV into the main OPL YAML file.
+
+## What it does
+
+- reads `OPL_form.csv`
+- converts each row into OPL schema objects
+- merges new entries into `../problems.yaml`
+- skips duplicate names and empty rows
+- validates the merged YAML before writing
+
+## Usage
+
+Run the script from the repository root or from this folder:
+
+```bash
+python form_processing/formresponse_to_yaml.py --csv form_processing/OPL_form.csv --existing-yaml problems.yaml --output-yaml problems.yaml
+```
+
+If you run it from inside `form_processing`, the defaults also work:
+
+```bash
+python formresponse_to_yaml.py
+```
+
+## Dry run
+
+Use dry-run mode to check the import without changing any files:
+
+```bash
+python form_processing/formresponse_to_yaml.py --dry-run
+```
+
+## Notes
+
+- The script keeps existing entries and only adds new ones.
+- It prints how many entries were added, how many implementations were added, and how many rows were skipped.
diff --git a/form_processing/formresponse_to_yaml.py b/form_processing/formresponse_to_yaml.py
new file mode 100644
index 0000000..56b6b31
--- /dev/null
+++ b/form_processing/formresponse_to_yaml.py
@@ -0,0 +1,681 @@
+from __future__ import annotations
+
+import argparse
+import re
+import unicodedata
+from pathlib import Path
+from types import UnionType
+from typing import Any, get_args, get_origin
+
+import pandas as pd
+import yaml
+
+from opltools.schema import (
+ Constraint,
+ ConstraintType,
+ Generator,
+ Implementation,
+ Library,
+ Link,
+ OPLType,
+ Problem,
+ Reference,
+ Suite,
+ ValueRange,
+ Variable,
+ VariableType,
+ YesNoSome,
+)
+
+
+COL_NAME = "Short name of Suite / Problem / Generator"
+COL_TYPE = "Type"
+COL_VARIABLE_TYPES = "Types of input variables"
+COL_DIM = "Number of Input variables (number or range or 'scalable')"
+COL_OBJECTIVES = "Number of Objectives (number or range or 'scalable')"
+COL_CONSTRAINED = "Problem Characteristics [Constrained]"
+COL_DYNAMIC = "Problem Characteristics [Dynamic]"
+COL_NOISY = "Problem Characteristics [Noisy]"
+COL_MULTIMODAL = "Problem Characteristics [Multi-modal]"
+COL_PARTIAL_EVAL = "Problem Characteristics [Partial evaluations possible]"
+COL_MULTI_FIDELITY = "Problem Characteristics [Multiple fidelities]"
+COL_OBJECTIVES_INDEPENDENT = "Problem Characteristics [Objectives evaluated independently]"
+COL_SOURCE = "Problem Source"
+COL_IMPL_LINK = "Link to Implementation"
+COL_DESCRIPTION = "Short description of problem(s)"
+COL_REFERENCE = "Citation / reference"
+COL_FULL_NAME = "Full name of suite"
+COL_CONSTRAINT_PROPERTIES = "Constraint Properties"
+COL_CONSTRAINT_COUNT = "Number of constraints"
+COL_DYNAMIC_TYPE = "Type of Dynamicism"
+COL_NOISE_MODEL = "Form of noise model"
+COL_NOISE_SPACE = "Type of noise space"
+COL_NOISE_OTHER = "Other noise properties"
+COL_MULTIMODAL_DESC = "Description of multimodality"
+COL_IMPL_LANG = "Implemenation languages"
+COL_IMPL_LINKS = "Links to implementations"
+COL_EVAL_TIME = "Approximate time to evaluate a single solution (or times if e.g. multi-fidelity)"
+COL_OTHER = "Other relevant information"
+
+NO_VALUE_MARKERS = {
+ "",
+ "-",
+ "n/a",
+ "na",
+ "none",
+ "not found",
+ "unknown",
+ "not public",
+ "implementation not freely available",
+}
+
+
+def normalize_text(value: Any) -> str:
+ if value is None:
+ return ""
+ if isinstance(value, float) and pd.isna(value):
+ return ""
+ return str(value).strip()
+
+
+def is_meaningful(value: Any) -> bool:
+ text = normalize_text(value)
+ return bool(text) and text.lower() not in NO_VALUE_MARKERS
+
+
+def split_values(value: Any) -> list[str]:
+ text = normalize_text(value)
+ if not text:
+ return []
+ parts = re.split(r"[,;\n|]+", text)
+ return [p.strip() for p in parts if p.strip()]
+
+
+def extract_urls(value: Any) -> list[str]:
+ text = normalize_text(value)
+ if not text:
+ return []
+ return re.findall(r"https?://[^\s,\])\"']+", text)
+
+
+def slugify(value: str) -> str:
+ normalized = unicodedata.normalize("NFKD", value).encode("ascii", "ignore").decode("ascii")
+ normalized = normalized.lower()
+ normalized = re.sub(r"[^a-z0-9]+", "_", normalized)
+ return normalized.strip("_") or "entry"
+
+
+def unique_id(prefix: str, name: str, used_ids: set[str]) -> str:
+ base = f"{prefix}{slugify(name)}"
+ if base not in used_ids:
+ used_ids.add(base)
+ return base
+
+ suffix = 2
+ while True:
+ candidate = f"{base}_{suffix}"
+ if candidate not in used_ids:
+ used_ids.add(candidate)
+ return candidate
+ suffix += 1
+
+
+def parse_yes_no_some(value: Any) -> YesNoSome | None:
+ text = normalize_text(value).lower()
+ if not text:
+ return None
+
+ # Normalize common punctuation variants to make matching robust.
+ text = re.sub(r"\s+", " ", text.replace("_", " ").replace("-", " ")).strip().lower()
+
+ if text in {"not present", "not available", "absent", "no", "n", "false", "none"}:
+ return YesNoSome.no
+ if text in {"present", "available", "yes", "y", "true"}:
+ return YesNoSome.yes
+ if text in {"some", "partial", "mixed", "depends"}:
+ return YesNoSome.some
+ if text in {"unknown", "?"}:
+ return YesNoSome.unknown
+
+ return None
+
+
+def parse_type(value: Any) -> OPLType:
+ text = normalize_text(value).lower()
+ if "suite" in text:
+ return OPLType.suite
+ if "generator" in text:
+ return OPLType.generator
+ return OPLType.problem
+
+
+def parse_scalar_set_or_range(value: Any) -> int | set[int] | ValueRange | None:
+ text = normalize_text(value)
+ if not text:
+ return None
+
+ lowered = text.lower()
+ numbers = [int(n) for n in re.findall(r"\d+", text)]
+
+ if "scalable" in lowered:
+ if len(numbers) >= 2:
+ return ValueRange(min=min(numbers), max=max(numbers))
+ if len(numbers) == 1:
+ return ValueRange(min=numbers[0], max=None)
+ return ValueRange(min=1, max=None)
+
+ if (" to " in lowered or "-" in lowered) and len(numbers) >= 2:
+ return ValueRange(min=min(numbers), max=max(numbers))
+
+ if " or " in lowered and numbers:
+ vals = set(numbers)
+ return next(iter(vals)) if len(vals) == 1 else vals
+
+ if len(numbers) == 1:
+ return numbers[0]
+ if len(numbers) > 1:
+ vals = set(numbers)
+ return next(iter(vals)) if len(vals) == 1 else vals
+ return None
+
+
+def parse_objectives(value: Any) -> set[int] | None:
+ text = normalize_text(value)
+ if not text:
+ return None
+ numbers = {int(n) for n in re.findall(r"\d+", text)}
+ return numbers or None
+
+
+def parse_variable_type(token: str) -> VariableType:
+ lowered = token.strip().lower()
+ if any(t in lowered for t in ["continuous", "real"]):
+ return VariableType.continuous
+ if any(t in lowered for t in ["integer", "ordinal", "int"]):
+ return VariableType.integer
+ if any(t in lowered for t in ["boolean", "binary", "bool"]):
+ return VariableType.binary
+ if any(t in lowered for t in ["categorical", "nominal", "category"]):
+ return VariableType.categorical
+ return VariableType.unknown
+
+
+def parse_variables(var_types_value: Any, dim_value: Any) -> set[Variable] | None:
+ type_tokens = split_values(var_types_value)
+ dim = parse_scalar_set_or_range(dim_value)
+
+ if not type_tokens:
+ return None
+
+ variables: set[Variable] = set()
+ for token in type_tokens:
+ variables.add(Variable(type=parse_variable_type(token), dim=dim))
+ return variables or None
+
+
+def parse_constraint_type(token: str) -> ConstraintType:
+ lowered = token.lower()
+ if "box" in lowered:
+ return ConstraintType.box
+ if "linear" in lowered:
+ return ConstraintType.linear
+ if "function" in lowered or "nonlinear" in lowered:
+ return ConstraintType.function
+ return ConstraintType.unknown
+
+
+def parse_constraint_yesnosome_from_properties(
+ property_tokens: list[str],
+ positive_terms: tuple[str, ...],
+ negative_terms: tuple[str, ...],
+) -> YesNoSome | None:
+ if not property_tokens:
+ return None
+
+ lowered = [token.lower() for token in property_tokens]
+
+ def _matches_term(token: str, term: str) -> bool:
+ # Non-word terms (like <=) are matched as substrings; words use boundaries.
+ if not re.search(r"\w", term):
+ return term in token
+ pattern = rf"\b{re.escape(term.strip())}\b"
+ return re.search(pattern, token) is not None
+
+ has_positive = any(any(_matches_term(token, term) for term in positive_terms) for token in lowered)
+ has_negative = any(any(_matches_term(token, term) for term in negative_terms) for token in lowered)
+
+ if has_positive and has_negative:
+ return YesNoSome.some
+ if has_positive:
+ return YesNoSome.yes
+ if has_negative:
+ return YesNoSome.no
+ return None
+
+
+def parse_constraints(row: dict[str, Any]) -> set[Constraint] | None:
+ constrained = parse_yes_no_some(row.get(COL_CONSTRAINED))
+ if constrained == YesNoSome.no:
+ # Explicitly encode unconstrained problems as an empty set.
+ return set()
+ if constrained is None:
+ return None
+
+ number = parse_scalar_set_or_range(row.get(COL_CONSTRAINT_COUNT))
+ property_tokens = split_values(row.get(COL_CONSTRAINT_PROPERTIES))
+
+ hard = parse_constraint_yesnosome_from_properties(
+ property_tokens=property_tokens,
+ positive_terms=("hard",),
+ negative_terms=("soft",),
+ )
+ equality = parse_constraint_yesnosome_from_properties(
+ property_tokens=property_tokens,
+ positive_terms=("equality", "equal", "==", "eq"),
+ negative_terms=("inequality", "inequal", "<", ">", "<=", ">="),
+ )
+
+ types = {parse_constraint_type(t) for t in property_tokens if t.strip()}
+ if not types:
+ types = {ConstraintType.unknown}
+
+ constraints: set[Constraint] = set()
+ for ctype in types:
+ constraints.add(Constraint(type=ctype, hard=hard, equality=equality, number=number))
+ return constraints
+
+
+def parse_source(value: Any) -> set[str] | None:
+ text = normalize_text(value).lower()
+ if not text:
+ return None
+ if "real" in text:
+ return {"real-world"}
+ if "artificial" in text:
+ return {"artificial"}
+ return {normalize_text(value)}
+
+
+def parse_modality(simple_value: Any, detail_value: Any) -> set[str] | None:
+ flag = parse_yes_no_some(simple_value)
+ if flag == YesNoSome.yes:
+ detailed = split_values(detail_value)
+ return {d.lower() for d in detailed} or {"multimodal"}
+ if flag == YesNoSome.no:
+ return {"unimodal"}
+ return None
+
+
+def parse_dynamic_type(simple_value: Any, detail_value: Any) -> set[str] | None:
+ flag = parse_yes_no_some(simple_value)
+ if flag == YesNoSome.no:
+ return {"none"}
+ if flag == YesNoSome.yes:
+ detailed = split_values(detail_value)
+ return {d.lower() for d in detailed} or {"dynamic"}
+ return None
+
+
+def parse_noise_type(simple_value: Any, model_value: Any, space_value: Any, other_value: Any) -> set[str] | None:
+ flag = parse_yes_no_some(simple_value)
+ if flag == YesNoSome.no:
+ return {"none"}
+ if flag != YesNoSome.yes:
+ return None
+
+ vals = split_values(model_value) + split_values(space_value) + split_values(other_value)
+ return {v.lower() for v in vals} or {"noisy"}
+
+
+def parse_fidelity_levels(value: Any) -> set[int] | None:
+ flag = parse_yes_no_some(value)
+ if flag == YesNoSome.yes:
+ return {1, 2}
+ if flag == YesNoSome.no:
+ return {1}
+ return None
+
+
+def parse_reference(value: Any, fallback_title: str) -> set[Reference] | None:
+ text = normalize_text(value)
+ if not is_meaningful(text):
+ return None
+
+ urls = extract_urls(text)
+ if urls:
+ return {Reference(title=fallback_title, authors=[], link=Link(url=urls[0]))}
+
+ return {Reference(title=text, authors=[])}
+
+
+def _union_contains_type(annotation: Any, target: type) -> bool:
+ origin = get_origin(annotation)
+ if origin in (UnionType,):
+ return any(_union_contains_type(arg, target) for arg in get_args(annotation))
+ # typing.Union may still appear depending on runtime typing machinery.
+ if str(origin) == "typing.Union":
+ return any(_union_contains_type(arg, target) for arg in get_args(annotation))
+ return annotation is target
+
+
+def _field_allows_set_of_str(model_cls: type, field_name: str) -> bool:
+ field = model_cls.model_fields.get(field_name)
+ if field is None:
+ return True
+
+ annotation = field.annotation
+ if _union_contains_type(annotation, set):
+ return True
+
+ origin = get_origin(annotation)
+ if origin is set:
+ args = get_args(annotation)
+ return not args or args == (str,)
+
+ for arg in get_args(annotation):
+ if get_origin(arg) is set:
+ sub_args = get_args(arg)
+ if not sub_args or sub_args == (str,):
+ return True
+
+ return False
+
+
+def parse_eval_time(value: Any, model_cls: type) -> set[str] | str | None:
+ parts = split_values(value)
+ cleaned = {p.strip() for p in parts if p.strip()}
+ if not cleaned:
+ return None
+
+ if _field_allows_set_of_str(model_cls, "evaluation_time"):
+ return cleaned
+
+ # Backward compatibility for schema variants where evaluation_time is a string.
+ return "; ".join(sorted(cleaned))
+
+
+def parse_implementation_requirements(primary_link_value: Any) -> str | None:
+ text = normalize_text(primary_link_value)
+ if not text:
+ return None
+ if extract_urls(text):
+ return None
+ if text.lower() in NO_VALUE_MARKERS:
+ return None
+ return text
+
+
+def make_implementation(row: dict[str, Any], thing_name: str, used_ids: set[str]) -> tuple[str, Implementation] | None:
+ impl_links = extract_urls(row.get(COL_IMPL_LINK)) + extract_urls(row.get(COL_IMPL_LINKS))
+ impl_links = list(dict.fromkeys(impl_links))
+
+ links = [Link(type="repository", url=url) for url in impl_links] or None
+ language = normalize_text(row.get(COL_IMPL_LANG)) or None
+ eval_time = parse_eval_time(row.get(COL_EVAL_TIME), Implementation)
+ requirements = parse_implementation_requirements(row.get(COL_IMPL_LINK))
+
+ has_info = any([links, language, eval_time, requirements])
+ if not has_info:
+ return None
+
+ impl_name = thing_name
+ impl_description = normalize_text(row.get(COL_DESCRIPTION)) or f"Implementation for {thing_name}"
+
+ impl = Implementation(
+ name=impl_name,
+ description=impl_description,
+ links=links,
+ language=language,
+ evaluation_time=eval_time,
+ requirements=requirements,
+ )
+ impl_id = unique_id("impl_", thing_name, used_ids)
+ return impl_id, impl
+
+
+def make_thing(row: dict[str, Any], used_ids: set[str]) -> tuple[str, Problem | Suite | Generator, tuple[str, Implementation] | None] | None:
+ name = normalize_text(row.get(COL_NAME))
+ if not name:
+ return None
+
+ opl_type = parse_type(row.get(COL_TYPE))
+ obj = parse_objectives(row.get(COL_OBJECTIVES))
+ variables = parse_variables(row.get(COL_VARIABLE_TYPES), row.get(COL_DIM))
+ constraints = parse_constraints(row)
+ source = parse_source(row.get(COL_SOURCE))
+ modality = parse_modality(row.get(COL_MULTIMODAL), row.get(COL_MULTIMODAL_DESC))
+ dynamic_type = parse_dynamic_type(row.get(COL_DYNAMIC), row.get(COL_DYNAMIC_TYPE))
+ noise_type = parse_noise_type(
+ row.get(COL_NOISY), row.get(COL_NOISE_MODEL), row.get(COL_NOISE_SPACE), row.get(COL_NOISE_OTHER)
+ )
+ partial = parse_yes_no_some(row.get(COL_PARTIAL_EVAL))
+ objectives_independent = parse_yes_no_some(row.get(COL_OBJECTIVES_INDEPENDENT))
+ fidelity_levels = parse_fidelity_levels(row.get(COL_MULTI_FIDELITY))
+ references = parse_reference(row.get(COL_REFERENCE), fallback_title=name)
+
+ long_name = normalize_text(row.get(COL_FULL_NAME)) or None
+ description = normalize_text(row.get(COL_DESCRIPTION)) or None
+
+ impl_data = make_implementation(row, name, used_ids)
+ implementations = {impl_data[0]} if impl_data else None
+
+ common_kwargs = dict(
+ name=name,
+ long_name=long_name,
+ description=description,
+ references=references,
+ implementations=implementations,
+ objectives=obj,
+ variables=variables,
+ constraints=constraints,
+ dynamic_type=dynamic_type,
+ noise_type=noise_type,
+ allows_partial_evaluation=partial,
+ can_evaluate_objectives_independently=objectives_independent,
+ modality=modality,
+ fidelity_levels=fidelity_levels,
+ evaluation_time=parse_eval_time(row.get(COL_EVAL_TIME), Problem),
+ source=source,
+ )
+
+ if is_meaningful(row.get(COL_OTHER)):
+ common_kwargs["tags"] = {"form-submission"}
+
+ if opl_type == OPLType.problem:
+ thing = Problem(**common_kwargs)
+ thing_id = unique_id("fn_", name, used_ids)
+ elif opl_type == OPLType.suite:
+ thing = Suite(**common_kwargs)
+ thing_id = unique_id("suite_", name, used_ids)
+ else:
+ thing = Generator(**common_kwargs)
+ thing_id = unique_id("gen_", name, used_ids)
+
+ return thing_id, thing, impl_data
+
+
+def load_existing_library(path: Path) -> dict[str, Problem | Suite | Generator | Implementation]:
+ if not path.exists():
+ return {}
+
+ with path.open("r", encoding="utf-8") as in_file:
+ raw = yaml.safe_load(in_file) or {}
+
+ # PyYAML interprets bare `yes` / `no` as booleans. Also, historical files may
+ # encode unknown as either `unknown` or `?` depending on schema version.
+ # Normalize values for fields that are modeled as YesNoSome enums.
+ yes_no_some_fields = {
+ "hard",
+ "equality",
+ "allows_partial_evaluation",
+ "can_evaluate_objectives_independently",
+ }
+
+ enum_values = {str(member.value).lower(): str(member.value) for member in YesNoSome}
+ unknown_target = enum_values.get("unknown") or enum_values.get("?")
+
+ def _normalize_yes_no_some_value(value: Any) -> Any:
+ if isinstance(value, bool):
+ return enum_values.get("yes") if value else enum_values.get("no")
+
+ if isinstance(value, str):
+ lowered = value.strip().lower()
+ if lowered in {"yes", "y", "true", "1", "present"}:
+ return enum_values.get("yes")
+ if lowered in {"no", "n", "false", "0", "not present"}:
+ return enum_values.get("no")
+ if lowered in {"some", "partial", "mixed", "depends"}:
+ return enum_values.get("some")
+ if lowered in {"unknown", "?"} and unknown_target is not None:
+ return unknown_target
+
+ return value
+
+ def _normalize_yes_no_some_bools(value: Any, key: str | None = None) -> Any:
+ if isinstance(value, dict):
+ return {k: _normalize_yes_no_some_bools(v, k) for k, v in value.items()}
+ if isinstance(value, list):
+ return [_normalize_yes_no_some_bools(v, key) for v in value]
+ if key in yes_no_some_fields:
+ normalized = _normalize_yes_no_some_value(value)
+ if normalized is not None:
+ return normalized
+ return value
+
+ raw = _normalize_yes_no_some_bools(raw)
+
+ library = Library.model_validate(raw)
+ return dict(library.root)
+
+
+def dump_library(path: Path, root: dict[str, Problem | Suite | Generator | Implementation]) -> None:
+ # model_dump(mode="json") converts enums and nested pydantic models to plain YAML-safe values.
+ serializable = {key: value.model_dump(mode="json") for key, value in root.items()}
+ with path.open("w", encoding="utf-8") as out_file:
+ yaml.safe_dump(serializable, out_file, sort_keys=False, allow_unicode=False)
+
+
+def convert(
+ csv_path: Path,
+ existing_yaml_path: Path,
+ output_yaml_path: Path,
+ dry_run: bool,
+ override: bool,
+) -> tuple[int, int, int]:
+ df = pd.read_csv(csv_path).fillna("")
+ existing_root = load_existing_library(existing_yaml_path)
+
+ used_ids = set(existing_root)
+ existing_names_to_ids: dict[str, set[str]] = {}
+ for existing_id, existing_thing in existing_root.items():
+ existing_names_to_ids.setdefault(existing_thing.name.casefold(), set()).add(existing_id)
+ new_names: set[str] = set()
+
+ added_things = 0
+ added_impls = 0
+ skipped_rows = 0
+
+ for row in df.to_dict(orient="records"):
+ name = normalize_text(row.get(COL_NAME))
+ if not name:
+ skipped_rows += 1
+ continue
+
+ if name.casefold() == "test":
+ skipped_rows += 1
+ continue
+
+ key_name = name.casefold()
+ if key_name in existing_names_to_ids:
+ if not override:
+ skipped_rows += 1
+ continue
+
+ # Remove previously stored entries with the same name so this row can replace them.
+ ids_to_remove = list(existing_names_to_ids[key_name])
+ for existing_id in ids_to_remove:
+ existing_thing = existing_root.pop(existing_id, None)
+ used_ids.discard(existing_id)
+ if existing_thing is None:
+ continue
+
+ # Remove old linked implementations so references stay clean when replacing.
+ implementations = getattr(existing_thing, "implementations", None)
+ if implementations:
+ for impl_id in list(implementations):
+ existing_root.pop(impl_id, None)
+ used_ids.discard(impl_id)
+
+ existing_names_to_ids.pop(key_name, None)
+ new_names.discard(key_name)
+ elif key_name in new_names:
+ skipped_rows += 1
+ continue
+
+ result = make_thing(row, used_ids)
+ if result is None:
+ skipped_rows += 1
+ continue
+
+ thing_id, thing, impl_data = result
+ existing_root[thing_id] = thing
+ existing_names_to_ids.setdefault(key_name, set()).add(thing_id)
+ added_things += 1
+ new_names.add(key_name)
+
+ if impl_data:
+ impl_id, impl = impl_data
+ existing_root[impl_id] = impl
+ existing_names_to_ids.setdefault(key_name, set()).add(impl_id)
+ added_impls += 1
+
+ # Validate merged result before writing.
+ Library(root=existing_root)
+
+ if not dry_run:
+ dump_library(output_yaml_path, existing_root)
+
+ return added_things, added_impls, skipped_rows
+
+
+def main() -> int:
+ parser = argparse.ArgumentParser(
+ description="Convert OPL form CSV rows into schema objects and merge into a YAML library."
+ )
+ parser.add_argument("--csv", default="OPL_form.csv", help="Input CSV file")
+ parser.add_argument(
+ "--existing-yaml",
+ default="../problems.yaml",
+ help="Existing OPL library YAML to merge into",
+ )
+ parser.add_argument(
+ "--output-yaml",
+ default="../problems.yaml",
+ help="Output YAML path (defaults to updating existing file)",
+ )
+ parser.add_argument(
+ "--override",
+ action="store_true",
+ help="Override existing YAML entries with same name using form data rows",
+ )
+ parser.add_argument("--dry-run", action="store_true", help="Validate conversion without writing")
+ args = parser.parse_args()
+
+ added_things, added_impls, skipped = convert(
+ csv_path=Path(args.csv),
+ existing_yaml_path=Path(args.existing_yaml),
+ output_yaml_path=Path(args.output_yaml),
+ dry_run=args.dry_run,
+ override=args.override,
+ )
+
+ print(f"Added entities: {added_things}")
+ print(f"Added implementations: {added_impls}")
+ print(f"Skipped rows: {skipped}")
+ if args.dry_run:
+ print("Dry-run mode: output file was not written.")
+ return 0
+
+
+if __name__ == "__main__":
+ raise SystemExit(main())
\ No newline at end of file
diff --git a/formresponse_to_yaml.py b/formresponse_to_yaml.py
deleted file mode 100644
index a9f8aef..0000000
--- a/formresponse_to_yaml.py
+++ /dev/null
@@ -1,99 +0,0 @@
-import pandas as pd
-import yaml
-
-csv_file = "responses_OPL.csv"
-yaml_file = "problems.yaml"
-
-
-translations = {
- # "Timestamp",
- # "Submitter Name",
- # "Submitter Email",
- "Short name of Suite / Problem / Generator" : "name",
- "Type" : "suite/generator/single",
- "Types of input variables" : "variable type",
- "Number of Input variables (number or range or 'scalable')" : "dimensionality",
- "Number of Objectives (number or range or 'scalable')" : "objectives",
- "Problem Characteristics [Constrained]":"constraints",
- "Problem Characteristics [Dynamic]":"dynamic",
- "Problem Characteristics [Noisy]":"noise",
- "Problem Characteristics [Multi-modal]":"multimodal",
- "Problem Characteristics [Multiple fidelities]":"multi-fidelity",
- "Problem Source":"source (real-world/artificial)",
- "Link to Implementation" :"implementation",
- "Short description of problem(s)":"textual description",
- "Citation / reference": "reference",
-}
-
-translations_other = {
- "Short name of Suite / Problem / Generator" : "name",
- "Other relevant information": "general",
- "Problem Characteristics [Partial evaluations possible]" :"partial evaluations",
- "Full name of suite" : "full name",
- "Constraint Properties" : "constraint properties",
- "Number of constraints" : "number of constraints",
- "Type of Dynamicism" : "type of dynamicism",
- "Form of noise model" : "form of noise model",
- "Type of noise space" : "type of noise space",
- "Other noise properties" : "other noise properties",
- "Description of multimodality" : "description of multimodality",
- "Key challenges / characteristics" : "key challenges / characteristics",
- "Scientific motivation for the proposed suite / problem / generator" : "scientific motivation",
- "Limitations of the proposed suite / problem / generator" : "limitations",
- "Implemenation languages" : "implementation languages",
- "Approximate time to evaluate a single solution (or times if e.g. multi-fidelity)" : "approximate evaluation time",
- "Links to examples of usage of the proposed suite / problem / generator" : "links to usage examples",
-}
-
-# Read the csv file
-data = pd.read_csv(csv_file)
-
-# Handle empty cells being read as 'NaN', by emptying them again
-data = data.fillna("")
-data_main = data.rename(columns=translations)
-data_main.drop(columns=[col for col in data_main.columns if col not in translations.values()], inplace=True)
-data_other = data.rename(columns=translations_other)
-data_other.drop(columns=[col for col in data_other.columns if col not in translations_other.values()], inplace=True)
-
-dict_main = data_main.to_dict(orient="records")
-dict_other = data_other.to_dict(orient="records")
-for dict_m, dict_o in zip(dict_main, dict_other):
- for k in list(dict_o.keys()):
- if dict_o[k] is None or dict_o[k] == "":
- dict_o.pop(k)
- elif dict_o[k] == "Present":
- dict_o[k] = 'yes'
- elif dict_o[k] == "Not Present":
- dict_o[k] = 'no'
- dict_o.pop("name") # Remove duplicate name entry
- for k in list(dict_m.keys()):
- if dict_m[k] is None or dict_m[k] == "":
- dict_m.pop(k)
- elif dict_m[k] == "Present":
- dict_m[k] = 'yes'
- elif dict_m[k] == "Not Present":
- dict_m[k] = 'no'
- dict_m['other info'] = dict_o
-
-with open(yaml_file) as in_file:
- data = pd.json_normalize(yaml.safe_load(in_file))
-# print(data['name'].tolist())
-existing_names = data['name'].tolist() + ['test']
-
-#Filter out entries already in the yaml file
-dict_new = []
-for d in dict_main:
- name = d['name']
- if name not in existing_names:
- dict_new.append(d)
-
-if len(dict_new) > 0:
-
- print(f"Number of new entries to add: {len(dict_new)}")
-
- # Write the yaml file
- with open(yaml_file, "a") as out_file:
- yaml.dump(dict_new, out_file,
- sort_keys=False) # Prevent columns being reordered alphabetically
-else:
- print("No new entries to add.")
\ No newline at end of file
diff --git a/problems.yaml b/problems.yaml
index 9ff660a..c2fa150 100644
--- a/problems.yaml
+++ b/problems.yaml
@@ -1,95 +1,16 @@
-fn_ato:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: 'Parameters of the Modules of the Automatic Train Operation are optimized;
- two objectives: minimizing energy consumption and minimizing driving duration.'
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- instances: null
- long_name: null
- modality:
- - unimodal
- name: ATO
- noise_type: null
- objectives:
- - 2
- references: null
- source:
- - real-world
- tags: null
+fn_convex_dtlz2:
type: problem
- variables:
- - dim: 10
- type: continuous
-fn_building_spatial:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: box
- - equality: null
- hard: yes
- number: null
- type: unknown
- description: Optimise the spatial layout of a building to minimise energy
- consumption for climate control and minimise the strain on the structure.
- Many hard constraints; mixed-variable (continuous+binary); expensive
- evaluations.
- dynamic_type: null
- evaluation_time:
- - 40 seconds
- - 1 second
- fidelity_levels: null
- implementations:
- - impl_bso_toolbox
- instances: null
+ name: Convex DTLZ2
long_name: null
- modality: null
- name: Building spatial design
- noise_type: null
- objectives:
- - 2
+ description: Variant of DTLZ2 with a convex Pareto front (instead of concave)
+ tags: null
references:
- - authors: []
+ - title: Convex DTLZ2
+ authors: []
link:
type: null
- url: https://hdl.handle.net/1887/81789
- title: Building spatial design
- source:
- - real-world
- tags: null
- type: problem
- variables:
- - dim:
- max: null
- min: 1
- type: continuous
- - dim:
- max: null
- min: 1
- type: binary
-fn_convex_dtlz2:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: Variant of DTLZ2 with a convex Pareto front (instead of concave)
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ url: https://doi.org/10.1109/TEVC.2013.2281535
implementations: null
- instances: null
- long_name: null
- modality: null
- name: Convex DTLZ2
- noise_type: null
objectives:
- 2
- 3
@@ -100,208 +21,69 @@ fn_convex_dtlz2:
- 8
- 9
- 10
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1109/TEVC.2013.2281535
- title: Convex DTLZ2
- source: null
- tags: null
- type: problem
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-fn_emdo:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: box
- - equality: null
- hard: some
- number: null
- type: unknown
- - equality: null
- hard: yes
- number: 12
- type: unknown
- description: "# Goal\nFind a design of a synchronous electric motor for power steering
- systems that minimizes costs and satisfies all constraints.\n\n# Motivation\n\
- Challenging to find good solutions in a limited time.\n\n# Key Challenges\n* Time-consuming
- solution evaluation\n* Highly-constrained problem\n* Constraints are multimodal\n\
- \nThis is not an available problem, but could be interesting to show to researchers
- which difficulties appear in real-world problems."
- dynamic_type: null
- evaluation_time:
- - 8 minutes
- fidelity_levels: null
- implementations:
- - impl_emdo
- instances: null
- long_name: Electric Motor Design Optimization
- modality:
- - multimodal
- name: Electric Motor Design Optimization
- noise_type:
- - noisy
- objectives:
- - 1
- references:
- - authors:
- - Tea Tušar
- - Peter Korošec
- - Bogdan Filipič
- link:
- type: null
- url: https://dis.ijs.si/tea/Publications/Tusar23Multistep.pdf
- title: A Multi-Step Evaluation Process in Electric Motor Design
- source:
- - real-world
- tags: null
- type: problem
- variables:
- - dim: 13
- type: continuous
- - dim: 13
- type: integer
-fn_fleetopt:
- allows_partial_evaluation: yes
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: unknown
- description: 'UK healthcare organisation fleet optimisation: reduce the fleet of
- non-emergency healthcare trip vehicles while still ensuring all trips can be covered.
- Bilevel: upper level 54 vars, lower level 13208 vars.'
+ max: null
+ constraints: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- instances: null
- long_name: null
- modality: null
- name: FleetOpt
noise_type: null
- objectives:
- - 1
- references:
- - authors: []
- link:
- type: null
- url: https://dl.acm.org/doi/abs/10.1145/3638530.3664137
- title: FleetOpt
- source:
- - real-world
- tags: null
- type: problem
- variables:
- - dim:
- - 13208
- - 54
- type: integer
-fn_gasoline:
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: 5
- type: unknown
- description: Multi-objective optimization to minimize fuel consumption and NOx
- emissions over a two-minute dynamic duty cycle, subject to five constraints
- (turbine inlet temperature, knock occurrences, peak cylinder pressure, peak
- cylinder pressure rise, total work). Seven decision variables cover hardware
- choices and engine control parameters.
- dynamic_type: null
- evaluation_time: []
- fidelity_levels:
- - 1
- - 2
- implementations:
- - impl_gasoline
+ source: null
instances: null
+fn_invdeceptive_deceptive_rotell:
+ type: problem
+ name: InverseDeceptiveTrap+RotatedEllipsoid / DeceptiveTrap+RotatedEllipsoid
long_name: null
- modality: null
- name: Gasoline direct injection engine design
- noise_type: null
- objectives:
- - 2
+ description: null
+ tags: null
references:
- - authors: []
+ - title: Mixed-variable multi-objective test problems
+ authors: []
link:
type: null
- url: https://doi.org/10.1016/j.ejor.2022.08.032
- title: Gasoline direct injection engine design
- source:
- - real-world
- tags: null
- type: problem
- variables:
- - dim: 7
- type: continuous
- - dim: 7
- type: integer
-fn_invdeceptive_deceptive_rotell:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ url: https://doi.org/10.1145/3449726.3459521
implementations: null
- instances: null
- long_name: null
- modality: null
- name: InverseDeceptiveTrap+RotatedEllipsoid / DeceptiveTrap+RotatedEllipsoid
- noise_type: null
objectives:
- 2
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1145/3449726.3459521
- title: Mixed-variable multi-objective test problems
- source:
- - artificial
- tags: null
- type: problem
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-fn_inverted_dtlz1:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Variant of DTLZ1 with an inverted Pareto front
dynamic_type: null
- evaluation_time: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
fidelity_levels: null
- implementations: null
+ code_examples: null
+ source:
+ - artificial
instances: null
- long_name: null
- modality: null
+fn_inverted_dtlz1:
+ type: problem
name: Inverted DTLZ1
- noise_type: null
+ long_name: null
+ description: Variant of DTLZ1 with an inverted Pareto front
+ tags: null
+ references:
+ - title: Inverted DTLZ1
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1109/TEVC.2013.2281534
+ implementations: null
objectives:
- 2
- 3
@@ -312,267 +94,179 @@ fn_inverted_dtlz1:
- 8
- 9
- 10
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1109/TEVC.2013.2281534
- title: Inverted DTLZ1
- source: null
- tags: null
- type: problem
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-fn_jsec2019:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: 22
- type: unknown
+ source: null
+ instances: null
+fn_jsec2019:
+ type: problem
+ name: JSEC2019
+ long_name: null
description: expensive evaluations 3s; 22 constraints
- dynamic_type: null
- evaluation_time:
- - 3s
- fidelity_levels: null
+ tags: null
+ references:
+ - title: JPNSEC EC-Symposium 2019 competition
+ authors: []
+ link:
+ type: null
+ url: http://www.jpnsec.org/files/competition2019/EC-Symposium-2019-Competition-English.html
implementations:
- impl_jsec2019
- instances: null
- long_name: null
- modality: null
- name: JSEC2019
- noise_type: null
objectives:
- 1
- 2
- 3
- 4
- 5
- references:
- - authors: []
- link:
- type: null
- url:
- http://www.jpnsec.org/files/competition2019/EC-Symposium-2019-Competition-English.html
- title: JPNSEC EC-Symposium 2019 competition
- source:
- - real-world
- tags: null
- type: problem
variables:
- - dim: 32
- type: continuous
-fn_onemax_sphere_deceptive_rotell:
+ - type: continuous
+ dim: 32
+ constraints:
+ - type: unknown
+ hard: 'yes'
+ equality: null
+ number: 22
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints: null
- description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
+ source:
+ - real-world
instances: null
- long_name: null
- modality: null
+fn_onemax_sphere_deceptive_rotell:
+ type: problem
name: Onemax+Sphere / DeceptiveTrap+RotatedEllipsoid
- noise_type: null
- objectives:
- - 2
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: Mixed-variable multi-objective test problems
+ authors: []
link:
type: null
url: https://doi.org/10.1145/3449726.3459521
- title: Mixed-variable multi-objective test problems
- source:
- - artificial
- tags: null
- type: problem
+ implementations: null
+ objectives:
+ - 2
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-fn_onemax_sphere_zeromax_sphere:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
fidelity_levels: null
- implementations: null
+ code_examples: null
+ source:
+ - artificial
instances: null
- long_name: null
- modality: null
+fn_onemax_sphere_zeromax_sphere:
+ type: problem
name: Onemax+Sphere / Zeromax+Sphere
- noise_type: null
- objectives:
- - 2
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: Onemax+Sphere / Zeromax+Sphere
+ authors: []
link:
type: null
url: https://doi.org/10.1145/3449726.3459521
- title: Onemax+Sphere / Zeromax+Sphere
- source:
- - artificial
- tags: null
- type: problem
+ implementations: null
+ objectives:
+ - 2
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-fn_radar_waveform:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: unknown
- description: null
- dynamic_type: null
- evaluation_time: []
+ modality: null
fidelity_levels: null
- implementations:
- - impl_radar_waveform
+ code_examples: null
+ source:
+ - artificial
instances: null
- long_name: null
- modality: null
+fn_radar_waveform:
+ type: problem
name: Radar waveform
- noise_type: null
- objectives:
- - 9
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: Radar waveform design
+ authors: []
link:
type: null
url: https://doi.org/10.1007/978-3-540-70928-2_53
- title: Radar waveform design
- source:
- - real-world
- tags: null
- type: problem
- variables:
- - dim:
- max: 12
- min: 4
- type: integer
-gen_beacon:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: 0
- type: box
- description: Generator for bi-objective benchmark problems with explicitly
- controlled correlations in continuous spaces. Multimodal with random
- structure.
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
implementations:
- - impl_beacon
- long_name: Continuous Bi-objective Benchmark problems with Explicit Adjustable
- COrrelatioN control
- modality:
- - multimodal
- name: BEACON
- noise_type: null
+ - impl_radar_waveform
objectives:
- - 2
- references:
- - authors: []
- link:
- type: null
- url: https://dl.acm.org/doi/10.1145/3712255.3734303
- title: BEACON
- source:
- - artificial
- tags: null
- type: generator
+ - 9
variables:
- - dim:
- max: null
- min: 1
- type: continuous
-gen_bono_bench:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
+ - type: integer
+ dim:
+ min: 4
+ max: 12
constraints:
- - equality: null
- hard: yes
+ - type: unknown
+ hard: 'yes'
+ equality: null
number: null
- type: box
- description: Bi-objective problem generator and suite with scalable continuous
- decision space. Features complex problem properties and Pareto front
- approximations with error guarantees for the hypervolume and exact R2
- indicators.
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_bonobench
- long_name: Bi-objective Numerical Optimization Benchmark
- modality:
- - multimodal
- name: BONO-Bench
noise_type: null
- objectives:
- - 2
- references: null
- source:
- - artificial
- tags: null
- type: generator
- variables:
- - dim:
- max: null
- min: 1
- type: continuous
-gen_ealain:
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints:
- - equality: null
- hard: some
- number: null
- type: unknown
+ source:
+ - real-world
+ instances: null
+gen_ealain:
+ type: generator
+ name: Ealain
+ long_name: null
description: Real-world-like, easily extensible to increase complexity
- dynamic_type:
- - optional
- evaluation_time: null
- fidelity_levels:
- - 1
- - 2
+ tags: null
+ references:
+ - title: Ealain
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1145/3638530.3654299
implementations:
- impl_ealain
- long_name: null
- modality: null
- name: Ealain
- noise_type: null
objectives:
- 1
- 2
@@ -584,113 +278,115 @@ gen_ealain:
- 8
- 9
- 10
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1145/3638530.3654299
- title: Ealain
- source:
- - real-world-like
- tags: null
- type: generator
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: integer
+ dim:
min: 1
- type: binary
- - dim:
max: null
+ - type: binary
+ dim:
min: 1
- type: integer
-gen_gnbg:
+ max: null
+ constraints:
+ - type: unknown
+ hard: some
+ equality: null
+ number: null
+ dynamic_type:
+ - optional
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: Generator counterpart of GNBG.
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_gnbg
- long_name: null
modality: null
- name: GNBG
- noise_type: null
- objectives:
+ fidelity_levels:
- 1
+ - 2
+ code_examples: null
+ source:
+ - real-world-like
+ instances: null
+gen_gnbg:
+ type: generator
+ name: GNBG
+ long_name: null
+ description: Generator counterpart of GNBG.
+ tags: null
references:
- - authors: []
+ - title: GNBG
+ authors: []
link:
type: null
url: https://arxiv.org/abs/2312.07083
- title: GNBG
- source:
- - artificial
- tags: null
- type: generator
+ implementations:
+ - impl_gnbg
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-gen_gnbg_ii:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Generator counterpart of GNBG-II.
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_gnbg_ii
- - impl_iohgnbg
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality: null
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial
+ instances: null
+gen_gnbg_ii:
+ type: generator
name: GNBG-II
- noise_type: null
- objectives:
- - 1
+ long_name: null
+ description: Generator counterpart of GNBG-II.
+ tags: null
references:
- - authors: []
+ - title: GNBG-II
+ authors: []
link:
type: null
url: https://dl.acm.org/doi/pdf/10.1145/3712255.3734271
- title: GNBG-II
- source:
- - artificial
- tags: null
- type: generator
+ implementations:
+ - impl_iohgnbg
+ - impl_gnbg_ii
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-gen_gpd:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: some
- number: null
- type: unknown
- description: null
+ max: null
+ constraints: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality: null
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial
+ instances: null
+gen_gpd:
+ type: generator
name: GPD
- noise_type:
- - optional
+ long_name: null
+ description: null
+ tags: null
+ references:
+ - title: GPD generator
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1016/j.asoc.2020.106139
+ implementations: null
objectives:
- 2
- 3
@@ -701,138 +397,141 @@ gen_gpd:
- 8
- 9
- 10
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1016/j.asoc.2020.106139
- title: GPD generator
- source: null
- tags: null
- type: generator
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-gen_iohclustering:
+ max: null
+ constraints:
+ - type: unknown
+ hard: some
+ equality: null
+ number: null
+ dynamic_type: null
+ noise_type:
+ - optional
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: Generator counterpart of the IOHClustering suite.
- dynamic_type: null
- evaluation_time: null
+ modality: null
fidelity_levels: null
- implementations:
- - impl_iohclustering
- long_name: null
- modality:
- - multimodal
+ code_examples: null
+ source: null
+ instances: null
+gen_iohclustering:
+ type: generator
name: IOHClustering
- noise_type: null
- objectives:
- - 1
+ long_name: null
+ description: Generator counterpart of the IOHClustering suite.
+ tags: null
references:
- - authors: []
+ - title: IOHClustering
+ authors: []
link:
type: null
url: https://arxiv.org/pdf/2505.09233
- title: IOHClustering
- source:
- - artificial-from-real-data
- tags: null
- type: generator
+ implementations:
+ - impl_iohclustering
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-gen_ma_bbob:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Generator that creates affine combinations of BBOB functions
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_iohexperimenter
- - impl_ma_bbob
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality:
- multimodal
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial-from-real-data
+ instances: null
+gen_ma_bbob:
+ type: generator
name: MA-BBOB
- noise_type: null
- objectives:
- - 1
+ long_name: null
+ description: Generator that creates affine combinations of BBOB functions
+ tags: null
references:
- - authors: []
+ - title: MA-BBOB
+ authors: []
link:
type: null
url: https://doi.org/10.1145/3673908
- title: MA-BBOB
- source:
- - artificial
- tags: null
- type: generator
+ implementations:
+ - impl_iohexperimenter
+ - impl_ma_bbob
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-gen_mpm2:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: nonlinear nonseparable nonsymmetric; scalable in terms of time to
- evaluate the objective function
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_mpm2
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality:
- multimodal
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial
+ instances: null
+gen_mpm2:
+ type: generator
name: MPM2
- noise_type: null
- objectives:
- - 1
+ long_name: null
+ description: nonlinear nonseparable nonsymmetric; scalable in terms of time to evaluate
+ the objective function
+ tags: null
references:
- - authors: []
+ - title: MPM2 technical report TR15-01
+ authors: []
link:
type: null
url: https://ls11-www.cs.tu-dortmund.de/_media/techreports/tr15-01.pdf
- title: MPM2 technical report TR15-01
- source: null
- tags: null
- type: generator
+ implementations:
+ - impl_mpm2
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-gen_mubqp:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: tunable variable and objective dimensions; tunable density and
- correlation between objectives
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_mocobench
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality:
- multimodal
- - quadratic
+ fidelity_levels: null
+ code_examples: null
+ source: null
+ instances: null
+gen_mubqp:
+ type: generator
name: mUBQP
- noise_type: null
+ long_name: null
+ description: tunable variable and objective dimensions; tunable density and correlation
+ between objectives
+ tags: null
+ references:
+ - title: mUBQP benchmark
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1016/j.asoc.2013.11.008
+ implementations:
+ - impl_mocobench
objectives:
- 1
- 2
@@ -844,71 +543,38 @@ gen_mubqp:
- 8
- 9
- 10
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1016/j.asoc.2013.11.008
- title: mUBQP benchmark
- source: null
- tags: null
- type: generator
variables:
- - dim:
- max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-gen_puboi:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: A benchmark in which variable importance is tunable, based on the
- Walsh function.
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_puboi
- long_name: Polynomial Unconstrained Binary Optimization with tunable
- importance
- modality: null
- name: PUBOi
noise_type: null
- objectives:
- - 1
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ - quadratic
+ fidelity_levels: null
+ code_examples: null
+ source: null
+ instances: null
+gen_rho_mnk_landscapes:
+ type: generator
+ name: "\u03C1MNK-Landscapes"
+ long_name: null
+ description: tunable variable and objective dimensions; tunable multimodality and
+ correlation between objectives
+ tags: null
references:
- - authors: []
+ - title: On the design of multi-objective evolutionary algorithms based on NK-landscapes
+ authors: []
link:
type: null
- url: https://link.springer.com/chapter/10.1007/978-3-031-04148-8_12
- title: PUBOi
- source:
- - artificial
- tags: null
- type: generator
- variables:
- - dim:
- max: null
- min: 1
- type: binary
-gen_randoptgen:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: A Unified Random Problem Generator for Single- and
- Multi-Objective Optimization Problems with Mixed-Variable Input Spaces.
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ url: https://doi.org/10.1016/j.ejor.2012.12.019
implementations:
- - impl_randoptgen
- long_name: RandOptGen
- modality:
- - multimodal
- name: RandOptGen
- noise_type: null
+ - impl_mocobench
objectives:
- 1
- 2
@@ -920,85 +586,37 @@ gen_randoptgen:
- 8
- 9
- 10
- references: null
- source:
- - artificial
- tags: null
- type: generator
variables:
- - dim:
- max: null
- min: 1
- type: continuous
- - dim:
- max: null
+ - type: binary
+ dim:
min: 1
- type: binary
- - dim:
max: null
- min: 1
- type: integer
-gen_rho_mnk_landscapes:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
constraints: null
- description: tunable variable and objective dimensions; tunable multimodality
- and correlation between objectives
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_mocobench
- long_name: null
- modality:
- - multimodal
- name: ρMNK-Landscapes
noise_type: null
- objectives:
- - 1
- - 2
- - 3
- - 4
- - 5
- - 6
- - 7
- - 8
- - 9
- - 10
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1016/j.ejor.2012.12.019
- title: On the design of multi-objective evolutionary algorithms based on
- NK-landscapes
- source: null
- tags: null
- type: generator
- variables:
- - dim:
- max: null
- min: 1
- type: binary
-gen_rho_mtsp:
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: tunable variable and objective dimensions; tunable instance type
- (euclidean/random); tunable correlation between objectives
- dynamic_type: null
- evaluation_time: null
+ modality:
+ - multimodal
fidelity_levels: null
+ code_examples: null
+ source: null
+ instances: null
+gen_rho_mtsp:
+ type: generator
+ name: "\u03C1mTSP"
+ long_name: null
+ description: tunable variable and objective dimensions; tunable instance type (euclidean/random);
+ tunable correlation between objectives
+ tags: null
+ references:
+ - title: "On the impact of multi-objective scalability for the \u03C1mTSP"
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1007/978-3-319-45823-6_40
implementations:
- impl_mocobench
- long_name: null
- modality:
- - multimodal
- - quadratic
- name: ρmTSP
- noise_type: null
objectives:
- 1
- 2
@@ -1010,782 +628,636 @@ gen_rho_mtsp:
- 8
- 9
- 10
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1007/978-3-319-45823-6_40
- title: On the impact of multi-objective scalability for the ρmTSP
- source: null
- tags: null
- type: generator
variables:
- - dim:
- max: null
+ - type: unknown
+ dim:
min: 1
- type: unknown
-gen_wmodel:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Tunable generator for binary optimization based on several
- difficulty features
dynamic_type: null
- evaluation_time: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ - quadratic
fidelity_levels: null
- implementations:
- - impl_wmodel
- long_name: null
- modality: null
+ code_examples: null
+ source: null
+ instances: null
+gen_wmodel:
+ type: generator
name: W-model
- noise_type: null
- objectives:
- - 1
+ long_name: null
+ description: Tunable generator for binary optimization based on several difficulty
+ features
+ tags: null
references:
- - authors: []
+ - title: W-model
+ authors: []
link:
type: null
url: https://dl.acm.org/doi/abs/10.1145/3205651.3208240
- title: W-model
- source:
- - artificial
- tags: null
- type: generator
+ implementations:
+ - impl_wmodel
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-impl_beacon:
- description: Continuous Bi-objective Benchmark with Explicit Adjustable
- COrrelatioN control
- evaluation_time:
- - negligible
- language: Python
- links:
- - type: repository
- url: https://github.com/Stebbet/BEACON/
- name: BEACON
- requirements: null
- type: implementation
-impl_bonobench:
- description: Bi-objective Numerical Optimization Benchmark (BONO-Bench)
- evaluation_time: null
- language: Python
- links:
- - type: repository
- url: https://github.com/schaepermeier/bonobench
- name: BONO-Bench
- requirements: null
- type: implementation
-impl_bso_toolbox:
- description: Building Spatial Design toolbox (TU/e)
- evaluation_time:
- - 40 seconds
- - 1 second
- language: C++
- links:
- - type: repository
- url: https://github.com/TUe-excellent-buildings/BSO-toolbox
- name: BSO-toolbox
- requirements: null
- type: implementation
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial
+ instances: null
impl_car_structure:
+ type: implementation
+ name: Car-structure benchmark
description: JAXA LADSE benchmark problems
- evaluation_time: null
- language: null
links:
- type: website
url: http://ladse.eng.isas.jaxa.jp/benchmark/
- name: Car-structure benchmark
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_cec2013:
+ type: implementation
+ name: CEC2013 reference code
description: Suganthan's reference implementation
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/P-N-Suganthan/CEC2013
- name: CEC2013 reference code
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_cec2022:
+ type: implementation
+ name: CEC2022 reference code
description: Suganthan's reference implementation
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/P-N-Suganthan/2022-SO-BO
- name: CEC2022 reference code
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_cfd:
+ type: implementation
+ name: CFD test problem suite
description: Expensive real-world CFD-based test problems
- evaluation_time:
- - 15m
- - 30s
- language: null
links:
- type: repository
url: https://bitbucket.org/arahat/cfd-test-problem-suite
- name: CFD test problem suite
+ language: null
+ evaluation_time: 30s-15m
requirements: null
- type: implementation
impl_coco:
+ type: implementation
+ name: COCO framework
description: 'Comparing Continuous Optimizers: black-box optimization benchmarking
platform'
- evaluation_time: null
- language: C/Python
links:
- type: repository
url: https://github.com/numbbo/coco
- name: COCO framework
+ language: C/Python
+ evaluation_time: null
requirements: null
- type: implementation
impl_coco_legacy:
+ type: implementation
+ name: COCO legacy (bbob-noisy)
description: Archived COCO download page that hosted the bbob-noisy suite
- evaluation_time: null
- language: C/Python
links:
- type: archive
- url:
- https://web.archive.org/web/20210416065610/https://coco.gforge.inria.fr/doku.php?id=downloads
- name: COCO legacy (bbob-noisy)
+ url: https://web.archive.org/web/20210416065610/https://coco.gforge.inria.fr/doku.php?id=downloads
+ language: C/Python
+ evaluation_time: null
requirements: null
- type: implementation
impl_ealain:
+ type: implementation
+ name: Ealain
description: Real-world-like extensible benchmark problem generator
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/qrenau/Ealain
- name: Ealain
- requirements: null
- type: implementation
-impl_emdo:
- description: Not publicly available
- evaluation_time:
- - 8 minutes
- language: Python
- links: null
- name: Electric Motor Design Optimization
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_emo2017:
+ type: implementation
+ name: EMO 2017 real-world problems
description: BBComp EMO-2017 real-world problem archive
- evaluation_time: null
- language: null
links:
- type: download
- url:
- https://www.ini.rub.de/PEOPLE/glasmtbl/projects/bbcomp/downloads/realworld-problems-bbcomp-EMO-2017.zip
- name: EMO 2017 real-world problems
+ url: https://www.ini.rub.de/PEOPLE/glasmtbl/projects/bbcomp/downloads/realworld-problems-bbcomp-EMO-2017.zip
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_etmof:
+ type: implementation
+ name: ETMOF
description: Evolutionary many-task optimization framework
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/songbai-liu/etmo
- name: ETMOF
- requirements: null
- type: implementation
-impl_expobench:
- description: EXPensive Optimization benchmark library (wind farm layout, gas
- filter design, pipe shape, hyperparameter tuning, hospital simulation)
- evaluation_time:
- - 2 seconds
- - 80 seconds
- language: Python
- links:
- - type: repository
- url: https://github.com/AlgTUDelft/ExpensiveOptimBenchmark
- name: EXPObench
- requirements: null
- type: implementation
-impl_gasoline:
- description: Proprietary Matlab Simulink + Wave RT co-simulation
+ language: null
evaluation_time: null
- language: Matlab Simulink / Wave RT
- links:
- - type: paper
- url: https://doi.org/10.1016/j.ejor.2022.08.032
- name: Gasoline direct injection engine design
requirements: null
- type: implementation
impl_gbea:
+ type: implementation
+ name: coco-gbea
description: Game-Benchmark for Evolutionary Algorithms (COCO fork)
- evaluation_time:
- - 5 seconds
- - 34 seconds
- language: null
links:
- type: repository
url: https://github.com/ttusar/coco-gbea
- name: coco-gbea
+ language: null
+ evaluation_time: 5s-35s
requirements: null
- type: implementation
impl_gnbg:
+ type: implementation
+ name: GNBG Generator
description: Generalized Numerical Benchmark Generator
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/Danial-Yazdani/GNBG-Generator
- name: GNBG Generator
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_gnbg_ii:
+ type: implementation
+ name: GNBG-II
description: Generalized Numerical Benchmark Generator version 2
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/rohitsalgotra/GNBG-II
- name: GNBG-II
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_iohclustering:
+ type: implementation
+ name: IOHClustering
description: Clustering-based optimization benchmark built on ML datasets
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/IOHprofiler/IOHClustering
- name: IOHClustering
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_iohexperimenter:
+ type: implementation
+ name: IOHexperimenter
description: IOHprofiler experimenter framework
- evaluation_time: null
- language: C++/Python
links:
- type: repository
url: https://github.com/IOHprofiler/IOHexperimenter
- name: IOHexperimenter
+ language: C++/Python
+ evaluation_time: null
requirements: null
- type: implementation
impl_iohgnbg:
+ type: implementation
+ name: IOHGNBG
description: IOHprofiler version of GNBG
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/IOHprofiler/IOHGNBG
- name: IOHGNBG
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_jsec2019:
+ type: implementation
+ name: JSEC 2019 competition
description: JPNSEC EC-Symposium 2019 competition problem
- evaluation_time:
- - 3s
- language: null
links:
- type: website
- url:
- http://www.jpnsec.org/files/competition2019/EC-Symposium-2019-Competition-English.html
- name: JSEC 2019 competition
+ url: http://www.jpnsec.org/files/competition2019/EC-Symposium-2019-Competition-English.html
+ language: null
+ evaluation_time: 3s
requirements: null
- type: implementation
impl_ma_bbob:
+ type: implementation
+ name: MA-BBOB (IOHexperimenter)
description: Example notebook for MA-BBOB in IOHexperimenter
- evaluation_time: null
- language: null
links:
- type: example
- url:
- https://github.com/IOHprofiler/IOHexperimenter/blob/master/example/Competitions/MA-BBOB/Example_MABBOB.ipynb
- name: MA-BBOB (IOHexperimenter)
- requirements: null
- type: implementation
-impl_mechbench:
- description: Structural mechanics design optimization benchmark
- evaluation_time:
- - 7 minutes
- - 1 minute
- language: Python
- links:
- - type: repository
- url: https://github.com/BayesOptApp/MECHBench
- name: MECHBench
+ url: https://github.com/IOHprofiler/IOHexperimenter/blob/master/example/Competitions/MA-BBOB/Example_MABBOB.ipynb
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_mf2:
+ type: implementation
+ name: mf2
description: Multi-fidelity test function collection
- evaluation_time: null
- language: Python
links:
- type: repository
url: https://github.com/sjvrijn/mf2
- name: mf2
+ language: Python
+ evaluation_time: null
requirements: null
- type: implementation
impl_mmopp:
+ type: implementation
+ name: MMOPP
description: ECI lab distribution page for MMOPP
- evaluation_time: null
- language: null
links:
- type: website
url: http://www5.zzu.edu.cn/ecilab/info/1036/1251.htm
- name: MMOPP
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_mocobench:
+ type: implementation
+ name: mocobench
description: Multi-objective combinatorial optimization benchmark
- evaluation_time: null
- language: C++
links:
- type: repository
url: https://gitlab.com/aliefooghe/mocobench/
- name: mocobench
+ language: C++
+ evaluation_time: null
requirements: null
- type: implementation
impl_modact:
+ type: implementation
+ name: modact
description: EPFL-LAMD modact package
- evaluation_time:
- - 20ms
- language: null
links:
- type: repository
url: https://github.com/epfl-lamd/modact
- name: modact
+ language: null
+ evaluation_time: 20ms
requirements: null
- type: implementation
impl_morepo:
+ type: implementation
+ name: MOrepo
description: Multi-objective optimisation problem repository
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/MCDMSociety/MOrepo
- name: MOrepo
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_mpm2:
+ type: implementation
+ name: MPM2 (smoof)
description: Python implementation of MPM2 distributed with smoof
- evaluation_time: null
- language: Python
links:
- type: source
url: https://github.com/jakobbossek/smoof/blob/master/inst/mpm2.py
- name: MPM2 (smoof)
- requirements: null
- type: implementation
-impl_puboi:
- description: A benchmark in which variable importance is tunable, based on the
- Walsh function
- evaluation_time: null
- language: Python / C++
- links:
- - type: repository
- url: https://gitlab.com/verel/pubo-importance-benchmark
- name: PUBO Importance Benchmark
- requirements: null
- type: implementation
-impl_pycutest:
- description: Python interface to CUTEst
+ language: Python
evaluation_time: null
- language: Python / C++ / Fortran
- links:
- - type: repository
- url: https://github.com/jfowkes/pycutest
- name: pycutest
requirements: null
- type: implementation
impl_pymoo:
+ type: implementation
+ name: pymoo
description: Multi-objective optimization in Python
- evaluation_time: null
- language: Python
links:
- type: repository
url: https://github.com/anyoptimization/pymoo
- name: pymoo
+ language: Python
+ evaluation_time: null
requirements: null
- type: implementation
impl_radar_waveform:
+ type: implementation
+ name: Evan Hughes radar waveform code
description: Radar waveform design reference implementation
- evaluation_time: null
- language: null
links:
- type: website
url: http://code.evanhughes.org/
- name: Evan Hughes radar waveform code
- requirements: null
- type: implementation
-impl_randoptgen:
- description: Unified Random Problem Generator for Single- and Multi-Objective
- Optimization with Mixed-Variable Input Spaces
- evaluation_time:
- - milliseconds
- language: Python
- links:
- - type: repository
- url: https://github.com/MALEO-research-group/RandOptGen
- - type: example
- url: https://doi.org/10.1145/3712256.3726478
- name: RandOptGen
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_reproblems:
+ type: implementation
+ name: reproblems
description: Real-world inspired multi-objective optimization problem suite
- evaluation_time: null
- language: Python
links:
- type: repository
url: https://github.com/ryojitanabe/reproblems
- name: reproblems
+ language: Python
+ evaluation_time: null
requirements: null
- type: implementation
impl_transfer_rf_bbob_rw:
- description: Real-world BBOB-like problem implementations (Porkchop,
- KinematicsRobotArm)
- evaluation_time: null
- language: null
+ type: implementation
+ name: Transfer Random Forests BBOB Real-world
+ description: Real-world BBOB-like problem implementations (Porkchop, KinematicsRobotArm)
links:
- type: repository
url: https://github.com/ShuaiqunPan/Transfer_Random_forests_BBOB_Real_world
- name: Transfer Random Forests BBOB Real-world
- requirements: null
- type: implementation
-impl_tulipa:
- description: Large linear program for optimal investment and operation of
- energy systems
- evaluation_time:
- - hours
- - minutes
- language: Julia / JuMP
- links:
- - type: website
- url: https://tulipaenergy.github.io/TulipaEnergyModel.jl/stable/
- - type: example
- url: https://github.com/TulipaEnergy/Tulipa-OBZ-CaseStudy
- name: TulipaEnergyModel.jl
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_vehicle_dynamics:
+ type: implementation
+ name: VehicleDynamics (Zenodo)
description: Zenodo archive for the vehicle dynamics benchmark
- evaluation_time: null
- language: null
links:
- type: archive
url: https://zenodo.org/records/8307853
- name: VehicleDynamics (Zenodo)
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
impl_wmodel:
+ type: implementation
+ name: BBDOB W-Model
description: Tunable generator for binary optimization
- evaluation_time: null
- language: null
links:
- type: repository
url: https://github.com/thomasWeise/BBDOB_W_Model
- name: BBDOB W-Model
+ language: null
+ evaluation_time: null
requirements: null
- type: implementation
suite_amvop:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- long_name: null
- modality:
- - multimodal
+ type: suite
name: AMVOP
- noise_type: null
- objectives:
- - 1
- problems: null
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: AMVOP
+ authors: []
link:
type: null
url: https://doi.org/10.1109/TEVC.2013.2281531
- title: AMVOP
- source: null
- tags: null
- type: suite
+ implementations: null
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: categorical
+ dim:
min: 1
- type: integer
- - dim:
max: null
+ - type: integer
+ dim:
min: 1
- type: categorical
-suite_bbob:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_coco
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality:
- multimodal
- name: BBOB
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_bbob:
+ type: suite
+ name: BBOB
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: 'COCO: a platform for comparing continuous optimizers in a black-box setting'
+ authors: []
link:
type: null
url: https://doi.org/10.1080/10556788.2020.1808977
- title: 'COCO: a platform for comparing continuous optimizers in a black-box setting'
- source: null
- tags: null
- type: suite
+ implementations:
+ - impl_coco
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_bbob_biobj:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_coco
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality:
- multimodal
- name: BBOB-biobj
- noise_type: null
- objectives:
- - 2
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_bbob_biobj:
+ type: suite
+ name: BBOB-biobj
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: BBOB bi-objective test suite
+ authors: []
link:
type: null
url: https://doi.org/10.48550/arXiv.1604.00359
- title: BBOB bi-objective test suite
- source: null
- tags: null
- type: suite
+ implementations:
+ - impl_coco
+ objectives:
+ - 2
variables:
- - dim:
- max: 40
+ - type: continuous
+ dim:
min: 2
- type: continuous
-suite_bbob_biobj_mixint:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: 40
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_coco
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality:
- multimodal
- name: BBOB-biobj-mixint
- noise_type: null
- objectives:
- - 2
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_bbob_biobj_mixint:
+ type: suite
+ name: BBOB-biobj-mixint
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: BBOB bi-objective mixed-integer test suite
+ authors: []
link:
type: null
url: https://doi.org/10.1145/3321707.3321868
- title: BBOB bi-objective mixed-integer test suite
- source: null
- tags: null
- type: suite
+ implementations:
+ - impl_coco
+ objectives:
+ - 2
variables:
- - dim:
- max: 160
+ - type: continuous
+ dim:
min: 5
- type: integer
- - dim:
max: 160
+ - type: integer
+ dim:
min: 5
- type: continuous
-suite_bbob_constrained:
+ max: 160
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: unknown
- description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_coco
- long_name: null
modality:
- multimodal
- name: BBOB-constrained
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_bbob_constrained:
+ type: suite
+ name: BBOB-constrained
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: bbob-constrained documentation
+ authors: []
link:
type: null
url: http://numbbo.github.io/coco-doc/bbob-constrained/
- title: bbob-constrained documentation
- source: null
- tags: null
- type: suite
+ implementations:
+ - impl_coco
+ objectives:
+ - 1
variables:
- - dim:
- max: 40
+ - type: continuous
+ dim:
min: 2
- type: continuous
-suite_bbob_largescale:
+ max: 40
+ constraints:
+ - type: unknown
+ hard: 'yes'
+ equality: null
+ number: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_coco
- long_name: null
modality:
- multimodal
- name: BBOB-largescale
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_bbob_largescale:
+ type: suite
+ name: BBOB-largescale
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: BBOB large-scale test suite
+ authors: []
link:
type: null
url: https://doi.org/10.48550/arXiv.1903.06396
- title: BBOB large-scale test suite
- source: null
- tags: null
- type: suite
+ implementations:
+ - impl_coco
+ objectives:
+ - 1
variables:
- - dim:
- max: 640
+ - type: continuous
+ dim:
min: 20
- type: continuous
-suite_bbob_mixint:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: 640
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_coco
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality:
- multimodal
- name: BBOB-mixint
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_bbob_mixint:
+ type: suite
+ name: BBOB-mixint
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: BBOB mixed-integer test suite
+ authors: []
link:
type: null
url: https://doi.org/10.1145/3321707.3321868
- title: BBOB mixed-integer test suite
- source: null
- tags: null
- type: suite
+ implementations:
+ - impl_coco
+ objectives:
+ - 1
variables:
- - dim:
- max: 160
+ - type: continuous
+ dim:
min: 5
- type: integer
- - dim:
max: 160
+ - type: integer
+ dim:
min: 5
- type: continuous
-suite_bbob_noisy:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: 160
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_coco_legacy
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality:
- multimodal
- name: BBOB-noisy
- noise_type:
- - noisy
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_bbob_noisy:
+ type: suite
+ name: BBOB-noisy
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: 'Real-parameter black-box optimization benchmarking: noisy functions definitions'
+ authors: []
link:
type: null
url: https://hal.inria.fr/inria-00369466
- title: 'Real-parameter black-box optimization benchmarking: noisy functions definitions'
- source: null
- tags: null
- type: suite
+ implementations:
+ - impl_coco_legacy
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_bp:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type:
+ - noisy
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source: null
+ problems: null
+suite_bp:
+ type: suite
+ name: BP
+ long_name: null
description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: BP benchmark
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1109/CEC.2019.8790277
implementations: null
- long_name: null
- modality: null
- name: BP
- noise_type:
- - unknown
objectives:
- 2
- 3
@@ -1796,121 +1268,71 @@ suite_bp:
- 8
- 9
- 10
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1109/CEC.2019.8790277
- title: BP benchmark
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_brachytherapy:
- allows_partial_evaluation: yes
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number:
max: null
- min: 1
- type: unknown
- description: Treatment planning for internal radiation therapy.
- Multi-objective with aggregated objectives; no public source code.
+ constraints: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels:
- - 1
- - 2
- implementations: null
- long_name: Brachytherapy treatment planning
- modality:
- - multimodal
- name: Brachytherapy treatment planning
- noise_type: null
- objectives:
- - 2
- - 3
+ noise_type:
+ - unknown
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_car_structure:
+ type: suite
+ name: Car structure
+ long_name: null
+ description: 54 constraints
+ tags: null
references:
- - authors: []
+ - title: Car structure design benchmark
+ authors: []
link:
type: null
- url: https://www.sciencedirect.com/science/article/pii/S1538472123016781
- title: Brachytherapy treatment planning
- source:
- - real-world
- tags: null
- type: suite
+ url: https://doi.org/10.1145/3205651.3205702
+ implementations:
+ - impl_car_structure
+ objectives:
+ - 2
variables:
- - dim:
- max: 500
- min: 100
- type: continuous
-suite_car_structure:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ - type: integer
+ dim:
+ min: 144
+ max: 222
constraints:
- - equality: null
- hard: yes
+ - type: unknown
+ hard: 'yes'
+ equality: null
number: 54
- type: unknown
- description: 54 constraints
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_car_structure
- long_name: null
- modality: null
- name: Car structure
noise_type: null
- objectives:
- - 2
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1145/3205651.3205702
- title: Car structure design benchmark
- source:
- - real-world
- tags: null
- type: suite
- variables:
- - dim:
- max: 222
- min: 144
- type: integer
-suite_cdmp:
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: unknown
+ source:
+ - real-world
+ problems: null
+suite_cdmp:
+ type: suite
+ name: CDMP
+ long_name: null
description: null
- dynamic_type:
- - unknown
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: CDMP benchmark
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1145/3321707.3321878
implementations: null
- long_name: null
- modality: null
- name: CDMP
- noise_type:
- - unknown
objectives:
- 2
- 3
@@ -1921,357 +1343,262 @@ suite_cdmp:
- 8
- 9
- 10
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1145/3321707.3321878
- title: CDMP benchmark
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_cec2013:
+ max: null
+ constraints:
+ - type: unknown
+ hard: 'yes'
+ equality: null
+ number: null
+ dynamic_type:
+ - unknown
+ noise_type:
+ - unknown
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: suite used for cec2013 competition. Also in IOH.
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_iohexperimenter
- - impl_cec2013
- long_name: null
modality: null
- name: CEC2013
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_cec2013:
+ type: suite
+ name: CEC2013
+ long_name: null
+ description: suite used for cec2013 competition. Also in IOH.
+ tags: null
references:
- - authors: []
+ - title: CEC2013 definitions
+ authors: []
link:
type: null
url: https://peerj.com/articles/cs-2671/CEC2013.pdf
- title: CEC2013 definitions
- source:
- - artificial
- tags: null
- type: suite
+ implementations:
+ - impl_cec2013
+ - impl_iohexperimenter
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_cec2015_dmoo:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints:
- - equality: null
- hard: unknown
- number: null
- type: unknown
+ source:
+ - artificial
+ problems: null
+suite_cec2015_dmoo:
+ type: suite
+ name: CEC2015-DMOO
+ long_name: null
description: null
- dynamic_type:
- - dynamic
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: Benchmark Functions for CEC 2015 Special Session and Competition on Dynamic
+ Multi-objective Optimization
+ authors: []
+ link: null
implementations: null
- long_name: null
- modality: null
- name: CEC2015-DMOO
- noise_type: null
objectives:
- 2
- 3
- problems: null
- references:
- - authors: []
- link: null
- title: Benchmark Functions for CEC 2015 Special Session and Competition on
- Dynamic Multi-objective Optimization
- source: null
- tags: null
- type: suite
variables:
- - dim: 0
- type: continuous
-suite_cec2018_dt:
+ - type: continuous
+ dim: 0
+ constraints:
+ - type: unknown
+ hard: '?'
+ equality: null
+ number: null
+ dynamic_type:
+ - dynamic
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source: null
+ problems: null
+suite_cec2018_dt:
+ type: suite
+ name: CEC2018 DT
+ long_name: CEC2018 Competition on Dynamic Multiobjective Optimisation
description: '14 problems. Time-dependent: Pareto front/Pareto set geometry; irregular
Pareto front shapes; variable-linkage; number of disconnected Pareto front segments;
etc.'
- dynamic_type:
- - dynamic
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: CEC2018 DMOP Competition TR
+ authors: []
+ link:
+ type: null
+ url: https://www.academia.edu/download/94499025/TR-CEC2018-DMOP-Competition.pdf
implementations:
- impl_pymoo
- long_name: CEC2018 Competition on Dynamic Multiobjective Optimisation
- modality: null
- name: CEC2018 DT
- noise_type: null
objectives:
- 2
- 3
- problems: null
- references:
- - authors: []
- link:
- type: null
- url:
- https://www.academia.edu/download/94499025/TR-CEC2018-DMOP-Competition.pdf
- title: CEC2018 DMOP Competition TR
- source:
- - artificial
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: unknown
+ dim:
min: 1
- type: unknown
-suite_cec2022:
+ max: null
+ constraints: null
+ dynamic_type:
+ - dynamic
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source:
+ - artificial
+ problems: null
+suite_cec2022:
+ type: suite
+ name: CEC2022
+ long_name: null
description: suite used for cec2022 competition. Also in IOH.
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: CEC2022 TR
+ authors: []
+ link:
+ type: null
+ url: https://github.com/P-N-Suganthan/2022-SO-BO/blob/main/CEC2022%20TR.pdf
implementations:
- - impl_iohexperimenter
- impl_cec2022
- long_name: null
- modality: null
- name: CEC2022
- noise_type: null
+ - impl_iohexperimenter
objectives:
- 1
- problems: null
- references:
- - authors: []
- link:
- type: null
- url:
- https://github.com/P-N-Suganthan/2022-SO-BO/blob/main/CEC2022%20TR.pdf
- title: CEC2022 TR
- source:
- - artificial
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_cfd:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: unknown
+ source:
+ - artificial
+ problems: null
+suite_cfd:
+ type: suite
+ name: CFD
+ long_name: null
description: expensive evaluations 30s-15m
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: CFD test problem suite
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1007/978-3-319-99259-4_24
implementations:
- impl_cfd
- long_name: null
- modality: null
- name: CFD
- noise_type: null
objectives:
- 1
- 2
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1007/978-3-319-99259-4_24
- title: CFD test problem suite
- source:
- - real-world
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: unknown
+ dim:
min: 1
- type: unknown
-suite_cre:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints:
- - equality: null
- hard: yes
+ - type: unknown
+ hard: 'yes'
+ equality: null
number: null
- type: unknown
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_reproblems
- long_name: null
- modality: null
- name: CRE
noise_type: null
- objectives:
- - 2
- - 3
- - 4
- - 5
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - real-world
problems: null
+suite_cre:
+ type: suite
+ name: CRE
+ long_name: null
+ description: null
+ tags: null
references:
- - authors:
+ - title: Easy-to-evaluate real-world multi-objective optimization problems
+ authors:
- Ryoji Tanabe
- Hisao Ishibuchi
link:
type: null
url: https://doi.org/10.1016/j.asoc.2020.106078
- title: Easy-to-evaluate real-world multi-objective optimization problems
- source:
- - real-world-like
- tags: null
- type: suite
+ implementations:
+ - impl_reproblems
+ objectives:
+ - 2
+ - 3
+ - 4
+ - 5
variables:
- - dim:
- max: 7
+ - type: continuous
+ dim:
min: 3
- type: continuous
- - dim:
max: 7
+ - type: integer
+ dim:
min: 3
- type: integer
-suite_cuter:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: 7
constraints:
- - equality: null
- hard: yes
+ - type: unknown
+ hard: 'yes'
+ equality: null
number: null
- type: unknown
- description: A constrained and unconstrained testing environment.
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- long_name: null
- modality: null
- name: CUTEr
noise_type: null
- objectives:
- - 1
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://dl.acm.org/doi/10.1145/962437.962439
- title: CUTEr
- source:
- - artificial
- tags: null
- type: suite
- variables:
- - dim:
- max: null
- min: 1
- type: continuous
- - dim:
- max: null
- min: 1
- type: binary
- - dim:
- max: null
- min: 1
- type: integer
-suite_cutest:
- allows_partial_evaluation: no
+ allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: box
- - equality: null
- hard: some
- number:
- max: null
- min: 1
- type: unknown
- description: CUTEst for optimization software
- dynamic_type: null
- evaluation_time: null
+ modality: null
fidelity_levels: null
- implementations:
- - impl_pycutest
- long_name: Constrained and Unconstrained Testing Environment with safe threads
- modality:
- - multimodal
- name: CUTEst
- noise_type: null
- objectives:
- - 1
+ code_examples: null
+ source:
+ - real-world-like
problems: null
+suite_dtlz:
+ type: suite
+ name: DTLZ
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: Scalable multi-objective optimization test problems
+ authors:
+ - Kalyanmoy Deb
+ - Lothar Thiele
+ - Marco Laumanns
+ - Eckart Zitzler
link:
type: null
- url: https://link.springer.com/article/10.1007/s10589-014-9687-3
- title: CUTEst
- source:
- - artificial
- tags: null
- type: suite
- variables:
- - dim:
- max: null
- min: 1
- type: continuous
- - dim:
- max: null
- min: 1
- type: binary
- - dim:
- max: null
- min: 1
- type: integer
-suite_dtlz:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ url: https://doi.org/10.1109/CEC.2002.1007032
implementations:
- impl_pymoo
- long_name: null
- modality: null
- name: DTLZ
- noise_type: null
objectives:
- 2
- 3
@@ -2282,108 +1609,100 @@ suite_dtlz:
- 8
- 9
- 10
- problems: null
- references:
- - authors:
- - Kalyanmoy Deb
- - Lothar Thiele
- - Marco Laumanns
- - Eckart Zitzler
- link:
- type: null
- url: https://doi.org/10.1109/CEC.2002.1007032
- title: Scalable multi-objective optimization test problems
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_dynamicbinval:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: Four versions of the dynamic binary value problem
- dynamic_type:
- - dynamic
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_iohexperimenter
- long_name: null
modality: null
- name: DynamicBinVal
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_dynamicbinval:
+ type: suite
+ name: DynamicBinVal
+ long_name: null
+ description: Four versions of the dynamic binary value problem
+ tags: null
references:
- - authors: []
+ - title: DynamicBinVal
+ authors: []
link:
type: null
url: https://arxiv.org/pdf/2404.15837
- title: DynamicBinVal
- source:
- - artificial
- tags: null
- type: suite
+ implementations:
+ - impl_iohexperimenter
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-suite_emo2017:
+ max: null
+ constraints: null
+ dynamic_type:
+ - dynamic
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_emo2017
- long_name: null
modality: null
- name: EMO2017
- noise_type: null
- objectives:
- - 2
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial
problems: null
+suite_emo2017:
+ type: suite
+ name: EMO2017
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: BBComp EMO 2017
+ authors: []
link:
type: null
url: https://www.ini.rub.de/PEOPLE/glasmtbl/projects/bbcomp/
- title: BBComp EMO 2017
- source:
- - real-world
- tags: null
- type: suite
+ implementations:
+ - impl_emo2017
+ objectives:
+ - 2
variables:
- - dim:
- max: 24
+ - type: continuous
+ dim:
min: 4
- type: continuous
-suite_etmof:
+ max: 24
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source:
+ - real-world
+ problems: null
+suite_etmof:
+ type: suite
+ name: ETMOF
+ long_name: null
description: null
- dynamic_type:
- - dynamic
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: Evolutionary many-task optimization framework
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.48550/arXiv.2110.08033
implementations:
- impl_etmof
- long_name: null
- modality: null
- name: ETMOF
- noise_type: null
objectives:
- 2
- 3
@@ -2434,294 +1753,236 @@ suite_etmof:
- 48
- 49
- 50
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.48550/arXiv.2110.08033
- title: Evolutionary many-task optimization framework
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: 10000
+ - type: continuous
+ dim:
min: 25
- type: continuous
-suite_expobench:
- allows_partial_evaluation: no
+ max: 10000
+ constraints: null
+ dynamic_type:
+ - dynamic
+ noise_type: null
+ allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: box
- - equality: null
- hard: some
- number: null
- type: unknown
- description: Wind farm layout optimization, gas filter design, pipe shape
- optimization, hyperparameter tuning, and hospital simulation
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_expobench
- long_name: EXPensive Optimization benchmark library
- modality: null
- name: EXPObench
- noise_type:
- - real-life
- - observational
- objectives:
- - 1
+ source: null
problems: null
+suite_gbea:
+ type: suite
+ name: GBEA
+ long_name: null
+ description: expensive evaluations 5s-35s, RW-GAN-Mario and TopTrumps are part of
+ GBEA
+ tags: null
references:
- - authors: []
+ - title: Game benchmark for evolutionary algorithms
+ authors: []
link:
type: null
- url: https://doi.org/10.1016/j.asoc.2023.110744
- title: EXPObench
- source:
- - real-world
- tags: null
- type: suite
- variables:
- - dim:
- max: 135
- min: 10
- type: integer
- - dim:
- max: 135
- min: 10
- type: categorical
- - dim:
- max: 135
- min: 10
- type: continuous
-suite_gbea:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: expensive evaluations 5s-35s, RW-GAN-Mario and TopTrumps are part
- of GBEA
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ url: https://doi.org/10.1145/3321707.3321805
implementations:
- impl_gbea
- long_name: null
- modality:
- - multimodal
- name: GBEA
- noise_type:
- - noisy
objectives:
- 1
- 2
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1145/3321707.3321805
- title: Game benchmark for evolutionary algorithms
- source:
- - real-world
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_gnbg:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Generalized Numerical Benchmark Generator
dynamic_type: null
- evaluation_time: null
+ noise_type:
+ - noisy
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
fidelity_levels: null
- implementations:
- - impl_gnbg
- long_name: null
- modality: null
- name: GNBG
- noise_type: null
- objectives:
- - 1
+ code_examples: null
+ source:
+ - real-world
problems: null
+suite_gnbg:
+ type: suite
+ name: GNBG
+ long_name: null
+ description: Generalized Numerical Benchmark Generator
+ tags: null
references:
- - authors: []
+ - title: GNBG
+ authors: []
link:
type: null
url: https://arxiv.org/abs/2312.07083
- title: GNBG
- source:
- - artificial
- tags: null
- type: suite
+ implementations:
+ - impl_gnbg
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_gnbg_ii:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Generalized Numerical Benchmark Generator (version 2). Also
- available in IOH.
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_gnbg_ii
- - impl_iohgnbg
- long_name: null
- modality: null
- name: GNBG-II
noise_type: null
- objectives:
- - 1
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial
problems: null
+suite_gnbg_ii:
+ type: suite
+ name: GNBG-II
+ long_name: null
+ description: Generalized Numerical Benchmark Generator (version 2). Also available
+ in IOH.
+ tags: null
references:
- - authors: []
+ - title: GNBG-II
+ authors: []
link:
type: null
url: https://dl.acm.org/doi/pdf/10.1145/3712255.3734271
- title: GNBG-II
- source:
- - artificial
- tags: null
- type: suite
+ implementations:
+ - impl_iohgnbg
+ - impl_gnbg_ii
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_iohclustering:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source:
+ - artificial
+ problems: null
+suite_iohclustering:
+ type: suite
+ name: IOHClustering
+ long_name: null
description: 'Set of benchmark problems from clustering: optimization task is selecting
cluster centers for a given set of data.'
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_iohclustering
- long_name: null
- modality:
- - multimodal
- name: IOHClustering
- noise_type: null
- objectives:
- - 1
- problems: null
+ tags: null
references:
- - authors: []
+ - title: IOHClustering
+ authors: []
link:
type: null
url: https://arxiv.org/pdf/2505.09233
- title: IOHClustering
- source:
- - artificial-from-real-data
- tags: null
- type: suite
+ implementations:
+ - impl_iohclustering
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_kinematics_robotarm:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_transfer_rf_bbob_rw
- long_name: null
- modality:
- - unimodal
- name: KinematicsRobotArm
noise_type: null
- objectives:
- - 1
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial-from-real-data
problems: null
+suite_kinematics_robotarm:
+ type: suite
+ name: KinematicsRobotArm
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: Kinematics of a robot arm
+ authors: []
link:
type: null
url: https://doi.org/10.1023/A:1013258808932
- title: Kinematics of a robot arm
- source:
- - real-world
- tags: null
- type: suite
+ implementations:
+ - impl_transfer_rf_bbob_rw
+ objectives:
+ - 1
variables:
- - dim: 21
- type: continuous
-suite_l1_zdt:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ - type: continuous
+ dim: 21
constraints: null
- description: Variant of ZDT with linkages between variables within groups
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- long_name: null
- modality: null
- name: L1-ZDT
noise_type: null
- objectives:
- - 2
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality:
+ - unimodal
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - real-world
problems: null
+suite_l1_zdt:
+ type: suite
+ name: L1-ZDT
+ long_name: null
+ description: Variant of ZDT with linkages between variables within groups
+ tags: null
references:
- - authors: []
+ - title: Linkage ZDT/DTLZ variants
+ authors: []
link:
type: null
url: https://doi.org/10.1145/1143997.1144179
- title: Linkage ZDT/DTLZ variants
- source: null
- tags: null
- type: suite
+ implementations: null
+ objectives:
+ - 2
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-suite_l2_dtlz:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Variant of DTLZ2/DTLZ3 with linkages between all variables
dynamic_type: null
- evaluation_time: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
fidelity_levels: null
- implementations: null
- long_name: null
- modality: null
+ code_examples: null
+ source: null
+ problems: null
+suite_l2_dtlz:
+ type: suite
name: L2-DTLZ
- noise_type: null
+ long_name: null
+ description: Variant of DTLZ2/DTLZ3 with linkages between all variables
+ tags: null
+ references:
+ - title: Linkage ZDT/DTLZ variants
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1145/1143997.1144179
+ implementations: null
objectives:
- 2
- 3
@@ -2732,70 +1993,68 @@ suite_l2_dtlz:
- 8
- 9
- 10
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1145/1143997.1144179
- title: Linkage ZDT/DTLZ variants
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_l2_zdt:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Variant of ZDT with linkages between all variables
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- long_name: null
- modality: null
- name: L2-ZDT
noise_type: null
- objectives:
- - 2
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_l2_zdt:
+ type: suite
+ name: L2-ZDT
+ long_name: null
+ description: Variant of ZDT with linkages between all variables
+ tags: null
references:
- - authors: []
+ - title: Linkage ZDT/DTLZ variants
+ authors: []
link:
type: null
url: https://doi.org/10.1145/1143997.1144179
- title: Linkage ZDT/DTLZ variants
- source: null
- tags: null
- type: suite
+ implementations: null
+ objectives:
+ - 2
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-suite_l3_dtlz:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source: null
+ problems: null
+suite_l3_dtlz:
+ type: suite
+ name: L3-DTLZ
+ long_name: null
description: Variant of L2-DTLZ with anti-linkage mapping
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: Linkage ZDT/DTLZ variants
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1145/1143997.1144179
implementations: null
- long_name: null
- modality: null
- name: L3-DTLZ
- noise_type: null
objectives:
- 2
- 3
@@ -2806,71 +2065,68 @@ suite_l3_dtlz:
- 8
- 9
- 10
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1145/1143997.1144179
- title: Linkage ZDT/DTLZ variants
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_l3_zdt:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Variant of L2-ZDT with anti-linkage mapping
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- long_name: null
- modality: null
- name: L3-ZDT
noise_type: null
- objectives:
- - 2
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_l3_zdt:
+ type: suite
+ name: L3-ZDT
+ long_name: null
+ description: Variant of L2-ZDT with anti-linkage mapping
+ tags: null
references:
- - authors: []
+ - title: Linkage ZDT/DTLZ variants
+ authors: []
link:
type: null
url: https://doi.org/10.1145/1143997.1144179
- title: Linkage ZDT/DTLZ variants
- source: null
- tags: null
- type: suite
+ implementations: null
+ objectives:
+ - 2
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-suite_maop:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source: null
+ problems: null
+suite_maop:
+ type: suite
+ name: MaOP
+ long_name: null
description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: MaOP benchmark
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1016/j.swevo.2019.02.003
implementations: null
- long_name: null
- modality: null
- name: MaOP
- noise_type:
- - unknown
objectives:
- 2
- 3
@@ -2881,112 +2137,68 @@ suite_maop:
- 8
- 9
- 10
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1016/j.swevo.2019.02.003
- title: MaOP benchmark
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_mechbench:
- allows_partial_evaluation: no
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number:
- - 1
- - 2
- type: unknown
- description: Set of problems inspired by Structural Mechanics Design
- Optimization. Embeds physical simulations (plasticity only, no
- fracture/damage). Unstructured/non-isotropic multimodality.
+ max: null
+ constraints: null
dynamic_type: null
- evaluation_time: null
+ noise_type:
+ - unknown
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
fidelity_levels: null
- implementations:
- - impl_mechbench
- long_name: MECHBench
- modality:
- - multimodal
- name: MECHBench
- noise_type: null
- objectives:
- - 1
+ code_examples: null
+ source: null
problems: null
+suite_mf2:
+ type: suite
+ name: MF2
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: 'mf2: a collection of multi-fidelity benchmark functions in Python'
+ authors: []
link:
type: null
- url: https://arxiv.org/abs/2511.10821
- title: MECHBench
- source:
- - real-world
- tags: null
- type: suite
+ url: https://doi.org/10.21105/joss.02049
+ implementations:
+ - impl_mf2
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_mf2:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
fidelity_levels:
- 1
- 2
- implementations:
- - impl_mf2
- long_name: null
- modality: null
- name: MF2
- noise_type: null
- objectives:
- - 1
+ code_examples: null
+ source: null
problems: null
+suite_minus_dtlz:
+ type: suite
+ name: Minus DTLZ
+ long_name: null
+ description: Variant of DTLZ that minimises the inverse of the base DTLZ functions
+ tags: null
references:
- - authors: []
+ - title: Minus DTLZ / Minus WFG
+ authors: []
link:
type: null
- url: https://doi.org/10.21105/joss.02049
- title: 'mf2: a collection of multi-fidelity benchmark functions in Python'
- source: null
- tags: null
- type: suite
- variables:
- - dim:
- max: null
- min: 1
- type: continuous
-suite_minus_dtlz:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: Variant of DTLZ that minimises the inverse of the base DTLZ
- functions
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ url: https://doi.org/10.1109/TEVC.2016.2587749
implementations: null
- long_name: null
- modality: null
- name: Minus DTLZ
- noise_type: null
objectives:
- 2
- 3
@@ -2997,36 +2209,34 @@ suite_minus_dtlz:
- 8
- 9
- 10
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1109/TEVC.2016.2587749
- title: Minus DTLZ / Minus WFG
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_minus_wfg:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: Variant of WFG that minimises the inverse of the base WFG
- functions
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- long_name: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
modality: null
+ fidelity_levels: null
+ code_examples: null
+ source: null
+ problems: null
+suite_minus_wfg:
+ type: suite
name: Minus WFG
- noise_type: null
+ long_name: null
+ description: Variant of WFG that minimises the inverse of the base WFG functions
+ tags: null
+ references:
+ - title: Minus DTLZ / Minus WFG
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1109/TEVC.2016.2587749
+ implementations: null
objectives:
- 2
- 3
@@ -3037,41 +2247,35 @@ suite_minus_wfg:
- 8
- 9
- 10
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1109/TEVC.2016.2587749
- title: Minus DTLZ / Minus WFG
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_mmopp:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: unknown
+ source: null
+ problems: null
+suite_mmopp:
+ type: suite
+ name: MMOPP
+ long_name: null
description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: MMOPP technical report
+ authors: []
+ link:
+ type: null
+ url: http://www5.zzu.edu.cn/system/_content/download.jsp?urltype=news.DownloadAttachUrl&owner=1327567121&wbfileid=4764412
implementations:
- impl_mmopp
- long_name: null
- modality:
- - multimodal
- name: MMOPP
- noise_type: null
objectives:
- 2
- 3
@@ -3079,173 +2283,174 @@ suite_mmopp:
- 5
- 6
- 7
- problems: null
- references:
- - authors: []
- link:
- type: null
- url:
- http://www5.zzu.edu.cn/system/_content/download.jsp?urltype=news.DownloadAttachUrl&owner=1327567121&wbfileid=4764412
- title: MMOPP technical report
- source: null
- tags: null
- type: suite
variables:
- - dim: 0
- type: unknown
-suite_modact:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ - type: unknown
+ dim: 0
constraints:
- - equality: null
- hard: yes
+ - type: unknown
+ hard: 'yes'
+ equality: null
number: null
- type: unknown
- description: Realistic Constrained Multi-Objective Optimization Benchmark
- Problems from Design.
dynamic_type: null
- evaluation_time: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
fidelity_levels: null
+ code_examples: null
+ source: null
+ problems: null
+suite_modact:
+ type: suite
+ name: MODAct
+ long_name: multiobjective design of actuators
+ description: Realistic Constrained Multi-Objective Optimization Benchmark Problems
+ from Design.
+ tags: null
+ references:
+ - title: MODAct
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1109/TEVC.2020.3020046
implementations:
- impl_modact
- impl_pymoo
- long_name: multiobjective design of actuators
- modality: null
- name: MODAct
- noise_type: null
objectives:
- 2
- 3
- 4
- 5
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1109/TEVC.2020.3020046
- title: MODAct
- source:
- - real-world
- tags: null
- type: suite
variables:
- - dim: 20
- type: integer
- - dim: 20
- type: continuous
-suite_morepo:
+ - type: continuous
+ dim: 20
+ - type: integer
+ dim: 20
+ constraints:
+ - type: unknown
+ hard: 'yes'
+ equality: null
+ number: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
code_examples: null
+ source:
+ - real-world
+ problems: null
+suite_morepo:
+ type: suite
+ name: MOrepo
+ long_name: Multi-Objective Optimisation Problem Repository
+ description: Multi-objective optimisation problem repository
+ tags: null
+ references: null
+ implementations:
+ - impl_morepo
+ objectives:
+ - 2
+ variables:
+ - type: unknown
+ dim: 0
constraints:
- - equality: null
- hard: unknown
+ - type: unknown
+ hard: '?'
+ equality: null
number: null
- type: unknown
- description: null
dynamic_type:
- unknown
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_morepo
- long_name: null
- modality: null
- name: MOrepo
noise_type:
- unknown
- objectives:
- - 2
- problems: null
- references: null
- source: null
- tags: null
- type: suite
- variables:
- - dim: 0
- type: unknown
-suite_pbo:
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: Suite of 25 binary optimization problems
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_iohexperimenter
- long_name: null
modality: null
- name: PBO
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_pbo:
+ type: suite
+ name: PBO
+ long_name: null
+ description: Suite of 25 binary optimization problems
+ tags: null
references:
- - authors: []
+ - title: PBO benchmarks
+ authors: []
link:
type: null
url: https://dl.acm.org/doi/pdf/10.1145/3319619.3326810
- title: PBO benchmarks
- source:
- - artificial
- tags: null
- type: suite
+ implementations:
+ - impl_iohexperimenter
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: binary
+ dim:
min: 1
- type: binary
-suite_porkchop:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_transfer_rf_bbob_rw
- long_name: null
- modality:
- - multimodal
- name: PorkchopPlotInterplanetaryTrajectory
noise_type: null
- objectives:
- - 1
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial
problems: null
+suite_porkchop:
+ type: suite
+ name: PorkchopPlotInterplanetaryTrajectory
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: Porkchop plot interplanetary trajectory benchmark
+ authors: []
link:
type: null
url: https://doi.org/10.1109/CEC65147.2025.11042973
- title: Porkchop plot interplanetary trajectory benchmark
- source:
- - real-world
- tags: null
- type: suite
+ implementations:
+ - impl_transfer_rf_bbob_rw
+ objectives:
+ - 1
variables:
- - dim: 2
- type: continuous
-suite_re:
+ - type: continuous
+ dim: 2
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source:
+ - real-world
+ problems: null
+suite_re:
+ type: suite
+ name: RE
+ long_name: null
description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: Easy-to-evaluate real-world multi-objective optimization problems
+ authors:
+ - Ryoji Tanabe
+ - Hisao Ishibuchi
+ link:
+ type: null
+ url: https://doi.org/10.1016/j.asoc.2020.106078
implementations:
- impl_reproblems
- long_name: null
- modality: null
- name: RE
- noise_type: null
objectives:
- 2
- 3
@@ -3255,122 +2460,115 @@ suite_re:
- 7
- 8
- 9
- problems: null
- references:
- - authors:
- - Ryoji Tanabe
- - Hisao Ishibuchi
- link:
- type: null
- url: https://doi.org/10.1016/j.asoc.2020.106078
- title: Easy-to-evaluate real-world multi-objective optimization problems
- source:
- - real-world-like
- tags: null
- type: suite
variables:
- - dim:
- max: 7
+ - type: continuous
+ dim:
min: 2
- type: integer
- - dim:
max: 7
+ - type: integer
+ dim:
min: 2
- type: continuous
-suite_rwmvop:
+ max: 7
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: yes
- number: null
- type: unknown
- description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations: null
- long_name: null
modality: null
- name: RWMVOP
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - real-world-like
problems: null
+suite_rwmvop:
+ type: suite
+ name: RWMVOP
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: RWMVOP
+ authors: []
link:
type: null
url: https://doi.org/10.1109/TEVC.2013.2281531
- title: RWMVOP
- source:
- - real-world
- tags: null
- type: suite
+ implementations: null
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ - type: categorical
+ dim:
min: 1
- type: integer
- - dim:
max: null
+ - type: integer
+ dim:
min: 1
- type: categorical
-suite_sbox_cost:
+ max: null
+ constraints:
+ - type: unknown
+ hard: 'yes'
+ equality: null
+ number: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: problems from BBOB but allows instances with the optimum close to
- the boundary
- dynamic_type: null
- evaluation_time: null
+ modality: null
fidelity_levels: null
- implementations:
- - impl_iohexperimenter
- long_name: null
- modality:
- - multimodal
- name: SBOX-COST
- noise_type: null
- objectives:
- - 1
+ code_examples: null
+ source:
+ - real-world
problems: null
+suite_sbox_cost:
+ type: suite
+ name: SBOX-COST
+ long_name: null
+ description: problems from BBOB but allows instances with the optimum close to the
+ boundary
+ tags: null
references:
- - authors: []
+ - title: SBOX-COST
+ authors: []
link:
type: null
url: https://doi.org/10.48550/arXiv.2305.12221
- title: SBOX-COST
- source: null
- tags: null
- type: suite
+ implementations:
+ - impl_iohexperimenter
+ objectives:
+ - 1
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_sdp:
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source: null
+ problems: null
+suite_sdp:
+ type: suite
+ name: SDP
+ long_name: null
description: null
- dynamic_type:
- - dynamic
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: SDP dynamic multi-objective benchmark
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1109/TCYB.2019.2896021
implementations: null
- long_name: null
- modality: null
- name: SDP
- noise_type:
- - unknown
objectives:
- 2
- 3
@@ -3381,151 +2579,105 @@ suite_sdp:
- 8
- 9
- 10
- problems: null
- references:
- - authors: []
- link:
- type: null
- url: https://doi.org/10.1109/TCYB.2019.2896021
- title: SDP dynamic multi-objective benchmark
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_submodular:
+ max: null
+ constraints: null
+ dynamic_type:
+ - dynamic
+ noise_type:
+ - unknown
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
- code_examples: null
- constraints: null
- description: set of graph-based submodular optimization problems from 4
- problem types
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_iohexperimenter
- long_name: null
modality: null
- name: Submodular Optimization
- noise_type: null
- objectives:
- - 1
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_submodular:
+ type: suite
+ name: Submodular Optimization
+ long_name: null
+ description: set of graph-based submodular optimization problems from 4 problem
+ types
+ tags: null
references:
- - authors: []
+ - title: Submodular optimization benchmark
+ authors: []
link:
type: null
url: https://ieeexplore.ieee.org/stamp/stamp.jsp?arnumber=10254181
- title: Submodular optimization benchmark
- source:
- - artificial
- tags: null
- type: suite
- variables:
- - dim:
- max: null
- min: 1
- type: binary
-suite_tulipa_energy:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
- constraints:
- - equality: null
- hard: some
- number: null
- type: unknown
- - equality: null
- hard: yes
- number: null
- type: unknown
- description: Determine the optimal investment and operation decisions for
- different assets in the energy system (production, consumption, conversion,
- storage, transport) while minimizing loss of load. Modelled as a potentially
- very large linear program with multiple fidelity levels.
- dynamic_type: null
- evaluation_time: null
- fidelity_levels:
- - 1
- - 2
implementations:
- - impl_tulipa
- long_name: TulipaEnergyModel.jl
- modality:
- - unimodal
- name: TulipaEnergy
- noise_type:
- - parameter
+ - impl_iohexperimenter
objectives:
- 1
- problems: null
- references:
- - authors: []
- link:
- type: null
- url:
- https://tulipaenergy.github.io/TulipaEnergyModel.jl/stable/40-scientific-foundation/45-scientific-references
- title: TulipaEnergyModel.jl scientific references
- source:
- - real-world
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: binary
+ dim:
min: 1
- type: continuous
-suite_vehicle_dynamics:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_vehicle_dynamics
- long_name: null
- modality:
- - multimodal
- name: VehicleDynamics
noise_type: null
- objectives:
- - 1
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source:
+ - artificial
problems: null
+suite_vehicle_dynamics:
+ type: suite
+ name: VehicleDynamics
+ long_name: null
+ description: null
+ tags: null
references:
- - authors: []
+ - title: VehicleDynamics benchmark
+ authors: []
link:
type: null
url: https://www.scitepress.org/Papers/2023/121580/121580.pdf
- title: VehicleDynamics benchmark
- source:
- - real-world
- tags: null
- type: suite
+ implementations:
+ - impl_vehicle_dynamics
+ objectives:
+ - 1
variables:
- - dim: 2
- type: continuous
-suite_wfg:
+ - type: continuous
+ dim: 2
+ constraints: null
+ dynamic_type: null
+ noise_type: null
allows_partial_evaluation: null
can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels: null
code_examples: null
- constraints: null
+ source:
+ - real-world
+ problems: null
+suite_wfg:
+ type: suite
+ name: WFG
+ long_name: null
description: null
- dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
+ tags: null
+ references:
+ - title: A review of multiobjective test problems and a scalable test problem toolkit
+ authors:
+ - Simon Huband
+ - Philip Hingston
+ - Luigi Barone
+ - Lyndon While
+ link:
+ type: null
+ url: https://doi.org/10.1109/TEVC.2005.861417
implementations:
- impl_pymoo
- long_name: null
- modality: null
- name: WFG
- noise_type: null
objectives:
- 2
- 3
@@ -3536,62 +2688,866 @@ suite_wfg:
- 8
- 9
- 10
- problems: null
- references:
- - authors:
- - Simon Huband
- - Philip Hingston
- - Luigi Barone
- - Lyndon While
- link:
- type: null
- url: https://doi.org/10.1109/TEVC.2005.861417
- title: A review of multiobjective test problems and a scalable test problem
- toolkit
- source: null
- tags: null
- type: suite
variables:
- - dim:
- max: null
+ - type: continuous
+ dim:
min: 1
- type: continuous
-suite_zdt:
- allows_partial_evaluation: null
- can_evaluate_objectives_independently: null
- code_examples: null
+ max: null
constraints: null
- description: null
dynamic_type: null
- evaluation_time: null
- fidelity_levels: null
- implementations:
- - impl_pymoo
- long_name: null
- modality: null
- name: ZDT
noise_type: null
- objectives:
- - 2
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
+ source: null
problems: null
+suite_zdt:
+ type: suite
+ name: ZDT
+ long_name: null
+ description: null
+ tags: null
references:
- - authors:
+ - title: 'Comparison of multiobjective evolutionary algorithms: empirical results'
+ authors:
- Eckart Zitzler
- Kalyanmoy Deb
- Lothar Thiele
link:
type: null
url: https://doi.org/10.1162/106365600568202
- title: 'Comparison of multiobjective evolutionary algorithms: empirical results'
+ implementations:
+ - impl_pymoo
+ objectives:
+ - 2
+ variables:
+ - type: continuous
+ dim:
+ min: 1
+ max: null
+ - type: binary
+ dim:
+ min: 1
+ max: null
+ constraints: null
+ dynamic_type: null
+ noise_type: null
+ allows_partial_evaluation: null
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels: null
+ code_examples: null
source: null
- tags: null
+ problems: null
+suite_expobench:
type: suite
+ name: EXPObench
+ long_name: EXPensive Optimization benchmark library
+ description: Wind farm layout optimization, gas filter design, pipe shape optimization,
+ hyperparameter tuning, and hospital simulation
+ tags: null
+ references:
+ - title: EXPObench
+ authors: []
+ link:
+ type: null
+ url: https://doi.org/10.1016/j.asoc.2023.110744
+ implementations:
+ - impl_expobench
+ objectives:
+ - 1
+ variables:
+ - type: continuous
+ dim:
+ min: 10
+ max: 135
+ - type: integer
+ dim:
+ min: 10
+ max: 135
+ - type: unknown
+ dim:
+ min: 10
+ max: 135
+ - type: categorical
+ dim:
+ min: 10
+ max: 135
+ constraints:
+ - type: unknown
+ hard: some
+ equality: null
+ number: 2
+ - type: box
+ hard: some
+ equality: null
+ number: 2
+ dynamic_type:
+ - none
+ noise_type:
+ - real-life (unknown)
+ - observational
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - real-world
+ problems: null
+ evaluation_time:
+ - 2 to 80 seconds
+impl_expobench:
+ type: implementation
+ name: EXPObench
+ description: Wind farm layout optimization, gas filter design, pipe shape optimization,
+ hyperparameter tuning, and hospital simulation
+ links:
+ - type: repository
+ url: https://github.com/AlgTUDelft/ExpensiveOptimBenchmark
+ language: Python
+ evaluation_time: 2 to 80 seconds
+ requirements: null
+fn_gasoline_direct_injection_engine_design:
+ type: problem
+ name: Gasoline direct injection engine design
+ long_name: null
+ description: 'A multi-objective optimization problem seeking to minimize fuel consumption
+ and NOx emissions over a two-minute dynamic duty cycle, subject to five constraints
+ (turbine inlet temperature, number of knock occurrences, peak cylinder pressure,
+ peak cylinder pressure rise, total work). Seven decision variables are defined:
+ four define the hardware choices of cylinder compression ratio, turbo machinery
+ and EGR cooler sizing; three relate to control variables that parameterise the
+ engine control logic.'
+ tags: null
+ references: null
+ implementations:
+ - impl_gasoline_direct_injection_engine_design
+ objectives:
+ - 2
+ variables:
+ - type: continuous
+ dim: 7
+ - type: integer
+ dim: 7
+ constraints:
+ - type: unknown
+ hard: some
+ equality: null
+ number: 5
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: '?'
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels:
+ - 1
+ - 2
+ code_examples: null
+ source:
+ - real-world
+ instances: null
+ evaluation_time: null
+impl_gasoline_direct_injection_engine_design:
+ type: implementation
+ name: Gasoline direct injection engine design
+ description: 'A multi-objective optimization problem seeking to minimize fuel consumption
+ and NOx emissions over a two-minute dynamic duty cycle, subject to five constraints
+ (turbine inlet temperature, number of knock occurrences, peak cylinder pressure,
+ peak cylinder pressure rise, total work). Seven decision variables are defined:
+ four define the hardware choices of cylinder compression ratio, turbo machinery
+ and EGR cooler sizing; three relate to control variables that parameterise the
+ engine control logic.'
+ links:
+ - type: repository
+ url: https://doi.org/10.1016/j.ejor.2022.08.032
+ language: Matlab Simulink and Wave RT co-simulation
+ evaluation_time: null
+ requirements: null
+gen_beacon:
+ type: generator
+ name: BEACON
+ long_name: Continuous Bi-objective Benchmark problems with Explicit Adjustable COrrelatioN
+ control
+ description: Generator for bi-objective benchmark problems with explicitly controlled
+ correlations in continuous spaces.
+ tags: null
+ references:
+ - title: BEACON
+ authors: []
+ link:
+ type: null
+ url: https://dl.acm.org/doi/10.1145/3712255.3734303
+ implementations:
+ - impl_beacon
+ objectives:
+ - 2
variables:
- - dim:
+ - type: continuous
+ dim:
+ min: 1
max: null
+ constraints: []
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality:
+ - random
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - artificial
+ evaluation_time:
+ - Negligible
+impl_beacon:
+ type: implementation
+ name: BEACON
+ description: Generator for bi-objective benchmark problems with explicitly controlled
+ correlations in continuous spaces.
+ links:
+ - type: repository
+ url: https://github.com/Stebbet/BEACON/
+ - type: repository
+ url: https://github.com/Stebbet/BEACON/tree/main
+ language: Python
+ evaluation_time: Negligible
+ requirements: null
+suite_tulipaenergy:
+ type: suite
+ name: TulipaEnergy
+ long_name: TulipaEnergyModel.jl
+ description: Determine the optimal investment and operation decisions for different
+ types of assets in the energy system (production, consumption, conversion, storage,
+ and transport), while minimizing loss of load.
+ tags: null
+ references:
+ - title: TulipaEnergy
+ authors: []
+ link:
+ type: null
+ url: https://tulipaenergy.github.io/TulipaEnergyModel.jl/stable/40-scientific-foundation/45-scientific-references
+ implementations:
+ - impl_tulipaenergy
+ objectives:
+ - 1
+ variables:
+ - type: continuous
+ dim:
min: 1
- type: continuous
- - dim:
max: null
+ constraints:
+ - type: unknown
+ hard: some
+ equality: null
+ number: null
+ dynamic_type:
+ - none
+ noise_type:
+ - "depends on input \u2014 still working on stochastic inputs"
+ - parameter
+ allows_partial_evaluation: '?'
+ can_evaluate_objectives_independently: null
+ modality:
+ - unimodal
+ fidelity_levels:
+ - 1
+ - 2
+ code_examples: null
+ source:
+ - real-world
+ problems: null
+ evaluation_time:
+ - from minutes to hours
+impl_tulipaenergy:
+ type: implementation
+ name: TulipaEnergy
+ description: Determine the optimal investment and operation decisions for different
+ types of assets in the energy system (production, consumption, conversion, storage,
+ and transport), while minimizing loss of load.
+ links:
+ - type: repository
+ url: https://tulipaenergy.github.io/TulipaEnergyModel.jl/stable/
+ - type: repository
+ url: https://github.com/TulipaEnergy/TulipaEnergyModel.jl
+ language: Julia / JMP
+ evaluation_time: from minutes to hours
+ requirements: null
+suite_mechbench:
+ type: suite
+ name: MECHBench
+ long_name: MECHBench
+ description: A set of models inspired from Computational Mechanics and Engineering
+ Design wherein objectives are not differentiable.
+ tags: null
+ references: null
+ implementations:
+ - impl_mechbench
+ objectives: null
+ variables:
+ - type: continuous
+ dim:
+ min: 1
+ max: 30
+ - type: integer
+ dim:
min: 1
- type: binary
+ max: 30
+ constraints:
+ - type: unknown
+ hard: some
+ equality: null
+ number:
+ - 1
+ - 2
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - real-world
+ problems: null
+ evaluation_time:
+ - 5 to 300 seconds
+impl_mechbench:
+ type: implementation
+ name: MECHBench
+ description: A set of models inspired from Computational Mechanics and Engineering
+ Design wherein objectives are not differentiable.
+ links:
+ - type: repository
+ url: https://github.com/BayesOptApp/MECHBench
+ language: Python
+ evaluation_time: 5 to 300 seconds
+ requirements: null
+fn_ato:
+ type: problem
+ name: ATO
+ long_name: null
+ description: Parameters of the Modules of the Automatic Train Operation should be
+ optimized. The parameters are continuous with different ranges. There are two
+ objectives (minimizing energy consumption, minimizing driving duration.
+ tags: null
+ references: null
+ implementations: null
+ objectives:
+ - 2
+ variables:
+ - type: continuous
+ dim: 10
+ constraints: []
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality:
+ - unimodal
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - real-world
+ instances: null
+ evaluation_time: null
+suite_brachytherapy_treatment_planning:
+ type: suite
+ name: Brachytherapy treatment planning
+ long_name: Brachytherapy treatment planning
+ description: Treatment planning for internal radiation therapy
+ tags: null
+ references:
+ - title: Brachytherapy treatment planning
+ authors: []
+ link:
+ type: null
+ url: https://www.sciencedirect.com/science/article/pii/S1538472123016781
+ implementations: null
+ objectives:
+ - 2
+ - 3
+ variables:
+ - type: continuous
+ dim:
+ min: 100
+ max: 500
+ constraints:
+ - type: unknown
+ hard: 'yes'
+ equality: null
+ number:
+ min: 1
+ max: null
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'yes'
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels:
+ - 1
+ - 2
+ code_examples: null
+ source:
+ - real-world
+ problems: null
+ evaluation_time: null
+fn_fleetopt:
+ type: problem
+ name: FleetOpt
+ long_name: null
+ description: 'Healthcare organisation in the UK provided data about their current
+ fleet of vehicles to conduct non-emergency heathcare trips in the Argyll and Bute
+ region of Scotland, UK. They also provided historical data about the trips the
+ vehicles took and about the bases which the vehicles return to. The aim is to
+ reduce the existing fleet of vehicles while still ensuring all trips can be covered.
+ Moving a vehicle from one base to another to help cover trips is OK as long as
+ the original base can still cover its trips. Link to paper with more details:
+ https://dl.acm.org/doi/abs/10.1145/3638530.3664137'
+ tags: null
+ references: null
+ implementations:
+ - impl_fleetopt
+ objectives:
+ - 1
+ variables:
+ - type: integer
+ dim:
+ - 13208
+ - 54
+ constraints:
+ - type: unknown
+ hard: null
+ equality: null
+ number: null
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'yes'
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - real-world
+ instances: null
+ evaluation_time: null
+impl_fleetopt:
+ type: implementation
+ name: FleetOpt
+ description: 'Healthcare organisation in the UK provided data about their current
+ fleet of vehicles to conduct non-emergency heathcare trips in the Argyll and Bute
+ region of Scotland, UK. They also provided historical data about the trips the
+ vehicles took and about the bases which the vehicles return to. The aim is to
+ reduce the existing fleet of vehicles while still ensuring all trips can be covered.
+ Moving a vehicle from one base to another to help cover trips is OK as long as
+ the original base can still cover its trips. Link to paper with more details:
+ https://dl.acm.org/doi/abs/10.1145/3638530.3664137'
+ links: null
+ language: null
+ evaluation_time: null
+ requirements: 'Not public: was done for real client with their private data'
+fn_building_spatial_design:
+ type: problem
+ name: Building spatial design
+ long_name: Building spatial design
+ description: 'Optimise the spatial layout of a building to: minimise energy consumption
+ for climate control, and minimise the strain on the structure'
+ tags: null
+ references:
+ - title: Building spatial design
+ authors: []
+ link:
+ type: null
+ url: https://hdl.handle.net/1887/81789
+ implementations:
+ - impl_building_spatial_design
+ objectives:
+ - 2
+ variables:
+ - type: binary
+ dim:
+ min: 90
+ max: null
+ - type: continuous
+ dim:
+ min: 90
+ max: null
+ constraints:
+ - type: box
+ hard: 'yes'
+ equality: null
+ number: 2065
+ - type: unknown
+ hard: 'yes'
+ equality: null
+ number: 2065
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - real-world
+ instances: null
+ evaluation_time:
+ - and roughly 40 seconds for the larger designs we considered. (Even the larger
+ designs we considered are still relatively small for the considered problem.)
+ - Roughly 1 second per evaluation for the smallest considered design
+impl_building_spatial_design:
+ type: implementation
+ name: Building spatial design
+ description: 'Optimise the spatial layout of a building to: minimise energy consumption
+ for climate control, and minimise the strain on the structure'
+ links:
+ - type: repository
+ url: https://github.com/TUe-excellent-buildings/BSO-toolbox
+ language: C++
+ evaluation_time: Roughly 1 second per evaluation for the smallest considered design;
+ and roughly 40 seconds for the larger designs we considered. (Even the larger
+ designs we considered are still relatively small for the considered problem.)
+ requirements: null
+fn_electric_motor_design_optimization:
+ type: problem
+ name: Electric Motor Design Optimization
+ long_name: Electric Motor Design Optimization
+ description: The goal is to find a design of a synchronous electric motor for power
+ steering systems that minimizes costs and satisfies all constraints.
+ tags:
+ - form-submission
+ references:
+ - title: Electric Motor Design Optimization
+ authors: []
+ link:
+ type: null
+ url: https://dis.ijs.si/tea/Publications/Tusar23Multistep.pdf
+ implementations:
+ - impl_electric_motor_design_optimization
+ objectives:
+ - 1
+ variables:
+ - type: continuous
+ dim: 13
+ - type: integer
+ dim: 13
+ constraints:
+ - type: unknown
+ hard: some
+ equality: null
+ number: 12
+ - type: box
+ hard: some
+ equality: null
+ number: 12
+ dynamic_type:
+ - none
+ noise_type:
+ - noisy
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality:
+ - constraints are multimodal
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - real-world
+ instances: null
+ evaluation_time:
+ - 8 minutes
+impl_electric_motor_design_optimization:
+ type: implementation
+ name: Electric Motor Design Optimization
+ description: The goal is to find a design of a synchronous electric motor for power
+ steering systems that minimizes costs and satisfies all constraints.
+ links: null
+ language: Python
+ evaluation_time: 8 minutes
+ requirements: null
+gen_bono_bench:
+ type: generator
+ name: BONO-Bench
+ long_name: Bi-objective Numerical Optimization Benchmark (BONO-Bench)
+ description: Bi-objective problem generator and suite with scalable continuous decision
+ space. Features complex problem properties (different types of multimodality and
+ challenges in decision and objective space) as well as Pareto front approximations
+ with error guarantees for the hypervolume and exact R2 indicators.
+ tags: null
+ references: null
+ implementations:
+ - impl_bono_bench
+ objectives:
+ - 2
+ variables:
+ - type: continuous
+ dim:
+ min: 1
+ max: null
+ constraints: []
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - artificial
+ evaluation_time: null
+impl_bono_bench:
+ type: implementation
+ name: BONO-Bench
+ description: Bi-objective problem generator and suite with scalable continuous decision
+ space. Features complex problem properties (different types of multimodality and
+ challenges in decision and objective space) as well as Pareto front approximations
+ with error guarantees for the hypervolume and exact R2 indicators.
+ links:
+ - type: repository
+ url: https://github.com/schaepermeier/bonobench
+ language: Python
+ evaluation_time: null
+ requirements: null
+gen_randoptgen:
+ type: generator
+ name: RandOptGen
+ long_name: RandOptGen
+ description: 'RandOptGen: A Unified Random Problem Generator for Single-and Multi-Objective
+ Optimization Problems with Mixed-Variable Input Spaces'
+ tags: null
+ references: null
+ implementations:
+ - impl_randoptgen
+ objectives: null
+ variables:
+ - type: continuous
+ dim:
+ min: 1
+ max: null
+ - type: integer
+ dim:
+ min: 1
+ max: null
+ - type: binary
+ dim:
+ min: 1
+ max: null
+ constraints: []
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - artificial
+ evaluation_time:
+ - milliseconds
+impl_randoptgen:
+ type: implementation
+ name: RandOptGen
+ description: 'RandOptGen: A Unified Random Problem Generator for Single-and Multi-Objective
+ Optimization Problems with Mixed-Variable Input Spaces'
+ links:
+ - type: repository
+ url: https://github.com/MALEO-research-group/RandOptGen
+ language: Python
+ evaluation_time: milliseconds
+ requirements: null
+suite_cuter:
+ type: suite
+ name: CUTEr
+ long_name: null
+ description: A constrained and unconstrained testing environment
+ tags: null
+ references:
+ - title: CUTEr
+ authors: []
+ link:
+ type: null
+ url: https://dl.acm.org/doi/10.1145/962437.962439
+ implementations: null
+ objectives:
+ - 1
+ variables:
+ - type: continuous
+ dim:
+ min: 1
+ max: null
+ - type: integer
+ dim:
+ min: 1
+ max: null
+ - type: binary
+ dim:
+ min: 1
+ max: null
+ constraints:
+ - type: unknown
+ hard: null
+ equality: null
+ number: null
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - artificial
+ problems: null
+ evaluation_time: null
+suite_cutest:
+ type: suite
+ name: CUTEst
+ long_name: Constrained and Unconstrained Testing Environment with safe threads
+ description: The Constrained and Unconstrained Testing Environment with safe threads
+ (CUTEst) for optimization software
+ tags:
+ - form-submission
+ references:
+ - title: CUTEst
+ authors: []
+ link:
+ type: null
+ url: https://link.springer.com/article/10.1007/s10589-014-9687-3
+ implementations:
+ - impl_cutest
+ objectives:
+ - 1
+ variables:
+ - type: continuous
+ dim:
+ min: 1
+ max: null
+ - type: integer
+ dim:
+ min: 1
+ max: null
+ - type: binary
+ dim:
+ min: 1
+ max: null
+ constraints:
+ - type: unknown
+ hard: 'no'
+ equality: null
+ number:
+ min: 1
+ max: null
+ - type: box
+ hard: 'no'
+ equality: null
+ number:
+ min: 1
+ max: null
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality:
+ - multimodal
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - artificial
+ problems: null
+ evaluation_time: null
+impl_cutest:
+ type: implementation
+ name: CUTEst
+ description: The Constrained and Unconstrained Testing Environment with safe threads
+ (CUTEst) for optimization software
+ links:
+ - type: repository
+ url: https://github.com/jfowkes/pycutest
+ language: Python, C++, Fortran
+ evaluation_time: null
+ requirements: null
+gen_puboi:
+ type: generator
+ name: PUBOi
+ long_name: Polynomial Unconstrained Binary Optimization
+ description: A benchmark in which variable importance is tunable, based on the Walsh
+ function
+ tags: null
+ references:
+ - title: PUBOi
+ authors: []
+ link:
+ type: null
+ url: https://link.springer.com/chapter/10.1007/978-3-031-04148-8_12
+ implementations:
+ - impl_puboi
+ objectives:
+ - 1
+ variables:
+ - type: binary
+ dim:
+ min: 1
+ max: null
+ constraints: []
+ dynamic_type:
+ - none
+ noise_type:
+ - none
+ allows_partial_evaluation: 'no'
+ can_evaluate_objectives_independently: null
+ modality: null
+ fidelity_levels:
+ - 1
+ code_examples: null
+ source:
+ - artificial
+ evaluation_time: null
+impl_puboi:
+ type: implementation
+ name: PUBOi
+ description: A benchmark in which variable importance is tunable, based on the Walsh
+ function
+ links:
+ - type: repository
+ url: https://gitlab.com/verel/pubo-importance-benchmark
+ language: Python, C++
+ evaluation_time: null
+ requirements: null
diff --git a/requirements.txt b/requirements.txt
index b052e87..8f46f2f 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,2 +1,3 @@
pandas
pyyaml
+pydantic_yaml
diff --git a/utils/requirements.txt b/utils/requirements.txt
index 6a17fcc..8993e34 100644
--- a/utils/requirements.txt
+++ b/utils/requirements.txt
@@ -1,2 +1,3 @@
pyyaml
pandas
+pydantic_yaml
diff --git a/utils/validate_yaml.py b/utils/validate_yaml.py
index 79f4238..3249e0e 100644
--- a/utils/validate_yaml.py
+++ b/utils/validate_yaml.py
@@ -9,7 +9,7 @@
sys.path.insert(0, str(parent))
# Now you can import normally
-from yaml_to_html import default_columns as REQUIRED_FIELDS
+from yaml_to_html import DEFAULT_VISIBLE_COLUMNS as REQUIRED_FIELDS
OPTIONAL_FIELDS = ["multimodal"]
UNIQUE_FIELDS = ["name"]
diff --git a/yaml_to_html.py b/yaml_to_html.py
index 7ee5a6e..dbfbfe4 100755
--- a/yaml_to_html.py
+++ b/yaml_to_html.py
@@ -320,8 +320,8 @@ def format_variables_by_type(variables):
if domain is not None:
domains.append(domain)
- for variable_type in values:
- values[variable_type] = " | ".join(values[variable_type])
+ for variable_type in sorted(list(values.keys())):
+ values[variable_type] = " | ".join(sorted(values[variable_type]))
return values, combine_domains_for_total(domains)
@@ -356,7 +356,7 @@ def list_variable_types(variables):
types = [v for v in unique_preserve_order(types) if v]
if not types:
return ""
- return " | ".join(types)
+ return " | ".join(sorted(types))
def list_constraint_types(constraints):
@@ -373,7 +373,7 @@ def list_constraint_types(constraints):
types = [c for c in unique_preserve_order(types) if c]
if not types:
return ""
- return " | ".join(types)
+ return " | ".join(sorted(types))
def has_nonzero_info(value, yes_only=False):
@@ -381,7 +381,10 @@ def has_nonzero_info(value, yes_only=False):
return False
if isinstance(value, (set, list, tuple, dict)):
- return len(value) > 0
+ if len(value) == 1:
+ return has_nonzero_info(next(iter(value)), yes_only=yes_only)
+ else:
+ return len(value) > 0
text = str(value).strip().lower()
if not text:
@@ -404,10 +407,11 @@ def build_properties(item):
if has_nonzero_info(getattr(item, "can_evaluate_objectives_independently", None), yes_only=True):
properties.append("independent objective evaluations")
if has_nonzero_info(getattr(item, "fidelity_levels", None)):
- properties.append("multi-fidelity")
+ if getattr(item, "fidelity_levels", None) != {1}:
+ properties.append("multi-fidelity")
if not properties:
return ""
- return " | ".join(properties)
+ return " | ".join(sorted(properties))
def format_implementation_links(links):
@@ -552,8 +556,8 @@ def format_constraints_by_type(constraints, constraint_types):
soft_domains.append(count_domain)
for constraint_type in constraint_types:
- hard_values[constraint_type] = " | ".join(hard_values[constraint_type])
- soft_values[constraint_type] = " | ".join(soft_values[constraint_type])
+ hard_values[constraint_type] = " | ".join(sorted(hard_values[constraint_type]))
+ soft_values[constraint_type] = " | ".join(sorted(soft_values[constraint_type]))
hard_total = combine_domains_for_total(hard_domains)
soft_total = combine_domains_for_total(soft_domains)