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 public:
00016
00019 enum status { no_constraint_found, constraint_found, fathom,
00020 exception_branch, resolve_immediately, feasible_solution,
00021 infeasible_solution, variable_found, no_variable_found,
00022 preemtion, continue_work };
00023
00024 virtual ~sym_constraint() {};
00025
00031 virtual status separate(subproblem&) {
00032 return no_constraint_found;
00033 }
00034
00037 virtual void init(subproblem&) {
00038 }
00039
00046 virtual status feasible(solution&) {
00047 return feasible_solution;
00048 }
00049
00055 virtual status LP_pricing(subproblem&) {
00056 return no_variable_found;
00057 }
00058
00064 virtual status mf_pricing(subproblem&) {
00065 return no_variable_found;
00066 }
00067
00072 virtual status close_subproblem(subproblem&) {
00073 return continue_work;
00074 }
00075
00080 virtual status open_subproblem(subproblem&) {
00081 return continue_work;
00082 }
00083
00086 virtual void info() {
00087 };
00088
00089
00090
00091
00092 };
00093
00094 }
00095
00096 #endif