README.md

July 9, 2026 · View on GitHub

MultiBgolearn

Multi-Objective Bayesian Global Optimization Framework for Materials Design

English | 中文 | 日本語 | 한국어 | Deutsch

GitHub Stars GitHub Forks Open Issues License PyPI

Bgolearn MultiBgolearn BgoFace CodeDemo

ResourceDescriptionPath
BgolearnUnified Bayesian optimization frameworkgithub.com/Bin-Cao/Bgolearn
Bgolearn Multi Object Module: MultiBgolearnMulti-objective optimization modulegithub.com/Bin-Cao/MultiBgolearn
Bgolearn official GUI: BgoFaceOfficial graphical user interfacegithub.com/Bgolearn/BgoFace
CodeDemoExample code and datasetsgithub.com/Bgolearn/CodeDemo

The Bgolearn project has received support from the Shanghai Artificial Intelligence Open Source Award Project Support Plan (2025) (上海市人工智能开源奖励项目支持计划, 2025, Project).

Overview

MultiBgolearn is a Python package for multi-objective Bayesian global optimization (MOBO) in materials design. It extends the single-objective Bgolearn framework to support simultaneous optimization of multiple material properties, making it suitable for real-world materials discovery tasks where trade-offs between competing objectives are common.

Features

  • Implements multiple MOBO algorithms, including Expected Hypervolume Improvement (EHVI), Probability of Improvement (PI), Upper Confidence Bound (UCB), and q-Noisy Expected Hypervolume Improvement (qNEHVI).
  • Supports simultaneous optimization of multiple target properties.
  • Provides flexible surrogate model selection, including RandomForest, GradientBoosting, SVR, GaussianProcess, and more.
  • Supports automatic or user-defined surrogate model selection.
  • Uses bootstrap iterations for uncertainty quantification when needed.

Installation

pip install MultiBgolearn

Note: If installation of the dependency pygmo fails with pip, install it through conda:

conda install -c conda-forge pygmo

Usage

from MultiBgolearn import bgo

dataset_path = "./data/dataset.csv"
VSdataset = "virtual_sample.xlsx"
object_num = 3

VS_recommended, improvements, index = bgo.fit(
    dataset_path,
    VSdataset,
    object_num,
    max_search=True,
    method="EHVI",
    assign_model="GaussianProcess",
    bootstrap=5,
)

Citation

If you use Bgolearn or MultiBgolearn in your work, please cite:

@article{Cao2026Bgolearn,
  author    = {Bin Cao and Jie Xiong and Jiaxuan Ma and Yuan Tian and Yirui Hu and Mengwei He and Longhan Zhang and Jiayu Wang and Jian Hui and Li Liu and Dezhen Xue and Turab Lookman and Jun Wang and Tong-Yi Zhang},
  title     = {Bgolearn: a unified Bayesian optimization framework for accelerating materials discovery},
  journal   = {npj Computational Materials},
  year      = {2026},
  volume    = {12},
  pages     = {Article xxx},
  doi       = {10.1038/s41524-026-02226-3},
  url       = {https://doi.org/10.1038/s41524-026-02226-3}
}

Contributing

Contributions are welcome. Please open an issue or submit a pull request.

License

This project is licensed under the MIT License. See LICENSE for details.