1 #include "../../graph/assignment.hpp" 2 #include "../../utils/common.hpp" 10 #ifndef INDIGOX_ALGORITHM_ELECTRON_ASSIGNMENT_LOCAL_OPTIMISATION_HPP 11 #define INDIGOX_ALGORITHM_ELECTRON_ASSIGNMENT_LOCAL_OPTIMISATION_HPP 70 virtual void Run()
override;
76 void BuildLocationMasks();
85 void GetNeighbourAssignments(
const AssignMask &m,
86 std::vector<AssignMask> &nbrs);
90 using LocMasks_t = std::map<graph::AGVertex, AssignMask>;
92 LocMasks_t _loc_masks;
96 std::bitset<__num_opts> _lo_opts;
Option
Definition: common.hpp:25
virtual void Run() override
Run the algorithm.
IXLocalOptimisation()=delete
std::map< key_t, score_t > ScoreTable
Type of a score table.
Definition: assigner.hpp:27
static uint32_t TIMEOUT
Time limit for the optimisation, in milliseconds.
Definition: local_optimisation.hpp:42
virtual void Initalise(const Molecule &mol) override
Initalisation method.
Local optimisation electron assignment algorithm.
Definition: local_optimisation.hpp:18
boost::dynamic_bitset<> AssignMask
Type of the mask used for assignments.
Definition: assigner.hpp:23
static utils::Option USE_CACHE
Amount of cache to use.
Definition: local_optimisation.hpp:50
Definition: local_optimisation.hpp:28
Base class for an electron assignment algorithm.
Definition: assigner.hpp:44
static utils::Option OPTIMISE_LEVEL
Amount of optimisation to perform.
Definition: local_optimisation.hpp:35
Definition: molecule.hpp:15