CEGO

CEGO: C++11 Evolutionary Global Optimization - Published in JOSS (2019)

https://github.com/usnistgov/cego

Science Score: 98.0%

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

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 1 DOI reference(s) in JOSS metadata
  • Academic publication links
  • Committers with academic emails
    1 of 2 committers (50.0%) from academic institutions
  • Institutional organization owner
    Organization usnistgov has institutional domain (www.nist.gov)
  • JOSS paper metadata
    Published in Journal of Open Source Software
Last synced: 6 months ago · JSON representation

Repository

C++11 Evolutionary Global Optimization

Basic Info
  • Host: GitHub
  • Owner: usnistgov
  • License: mit
  • Language: Jupyter Notebook
  • Default Branch: master
  • Size: 944 KB
Statistics
  • Stars: 13
  • Watchers: 6
  • Forks: 4
  • Open Issues: 0
  • Releases: 1
Created over 7 years ago · Last pushed about 1 year ago
Metadata Files
Readme License

README.md

CEGO

PyPI version

CEGO (pronounced sea-go) is C++11 Evolutionary Global Optimization. This library is used to:

  • Solve unconstrained global optimization problems (Soft bound constraints can be added to the objective function as needed)
  • The input variables can be constrained to be integers (see PressureVesselOptimization )

It allows for:

  • A flexible C++11 architecture for doing parallel global optimization with multithreading
    • Also allows for new evolutionary optimization techniques to be specified with a minimum of code
    • Uses the age-layered approach
  • A fundamental C++ datatype (CEGO::numberish) that can be either an integer or a floating double precision value
  • Python wrappers of the core of the library (single-threaded)

The C++ API documentation (generated by doxygen ) is available here

Automated Tests on Github Actions: build and run tests

Examples:

Try it in your browser: Binder

Statically rendered examples are provided as Jupyter notebooks served on nbviewer (link to folder), roughly sorted in terms of complexity of the example:

License

*MIT licensed (see LICENSE for specifics), not subject to copyright in the USA. Foreign Rights Reserved, Secretary of Commerce.

Dependencies

Contributing/Getting Help

If you would like to contribute to CEGO or report a problem, please open a pull request or submit an issue. Especially welcome would be additional tests.

If you want to discuss or request assistance, please open an issue.

To get started, you should check out the Jupyter notebooks in the notebooks folder; they demonstrate some of the capabilities of CEGO.

Installation

Prerequisites

You will need:

  • cmake (on windows, install from cmake, on linux sudo apt install cmake should do it, on OSX, brew install cmake)
  • Python (the anaconda distribution is used by the authors)
  • a compiler (on windows, Visual Studio 2015+ (express version is fine), g++ on linux/OSX)

If on linux you use Anaconda and end up with an error something like ImportError: /home/theuser/anaconda3/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/theuser/anaconda3/lib/python3.6/site-packages/CEGO.cpython-35m-x86_64-linux-gnu.so) it can be sometimes fixed by installing libgcc with conda: conda install libgcc. This is due to an issue in Anaconda

To install in one line from github (easiest)

This will download the sources into a temporary directory and build and install the python extension so long as you have the necessary prerequisites: pip install git+git://github.com/usnistgov/CEGO.git

From a cloned repository

Alternatively, you can clone (recursively!) and run the setup.py script

git clone --recursive https://github.com/usnistgov/CEGO cd CEGO python setup.py install

to install, or

python setup.py develop

to use a locally-compiled version for testing. If you want to build a debug version, you can do so with

python setup.py build -g develop With a debug build, you can step into the debugger to debug the C++ code, for instance.

Cmake build

Starting in the root of the repo (a debug build with the default compiler, here on linux):

git clone --recursive https://github.com/usnistgov/CEGO cd CEGO mkdir build cd build cmake .. cmake --build . For those using Anaconda on Linux, please use the following for cmake: mkdir build cd build cmake .. -DPYTHON_EXECUTABLE=`which python` cmake --build . For Visual Studio 2015 (64-bit) in release mode, you would do: git clone --recursive https://github.com/usnistgov/CEGO cd CEGO mkdir build cd build cmake .. -G "Visual Studio 14 2015 Win64" cmake --build . --config Release

If you need to update your submodules (pybind11 and friends)

git submodule update --init

For other options, see the cmake docs

Debugging

  • lstopo from the hwloc package can tell you the physical configuration of the cores
  • taskset --cpu-list 0-23 nohup ./Main & will run on the first 24 threads (or you could split up in a different way)

Owner

  • Name: National Institute of Standards and Technology
  • Login: usnistgov
  • Kind: organization
  • Location: Gaithersburg, Md.

Department of Commerce

JOSS Publication

CEGO: C++11 Evolutionary Global Optimization
Published
April 23, 2019
Volume 4, Issue 36, Page 1147
Authors
Ian H. Bell ORCID
National Institute of Standards and Technology, Boulder, CO, USA
Editor
Jed Brown ORCID
Tags
global optimization

GitHub Events

Total
  • Watch event: 2
  • Member event: 2
  • Push event: 8
  • Fork event: 2
  • Create event: 1
Last Year
  • Watch event: 2
  • Member event: 2
  • Push event: 8
  • Fork event: 2
  • Create event: 1

Committers

Last synced: 7 months ago

All Time
  • Total Commits: 188
  • Total Committers: 2
  • Avg Commits per committer: 94.0
  • Development Distribution Score (DDS): 0.005
Past Year
  • Commits: 12
  • Committers: 1
  • Avg Commits per committer: 12.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Ian Bell i****l@n****v 187
Jed Brown j****d@j****g 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: about 1 hour
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 7.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tcxiaoma (1)
  • sjvrijn (1)
Pull Request Authors
  • jedbrown (1)
Top Labels
Issue Labels
Pull Request Labels