Camargue
Public Member Functions | Public Attributes | List of all members
CMR::LP::DualGroup< numtype > Struct Template Reference

Class template for storing dual LP solutions. More...

#include <dualgroup.hpp>

Public Member Functions

 DualGroup ()=default
 Construct an empty DualGroup.
 
 DualGroup (bool remove_neg, const LP::Relaxation &relax, const Sep::ExternalCuts &ext_cuts)
 Construct DualGroup from a Relaxation and HyperGraph collection. More...
 
 DualGroup (DualGroup &&D) noexcept
 
DualGroupoperator= (DualGroup &&D) noexcept
 

Public Attributes

std::vector< numtype > node_pi
 Dual values for degree constraints.
 
std::vector< numtype > node_pi_est
 Overestimates of node_pi.
 
std::vector< numtype > cut_pi
 Dual values for cuts.
 
std::unordered_map< Sep::Clique, numtype > clique_pi
 Dual values/multiplicities for Cliques.
 

Detailed Description

template<typename numtype>
struct CMR::LP::DualGroup< numtype >

Class template for storing dual LP solutions.

Template Parameters
numtypethe number type used for the vectors/pi values.

Constructor & Destructor Documentation

template<typename numtype >
CMR::LP::DualGroup< numtype >::DualGroup ( bool  remove_neg,
const LP::Relaxation relax,
const Sep::ExternalCuts ext_cuts 
)

Construct DualGroup from a Relaxation and HyperGraph collection.

Construct a DualGroup by querying the LP solver for dual values and using the collection of cuts, cliques, and teeth to generate clique multiplicities and node pi estimates.

Template Parameters
numtypethe numeric representation. Should be one of double or util::Fixed64.
Parameters
remove_negif true, negative dual values will be replaced with zero.
relaxthe Relaxation which will be used to grab node and cut pi's.
ext_cutsthe HyperGraph list of cuts in the Relaxation.

The documentation for this struct was generated from the following file: