Skip to content

jicheng9617/OffMOB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Offline Multi-Objective Bandits

This repository contains the official implementation of our AAAI 2026 paper: Offline Multi-Objective Bandits: From Logged Data to Pareto-Optimal Policies

๐Ÿ“ Contents

  • synthetic_main.py โ€” main experiment runner.
  • data/ โ€” synthetic datasets and generator (data/synthetic_data.py).
  • algorithms/ โ€” algorithm implementations (OffMOB, MOLinLCB, MOKernLCB, neural baselines, ...).
  • core/ โ€” experiment utilities, runner, metrics, plotting.
  • results/ โ€” saved .npz experiment outputs (created by the runner).

๐Ÿงฐ Requirements

  • Python 3.8+
  • Recommended packages: numpy, scipy, torch, tqdm, easydict, absl-py, matplotlib

โ–ถ๏ธ Quick start

Run a small OffMOB experiment:

python synthetic_main.py --algo_group=offmob --num_steps=100 --num_sim=2 --data_type=quadratic --results_dir=results

Important flags (see top of synthetic_main.py):

  • --algo_group : all / offmob / baseline / ablation
  • --data_type : quadratic / quadratic2 / cosine
  • --noise_variance, --num_steps, --num_sim, --num_actions, --context_dim, --num_objectives
  • --results_dir : output folder for .npz files

๐Ÿ“Š Results format

Runners save .npz files (e.g. *_final.npz) containing:

  • results : dict mapping algorithm name โ†’ metrics arrays (tchebycheff gaps, accuracies, rewards)
  • test_points : list of evaluation steps

๐Ÿ› ๏ธ Development notes

  • Seeds and hyperparams live in the runner; create_hparams configures defaults.
  • To add an algorithm implement sample_action, update, reset in the algorithm class.
  • Save backups before overwriting large .npz result files.

๐Ÿ“š Cite

If you use this code, please cite the paper:

About

AAAI 2026 Oral: Offline Multi-Objective Bandits

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages