00001
00002 #ifndef SCIL_SYM_CONSTRAINT_H
00003 #define SCIL_SYM_CONSTRAINT_H
00004
00005 #include <scil/global.h>
00006
00007 namespace SCIL {
00008
00009 class subproblem;
00010 class solution;
00011
00013 class sym_constraint {
00014
00015 protected:
00016 double feps;
00017
00018 public:
00019
00022 enum status { no_constraint_found, constraint_found, fathom,
00023 exception_branch, resolve_immediately, feasible_solution,
00024 infeasible_solution, variable_found, no_variable_found,
00025 preemtion, continue_work };
00026
00027 virtual ~sym_constraint() {};
00028
00034 virtual status standard_separation(subproblem&) {
00035 return no_constraint_found;
00036 }
00037
00038 virtual status fast_separation(subproblem&) {
00039 return no_constraint_found;
00040 }
00041
00044 virtual void init(subproblem&) {
00045 }
00046
00053 virtual status feasible(solution&) {
00054 return feasible_solution;
00055 }
00056
00062 virtual status LP_pricing(subproblem&) {
00063 return no_variable_found;
00064 }
00065
00071 virtual status mf_pricing(subproblem&) {
00072 return no_variable_found;
00073 }
00074
00079 virtual status close_subproblem(subproblem&) {
00080 return continue_work;
00081 }
00082
00087 virtual status open_subproblem(subproblem&) {
00088 return continue_work;
00089 }
00090
00093 void set_feps(double feps_) {
00094 feps = feps_;
00095 }
00096
00099 virtual void info() {
00100 };
00101
00102
00103
00104
00105
00106 };
00107
00108 }
00109
00110 #endif