Public Types | Public Member Functions | Data Fields

UFL< vtype, adjlist_t > Class Template Reference

Inheritance diagram for UFL< vtype, adjlist_t >:
VOL_user_hooks

Public Types

typedef adjlist_t::column_iterator column_iterator
typedef adjlist_t::value_iterator value_iterator

Public Member Functions

int compute_rc (const VOL_dvector &u, VOL_dvector &rc)
 compute reduced costs
int solve_subproblem (const VOL_dvector &u, const VOL_dvector &rc, double &lcost, VOL_dvector &x, VOL_dvector &v, double &pcost)
 Solve the subproblem for the subgradient step.
void process_opening_serving_of_nodes (int mask_iteration, int mask_vertex_index, int &num_open, double &sum_fcosts, double &value, VOL_ivector &sol, const double *rdist, int **load_balance_masks, int *load_balance_totals, int **load_balance_parallelize_flags, int num_load_balance_masks)
int heuristics (const VOL_problem &p, const VOL_dvector &x, double &heur_val, double lb)
 Starting from the primal vector x, run a heuristic to produce an integer solution.
void init_u (VOL_dvector &u)
 Starting from a initial set of lagrange multipliers in user memory, load them into Vol's data structures.
double open_more_servers (VOL_ivector &nsol, int *unserved, int num_unserved)
double assign_service (VOL_ivector &nsol, const VOL_dvector &x)
int * find_unserved (VOL_ivector &nsol, int num_servers, int &num_unserved)
void separate_by_degree ()
void separate_by_degree (int *to_sep, int num_to_sep, int *&hd, int &num_hd, int *&ld, int &num_ld)
 UFL (adjlist_t &d, double *init_l=0)

Data Fields

VOL_dvector fcost
VOL_dvector dist
adjlist_t & _dist
std::vector< adjlist_t > _sidecon
std::vector< vtype > _ub
VOL_ivector fix
int ncust
int nloc
int nnz
int _p
VOL_ivector ix
double icost
double gap
double * init_lagrange
int twenty_fifth

template<typename vtype, typename adjlist_t>
class UFL< vtype, adjlist_t >


Member Function Documentation

template<typename vtype , typename adjlist_t >
int UFL< vtype, adjlist_t >::compute_rc ( const VOL_dvector u,
VOL_dvector rc 
) [virtual]

compute reduced costs

Parameters:
u (IN) the dual variables
rc (OUT) the reduced cost with respect to the dual values

Implements VOL_user_hooks.

template<typename vtype , typename adjlist_t >
int UFL< vtype, adjlist_t >::heuristics ( const VOL_problem p,
const VOL_dvector x,
double &  heur_val,
double  lb 
) [virtual]

Starting from the primal vector x, run a heuristic to produce an integer solution.

Parameters:
x (IN) the primal vector
heur_val (OUT) the value of the integer solution (return DBL_MAX here if no feas sol was found

Implements VOL_user_hooks.

References VOL_ivector::size().

template<typename vtype , typename adjlist_t >
void UFL< vtype, adjlist_t >::init_u ( VOL_dvector u  )  [virtual]

Starting from a initial set of lagrange multipliers in user memory, load them into Vol's data structures.

Parameters:
u (OUT) the initial dual vector

Implements VOL_user_hooks.

References VOL_dvector::size().

template<typename vtype , typename adjlist_t >
int UFL< vtype, adjlist_t >::solve_subproblem ( const VOL_dvector dual,
const VOL_dvector rc,
double &  lcost,
VOL_dvector x,
VOL_dvector v,
double &  pcost 
) [virtual]

Solve the subproblem for the subgradient step.

Parameters:
dual (IN) the dual variables
rc (IN) the reduced cost with respect to the dual values
lcost (OUT) the lagrangean cost with respect to the dual values
x (OUT) the primal result of solving the subproblem
v (OUT) b-Ax for the relaxed constraints
pcost (OUT) the primal objective value of x

Implements VOL_user_hooks.

References VOL_ivector::size(), VOL_dvector::size(), VOL_ivector::v, and VOL_dvector::v.


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