Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge Development into Master for 2.4 release #1992

Merged
merged 27 commits into from Dec 15, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a409a58
cocopp setup with setuptools if available
nikohansen Aug 19, 2020
cceaaa4
bug fix 4ceb72a8a simulated restart sample number
nikohansen Aug 19, 2020
5a0d6ae
minor polish of assert
nikohansen Aug 26, 2020
096dfba
added installation of postprocessing to preprocessing test (preproces…
brockho Aug 26, 2020
9d0c977
Update AUTHORS - I hope I did not forget anybody
brockho Sep 8, 2020
d2a379b
Tried to fix test on python 3.6
brockho Sep 15, 2020
022d1c7
reverted aRT to ERT also in LaTeX templates (related to #1990)
brockho Sep 22, 2020
e25b1a3
Silence matplotlib 3.3.2 warning
MLopez-Ibanez Sep 23, 2020
ad86a4d
Merge pull request #1991 from MLopez-Ibanez/master
brockho Oct 6, 2020
c149ba8
try to solve "IOError: [Errno socket error] [SSL: CERTIFICATE_VERIFY_…
brockho Oct 20, 2020
615eb63
Merge branch 'development' of https://github.com/numbbo/coco into dev…
brockho Oct 20, 2020
fc0afb6
fix assertion allowing http and https
nikohansen Oct 20, 2020
6553c78
Replaced link to outdated coco-docs webpage to new paper (on arXiv)
brockho Oct 26, 2020
d8fbaba
Update README.md
brockho Nov 13, 2020
ebd435c
Update README.md
brockho Nov 13, 2020
06cfbcd
Update README.md
brockho Nov 13, 2020
f7b8786
Added the COCO journal paper to bbob.bib
ttusar Nov 13, 2020
f62d34f
Update README.md
brockho Nov 13, 2020
8f60c38
Using the COCO journal in the templates
ttusar Nov 13, 2020
56057c8
Updated the COCO version in the latex templates to 2.4
ttusar Nov 13, 2020
516c1e1
changed a few more `http` into `https`
brockho Nov 16, 2020
6f93dbf
Update submit-a-coco-data-set.md
nikohansen Nov 17, 2020
23f675b
finally moved to python 3 also for the renaming and adding comments h…
brockho Nov 17, 2020
a5f22f6
Merge branch 'development' of https://github.com/numbbo/coco into dev…
brockho Nov 17, 2020
d21e82e
split bug and feature issue templates into two
nikohansen Nov 17, 2020
82b9b59
fix cocopp.archives.update_all error on 'test' archive
nikohansen Nov 17, 2020
96e10f1
somewhat slightly improved colors (fifths is red)
nikohansen Feb 15, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Expand Up @@ -2,15 +2,15 @@
name: Bug report
about: Create a report to help us improve
title: '[Bug report] please put your title here'
labels: ''
labels: 'bug'
assignees: ''

---

**Describe the bug**
Describe the bug, and paste the executed code and the resulting output. If you think it is helpful, you can also talk about the expected behaviour. If applicable, add screenshots to help explain the problem.
Describe the bug, ideally paste the executed code and the resulting output. If you think it is helpful, also describe the expected behaviour. If applicable, add screenshots to help explain the problem.

**Your System (please complete the following information):**
**Your System (please complete the following information when it seems relevant):**
- Operating system: [e.g. macOS 10.15.4, Windows 10, ...]
- COCO version: [e.g. 2.2.1 (according to `cocopp.__version__`), from the `development` branch, ...]
- Browser (if relevant): [e.g. chrome, safari]
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE/feature-request.md
@@ -0,0 +1,11 @@
---
name: Feature request
about: Create a request to help us improve
title: '[Feature request] please put your title here'
labels: 'Feature-request'
assignees: ''

---

**Describe the feature**
Describe what is missing and why this is relevant. If you think it is helpful, you can also specify the expected behaviour.
15 changes: 6 additions & 9 deletions .github/ISSUE_TEMPLATE/submit-a-coco-data-set.md
@@ -1,15 +1,15 @@
---
name: Submit a COCO data set
about: Describes how to submit a COCO data set to the official archive.
title: "[COCO SUBMISSION] please put your title here"
labels: ''
title: "[DATA SUBMISSION] please put your title here"
labels: 'data submission'
assignees: brockho

---

Hello COCO user!

Here is the right place to submit one or several COCO data sets to the official COCO archive (https://coco.gforge.inria.fr/doku.php?id=algorithms). Please provide the information requested below and submit the issue. Before, we kindly ask you to read about the details in our [How to publish a dataset documentation](https://github.com/numbbo/coco/blob/development/howtos/publish-a-dataset-howto.md).
Here is the right place to submit one or several COCO data sets to the official COCO archive (https://coco.gforge.inria.fr/doku.php?id=algorithms). Please provide the information requested below and submit the issue. Do not hesitate to read about the details in our [How to publish a dataset documentation](https://github.com/numbbo/coco/blob/development/howtos/publish-a-dataset-howto.md).

#### Reference
[Put the full reference (for citations) and a link to the pdf here.]
Expand All @@ -18,10 +18,7 @@ Here is the right place to submit one or several COCO data sets to the official
[Please provide a short description for each algorithm in the data.]

#### Link to Data
[Please upload your COCO data and provide the link here. If you want to submit more than one data set at the same time, please explain which files corresponds to which algorithm.]
[Please prepare and upload your COCO data (see [how to](https://github.com/numbbo/coco/blob/development/howtos/publish-a-dataset-howto.md)) and provide the link here. If you want to submit more than one data set at the same time, please indicate which file corresponds to which algorithm.]

#### Potentially: Source Code of Experiment
[We are happy to also share any source code of the algorithm and the COCO experiment, you were running. Please provide, if you wish, any data, link, etc. here]

#### Information About the Authors
[If you wish to let us know your name and affiliation, we are happy to share this information, too.]
#### Optional: Source Code of Experiment
[We are happy to also share any source code of the algorithm and the COCO experiment, you were running. Please provide, if you wish, any code, links, etc. here]
2 changes: 2 additions & 0 deletions AUTHORS
Expand Up @@ -13,6 +13,7 @@ Contributors to NumBBO/CoCO have been
- Verena Heidrich-Meisner
- Filip Matzner
- Olaf Mersmann (3)
- Duc Manh Nguyen
- Petr Posik
- Mike Preuss
- Raymond Ros (3)
Expand All @@ -22,6 +23,7 @@ Contributors to NumBBO/CoCO have been
- Heike Trautmann
- Dejan Tusar (3)
- Tea Tusar (3)
- Konstantinos Varelas (2)

(2): main contributor
(3): power contributor
19 changes: 9 additions & 10 deletions README.md
Expand Up @@ -30,7 +30,7 @@ from using the platform:
![General COCO Structure](coco.png)

For more general information:
- read our [benchmarking guidelines introduction](http://numbbo.github.io/coco-doc/)
- read our [benchmarking guidelines introduction](https://arxiv.org/pdf/1603.08785.pdf)
- read the [COCO experimental setup](http://numbbo.github.io/coco-doc/experimental-setup) description
- see the [`bbob-biobj` and `bbob-biobj-ext` COCO multi-objective functions testbed](http://numbbo.github.io/coco-doc/bbob-biobj/functions) documentation and the [specificities of the performance assessment for the bi-objective testbeds](http://numbbo.github.io/coco-doc/bbob-biobj/perf-assessment).
- consult the [BBOB workshops series](http://numbbo.github.io/workshops),
Expand Down Expand Up @@ -591,17 +591,16 @@ Citation
--------
You may cite this work in a scientific context as

N. Hansen, A. Auger, O. Mersmann, T. Tušar, D. Brockhoff. [COCO: A Platform for Comparing Continuous Optimizers in a Black-Box Setting](http://numbbo.github.io/coco-doc/), _ArXiv e-prints_, [arXiv:1603.08785](http://arxiv.org/abs/1603.08785), 2016.

N. Hansen, A. Auger, R. Ros, O. Mersmann, T. Tušar, D. Brockhoff. [COCO: A Platform for Comparing Continuous Optimizers in a Black-Box Setting](https://doi.org/10.1080/10556788.2020.1808977), Optimization Methods and Software, 2020. [[arXiv version](https://arxiv.org/pdf/1603.08785.pdf)]
```
@ARTICLE{hansen2016cocoplat,
author = {Hansen, N. and Auger, A. and Mersmann, O. and
@ARTICLE{hansen2020cocoplat,
author = {Hansen, N. and Auger, A. and Ros, R. and Mersmann, O. and
Tu{\v s}ar, T. and Brockhoff, D.},
title = {{COCO}: A Platform for Comparing Continuous Optimizers
in a Black-Box Setting},
journal = {ArXiv e-prints},
volume = {arXiv:1603.08785},
year = 2016
journal = {Optimization Methods and Software},
doi = {https://doi.org/10.1080/10556788.2020.1808977},
year = 2020
}
```

Expand All @@ -619,7 +618,7 @@ Links and Documentation <a name="Links"></a>
found at http://coco.gforge.inria.fr/ppdata-archive
* Stay informed about the BBOB workshop series and releases of the NumBBO/Coco software
by registering at http://coco.gforge.inria.fr/register
* Read about the basic principles behind the Coco platform at http://numbbo.github.io/coco-doc/.
* Read about the basic principles behind the Coco platform in [COCO: A Platform for Comparing Continuous Optimizers in a Black-Box Setting](https://arxiv.org/pdf/1603.08785.pdf).
* For details on the experimental set-up to carry out the benchmarking
please refer to http://numbbo.github.io/coco-doc/experimental-setup/.
* More detailed documentation of the existing benchmark suites can be found here:
Expand All @@ -643,7 +642,7 @@ Links and Documentation <a name="Links"></a>

Comprehensive List of Documentations <a name="Documentations"></a>
--------------------------------------------
* General introduction: http://numbbo.github.io/coco-doc
* General introduction: [COCO: A Platform for Comparing Continuous Optimizers in a Black-Box Setting](https://arxiv.org/pdf/1603.08785.pdf)
* Experimental setup: http://numbbo.github.io/coco-doc/experimental-setup/
* Testbeds
- bbob: http://coco.gforge.inria.fr/downloads/download16.00/bbobdocfunctions.pdf
Expand Down
3 changes: 2 additions & 1 deletion appveyor.yml
Expand Up @@ -21,7 +21,8 @@ init:

install:
# - cmd: conda install -y matplotlib numpy scipy setuptools six pytest cython
- cmd: pip install matplotlib numpy scipy setuptools six pytest cython # use pip because conda install numpy fails with Python != 3.6
- cmd: pip install matplotlib --ignore-installed # use pip because conda install numpy fails with Python != 3.6
- cmd: pip install numpy scipy setuptools six pytest cython
- cmd: python do.py run-python install-user
- cmd: python do.py install-postprocessing

Expand Down
2 changes: 1 addition & 1 deletion code-experiments/test/regression-test/test_suites.py
Expand Up @@ -98,7 +98,7 @@ def regression_test_a_suite(suite_name, filename):
data_file_path = ("data/regression_test_%ddata_for_suite_" % ndata) + name + ".py"

if not os.path.exists(data_file_path):
remote_data_path = 'http://coco.gforge.inria.fr/regression-tests/'
remote_data_path = 'https://coco.gforge.inria.fr/regression-tests/'
# download data from remote_data_path:
if not os.path.exists(os.path.split(data_file_path)[0]):
try:
Expand Down
12 changes: 8 additions & 4 deletions code-postprocessing/cocopp/archiving.py
Expand Up @@ -83,7 +83,7 @@
except ImportError:
from urllib import urlretrieve as _urlretrieve

coco_url = "http://coco.gforge.inria.fr"
coco_url = "https://coco.gforge.inria.fr"
cocopp_home = os.path.abspath(os.path.expanduser(os.path.join("~", ".cocopp")))
cocopp_home_archives = os.path.join(cocopp_home, "data-archives")
default_archive_location = os.path.join(cocopp_home, 'data-archives')
Expand Down Expand Up @@ -263,7 +263,7 @@ def _get_remote(url, target_folder=None, redownload=False):
"or use the `update` method to re-download the remote definition file."
% (_definition_file_to_read(target_folder), url))
arch.remote_data_path = url
assert arch.remote_data_path == url # check that url was in the definition file
assert arch.remote_data_path.replace('https', 'http') == url.replace('https', 'http') # check that url was in the definition file
return arch

def get(url_or_folder=None):
Expand Down Expand Up @@ -1300,7 +1300,7 @@ def add_archive(self, name):
"""Allow to use a new official archive.

The archive must exist as a subfolder of
http://coco.gforge.inria.fr/data-archive
https://coco.gforge.inria.fr/data-archive
"""
self._list += [(self._base + name, None),]
self.set_as_attributes_in()
Expand Down Expand Up @@ -1371,7 +1371,11 @@ def update_all(self):
# self.set_as_attributes_in(update=True)
for name in self.names:
name = name.replace('-', '_')
getattr(self, name).update()
try:
getattr(self, name).update()
except AttributeError:
if name != 'test':
raise

official_archives = OfficialArchives()
# TODO-decide: when should we (try to) update these?
Expand Down
2 changes: 1 addition & 1 deletion code-postprocessing/cocopp/comp2/pprldistr2.py
Expand Up @@ -78,8 +78,8 @@ def beautify(handles):
toolsdivers.legend(loc='best')

x = numpy.asarray(axisHandle.get_xticks())
axisHandle.set_xticklabels([str(int(numpy.log10(xx))) for xx in x])
axisHandle.set_xticks(x)
axisHandle.set_xticklabels([str(int(numpy.log10(xx))) for xx in x])
plt.xlim(xlim)


Expand Down
2 changes: 1 addition & 1 deletion code-postprocessing/cocopp/dataformatsettings.py
Expand Up @@ -35,7 +35,7 @@ def align_data_into_evals(self, aligner, data, dataset):
"""
dataset.evals, maxevals, finalfunvals = aligner(data,
self.evaluation_idx, self.function_value_idx)
assert all(dataset.evals[0][1:] == 1)
assert all(dataset.evals[0][1:] == 1), dataset._evals[0]
return maxevals, finalfunvals


Expand Down
2 changes: 1 addition & 1 deletion code-postprocessing/cocopp/firstsession.py
Expand Up @@ -30,7 +30,7 @@
import cocopp

# Collect and unarchive data (~20MB)
dataurl = 'http://coco.gforge.inria.fr/data-archive/2009/BIPOP-CMA-ES_hansen_noiseless.tgz'
dataurl = 'https://coco.gforge.inria.fr/data-archive/2009/BIPOP-CMA-ES_hansen_noiseless.tgz'
filename, headers = urlretrieve(dataurl)
archivefile = tarfile.open(filename)
archivefile.extractall()
Expand Down
41 changes: 40 additions & 1 deletion code-postprocessing/cocopp/genericsettings.py
Expand Up @@ -92,6 +92,13 @@
instancesOfInterestBiobj2017,
instancesOfInterestBiobj2018]

reference_algorithm_styles = {'ls': '-', 'linewidth': 4,
'marker': 'D', 'markersize': 11., 'markeredgewidth': 1.5,
'markerfacecolor': 'linen', #'wheat', OR: antiquewhite
'markeredgecolor': 'linen', #'wheat',
'color': 'linen', #'wheat'
}

line_styles = [ # used by ppfigs and pprlmany
{'marker': 'o', 'markersize': 31, 'linestyle': '-', 'color': '#000080'}, # 'NavyBlue'
{'marker': 'd', 'markersize': 26, 'linestyle': '-', 'color': '#ff00ff'}, # 'Magenta'
Expand All @@ -106,7 +113,7 @@
{'marker': 'p', 'markersize': 24, 'linestyle': '-', 'color': 'c'},
#{'marker': 'H', 'markersize': 23, 'linestyle': '-', 'color': '#bebebe'}, # 'Gray'
# {'marker': 'o', 'markersize': 23, 'linestyle': '-', 'color': '#ffff00'}, # 'Yellow'
{'marker': '3', 'markersize': 23, 'linestyle': '-', 'color': '#adff2f'}, # 'GreenYellow'
# {'marker': '3', 'markersize': 23, 'linestyle': '-', 'color': '#adff2f'}, # 'GreenYellow'
{'marker': '1', 'markersize': 23, 'linestyle': '-', 'color': '#228b22'}, # 'ForestGreen'
{'marker': 'D', 'markersize': 23, 'linestyle': '-', 'color': '#ffc0cb'}, # 'Lavender'
{'marker': '<', 'markersize': 23, 'linestyle': '-', 'color': '#87ceeb'}, # 'SkyBlue' close to CornflowerBlue
Expand Down Expand Up @@ -135,6 +142,38 @@
{'marker': '3', 'markersize': 23, 'linestyle': '-', 'color': '#bebebe'}, # 'Gray'

]
line_styles_old = [ # used by ppfigs and pprlmany see https://matplotlib.org/gallery/color/named_colors.html https://i.stack.imgur.com/lFZum.png
{'marker': 'o', 'markersize': 25, 'linestyle': '-', 'color': 'midnightblue'},
{'marker': 'v', 'markersize': 30, 'linestyle': '-', 'color': 'blue'},
{'marker': '*', 'markersize': 31, 'linestyle': '-', 'color': 'mediumpurple'},
{'marker': 's', 'markersize': 20, 'linestyle': '-', 'color': 'rebeccapurple'}, # square
{'marker': '^', 'markersize': 27, 'linestyle': '-', 'color': 'blueviolet'}, # or darkviolet
{'marker': 'd', 'markersize': 26, 'linestyle': '-', 'color': 'violet'},
{'marker': 'h', 'markersize': 25, 'linestyle': '-', 'color': 'fuchsia'}, # like magenta
{'marker': 's', 'markersize': 24, 'linestyle': '-', 'color': 'cornerflowerblue'}, # deeppink seems too close to reddish
{'marker': 'H', 'markersize': 24, 'linestyle': '-', 'color': 'crimson'}, # dark reddish
{'marker': '<', 'markersize': 24, 'linestyle': '-', 'color': 'deepskyblue'}, # or lightskyblue
{'marker': 'D', 'markersize': 24, 'linestyle': '-', 'color': 'darkturquoise'},
{'marker': '1', 'markersize': 24, 'linestyle': '-', 'color': 'cyan'},
{'marker': '2', 'markersize': 24, 'linestyle': '-', 'color': 'lime'},
{'marker': '4', 'markersize': 24, 'linestyle': '-', 'color': 'green'},
{'marker': '3', 'markersize': 24, 'linestyle': '-', 'color': 'yellowgreen'},
{'marker': 'o', 'markersize': 25, 'linestyle': '-', 'color': 'r'},
{'marker': 'v', 'markersize': 30, 'linestyle': '-', 'color': 'b'},
{'marker': '*', 'markersize': 31, 'linestyle': '-', 'color': 'm'},
{'marker': 's', 'markersize': 20, 'linestyle': '-', 'color': 'c'}, # square
{'marker': '^', 'markersize': 27, 'linestyle': '-', 'color': 'y'},
{'marker': 'd', 'markersize': 26, 'linestyle': '-', 'color': 'k'},
{'marker': 'h', 'markersize': 25, 'linestyle': '-', 'color': 'b'},
{'marker': 's', 'markersize': 24, 'linestyle': '-', 'color': 'g'},
{'marker': 'H', 'markersize': 24, 'linestyle': '-', 'color': 'c'},
{'marker': '<', 'markersize': 24, 'linestyle': '-', 'color': 'r'},
{'marker': 'D', 'markersize': 24, 'linestyle': '-', 'color': 'k'},
{'marker': '1', 'markersize': 24, 'linestyle': '-', 'color': 'm'},
{'marker': '2', 'markersize': 24, 'linestyle': '-', 'color': 'g'},
{'marker': '4', 'markersize': 24, 'linestyle': '-', 'color': 'y'},
{'marker': '3', 'markersize': 24, 'linestyle': '-', 'color': 'r'}
]
line_styles_old = [ # used by ppfigs and pprlmany
{'marker': 'o', 'markersize': 25, 'linestyle': '-', 'color': 'b'},
{'marker': 'v', 'markersize': 30, 'linestyle': '-', 'color': 'r'},
Expand Down
2 changes: 1 addition & 1 deletion code-postprocessing/cocopp/pproc.py
Expand Up @@ -1176,7 +1176,7 @@ def evals_with_simulated_restarts(self,
res += [samplesize * [np.nan]] # TODO: this is "many" data with little information
continue
elif nsucc == len(evals) and not bootstrap:
res += [sorted(evals)]
res += [sorted(evals[randintfirst(0, len(evals), samplesize)])]
continue
nindices = ~indices
assert sum(indices) + sum(nindices) == len(evals)
Expand Down
2 changes: 1 addition & 1 deletion code-postprocessing/cocopp/test.py
Expand Up @@ -139,7 +139,7 @@ def retrieve_algorithm(data_path, folder_name, algorithm_name, file_name=None):
replaced by `cocopp.archiving.get` or `cocopp.archiving.official_archives` or `cocopp.archives.all`)"""
algorithm_file = join_path(data_path, file_name if file_name else algorithm_name)
if not os.path.exists(algorithm_file):
data_url = 'http://coco.gforge.inria.fr/data-archive/%s/%s' % (folder_name, algorithm_name)
data_url = 'https://coco.gforge.inria.fr/data-archive/%s/%s' % (folder_name, algorithm_name)
urlretrieve(data_url, algorithm_file)


Expand Down
34 changes: 20 additions & 14 deletions code-postprocessing/helper-scripts/changeAlgIdAndComment.py
@@ -1,6 +1,7 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import print_function
import os
import sys
import getopt
Expand All @@ -19,17 +20,21 @@
written: db 28/01/2010
db 26/06/2013 corrected documentation
db 19/06/2017 updated docstrings, allow bbob-biobj(-ext) data sets
db 16/11/2020 finally moved to python 3 :-)

"""

__all__ = ['main']


class Usage(Exception):
def __init__(self, msg):
self.msg = msg


def usage():
print main.__doc__
print(main.__doc__)


def main(argv=None):
"""Main routine.
Expand Down Expand Up @@ -65,22 +70,21 @@ def main(argv=None):

"""


if argv is None:
argv = sys.argv[1:]

try:
try:
opts, args = getopt.getopt(argv, "h",
["help"])
except getopt.error, msg:
raise Usage(msg)
except:
raise Usage(sys.exc_info()[0])

if not args:
usage()
sys.exit()

#Process options
# Process options
for o, a in opts:
if o in ("-h", "--help"):
usage()
Expand All @@ -91,11 +95,11 @@ def main(argv=None):
# check if all arguments are there and ask for them if not:
if len(args) < 3:
if len(args) < 2:
name = raw_input("You forgot to specify an algorithm name. " +
"Please enter one (algId):")
name = input("You forgot to specify an algorithm name. " +
"Please enter one (algId):")
args.append(name)
comment = raw_input("You forgot to specify a comment. Please " +
"enter one for algorithm " + args[1] + ":")
comment = input("You forgot to specify a comment. Please " +
"enter one for algorithm " + args[1] + ":")
args.append(comment)
folder = args[0]
# make sure that folder name ends with a '/' to be able to append
Expand All @@ -107,10 +111,10 @@ def main(argv=None):
comment = args[2]

if not os.path.exists(folder):
print "ERROR: folder " + folder + " does not exist!"
print("ERROR: folder " + folder + " does not exist!")
sys.exit()
if not os.path.isdir(folder):
print "ERROR: " + folder + " is not a directory"
print("ERROR: " + folder + " is not a directory")
sys.exit()

# get all .info files in folder:
Expand Down Expand Up @@ -166,9 +170,11 @@ def main(argv=None):

sys.exit()

except Usage, err:
print >>sys.stderr, err.msg
print >>sys.stderr, "for help use -h or --help"
except IOError as e:
errno, strerror = e.args
print('>> ' + strerror + e.msg)
print('>> ' + errno)
print('for help use -h or --help')
return 2


Expand Down