55 std::string
get(
const std::string &key);
60 void print(
const std::string &option =
"",
61 std::ostream &output_stream = std::cout)
const;
66 void print(std::ostream &output_stream,
const std::string &option =
"")
const;
82 const Sol &start)
const;
105 Model(
int size, int64_t min_coeff, int64_t max_coeff);
127 void set(
int i,
int j, int64_t val);
133 int64_t
get(
int i,
int j)
const;
138 void set(
const std::string &key,
const std::string &val);
143 std::string
get(
const std::string &key)
const;
148 void print(
const std::string &option =
"",
149 std::ostream &output_stream = std::cout)
const;
154 void print(std::ostream &output_stream,
const std::string &option =
"")
const;
178 void set(
const std::string &key,
const std::string &val);
182 std::string
get(
const std::string &key)
const;
192 void print(
const std::string &option =
"",
193 std::ostream &output_stream = std::cout)
const;
197 void print(std::ostream &output_stream,
const std::string &option =
"")
const;
229 void set(
int i,
bool val);
237 void set(
const std::string &key,
const std::string &val);
241 const std::string
get(
const std::string &key)
const;
245 void print(
const std::string &option =
"",
246 std::ostream &output_stream = std::cout)
const;
250 void print(std::ostream &output_stream,
const std::string &option =
"")
const;
268 virtual void callback(
const std::string &event) = 0;
272 void set(
const std::string &operation);
277 void set(
const std::string &operation,
const std::string &operand);
Class to manage callback function for ABS2 QUBO solver.
void set(const std::string &operation, const std::string &operand)
Set the operation and operand to the ABS2 Callback.
void set(const std::string &operation)
Set the operation to the ABS2 Callback.
virtual ~Callback()=default
Destructor for deleting a callback object.
void set(const Sol &hint)
Provide a hint solution to the ABS2 solver.
virtual void callback(const std::string &event)=0
Callback function must be defined by user.
const Sol & get() const
Get the current solution.
Callback()
Constructor for creating a callback object.
std::shared_ptr< Impl > pimpl
Class to store and manipulate a QUBO model.
Model & operator=(const Model &model)
Assignment operator for copying the QUBO model.
Model(const Model &model)
Copy constructor for the QUBO model.
Model(const std::string &filename)
Constructor for loading a QUBO model from a file.
void print(std::ostream &output_stream, const std::string &option="") const
Outputs the model to the specified output stream.
int64_t get(int i, int j) const
Gets the value of W_{i,j} if i<=j, and W_{j,i} if j<i.
void set(int i, int j, int64_t val)
Sets the value of W_{i,j} if i<=j, and W_{j,i} if j<i.
std::unique_ptr< Impl > pimpl
Model(int size, int bits)
Constructor for an empty QUBO model.
void set(const std::string &key, const std::string &val)
Sets a value for a given key.
std::string get(const std::string &key) const
Gets the value associated with a given key.
void print(const std::string &option="", std::ostream &output_stream=std::cout) const
Outputs the model to the specified output stream.
~Model()
Destructor for the QUBO model.
Model(int size, int64_t min_coeff, int64_t max_coeff)
Constructor for an empty QUBO model with specified variable size and coefficient range.
Class to store parameters for ABS2 QUBO solver.
std::unique_ptr< Impl > pimpl
Param & operator=(const Param ¶m)
Assignment overload with copying "param".
void set(const std::string &key, const std::string &val)
Set "val" to "key".
void print(const std::string &option="", std::ostream &output_stream=std::cout) const
Output parameters in stream "output_stream".
void print(std::ostream &output_stream, const std::string &option="") const
Output parameters in stream "output_stream".
Param()
Constructor for creating param object with empty parameters.
Param(const Param ¶m)
Copy Constructor with copying "param".
void set(Callback &callback)
Set Callback function to ABS2.
std::string get(const std::string &key) const
Get the value of "key".
Class to store a solution computed by ABS2 QUBO solver.
Sol(int size)
Constructor for a solution with "size" bits.
void print(const std::string &option="", std::ostream &output_stream=std::cout) const
Output solution in stream "output_stream".
Sol(Sol &&sol)
Move constructor. Create a new Sol object from "sol".
Sol & operator=(const Sol &sol)
Copy assignment of "sol".
void print(std::ostream &output_stream, const std::string &option="") const
Output solution in stream "output_stream".
Sol()
Construct a new Sol object.
Sol(const Sol &sol)
Copy constructor. Create a new Sol object from "sol".
bool get(int i) const
Get the value of x_i.
Sol & operator=(Sol &&sol)
Move assignment of "sol".
void set(const std::string &key, const std::string &val)
Set "val" to key.
std::unique_ptr< Impl > pimpl
void set(int i, bool val)
Set "val" to x_i.
const std::string get(const std::string &key) const
Get the value of key.
Class to configure the ABS2 QUBO solver.
Solver(bool verbose=true)
Constructor for the ABS2 QUBO solver.
Sol operator()(const Model &model, const Param ¶m, const Sol &start) const
Executes the ABS2 solver for the given model, parameters, and initial solution, returning the solutio...
void print(std::ostream &output_stream, const std::string &option="") const
Outputs the solver attribute value in the specified format.
~Solver()
Destructor for the ABS2 QUBO solver.
void print(const std::string &option="", std::ostream &output_stream=std::cout) const
Outputs the solver attribute value in the specified format.
std::string get(const std::string &key)
Retrieves the solver attribute value associated with the given key.
Sol operator()(const Model &model, const Param ¶m) const
Executes the ABS2 solver for the given model and parameters, returning the solution.
Namespace to call ABS2 GPU QUBO solver.