00001 00002 // 00003 // Copyright (c) 2004 Model-based Embedded and Robotic Systems Group 00004 // All Rights Reserved Massachusetts Institute of Technology 00005 // 00006 // This software is provided as is. Model-based Embedded and Robotic Systems 00007 // (MERS) group does not assume any responsibility. 00008 // 00009 // Organization: Model-based Embedded and Robotic Systems Group 00010 // Massachusetts Institute of Technology 00011 // 00013 00014 #if !defined(AFX_ASSIGNMENTGENERATORINTERFACE_H__D00929A4_8D9D_4D19_ADD1_A36A339BC971__INCLUDED_) 00015 #define AFX_ASSIGNMENTGENERATORINTERFACE_H__D00929A4_8D9D_4D19_ADD1_A36A339BC971__INCLUDED_ 00016 00017 #if _MSC_VER > 1000 00018 #pragma once 00019 #endif // _MSC_VER > 1000 00020 00021 namespace Mers { 00022 namespace Models { 00023 namespace Base { 00024 class BaseModelAssignmentArray; 00025 class BaseModelClauseArray; 00026 } 00027 } 00028 } 00029 00030 namespace Mers { 00031 namespace Generators { 00032 00038 class AssignmentGeneratorInterface 00039 { 00040 public: 00041 //----------------------------------------- 00042 // Constructors 00043 //----------------------------------------- 00044 00045 AssignmentGeneratorInterface() 00046 { 00047 debug = 0; 00048 } 00049 00050 //----------------------------------------- 00051 // Destructors 00052 //----------------------------------------- 00053 00054 virtual ~AssignmentGeneratorInterface() 00055 { 00056 } 00057 00058 //----------------------------------------- 00059 // Functions 00060 //----------------------------------------- 00061 00067 virtual void addConflict(Mers::Models::Base::BaseModelAssignmentArray const * newConflict) = 0; 00073 virtual void addConflict(Mers::Models::Base::BaseModelAssignmentArray const & newConflict) = 0; 00079 virtual void addConflicts(Mers::Models::Base::BaseModelClauseArray const & 00080 newConflicts) = 0; 00081 00095 virtual Mers::Models::Base::BaseModelAssignmentArray const * generateBestImplicant( 00096 long maximumVisitedStateCount, long maxSize, 00097 bool expand = true) = 0; 00098 00104 virtual void markBestFeasible() = 0; 00105 00111 virtual void printStatistics(bool verbose = false) const = 0; 00116 virtual void setDebug(unsigned int state) 00117 { 00118 debug = state; 00119 } 00120 00125 virtual void restart() = 0; 00132 virtual void reset() = 0; 00133 00138 virtual unsigned int getFullAssignmentSize() = 0; 00139 00144 virtual double getNumberOfSteps() const = 0; 00145 00146 protected: 00147 unsigned int debug; 00148 }; 00149 } 00150 } 00151 00152 #endif // !defined(AFX_ASSIGNMENTGENERATORINTERFACE_H__D00929A4_8D9D_4D19_ADD1_A36A339BC971__INCLUDED_)
1.5.0