Limbo 3.5.4
Loading...
Searching...
No Matches
limbo::solvers::SearchByCombinedStrategy< T, V > Class Template Reference

Heuristic to search for feasible solutions by combined strategies. More...

#include <MultiKnapsackLagRelax.h>

Inheritance diagram for limbo::solvers::SearchByCombinedStrategy< T, V >:
limbo::solvers::FeasibleSearcher< T, V >

Public Types

typedef FeasibleSearcher< T, V > base_type
 base type
typedef base_type::model_type model_type
 model type
typedef base_type::solver_type solver_type
 solver type
typedef solver_type::updater_type updater_type
 updater type for lagrangian multipliers
typedef model_type::coefficient_value_type coefficient_value_type
 coefficient value type
typedef model_type::variable_value_type variable_value_type
 variable value type
typedef model_type::variable_type variable_type
 variable type
typedef model_type::expression_type expression_type
 expression type
typedef model_type::constraint_type constraint_type
 constraint type
typedef model_type::term_type term_type
 term type
Public Types inherited from limbo::solvers::FeasibleSearcher< T, V >
typedef LinearModel< T, V > model_type
 model type
typedef MultiKnapsackLagRelax< T, V > solver_type
 solver type
typedef solver_type::updater_type updater_type
 updater type for lagrangian multipliers
typedef model_type::coefficient_value_type coefficient_value_type
 coefficient value type
typedef model_type::variable_value_type variable_value_type
 variable value type
typedef model_type::variable_type variable_type
 variable type
typedef model_type::expression_type expression_type
 expression type
typedef model_type::constraint_type constraint_type
 constraint type
typedef model_type::term_type term_type
 term type
typedef solver_type::matrix_type matrix_type
 matrix type

Public Member Functions

 SearchByCombinedStrategy (solver_type *solver, coefficient_value_type convergeRatio=0.1)
 constructor
 ~SearchByCombinedStrategy ()
 destructor
virtual SolverProperty operator() (updater_type *updater)
 API to search for feasible solutions.
Public Member Functions inherited from limbo::solvers::FeasibleSearcher< T, V >
 FeasibleSearcher (solver_type *solver)
 constructor
virtual ~FeasibleSearcher ()
 destructor

Protected Attributes

SearchByAdjustCoefficient< coefficient_value_type, variable_value_typem_searcherCoeff
 search by adjusting coefficient
SearchByBinSmoothing< coefficient_value_type, variable_value_typem_searcherSmoothing
 search by smoothing dense bins
Protected Attributes inherited from limbo::solvers::FeasibleSearcher< T, V >
solver_typem_solver
 problem solver
model_type *const & m_model
 model for the problem
coefficient_value_type *& m_vObjCoef
 coefficients variables in objective
matrix_type const & m_constrMatrix
 constraint matrix \(A\)
coefficient_value_type *const & m_vConstrRhs
 constraint right hand side \(b\)
variable_type *const & m_vGroupedVariable
 array of grouped variables according to item
unsigned int *const & m_vVariableGroupBeginIndex
 begin index of grouped variable
unsigned int const & m_numGroups
 number of groups
std::vector< unsigned int > const & m_vConstraintPartition
 indices of constraints, the first partition is capacity constraints
coefficient_value_type *& m_vLagMultiplier
 array of lagrangian multipliers
coefficient_value_type *& m_vSlackness
 array of slackness values in each iteration, \( b-Ax \)
std::vector< coefficient_value_type > const & m_vScalingFactor
 scaling factor for constraints and objective, last entry is for objective
coefficient_value_typem_objConstant
 constant value in objective from lagrangian relaxation
coefficient_value_typem_lagObj
 current objective of the lagrangian subproblem
unsigned int & m_iter
 current iteration
unsigned int & m_maxIters
 maximum number of iterations
bool & m_useInitialSol
 whether use initial solutions or not
std::vector< variable_value_type > & m_vBestVariableSol
 best feasible solution found so far
coefficient_value_typem_bestObj
 best objective found so far

Additional Inherited Members

Protected Member Functions inherited from limbo::solvers::FeasibleSearcher< T, V >
void computeSlackness ()
 compute slackness in an iteration
SolverProperty solveSubproblems (updater_type *updater, unsigned int beginIter, unsigned int endIter)
 kernel lagrangian iterations

Detailed Description

template<typename T, typename V>
class limbo::solvers::SearchByCombinedStrategy< T, V >

Heuristic to search for feasible solutions by combined strategies.

