FPBH.jl: A Feasibility Pump Based Heuristic for Multi-objective Mixed Integer Linear Programming in Julia

Feasibility pump is one of the successful heuristic solution approaches developed almost a decade ago for computing high-quality feasible solutions of single-objective integer linear programs, and it is implemented in exact commercial solvers such as CPLEX and Gurobi. In this study, we present the first Feasibility Pump Based Heuristic (FPBH) approach for approximately generating nondominated frontiers of multiobjective mixed integer linear programs with an arbitrary number of objective functions. The proposed algorithm extends our recent study for bi-objective pure integer programs that employs a customized version of several existing algorithms in the literature of both single-objective and multi-objective optimization. The method has two desirable characteristics: (1) There is no parameter to be tuned by users other than the time limit; (2) It can naturally exploit parallelism. An extensive computational study shows the efficacy of the proposed method on some existing standard test instances in which the true frontier is known, and also some randomly generated instances. We also numerically show the importance of parallelization feature of FPBH and illustrate that FPBH outperforms MDLS developed by Tricoire [39] on instances of multi-objective (1-dimensional) knapsack problem. We test the effect of using different commercial and non-commercial linear programming solvers for solving linear programs arising during the course of FPBH, and show that the performance of FPBH is almost the same in all cases. It is worth mentioning that FPBH is available as an open source Julia package, named as ‘FPBH.jl’, in GitHub. The package is compatible with the popular JuMP modeling language (Dunning et al. [16] and Lubin and Dunning [27]), supports input in LP and MPS file formats. The package can plot nondominated frontiers, can compute different quality measures (hypervolume, cardinality, coverage and uniformity), supports execution on multiple processors and can use any linear programming solver supported by MathProgBase.jl (such as CPLEX, Clp, GLPK, etc).

Article

Download

View PDF