Skip to content

Commit

Permalink
provide flex view also for bbob-biobj suite,
Browse files Browse the repository at this point in the history
additional trials to improve bbob-boxed data handling
  • Loading branch information
brockho committed Dec 6, 2024
1 parent 5f51542 commit a703957
Show file tree
Hide file tree
Showing 2 changed files with 124 additions and 6 deletions.
76 changes: 76 additions & 0 deletions src/cocopp/bbob-biobj-benchmarkinfos.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
{
"dimensions": [2, 3, 5, 10, 20, 40],
"functions": [
{"name": "1 - Sphere/Sphere", "filename": "pprldmany-single-functions/pprldmany_f001_<0,2>D.svg"},
{"name": "2 - Sphere/sep. Ellipsoid", "filename": "pprldmany-single-functions/pprldmany_f002_<0,2>D.svg"},
{"name": "3 - Sphere/Attractive sector", "filename": "pprldmany-single-functions/pprldmany_f003_<0,2>D.svg"},
{"name": "4 - Sphere/Rosenbrock", "filename": "pprldmany-single-functions/pprldmany_f004_<0,2>D.svg"},
{"name": "5 - Sphere/Sharp ridge", "filename": "pprldmany-single-functions/pprldmany_f005_<0,2>D.svg"},
{"name": "6 - Sphere/Different Powers", "filename": "pprldmany-single-functions/pprldmany_f006_<0,2>D.svg"},
{"name": "7 - Sphere/Rastrigin", "filename": "pprldmany-single-functions/pprldmany_f007_<0,2>D.svg"},
{"name": "8 - Sphere/Schaffer F7", "filename": "pprldmany-single-functions/pprldmany_f008_<0,2>D.svg"},
{"name": "9 - Sphere/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f009_<0,2>D.svg"},
{"name": "10 - Sphere/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f010_<0,2>D.svg"},
{"name": "11 - sep. Ellipsoid/sep. Ellipsoid", "filename": "pprldmany-single-functions/pprldmany_f011_<0,2>D.svg"},
{"name": "12 - sep. Ellipsoid/Attractive sector", "filename": "pprldmany-single-functions/pprldmany_f012_<0,2>D.svg"},
{"name": "13 - sep. Ellipsoid/Rosenbrock", "filename": "pprldmany-single-functions/pprldmany_f013_<0,2>D.svg"},
{"name": "14 - sep. Ellipsoid/Sharp ridge", "filename": "pprldmany-single-functions/pprldmany_f014_<0,2>D.svg"},
{"name": "15 - sep. Ellipsoid/Different Powers", "filename": "pprldmany-single-functions/pprldmany_f015_<0,2>D.svg"},
{"name": "16 - sep. Ellipsoid/Rastrigin", "filename": "pprldmany-single-functions/pprldmany_f016_<0,2>D.svg"},
{"name": "17 - sep. Ellipsoid/Schaffer F7", "filename": "pprldmany-single-functions/pprldmany_f017_<0,2>D.svg"},
{"name": "18 - sep. Ellipsoid/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f018_<0,2>D.svg"},
{"name": "19 - sep. Ellipsoid/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f019_<0,2>D.svg"},
{"name": "20 - Attractive sector/Attractive sector", "filename": "pprldmany-single-functions/pprldmany_f020_<0,2>D.svg"},
{"name": "21 - Attractive sector/Rosenbrock", "filename": "pprldmany-single-functions/pprldmany_f021_<0,2>D.svg"},
{"name": "22 - Attractive sector/Sharp ridge", "filename": "pprldmany-single-functions/pprldmany_f022_<0,2>D.svg"},
{"name": "23 - Attractive sector/Different Powers", "filename": "pprldmany-single-functions/pprldmany_f023_<0,2>D.svg"},
{"name": "24 - Attractive sector/Rastrigin", "filename": "pprldmany-single-functions/pprldmany_f024_<0,2>D.svg"},
{"name": "25 - Attractive sector/Schaffer F7", "filename": "pprldmany-single-functions/pprldmany_f025_<0,2>D.svg"},
{"name": "26 - Attractive sector/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f026_<0,2>D.svg"},
{"name": "27 - Attractive sector/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f027_<0,2>D.svg"},
{"name": "28 - Rosenbrock/Rosenbrock", "filename": "pprldmany-single-functions/pprldmany_f028_<0,2>D.svg"},
{"name": "29 - Rosenbrock/Sharp ridge", "filename": "pprldmany-single-functions/pprldmany_f029_<0,2>D.svg"},
{"name": "30 - Rosenbrock/Different Powers", "filename": "pprldmany-single-functions/pprldmany_f030_<0,2>D.svg"},
{"name": "31 - Rosenbrock/Rastrigin", "filename": "pprldmany-single-functions/pprldmany_f031_<0,2>D.svg"},
{"name": "32 - Rosenbrock/Schaffer F7", "filename": "pprldmany-single-functions/pprldmany_f032_<0,2>D.svg"},
{"name": "33 - Rosenbrock/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f033_<0,2>D.svg"},
{"name": "34 - Rosenbrock/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f034_<0,2>D.svg"},
{"name": "35 - Sharp ridge/Sharp ridge", "filename": "pprldmany-single-functions/pprldmany_f035_<0,2>D.svg"},
{"name": "36 - Sharp ridge/Different Powers", "filename": "pprldmany-single-functions/pprldmany_f036_<0,2>D.svg"},
{"name": "37 - Sharp ridge/Rastrigin", "filename": "pprldmany-single-functions/pprldmany_f037_<0,2>D.svg"},
{"name": "38 - Sharp ridge/Schaffer F7", "filename": "pprldmany-single-functions/pprldmany_f038_<0,2>D.svg"},
{"name": "39 - Sharp ridge/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f039_<0,2>D.svg"},
{"name": "40 - Sharp ridge/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f040_<0,2>D.svg"},
{"name": "41 - Different Powers/Different Powers", "filename": "pprldmany-single-functions/pprldmany_f041_<0,2>D.svg"},
{"name": "42 - Different Powers/Rastrigin", "filename": "pprldmany-single-functions/pprldmany_f042_<0,2>D.svg"},
{"name": "43 - Different Powers/Schaffer F7", "filename": "pprldmany-single-functions/pprldmany_f043_<0,2>D.svg"},
{"name": "44 - Different Powers/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f044_<0,2>D.svg"},
{"name": "45 - Different Powers/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f045_<0,2>D.svg"},
{"name": "46 - Rastrigin/Rastrigin", "filename": "pprldmany-single-functions/pprldmany_f046_<0,2>D.svg"},
{"name": "47 - Rastrigin/Schaffer F7", "filename": "pprldmany-single-functions/pprldmany_f047_<0,2>D.svg"},
{"name": "48 - Rastrigin/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f048_<0,2>D.svg"},
{"name": "49 - Rastrigin/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f049_<0,2>D.svg"},
{"name": "50 - Schaffer F7/Schaffer F7", "filename": "pprldmany-single-functions/pprldmany_f050_<0,2>D.svg"},
{"name": "51 - Schaffer F7/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f051_<0,2>D.svg"},
{"name": "52 - Schaffer F7/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f052_<0,2>D.svg"},
{"name": "53 - Schwefel/Schwefel", "filename": "pprldmany-single-functions/pprldmany_f053_<0,2>D.svg"},
{"name": "54 - Schwefel/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f054_<0,2>D.svg"},
{"name": "55 - Gallagher 101/Gallagher 101", "filename": "pprldmany-single-functions/pprldmany_f055_<0,2>D.svg"},
{"name": "separable/separable", "filename": "pprldmany_<0,2>D_1-separable_1-separable.svg"},
{"name": "separable/moderate", "filename": "pprldmany_<0,2>D_1-separable_2-moderate.svg"},
{"name": "separable/ill-cond.", "filename": "pprldmany_<0,2>D_1-separable_3-ill-conditioned.svg"},
{"name": "separable/multi-modal", "filename": "pprldmany_<0,2>D_1-separable_4-multi-modal.svg"},
{"name": "sep./weakly struct.", "filename": "pprldmany_<0,2>D_1-separable_5-weakly-structured.svg"},
{"name": "moderate/moderate", "filename": "pprldmany_<0,2>D_2-moderate_2-moderate.svg"},
{"name": "moderate/ill.cond.", "filename": "pprldmany_<0,2>D_2-moderate_3-ill-conditioned.svg"},
{"name": "moderate/multi-modal", "filename": "pprldmany_<0,2>D_2-moderate_4-multi-modal.svg"},
{"name": "moderate/weakly struct.", "filename": "pprldmany_<0,2>D_2-moderate_5-weakly-structured.svg"},
{"name": "ill-cond./ill-cond.", "filename": "pprldmany_<0,2>D_3-ill-conditioned_3-ill-conditioned.svg"},
{"name": "ill-cond./multi-modal", "filename": "pprldmany_<0,2>D_3-ill-conditioned_4-multi-modal.svg"},
{"name": "ill-cond./weakly struct.", "filename": "pprldmany_<0,2>D_3-ill-conditioned_5-weakly-structured.svg"},
{"name": "multi-modal/multi-modal", "filename": "pprldmany_<0,2>D_4-multi-modal_4-multi-modal.svg"},
{"name": "multi-modal/weakly str.", "filename": "pprldmany_<0,2>D_4-multi-modal_5-weakly-structured.svg"},
{"name": "weakly str./weakly str.", "filename": "pprldmany_<0,2>D_5-weakly-structured_5-weakly-structured.svg"},
{"name": "all", "filename": "pprldmany_<0,2>D_noiselessall.svg"}
]
}
54 changes: 48 additions & 6 deletions src/cocopp/testbedsettings.py
Original file line number Diff line number Diff line change
Expand Up @@ -350,6 +350,10 @@ def filter(self, dsl):
if both bbob and bbob-largescale data is in dsl
and sets the corresponding suite to
BBOBLargeScaleJOINEDTestbed in this case.
Also changes the test suite name of all
entries to 'bbob-boxed' if only 'bbob'
and 'bbob-boxed' entries are detected.
Returns the filtered list as a flat list.
Expand All @@ -361,30 +365,36 @@ def filter(self, dsl):
# find out whether we have to do something:
bbob_detected = False
bbob_largescale_detected = False
sboxcost_detected = False
bbob_boxed_detected = False
for ds in dsl:
detected_suite = ds.suite_name
if detected_suite == 'bbob':
bbob_detected = True
elif detected_suite == 'bbob-largescale':
bbob_largescale_detected = True
elif detected_suite == 'bbob-JOINED-bbob-largescale':
continue
bbob_largescale_detected = True
bbob_detected = True
elif detected_suite == 'bbob-boxed':
# TODO: this assigned variable is never used, hence the assignment has no effect
scenario_bbobboxed_fixed = True # noqa: F841
bbob_boxed_detected = True # noqa: F841
elif detected_suite == 'bbob-JOINED-bbob-boxed':
bbob_boxed_detected = True
bbob_detected = True
else:
raise ValueError("Data from %s suite is not "
"compatible with other data from "
"the bbob and/or bbob-largescale "
"and/or bbob-boxed "
"suites" % str(ds.suite_name))

