Optimizing the two-dimensional bandwidth problem under the maximum norm using exact and heuristic approaches

This paper addresses the Two-dimensional Bandwidth Minimization Problem (2D-BMP) using the
-
Departamento de Informática y Estadística, Universidad Rey Juan Carlos — C. Tulipán, s/n, Móstoles, 28933, Madrid, Spain
-
Cinvestav, Unidad Tamaulipas — Km. 5.5 Carretera Victoria - Soto La Marina, Victoria, 87130, Tamaulipas, Mexico
-
LERIA, Université d'Angers — 2 Bd de Lavoisier, Angers, 49000, France
*Corresponding author.
Instances are categorized in different datasets inside the instances folder. All instances are either from the https://archive.ics.uci.edu/ml/index.php, the Harwell-Boeing Sparse Matrix Collection, or generated based on graph families described in the paper.
Each instance is encoded as a plain text file representing a graph:
- The first line contains the number of vertices
nand edgesm. - Each subsequent line contains a pair of integers
u vrepresenting an edge between vertexuand vertexv. - Vertices are indexed from 0 to n-1.
Example:
10 15
0 1
0 2
1 3
...
Execution of the CSP algorithm specifying the path to the instances directory. Note that you need to have pycsp3 installed.
python3 matrix_bandwidth.py -k=<K> -data=<instance> -dataparser=mtx_parser.pyOr specifying bounds:
python3 matrix_bandwidth.py -lb=<LB> -ub=<UB> -data=<instance> -dataparser=mtx_parser.pyExecution of the CBMA algorithm specifying the path to the instances directory:
java -jar CBMA.jar --instances.path.default=<path_to_instances_directory>Execution of the MA algorithm specifying the path to the instances directory:
java -jar MATDBMP.jar <path_to_instances_directory>Once generated in DRSA.jar, you can execute it highlighting standard Java syntax. Main.java accepts up to 4 optional arguments:
java -jar DRSA.jar [instances_path] [num_runs] [seed] [max_time_seconds]Example: Run 5 times per instance, with seed 42, and a maximum time of 3600 seconds (1 hour).
java -jar target/DRSA.jar instances/prelim2 5 42 3600- Python 3.10+
- PyCSP3
or
sudo pip3 install pycsp3 sudo apt-get install openjdk-11-jdk
sudo pip3 install --upgrade pycsp3
```bash
python3 matrix_bandwidth.py -lb=<lower> -ub=<upper> -data=<instance> -parser=mtx_parser.py
```
Consider citing our paper if used in your own work:
@article{cavero2025heuristic,
title={Heuristic and Exact Approaches for the Two-Dimensional Bandwidth Problem},
author={Cavero, Sergio and Pardo, Eduardo G. and Rodriguez-Tello, Eduardo and Monfroy, Eric and Vasconcellos-Gaete, Claudia},
journal={XXXXXX},
year={202X},
doi={XXXXXXX}
}| Mork is a Java framework for easily solving hard optimization problems. You can create a project and try the framework in under one minute. See the documentation or the source code. |
|---|