Template Parameters
Tcoefficient value type
Vvariable value type

Definition at line 1725 of file MultiKnapsackLagRelax.h.

Member Typedef Documentation

◆ base_type

template<typename T, typename V>
typedef FeasibleSearcher<T, V> limbo::solvers::SearchByCombinedStrategy< T, V >::base_type

base type

Definition at line 1729 of file MultiKnapsackLagRelax.h.

◆ coefficient_value_type

template<typename T, typename V>
typedef model_type::coefficient_value_type limbo::solvers::SearchByCombinedStrategy< T, V >::coefficient_value_type

coefficient value type

Definition at line 1737 of file MultiKnapsackLagRelax.h.

◆ constraint_type

template<typename T, typename V>
typedef model_type::constraint_type limbo::solvers::SearchByCombinedStrategy< T, V >::constraint_type

constraint type

Definition at line 1745 of file MultiKnapsackLagRelax.h.

◆ expression_type

template<typename T, typename V>
typedef model_type::expression_type limbo::solvers::SearchByCombinedStrategy< T, V >::expression_type

expression type

Definition at line 1743 of file MultiKnapsackLagRelax.h.

◆ model_type

template<typename T, typename V>
typedef base_type::model_type limbo::solvers::SearchByCombinedStrategy< T, V >::model_type

model type

Definition at line 1731 of file MultiKnapsackLagRelax.h.

◆ solver_type

template<typename T, typename V>
typedef base_type::solver_type limbo::solvers::SearchByCombinedStrategy< T, V >::solver_type

solver type

Definition at line 1733 of file MultiKnapsackLagRelax.h.

◆ term_type

template<typename T, typename V>
typedef model_type::term_type limbo::solvers::SearchByCombinedStrategy< T, V >::term_type

term type

Definition at line 1747 of file MultiKnapsackLagRelax.h.

◆ updater_type

template<typename T, typename V>
typedef solver_type::updater_type limbo::solvers::SearchByCombinedStrategy< T, V >::updater_type

updater type for lagrangian multipliers

Definition at line 1735 of file MultiKnapsackLagRelax.h.

◆ variable_type

template<typename T, typename V>
typedef model_type::variable_type limbo::solvers::SearchByCombinedStrategy< T, V >::variable_type

variable type

Definition at line 1741 of file MultiKnapsackLagRelax.h.

◆ variable_value_type

template<typename T, typename V>
typedef model_type::variable_value_type limbo::solvers::SearchByCombinedStrategy< T, V >::variable_value_type

variable value type

Definition at line 1739 of file MultiKnapsackLagRelax.h.

Constructor & Destructor Documentation

◆ SearchByCombinedStrategy()

template<typename T, typename V>
limbo::solvers::SearchByCombinedStrategy< T, V >::SearchByCombinedStrategy ( solver_type * solver,
coefficient_value_type convergeRatio = 0.1 )
inline

constructor

Parameters
solverproblem solver
convergeRatioratio of convergence for limbo::solvers::SearchByAdjustCoefficient

Definition at line 1752 of file MultiKnapsackLagRelax.h.

◆ ~SearchByCombinedStrategy()

template<typename T, typename V>
limbo::solvers::SearchByCombinedStrategy< T, V >::~SearchByCombinedStrategy ( )
inline

destructor

Definition at line 1759 of file MultiKnapsackLagRelax.h.

Member Function Documentation

◆ operator()()

template<typename T, typename V>
virtual SolverProperty limbo::solvers::SearchByCombinedStrategy< T, V >::operator() ( updater_type * updater)
inlinevirtual

API to search for feasible solutions.

Parameters
updaterupdater for lagrangian multipliers
Returns
solving status

Reimplemented from limbo::solvers::FeasibleSearcher< T, V >.

Definition at line 1764 of file MultiKnapsackLagRelax.h.

Member Data Documentation

◆ m_searcherCoeff

template<typename T, typename V>
SearchByAdjustCoefficient<coefficient_value_type, variable_value_type> limbo::solvers::SearchByCombinedStrategy< T, V >::m_searcherCoeff
protected

search by adjusting coefficient

Definition at line 1773 of file MultiKnapsackLagRelax.h.

◆ m_searcherSmoothing

template<typename T, typename V>
SearchByBinSmoothing<coefficient_value_type, variable_value_type> limbo::solvers::SearchByCombinedStrategy< T, V >::m_searcherSmoothing
protected

search by smoothing dense bins

Definition at line 1774 of file MultiKnapsackLagRelax.h.


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