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

Class to define Gurobi callback function for factorization. More...

Inheritance diagram for qbpp::factorization::GRB_Callback:
Inheritance graph
[legend]
Collaboration diagram for qbpp::factorization::GRB_Callback:
Collaboration graph
[legend]

Public Member Functions

 GRB_Callback (qbpp_grb::QuadModel &quad_model, std::shared_ptr< SolHolder > sol_holder_ptr)
 Target energy to stop the Gurobi optimizer. std::optional<qbpp::energy_t> target_energy = std::nullopt;. More...
 
void callback () override
 callback function for Gurobi optimizer. More...
 
Sol get_sol ()
 Get the solution obtained by Gurobi Optimizer. More...
 
void set_target_energy (qbpp::energy_t target_energy)
 Set the target energy for Gurobi Optimizer. More...
 
void abort_if_target_energy (qbpp::energy_t energy)
 Abort the optimization process if the target energy is achieved. More...
 
double getDoubleInfoPublic (int what)
 Calls GetDoubleInfo() of GRBCallback. More...
 
double getSolutionPublic (GRBVar v)
 Calls getSolution() of GRBCallback. More...
 

Protected Attributes

const QuadModel quad_model
 QUBO model. More...
 
const GRBModel & grb_model
 Shortcut to the GRBModel in QuadModel. More...
 
std::optional< qbpp::energy_ttarget_energy = std::nullopt
 Target energy to stop the Gurobi optimizer. More...
 
std::mutex mtx
 Mutex to lock the critical section in get_sol() More...
 

Private Attributes

std::shared_ptr< SolHoldersol_holder_ptr_
 The solution holder for Gurobi. More...
 

Detailed Description

Class to define Gurobi callback function for factorization.

Note
This Gurobi callback inherits from qbpp_grb::Callback.

Definition at line 230 of file factorization.cpp.

Constructor & Destructor Documentation

◆ GRB_Callback()

qbpp::factorization::GRB_Callback::GRB_Callback ( qbpp_grb::QuadModel quad_model,
std::shared_ptr< SolHolder sol_holder_ptr 
)
inline

Target energy to stop the Gurobi optimizer. std::optional<qbpp::energy_t> target_energy = std::nullopt;.

Construct a new grb callback object

Parameters
quad_modelThe Gurobi quad_model.
sol_holder_ptrThe pinter to the solution holder given to the Gurobi Optimizer.

Definition at line 242 of file factorization.cpp.

Member Function Documentation

◆ callback()

void qbpp::factorization::GRB_Callback::callback ( )
inlineoverridevirtual

callback function for Gurobi optimizer.

The callback function is called by the Gurobi optimizer for every event.

Reimplemented from qbpp_grb::Callback.

Definition at line 249 of file factorization.cpp.

Here is the call graph for this function:

◆ get_sol()

Sol qbpp_grb::Callback::get_sol ( )
inlineinherited

Get the solution obtained by Gurobi Optimizer.

Returns
Solution by Gurobi Optimizer

Definition at line 274 of file qbpp_grb.hpp.

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

◆ set_target_energy()

void qbpp_grb::Callback::set_target_energy ( qbpp::energy_t  target_energy)
inlineinherited

Set the target energy for Gurobi Optimizer.

Definition at line 194 of file qbpp_grb.hpp.

◆ abort_if_target_energy()

void qbpp_grb::Callback::abort_if_target_energy ( qbpp::energy_t  energy)
inlineinherited

Abort the optimization process if the target energy is achieved.

Parameters
energyEnergy of the current solution

This function is intended to be called in callback() function.

Definition at line 201 of file qbpp_grb.hpp.

Here is the caller graph for this function:

◆ getDoubleInfoPublic()

double qbpp_grb::Callback::getDoubleInfoPublic ( int  what)
inlineinherited

Calls GetDoubleInfo() of GRBCallback.

Parameters
whatwhat to get
Returns
double value

Definition at line 210 of file qbpp_grb.hpp.

Here is the caller graph for this function:

◆ getSolutionPublic()

double qbpp_grb::Callback::getSolutionPublic ( GRBVar  v)
inlineinherited

Calls getSolution() of GRBCallback.

Parameters
vGurobi variable
Returns
double value

Definition at line 215 of file qbpp_grb.hpp.

Here is the caller graph for this function:

Member Data Documentation

◆ sol_holder_ptr_

std::shared_ptr<SolHolder> qbpp::factorization::GRB_Callback::sol_holder_ptr_
private

The solution holder for Gurobi.

Definition at line 233 of file factorization.cpp.

◆ quad_model

const QuadModel qbpp_grb::Callback::quad_model
protectedinherited

QUBO model.

Definition at line 152 of file qbpp_grb.hpp.

◆ grb_model

const GRBModel& qbpp_grb::Callback::grb_model
protectedinherited

Shortcut to the GRBModel in QuadModel.

Definition at line 155 of file qbpp_grb.hpp.

◆ target_energy

std::optional<qbpp::energy_t> qbpp_grb::Callback::target_energy = std::nullopt
protectedinherited

Target energy to stop the Gurobi optimizer.

Definition at line 158 of file qbpp_grb.hpp.

◆ mtx

std::mutex qbpp_grb::Callback::mtx
mutableprotectedinherited

Mutex to lock the critical section in get_sol()

Definition at line 164 of file qbpp_grb.hpp.


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