Load Balancing

Problem Description

The Load Balancing (LB) problem, called Workload Apportionment in the ML4CO competition [Gasse22], apportions the workloads of a set of tasks (e.g., data streams) across as few machines (workers, e.g., servers) as possible. Each task can only use a subset of the machines, each machine has a limited capacity, and the apportionment must be robust to the failure of any single machine: for every task, the machines other than any one of its accessible machines must still be able to carry the task's full workload. The problem is a bin-packing problem with an apportionment formulation; it was inspired by large-scale systems at Google, and the instances were released for the ML4CO competition (the generator was released after the competition: load_balancing/load_balancing.py in the ML4CO-hidden repository).

Notation

MILP formulation [Gasse22]

\begin{align} \min_{x,y} \quad & \sum_{j \in N} y_j \\ \text{s.t.} \quad & x_{ij} \leq M_{ij}\, y_j && \forall i \in M,\ \forall j \in N \quad \text{(only used machines carry load)} \\ & \sum_{i \in M} x_{ij} \leq b_j && \forall j \in N \quad \text{(machine capacity)} \\ & \sum_{j \in N^i \setminus \{j'\}} x_{ij} \geq a_i && \forall i \in M,\ \forall j' \in N^i \quad \text{(robustness to failure of } j'\text{)} \\ & 0 \leq x_{ij} \leq b_j && \forall i \in M,\ \forall j \in N^i \\ & x_{ij} = 0 && \forall i \in M,\ \forall j \in N \setminus N^i \\ & y_j \in \{0,1\} && \forall j \in N \end{align}

An instance has \(|N|\) binary variables, \(|M||N|\) continuous variables, and \(|M||N| + |N| + \sum_{i \in M} |N^i|\) constraints.

Generator settings. The instances were generated with the parameter file load_balancing/params.text_pb2 of the ML4CO-hidden repository (confirmed on the instances):

Instance distributions

The table below summarizes the distributions that have been used in previous works, along with download links.

Hardness Level Dist Source
(ML4MILPs)
# Var B # Var I # Var C # Constr# Machines# Tasks# Accessible Machines per Task Related Literature
Hard [Gasse22] 1000 0 60000 64307.1710006055 expected (41–71 observed) ML4CO [Gasse22], PAS [Han2023]

Generator

The instance generator can be found in the hidden repository of the ML4CO competition ML4CO-hidden .

License

The LB instances LB instances (hard)  in Distributional MIPLIB were downloaded from the Github repository of ML4CO. Both the ML4CO  (data) and ML4CO-hidden (generator) repositories are under the BSD-3-Clause license. See ML4CO License and ML4CO-hidden License  for details about the license and the copyright notice from CERC Data Science For Decision Making.

Related Literature

LB has been used as a benchmark in the Machine Learning for Combinatorial Optimization Competition (ML4CO) [Gasse22]. We adhered to the train, validation, and test split established in ML4CO when compiling the distribution.

Citation

Any work that uses any of the above instances should cite the papers below:

Distributional MIPLIB

@misc{huang2024distributional,
      title={Distributional MIPLIB: a Multi-Domain Library for Advancing ML-Guided MILP Methods}, 
      author={Weimin Huang and Taoan Huang and Aaron M Ferber and Bistra Dilkina},
      year={2024},
      eprint={2406.06954},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}

ML4CO

@inproceedings{gasse2022machine,
  title={The machine learning for combinatorial optimization competition (ml4co): Results and insights},
  author={Gasse, Maxime and Bowly, Simon and Cappart, Quentin and Charfreitag, Jonas and Charlin, Laurent and Ch{\'e}telat, Didier and Chmiela, Antonia and Dumouchelle, Justin and Gleixner, Ambros and Kazachkov, Aleksandr M and others},
  booktitle={NeurIPS 2021 competitions and demonstrations track},
  pages={220--231},
  year={2022},
  organization={PMLR}
}
}

References

[Gasse22] Gasse, Maxime, et al. "The machine learning for combinatorial optimization competition (ML4CO): Results and insights." In NeurIPS 2021 Competitions and Demonstrations Track, PMLR vol. 176, pp. 220–231, 2022. [paper]

[Han23] Han, Qingyu, et al. "A GNN-guided predict-and-search framework for mixed-integer linear programming." In International Conference on Learning Representations (ICLR), 2023. [paper]