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 |
int UFL< vtype, adjlist_t >::compute_rc | ( | const VOL_dvector & | u, | |
VOL_dvector & | rc | |||
) | [virtual] |
compute reduced costs
u | (IN) the dual variables | |
rc | (OUT) the reduced cost with respect to the dual values |
Implements VOL_user_hooks.
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.
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().
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.
u | (OUT) the initial dual vector |
Implements VOL_user_hooks.
References VOL_dvector::size().
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.
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.