/Users/fpy/titan-1-5-MBARI/Mers/Generators/BFIG/BFIGConflict.h

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 //# CHECKED MJP 08-07-2002
00014 
00015 #ifndef __CONFLICT__
00016 #define __CONFLICT__
00017 
00018 #ifdef _MSC_VER
00019 #pragma warning( disable : 4786 )
00020 #endif
00021 
00022 #include <cstdlib>
00023 #include <iostream>
00024 #include <list>
00025 #include "BFIGImplicant.h"
00026 
00027 #include <Mers/Utils/Lang/String.h>
00028 
00029 namespace Mers {
00030         namespace Generators {
00031                 namespace BFIG {
00032 
00033                         class BFIGAssignment;
00034 
00039                         class Conflict
00040                         {
00041                                 friend std::ostream&  operator<<(std::ostream&, Conflict const &);
00042 
00043                         public:
00044                                 //----------------------------------------------------
00045                                 //      TYPE DEFINITIONS & OVERLOADED OPERATORS
00046                                 //----------------------------------------------------
00047                                 //typedef BFIGAssignment* PrimeImplicantType;
00048                                 bool operator==(Conflict const & c)  const;
00049                                 bool operator<(Conflict const & c)   const;
00050 
00051                                 //--------------------------------------
00052                                 //      CONSTRUCTOR
00053                                 //--------------------------------------
00054                                 //Conflict(list<BFIGAssignment const *> inconsistentAssignments_pList,
00055                                 //         list<BFIGAssignment const *> primeImplicants_pList);
00056                                 Conflict(list<BFIGAssignment const *> inconsistentAssignments_pList);
00057 
00058                                 //--------------------------------------
00059                                 //      PUBLIC METHODS
00060                                 //--------------------------------------
00061                                 list<BFIGAssignment const *>  getInconsistentAssignments() const;
00062 
00063                                 list<BFIGAssignment const *>  getPrimeImplicants() const;
00064 
00065                                 int                       getLength() const;
00066                                 bool                      isEmpty() const;
00067 
00068                                 bool                      supportedBy(BFIGImplicant const * implicant) const;
00069                                 bool                      supportedBy(BFIGAssignment const * a) const;
00070 
00071                                 String                    toString() const;
00072 
00073                                 //void                     recordConflict();
00074                                 //void                     trySupportingConflict(BFIGImplicant const * currentImplNode);
00075 
00076                         protected:
00077                                 Conflict();
00078 
00079                         private:
00080 
00081                                 void                      createPrimeImplicants();
00082 
00083                                 //--------------------------------------
00084                                 //      PRIVATE DATA MEMBERS
00085                                 //--------------------------------------
00086                                 list<BFIGAssignment const *>  inconsistentAssignments;
00087                                 //      List of collectively inconsistent assignments.  This represents an infeasible
00088                                 //      subset of the state space where any candidate containing all of these assignments
00089                                 //      is infeasible.
00090 
00091                                 list<BFIGAssignment const *>  primeImplicants;
00092                                 //      All assignments that entail this conflict, that being any candidate containing
00093                                 //      one of these assignments is guaranteed to lie outside the infeasible subspace
00094                                 //      represented by the conflict     -       does this mean that it then lies inside the feasible subspace?
00095 
00096                                 //BFIGAssignment const *        currentEntailedAssignment;
00097                                 //      The assignment in the current search state that entails this conflict.
00098                                 //      When non-empty, this points to the assignment with the best cost that entails
00099                                 //      the conflict.
00100 
00101 
00102                                 //-----------------------------------------
00103                                 //      PRIVATE METHODS
00104                                 //-----------------------------------------
00105 
00106                         };
00107                 }
00108         }
00109 }
00110 
00111 #endif //ndef __CONLICT__
00112 

Generated on Mon Dec 4 14:16:50 2006 for Mers by  doxygen 1.5.0