Data-Driven Multitask Optimization Laboratory
Overview
D²MTOLab (Data-Driven Multitask Optimization Laboratory) is a comprehensive Python platform for optimization research, featuring 110+ algorithms, 180+ benchmark problems, and powerful tools for problem definition, algorithm development, and performance evaluation.
Whether you’re working on expensive black-box optimization, multiobjective optimization, or complex multitask scenarios, D²MTOLab provides a flexible and extensible framework to accelerate your research and support real-world applications.
Features
Comprehensive Algorithms - 110+ algorithms for expensive/inexpensive, single/multitask, single/multiobjective optimization
Rich Problem Suites - 180+ benchmark problems and real-world applications
Data-Driven Optimization - Surrogate modelling (GP, BO) for expensive optimization
Flexible Framework - Simple API and intuitive workflow for rapid prototyping
Fully Extensible - Easy to add custom algorithms and problems
Powerful Analysis Tools - Built-in visualization and statistical analysis
Parallel Computing - Multi-core support for batch experiments
Documentation
Quick Start
Installation
pip install ddmtolab
Requirements: Python 3.10+, PyTorch 2.5+, NumPy 2.0+
Basic Usage
import numpy as np
from ddmtolab.Methods.mtop import MTOP
from ddmtolab.Algorithms.MTSO.MTBO import MTBO
# Define objective function
def forrester(x):
return (6 * x - 2) ** 2 * np.sin(12 * x - 4)
# Create and solve optimization problem
problem = MTOP()
problem.add_task(forrester, dim=1)
results = MTBO(problem).optimize()
print(f"Best solution: {results.best_decs}")
print(f"Best objective: {results.best_objs}")
Batch Experiments
from ddmtolab.Methods.batch_experiment import BatchExperiment
from ddmtolab.Methods.data_analysis import DataAnalyzer
from ddmtolab.Algorithms.STSO.BO import BO
from ddmtolab.Algorithms.MTSO.MTBO import MTBO
from ddmtolab.Problems.MTSO.cec17_mtso_10d import CEC17MTSO_10D
if __name__ == '__main__':
batch_exp = BatchExperiment(base_path='./Data', clear_folder=True)
prob = CEC17MTSO_10D()
batch_exp.add_problem(prob.P1, 'P1')
batch_exp.add_problem(prob.P2, 'P2')
batch_exp.add_algorithm(BO, 'BO', n_initial=20, max_nfes=100)
batch_exp.add_algorithm(MTBO, 'MTBO', n_initial=20, max_nfes=100)
batch_exp.run(n_runs=20, max_workers=8)
DataAnalyzer().run()
Optimization Visualization
Key Components
Algorithms (110+)
Category |
Type |
Algorithms |
|---|---|---|
STSO |
Inexpensive |
GA, DE, PSO, SL_PSO, KLPSO, CSO, CMA_ES, IPOP_CMA_ES, sep_CMA_ES, MA_ES, xNES, OpenAI_ES, AO, GWO, EO |
STSO |
Expensive |
BO, EEI_BO, ESAO, SHPSO, SA_COSO, TLRBF, GL_SADE, AutoSAEA, DDEA_MESS, LSADE |
STMO |
Inexpensive |
NSGA_II, NSGA_III, NSGA_II_SDR, SPEA2, MOEA_D, MOEA_DD, MOEA_D_FRRMAB, MOEA_D_STM, RVEA, IBEA, TwoArch2, MSEA, C_TAEA, CCMO |
STMO |
Expensive |
ParEGO, K_RVEA, DSAEA_PS, KTA2, REMO, ADSAPSO, CSEA, DISK, DRLSAEA, DirHV_EI, EDN_ARMOEA, EIM_EGO, EM_SAEA, KTS, MGSAEA, MMRAEA, MOEA_D_EGO, MultiObjectiveEGO, PCSAEA, PEA, PIEA, SAEA_DBLL, SSDE, TEA, CPS_MOEA, MCEA_D |
MTSO |
Inexpensive |
MFEA, MFEA_II, EMEA, EBS, G_MFEA, MTEA_AD, MKTDE, MTEA_SaO, SREMTO, LCB_EMT, BLKT_DE, DTSKT, EMTO_AI, MFEA_AKT, MFEA_DGD, MFEA_VC, MTDE_ADKT, MTEA_HKTS, MTEA_PAE, MTES_KG, SSLT_DE, TNG_SNES |
MTSO |
Expensive |
MTBO, RAMTEA, SELF, EEI_BO_plus, MUMBO, BO_LCB_CKT, BO_LCB_BCKT, MFEA_SSG, SaEF_AKT |
MTMO |
Inexpensive |
MO_MFEA, MO_MFEA_II, MO_EMEA, MO_MTEA_SaO, MTDE_MKTA, MTEA_D_DN, EMT_ET, EMT_PD, EMT_GS, MO_MTEA_PAE, MO_SBO, MTEA_D_TSD, MTEA_DCK |
MTMO |
Expensive |
ParEGO_KT |
Problems (180+)
Category |
Problem Suites |
|---|---|
STSO |
CLASSICALSO (8), CEC10_CSO (20) |
STMO |
ZDT (6), DTLZ (9), WFG (9), UF (10), CF (10), MW (14) |
MTSO |
CEC17_MTSO (9), CEC17_MTSO_10D (9), CEC19_MaTSO, CMT (9), STOP (12) |
MTMO |
CEC17_MTMO (9), CEC19_MTMO (10), CEC19_MaTMO, CEC21_MTMO (10), MTMO_DTLZ, MTMOInstances |
RWO |
PEPVM, PINN_HPO (12), SOPM, SCP, MO_SCP, PKACP, NN_Training, TSP (6) |
Citation
If you use D²MTOLab in your research, please cite:
@software{ddmtolab2025,
author = {Jiangtao Shen},
title = {D$^2$MTOLab: A Python Platform for Data-Driven Multitask Optimization},
year = {2025},
url = {https://github.com/JiangtaoShen/DDMTOLab}
}
Contact
Author: Jiangtao Shen
Email: j.shen5@exeter.ac.uk
GitHub: JiangtaoShen/DDMTOLab
Issues: GitHub Issues
License
This project is licensed under the MIT License.