Skip to content

KIST-CSRC/OvercomingTrade-off

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OvercomingTrade-off: Clustering-based MOBO for Ternary Catalysts

OvercomingTrade-off is a flexible framework that implements a clustering-based multi-objective Bayesian optimization (MOBO) workflow for batch multi-objective optimization. This framework integrates AI-driven decision-making to overcome traditional performance trade-offs. Its effectiveness was validated through the multi-property optimization of an Ir-Ru-based ternary catalyst system.

Model Overview

Key Features

  • Clustering-based selection strategy directs sampling toward diverse, Pareto-optimal regions in the composition space.
  • Automated batch synthesis data handling with built-in activity and stability metrics.
  • Bayesian optimization backbone (BoTorch/PyTorch) with q-NEHVI and related acquisition functions.
  • Hypervolume growth comparison against the conventional q-NEHVI method (Figure 2), highlighting improved exploration efficiency.
  • Validated on Ir-Ru-x ternary catalyst systems for simultaneous optimization of activity, stability, and cost.

Hypervolume Growth

📁 Project Structure

Clustering_MOBO/
├── BaseModel/                      # optimization and sampling code
│   ├── ClusteringBasedMultiobjectiveClass.py
│   ├── crowding_sample_logei.py
│   ├── crowding_transform.py
│   ├── discrete_optimizer.py
│   ├── discrete_sampler.py
│   ├── input_data.py
│   └── cluster/                    # clustering outputs
├── candidate/                      # saved candidate tensors
├── Figure/                         # visualization assets
├── result/                         # evaluation outputs and data
│   ├── Data/                       # experimental JSON files
│   ├── IrRuCo_pt/                  # result tensors by system
│   ├── IrRuFe_pt/
│   └── IrRuNi_pt/
├── botorch_env.yml
├── requirements.txt
└── README.md

⚙️ Usage Instructions

  1. Step 1 – Prepare or load input data in the result/ directory.
  2. Step 2 – Execute optimization routines found in BaseModel/ (e.g. python discrete_optimizer.py).
  3. Step 3 – Inspect outputs under candidate/ (selected candidates can be forwarded to the next experimental iteration).

See the in-code docstrings for parameter details and extension points.

🔧 Installation & Requirements

Python 3.10 is required. Install dependencies via conda or pip:

conda env create -f botorch_env.yml
conda activate botorch_env
# or
pip install -r requirements.txt

Recommended packages include torch, gpytorch, numpy, pandas, and matplotlib.

📄 License & Contact

This repository is intended for academic and research use only.
For questions, please contact:

Daeho Kim – Korea Institute of Science and Technology / Korea University
📧 Email: r4576@kist.re.kr

About

An autonomous experimentation framework for overcoming trade-offs in OER catalyst discovery.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages