G-DFL: Combining Gradient Information and Primitive Directions for High-Performance Mixed-Integer Optimization
Implementation of the G-DFL algorithm proposed in
and of the MISQP algorithm introduced in
If you have used our code for research purposes, please cite the publication mentioned above. For the sake of simplicity, we provide the Bibtex format:
@Article{Lapucci2026,
author={Lapucci, Matteo
and Liuzzi, Giampaolo
and Lucidi, Stefano
and Mansueto, Pierluigi},
title={Combining gradient information and primitive directions for high-performance Bound-Constrained mixed-integer optimization},
journal={Journal of Global Optimization},
year={2026},
month={Jan},
day={12},
issn={1573-2916},
doi={10.1007/s10898-025-01583-5},
url={https://doi.org/10.1007/s10898-025-01583-5}
}
In order to execute the code, you need an Anaconda environment.
python v3.9.16numpy v1.24.3scipy v1.10.1tensorflow v2.13.0gurobipy v11.0.0
In order to run some parts of the code, the Gurobi Optimizer (Version 11 or higher) needs to be installed and, in addition, a valid Gurobi licence is required.
In args_parser.py you can find all the possible arguments. Given a terminal (Anaconda Prompt for Windows users), two examples of execution could be the following.
python main.py --algs G-DFL MISQP --seeds 16007 --verbose --max_time 2 --type_gradient_related_direction lbfgs
python main.py --algs G-DFL MISQP --seeds 16007 --save_logs --max_time 2 --type_gradient_related_direction lbfgs
In the second case, the logs are saved in the Outputs folder. In main.py, you can find all the documentation about how they are stored.
If you have any question, feel free to contact us:
Pierluigi Mansueto
Global Optimization Laboratory (GOL)
University of Florence
Email: pierluigi dot mansueto at unifi dot it
Giampaolo Liuzzi
Dipartimento di Ingegneria Informatica Automatica e Gestionale "Antonio Ruberti" (DIAG) (DIAG)
University of Rome "La Sapienza"
Email: liuzzi at diag dot uniroma1 dot it