The MCFClass Project
Compile-time switches in RelaxIV.h

These macros control some important details of the implementation. More...

Macros

#define DYNMC_MCF_RIV   3
 Decides if the graph topology (arcs, nodes) can be changed.
 
#define AUCTION   0
 Decides if the auction/shortest paths inizialization procedure is used.
 
#define RELAXIV_STATISTICS   0
 If RELAXIV_STATISTICS > 0, then statistic information about the behaviour of the Relaxation algorithm is computed.
 

Detailed Description

These macros control some important details of the implementation.

Although using macros for activating features of the implementation is not very C++, switching off some unused features may make the code more efficient in running time or memory.

Macro Definition Documentation

◆ DYNMC_MCF_RIV

#define DYNMC_MCF_RIV   3

Decides if the graph topology (arcs, nodes) can be changed.

If DYNMC_MCF_RIV > 0, the methods of the public interface of class that allow to change the topology of the underlying network are actually implemented. Possible values of this macro are:

  • 0 => the topology of the graph cannot be changed;
  • 1 => the methods that "close" arcs and delete nodes are implemented;
  • 2 => the methods that "open" previously closed arcs and add nodes are implemented;
  • 3 => the methods that change the start and end node of a (possibly "closed") arc, delete and create new arcs are implemented.

◆ AUCTION

#define AUCTION   0

Decides if the auction/shortest paths inizialization procedure is used.

If AUCTION == 1, then an auction/shortest paths inizialization procedure is provided [see SetPar() below] that has been reported to make the RelaxIV algorithm run faster on some classes of instances. The auction initialization essentially "spreads" the imbalances around the graph by performing some steps of the "pure" epsilon-relaxation method: this should produce "short" augmenting steps, that seem to be the best situation for RelaxIV.

By setting AUCTION == 0, some memory is saved.