This class holds every data for the Volume Algorithm and its solve
method must be invoked to solve the problem.
More...
#include <VolVolume.h>
Public Member Functions | |
Constructors and destructor | |
VOL_problem () | |
Default constructor. | |
VOL_problem (const char *filename) | |
Create a a VOL_problem object and read in the parameters from filename . | |
~VOL_problem () | |
Destruct the object. | |
Method to solve the problem. | |
int | solve (VOL_user_hooks &hooks, const bool use_preset_dual=false) |
Solve the problem using the hooks . | |
Methods returning final data | |
int | iter () const |
returns the iteration number | |
double | alpha () const |
returns the value of alpha | |
double | lambda () const |
returns the value of lambda | |
Data Fields | |
VOL_dvector * | cur_u |
int | iter_ |
iteration number | |
double | __pad0 |
External data (containing the result after solve) | |
double | value |
final lagrangian value (OUTPUT) | |
VOL_dvector | dsol |
final dual solution (INPUT/OUTPUT) | |
VOL_dvector | psol |
final primal solution (OUTPUT) | |
VOL_dvector | viol |
violations (b-Ax) for the relaxed constraints | |
External data (may be changed by the user before calling solve) | |
VOL_parms | parm |
The parameters controlling the Volume Algorithm (INPUT). | |
int | psize |
length of primal solution (INPUT) | |
int | dsize |
length of dual solution (INPUT) | |
VOL_dvector | dual_lb |
lower bounds for the duals (if 0 length, then filled with -inf) (INPUT) | |
VOL_dvector | dual_ub |
upper bounds for the duals (if 0 length, then filled with +inf) (INPUT) |
This class holds every data for the Volume Algorithm and its solve
method must be invoked to solve the problem.
The INPUT fields must be filled out completely before solve
is invoked. dsol
have to be filled out if and only if the last argument to solve
is true
.
VOL_problem::VOL_problem | ( | ) |
Default constructor.
VOL_problem::VOL_problem | ( | const char * | filename | ) |
Create a a VOL_problem
object and read in the parameters from filename
.
VOL_problem::~VOL_problem | ( | ) |
Destruct the object.
References parm, and VOL_parms::temp_dualfile.
int VOL_problem::solve | ( | VOL_user_hooks & | hooks, | |
const bool | use_preset_dual = false | |||
) |
Solve the problem using the hooks
.
this is the Volume Algorithm
Any information needed in the hooks must be stored in the structure user_data
points to.
References VOL_parms::alphaint, VOL_dual::ascent(), VOL_parms::ascent_check_invl, VOL_parms::ascent_first_check, VOL_user_hooks::compute_rc(), VOL_dual::compute_xrc(), dsize, dsol, dual_lb, dual_ub, VOL_primal::find_max_viol(), VOL_parms::gap_abs_precision, VOL_parms::gap_rel_precision, VOL_parms::granularity, VOL_parms::heurinvl, VOL_user_hooks::heuristics(), VOL_user_hooks::init_u(), iter_, VOL_parms::maxsgriters, VOL_parms::minimum_rel_ascent, parm, VOL_parms::primal_abs_precision, VOL_parms::printflag, VOL_parms::printinvl, psize, psol, VOL_dvector::size(), VOL_user_hooks::solve_subproblem(), VOL_dual::step(), VOL_parms::temp_dualfile, VOL_parms::ubinit, value, and viol.