Main Page   Class Hierarchy   Compound List   File List   Contact   Download   Symbolic Constraints   Examples  

sym_constraint.h

00001 /*{\Manpage {sym_constraint} {} {Symbolic Constraint}{C}}*/
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   //virtual list<branching_rule> generate_branching_candidates(ILP_Problem&, subproblem&);
00103   //FIXME aus Doku entfernen?
00104   /*{\Mfunc This function is called if the BCP-system wants to branch a 
00105     subproblem. It returns a list of possible branching rules.}*/
00106 };
00107 
00108 }
00109 
00110 #endif
Generated on Mon Mar 28 22:03:50 2011 for SCIL by  doxygen 1.6.3