QUBO++ Library with QUBO Solver APIs
Author: Koji Nakano, License: Non-commercial research and evaluation purposes without any guarantees.
Public Member Functions | Private Member Functions | Private Attributes | List of all members
qbpp::exhaustive_solver::SearchAlgorithm Class Reference

#include <qbpp_exhaustive_solver.hpp>

Collaboration diagram for qbpp::exhaustive_solver::SearchAlgorithm:
Collaboration graph
[legend]

Public Member Functions

 SearchAlgorithm (const ExhaustiveSolver &exhaustive_solver)
 
const QuadModelget_quad_model () const
 
const std::vector< vindex_t > & get_var_order () const
 
vindex_t var_count () const
 
std::list< qbpp::Sol > & get_all_solutions ()
 
qbpp::SolHolderget_sol_holder ()
 
void register_new_sol (const qbpp::Sol &sol)
 
void search ()
 
void search_optimal_solutions ()
 
void search_all_solutions ()
 
void gen_sol_deltas (SolDelta &sol_delta, vindex_t index)
 

Private Member Functions

std::vector< vindex_tinit_var_order (const QuadModel &quad_model)
 

Private Attributes

const ExhaustiveSolverexhaustive_solver_
 
const QuadModelquad_model_
 
const std::vector< vindex_tvar_order_
 
qbpp::SolHolder sol_holder_
 
bool is_all_solutions_ = false
 
bool is_optimal_solutions_ = false
 
std::list< qbpp::Solall_solutions_
 
std::mutex all_solutions_mutex_
 
std::vector< SolDeltasol_deltas
 

Detailed Description

Definition at line 144 of file qbpp_exhaustive_solver.hpp.

Constructor & Destructor Documentation

◆ SearchAlgorithm()

qbpp::exhaustive_solver::SearchAlgorithm::SearchAlgorithm ( const ExhaustiveSolver exhaustive_solver)
inlineexplicit

Definition at line 179 of file qbpp_exhaustive_solver.hpp.

Member Function Documentation

◆ init_var_order()

std::vector<vindex_t> qbpp::exhaustive_solver::SearchAlgorithm::init_var_order ( const QuadModel quad_model)
inlineprivate

Definition at line 163 of file qbpp_exhaustive_solver.hpp.

Here is the call graph for this function:

◆ get_quad_model()

const QuadModel& qbpp::exhaustive_solver::SearchAlgorithm::get_quad_model ( ) const
inline

Definition at line 185 of file qbpp_exhaustive_solver.hpp.

◆ get_var_order()

const std::vector<vindex_t>& qbpp::exhaustive_solver::SearchAlgorithm::get_var_order ( ) const
inline

Definition at line 187 of file qbpp_exhaustive_solver.hpp.

◆ var_count()

vindex_t qbpp::exhaustive_solver::SearchAlgorithm::var_count ( ) const
inline

Definition at line 189 of file qbpp_exhaustive_solver.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_all_solutions()

std::list<qbpp::Sol>& qbpp::exhaustive_solver::SearchAlgorithm::get_all_solutions ( )
inline

Definition at line 191 of file qbpp_exhaustive_solver.hpp.

Here is the caller graph for this function:

◆ get_sol_holder()

qbpp::SolHolder& qbpp::exhaustive_solver::SearchAlgorithm::get_sol_holder ( )
inline

Definition at line 193 of file qbpp_exhaustive_solver.hpp.

Here is the caller graph for this function:

◆ register_new_sol()

void qbpp::exhaustive_solver::SearchAlgorithm::register_new_sol ( const qbpp::Sol sol)
inline

Definition at line 195 of file qbpp_exhaustive_solver.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ search()

void qbpp::exhaustive_solver::SearchAlgorithm::search ( )
inline

Definition at line 311 of file qbpp_exhaustive_solver.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ search_optimal_solutions()

void qbpp::exhaustive_solver::SearchAlgorithm::search_optimal_solutions ( )
inline

Definition at line 336 of file qbpp_exhaustive_solver.hpp.

Here is the caller graph for this function:

◆ search_all_solutions()

void qbpp::exhaustive_solver::SearchAlgorithm::search_all_solutions ( )
inline

Definition at line 342 of file qbpp_exhaustive_solver.hpp.

Here is the caller graph for this function:

◆ gen_sol_deltas()

void qbpp::exhaustive_solver::SearchAlgorithm::gen_sol_deltas ( SolDelta sol_delta,
vindex_t  index 
)
inline

Definition at line 302 of file qbpp_exhaustive_solver.hpp.

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ exhaustive_solver_

const ExhaustiveSolver& qbpp::exhaustive_solver::SearchAlgorithm::exhaustive_solver_
private

Definition at line 145 of file qbpp_exhaustive_solver.hpp.

◆ quad_model_

const QuadModel& qbpp::exhaustive_solver::SearchAlgorithm::quad_model_
private

Definition at line 147 of file qbpp_exhaustive_solver.hpp.

◆ var_order_

const std::vector<vindex_t> qbpp::exhaustive_solver::SearchAlgorithm::var_order_
private

Definition at line 149 of file qbpp_exhaustive_solver.hpp.

◆ sol_holder_

qbpp::SolHolder qbpp::exhaustive_solver::SearchAlgorithm::sol_holder_
private

Definition at line 151 of file qbpp_exhaustive_solver.hpp.

◆ is_all_solutions_

bool qbpp::exhaustive_solver::SearchAlgorithm::is_all_solutions_ = false
private

Definition at line 153 of file qbpp_exhaustive_solver.hpp.

◆ is_optimal_solutions_

bool qbpp::exhaustive_solver::SearchAlgorithm::is_optimal_solutions_ = false
private

Definition at line 155 of file qbpp_exhaustive_solver.hpp.

◆ all_solutions_

std::list<qbpp::Sol> qbpp::exhaustive_solver::SearchAlgorithm::all_solutions_
private

Definition at line 157 of file qbpp_exhaustive_solver.hpp.

◆ all_solutions_mutex_

std::mutex qbpp::exhaustive_solver::SearchAlgorithm::all_solutions_mutex_
mutableprivate

Definition at line 159 of file qbpp_exhaustive_solver.hpp.

◆ sol_deltas

std::vector<SolDelta> qbpp::exhaustive_solver::SearchAlgorithm::sol_deltas
private

Definition at line 161 of file qbpp_exhaustive_solver.hpp.


The documentation for this class was generated from the following file: