![]() |
Google OR-Tools v9.14
a fast and portable software suite for combinatorial optimization
|
Implementation of: Caprara, Alberto, Matteo Fischetti, and Paolo Toth. 1999. “A Heuristic Method for the Set Covering Problem.” Operations Research 47 (5): 730–43. https://www.jstor.org/stable/223097
Hereafter referred to as CFT.
SUMMARY The CFT algorithm is a heuristic approach to the set-covering problem. At its core, it combines a primal greedy heuristic with dual information obtained from the optimization of the Lagrangian relaxation of the problem. (Note: columns/subsets and rows/elements will be used interchangeably.)
STRUCTURE The core of the algorithm is the 3Phase:
The paper also considers an optional outer loop, which invokes the 3Phase process and then fixes some columns from the current best solution. This introduces two levels of diving: the outer loop fixes "primal-good" columns (based on the best solution), while the inner loop fixes "dual-good" columns (based on reduced costs).
Key characteristics of the algorithm:
Definition at line 87 of file set_cover_cft.h.
#include <set_cover_cft.h>
Public Member Functions | |
Solution ()=default | |
Solution (const SubModel &model, const std::vector< SubsetIndex > &core_subsets) | |
double | cost () const |
const std::vector< FullSubsetIndex > & | subsets () const |
void | AddSubset (FullSubsetIndex subset, Cost cost) |
bool | Empty () const |
void | Clear () |
|
default |
operations_research::scp::Solution::Solution | ( | const SubModel & | model, |
const std::vector< SubsetIndex > & | core_subsets ) |
Definition at line 124 of file set_cover_cft.cc.
|
inline |
Definition at line 94 of file set_cover_cft.h.
|
inline |
Definition at line 99 of file set_cover_cft.h.
|
inline |
Definition at line 92 of file set_cover_cft.h.
|
inline |
Definition at line 98 of file set_cover_cft.h.
|
inline |
Definition at line 93 of file set_cover_cft.h.