GithubHelp home page GithubHelp logo

mingtaoli / panobbgo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from haraldschilly/panobbgo

0.0 0.0 0.0 1.12 MB

solver for parallel noisy global black-box optimization -- this is currently only work in progress

Shell 0.46% Python 99.54%

panobbgo's Introduction

Panobbgo: Parallel Noisy Black-Box Global Optimization.

It minimizes a function over a box in $R^n$ (n = dimension of the problem) while respecting a vector of constraint violations.

Build Status

Documentation

DOWNLOAD & INSTALL

This program is work in progress. Only do python setup.py build|install if you know what you are doing.

To get it running, you have to install the reqired dependencies. I installed IPython 0.13 (or higher) from their git sources, git checkout v0.13, and installed it locally: python setup.py install --user (which required to install the python-zmq Debian package, too).

To meet the other dependencies, I used virtualenv

$ virtualenv --system-site-packages .
$ . bin/activate #remember, you have to source this *always*
$ pip install numpy
$ pip install scipy
$ pip install matplotlib

to have up to date versions without having to rely on the packages of Debian.

For the user-interface, you also have to install python-gtk2, which also provides the pygtk module, right?

Dependencies

  • IPython ≥ 0.13

    • and you have to start your cluster via ipcluster start ... and tell Panobbgo about it :-)
  • NumPy ≥ 1.5.0

  • SciPy ≥ 0.8.0

  • matplotlib ≥ 1.1.0 (at least)

  • pyGTK ≥ 2.0: python-gtk2 in Debian/Ubuntu

  • nose ≥ 1.1

  • coverage ≥ 3.4

  • It also calls Git to get the ref of the HEAD for logging.

Running

One time

  1. Setup your cluster according to the IPython documentation (you have to know the profile name, default is default)
  2. panobbgo_lib must be available on all nodes. It contains the problem definitions you want to use. In particular, you have to create a script to execute everything - while especially the problem definition needs to be available for deserialization on the remote machine.
  3. After running it the first time, it will create a configuration file. There you have to enter the profile name, if it is not default.

Every time

  1. Start the cluster.
  2. If you use virtualenv, do $ . bin/activate in another terminal.
  3. Run the script, examples are included.

License

Apache 2.0

Credits

Based on ideas of Snobfit:

panobbgo's People

Contributors

haraldschilly avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.