# now update all elements in flattened list if needed:
if bbob_detected and bbob_largescale_detected:
if (bbob_detected and bbob_largescale_detected
and not bbob_boxed_detected):
for ds in dsl:
ds.suite = 'bbob-largescale' # to be available via ds.suite_name
# make sure that the right testbed is loaded:
elif bbob_detected and sboxcost_detected:
elif (bbob_detected and bbob_boxed_detected
and not bbob_largescale_detected):
for ds in dsl:
ds.suite = 'bbob-JOINED-bbob-boxed'

Expand Down Expand Up @@ -432,6 +442,37 @@ def __init__(self, targetValues):
self.reference_algorithm_displayname = ''
self.settings['scenario'] = scenario_bbobboxedfixed # noqa: F841

def filter(self, dsl):
""" Changes the test suite name to `bbob-boxed` for all
DataSets in dsl if data from both the bbob and the
bbob-boxed suite are detected.
Returns the filtered list as a flat list.
Gives an error if the data is not compatible.
"""

# find out whether we have to do something:
bbob_detected = False
bbob_boxed_detected = False
for ds in dsl:
if ds.suite_name == 'bbob':
bbob_detected = True
elif ds.suite_name == 'bbob-boxed':
bbob_boxed_detected = True
else:
raise ValueError("Data from %s suite is not "
"compatible with other data from "
"the bbob and/or bbob-boxed "
"suites" % str(ds.suite_name))

# now change all elements in flattened list if needed:
if bbob_detected and bbob_boxed_detected:
for ds in dsl:
ds.suite = 'bbob-boxed' # to be available via ds.suite_name
return dsl




class BBOBLargeScaleJOINEDTestbed(GECCOBBOBTestbed):
Expand Down Expand Up @@ -643,6 +684,7 @@ class GECCOBiObjBBOBTestbed(Testbed):
settings = dict(
info_filename='bbob-biobj-benchmarkinfos.txt',
shortinfo_filename=shortinfo_filename,
flex_navigation_json_file='bbob-biobj-benchmarkinfos.json',
name=suite_name_bi,
short_names=get_short_names(shortinfo_filename),
dimensions_to_display=(2, 3, 5, 10, 20, 40),
Expand Down

0 comments on commit a703957

Please sign in to comment.