|
|
lucid
0.0.2
Lifting-based Uncertain Control Invariant Dynamics
|
Base class for optimisation solvers. More...
#include <Optimiser.h>
Public Types | |
| using | SolutionCallback = std::function<void(bool, double, const Vector&, double, double, double)> |
| Callback function called when the optimisation is done. | |
Public Member Functions | |
| Optimiser (std::string problem_log_file="", std::string iis_log_file="") | |
| Construct a new Optimiser object. | |
| bool | solve_fourier_barrier_synthesis (const FourierBarrierSynthesisProblem &problem, const SolutionCallback &cb) const |
| Solve the FourierBarrierCertificate synthesis optimisation problem by solving the corresponding LP. | |
| const std::string & | problem_log_file () const |
| Get read-only access to the problem log file of the solver. | |
| const std::string & | iis_log_file () const |
| Get read-only access to the irreducible infeasible set log file of the solver. | |
| bool | has_problem_log_file () const |
| Get read-only access to the problem log file of the solver. | |
| bool | has_iis_log_file () const |
| Get read-only access to the irreducible infeasible set log file of the solver. | |
| std::string & | m_problem_log_file () |
| Get read-write access to the problem log file of the solver. | |
| std::string & | m_iis_log_file () |
| Get read-write access to the irreducible infeasible set log file of the solver. | |
| bool | should_log_problem () const |
| Check whether the solver is configured to log the lp problem. | |
| bool | should_log_iis () const |
| Check whether the solver is configured to log the iis. | |
| virtual std::string | to_string () const |
| Obtain the string representation of this object. | |
Protected Member Functions | |
| virtual bool | solve_fourier_barrier_synthesis_impl (const FourierBarrierSynthesisProblem ¶ms, const SolutionCallback &cb) const =0 |
| Implementation of the Fourier barrier synthesis solver. | |
Protected Attributes | |
| std::string | problem_log_file_ |
| File to log the problem to, if provided. | |
| std::string | iis_log_file_ |
| File to log the IIS (Irreducible Inconsistent Subsystem) to, if found. | |
Base class for optimisation solvers.
This class provides a common interface for different optimisation backends (Gurobi, HiGHS, ALGLIB, SoPlex) used in the verification process.
| using lucid::Optimiser::SolutionCallback = std::function<void(bool, double, const Vector&, double, double, double)> |
Callback function called when the optimisation is done.
| success | true if the optimisation was successful, false if no solution was found |
| obj_val | objective value. 0 if no solution was found |
| eta | eta value. 0 if no solution was found |
| c | c value. 0 if no solution was found |
| norm | actual norm of the barrier function. 0 if no solution was found |
|
explicit |
Construct a new Optimiser object.
If problem_log_file is provided, the optimiser will log the LP problem to the specified file. If iis_log_file is provided, the optimiser will log the Irreducible Inconsistent Subsystem (IIS) to the specified file if the problem is found to be infeasible.
| problem_log_file | file to log the problem to |
| iis_log_file | file to log the IIS to |
|
inlinenodiscard |
Get read-only access to the irreducible infeasible set log file of the solver.
|
inlinenodiscard |
Get read-only access to the problem log file of the solver.
|
inlinenodiscard |
Get read-only access to the irreducible infeasible set log file of the solver.
|
inline |
Get read-write access to the irreducible infeasible set log file of the solver.
|
inline |
Get read-write access to the problem log file of the solver.
|
inlinenodiscard |
Get read-only access to the problem log file of the solver.
|
inlinenodiscard |
Check whether the solver is configured to log the iis.
|
inlinenodiscard |
Check whether the solver is configured to log the lp problem.
|
nodiscard |
Solve the FourierBarrierCertificate synthesis optimisation problem by solving the corresponding LP.
See FourierBarrierCertificate::synthesize for more details.
| problem | problem definition |
| cb | callback function called when the optimisation is done |
|
nodiscardprotectedpure virtual |
Implementation of the Fourier barrier synthesis solver.
It interfaces with the specific LP solver backend. See FourierBarrierCertificate::synthesize for more details.
| params | problem definition |
| cb | callback function called when the optimisation is done |
Implemented in lucid::AlglibOptimiser, lucid::GurobiOptimiser, lucid::HighsOptimiser, and lucid::SoplexOptimiser.
|
nodiscardvirtual |
Obtain the string representation of this object.
Reimplemented in lucid::AlglibOptimiser, lucid::GurobiOptimiser, lucid::HighsOptimiser, and lucid::SoplexOptimiser.