BALL  1.4.1
KGreedyBondOrderStrategy.h
Go to the documentation of this file.
00001 #ifndef BALL_STRUCTURE_BONDORDERS_KGREEDYBONDORDERSTRATEGY_H
00002 #define BALL_STRUCTURE_BONDORDERS_KGREEDYBONDORDERSTRATEGY_H
00003 
00004 #ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENTSTRATEGY_H
00005 # include <BALL/STRUCTURE/BONDORDERS/bondOrderAssignmentStrategy.h>
00006 #endif
00007 
00008 #ifndef BALL_STRUCTURE_BONDORDERS_BONDORDERASSIGNMENT_H
00009 # include <BALL/STRUCTURE/BONDORDERS/bondOrderAssignment.h>
00010 #endif
00011 
00012 #ifndef BALL_STRUCTURE_BONDORDERS_ASTARBONDORDERSTRATEGY_H
00013 # include <BALL/STRUCTURE/BONDORDERS/AStarBondOrderStrategy.h>
00014 #endif
00015 
00016 namespace BALL
00017 {
00027   class KGreedyBondOrderStrategy
00028     : public AStarBondOrderStrategy
00029   {
00030     public:
00034 
00035       struct BALL_EXPORT Option
00036       {
00043         static const char* GREEDY_K_SIZE;
00044       };
00045 
00046       struct BALL_EXPORT Default
00047       {
00048         static const int GREEDY_K_SIZE;
00049       };
00051 
00052       KGreedyBondOrderStrategy(AssignBondOrderProcessor* parent);
00053       virtual ~KGreedyBondOrderStrategy();
00054 
00055       virtual void clear();
00056       virtual void init();
00057 
00058       virtual bool readOptions(const Options& options);
00059       virtual void setDefaultOptions();
00060 
00061       virtual boost::shared_ptr<BondOrderAssignment> computeNextSolution();
00062 
00063     protected:
00064 
00065       float greedy_atom_type_penalty_;
00066       float greedy_bond_length_penalty_;
00067 
00068       Size greedy_k_;
00069 
00070       vector<PartialBondOrderAssignment> greedy_set_;
00071 
00072       Position current_solution_;
00073 
00074       int greedy_node_expansions_;
00075   };
00076 }
00077 
00078 #endif // BALL_STRUCTURE_BONDORDERS_KGREEDYBONDORDERSTRATEGY_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines