Skip to main content

Bayesian optimization structure search

Project description

Bayesian Optimization Structure Search (BOSS) is an active machine learning technique for accelerated global exploration of energy and property phase space. It is designed to facilitate machine learning in computational and experimental natural sciences.

For a more detailed description of the code and tutorials, please consult the user guide.

Installation

BOSS is distributed as a PyPI package and can be installed using pip:

python3 -m pip install --user aalto-boss

Basic usage

BOSS currently supports running via a simple CLI interface, provided by an executable called boss. The user must provide an input file containing a list of BOSS keywords and a Python script that defines a function to be optimized. The function must be named f and take a single input argument in the form of a 2D numpy array.

Consider the optimization of a 1D function defined in user_function.py:

""" user_function.py

 BOSS-compatible definition of the analytic function f(x) = sin(x) + 1.5*exp(-(x-4.3)**2)
"""
import numpy as np

 def f(X):
     x = X[0, 0]
     return np.sin(x) + 1.5*np.exp(-(x - 4.3)**2)

To minimize this function subject to the constraint 0 < x < 7, we define a BOSS input file boss.in:

# boss.in
userfn        user_function.py
bounds        0 7
yrange        -1 1
kernel        rbf
initpts       5
iterpts       15
verbosity     2

The optimization can now be started from the command line:

$ boss o boss.in

Credits

BOSS is under active development in the Computational Electronic Structure Theory (CEST) group at Aalto University. Past and current members of development team include

  • Ville Parkkinen,

  • Henri Paulamäki,

  • Arttu Tolvanen,

  • Joakim Löfgren (maintainer)

  • Milica Todorović (team lead)

If you wish to use BOSS in your research, please cite

Milica Todorovic, Micheal U. Gutmann, Jukka Corander, and Patrick Rinke
Bayesian inference of atomistic structure in functional materials
npj Comput Mater 5, 35 (2019)

Issues and feature requests

It is strongly encouraged to submit bug reports and feature requests via the gitlab issue tracker. The BOSS development team can be contacted by email at milica.todorovic@aalto.fi

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aalto-boss-1.0.tar.gz (41.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aalto_boss-1.0-py3-none-any.whl (55.8 kB view details)

Uploaded Python 3

File details

Details for the file aalto-boss-1.0.tar.gz.

File metadata

  • Download URL: aalto-boss-1.0.tar.gz
  • Upload date:
  • Size: 41.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for aalto-boss-1.0.tar.gz
Algorithm Hash digest
SHA256 786c72a22f86f6f34685075982fef9a5ce4c4b67432e80a14bc4045557154a50
MD5 e464db03aa870db4af0a3d7cb26a777c
BLAKE2b-256 137062ede850bc7afa76f265826128585c60a3411e1d3544a68fe2190e3e8754

See more details on using hashes here.

File details

Details for the file aalto_boss-1.0-py3-none-any.whl.

File metadata

  • Download URL: aalto_boss-1.0-py3-none-any.whl
  • Upload date:
  • Size: 55.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.43.0 CPython/3.7.6

File hashes

Hashes for aalto_boss-1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e89e5b9e640ef6c71ce33ace9ba168853e3d36e858d9c8ba0c33673a81d236f7
MD5 408471962e222ca2fbccc685165ebc9f
BLAKE2b-256 62e677cf60577a6e9f1a8457aae803e1f71f66d5c13af4d2af739eb4ea65e05d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page