Skip to content

GioniMexi/FeasPumpCollection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

79515d6 · Jul 6, 2023

History

9 Commits
Jul 2, 2023
Jul 2, 2023
Jul 2, 2023
Jul 2, 2023
Jul 2, 2023
Jul 2, 2023
Jul 3, 2023
Jul 2, 2023
Jul 2, 2023
Jul 2, 2023

Repository files navigation

Feasibility Pump Collection

At this moment the code support the Feasibility Pump versions [1],[2],[3],[4],[5].

Compilation instructions

This project uses CMake. Minimal steps (use the correct paths on your machine for CPLEX, XPRESS, SCIP):

  • mkdir build
  • cd build
  • cmake -DCMAKE_BUILD_TYPE=Release -DCPLEX_ROOT_DIR=/opt/ilog/cos129/cplex -DXPRESSDIR=/opt/fico/xpressmp87 -DSCIP_DIR=/opt/scip..
  • make -j12

Code overview

The main FP code is in feaspump.cpp. Interfaces to the supported LP solvers are in cpxmodel.cpp, xprsmodel.cpp, scipmodel.cpp, and pdlpmodel.cpp. Transformers (objects responsible for rounding a solution) are in transformers.cpp. Different strategies for sorting variables before rounding are in rankers.cpp.

Usage

$ .fp2 prob_file --config (-c) config_file

References

[1] M. Fischetti, F. Glover, and A. Lodi. The feasibility pump. Mathematical Programming, 104(1):91–104, 2005.

[2] L. Bertacco, M. Fischetti, and A. Lodi. A feasibility pump heuristic for general mixed-integer problems. Discrete Optimization, 4(1):63–76, 2007.

[3] T. Achterberg and T. Berthold. Improving the feasibility pump. Discrete Optimization, 4(1):77–86, 2007.

[4] M. Fischetti and D. Salvagnin. Feasibility pump 2.0. Mathematical Programming Computation, 1(2-3):201–222, 2009

[5] Berthold, T., Mexi, G., Salvagnin, D.: Using multiple reference vectors and objective scaling in the feasibility pump. EURO Journal on Computational Optimization 11, 100066