idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
Plots_OptimalityGap.h
1//
2// Created by henri on 23.10.24.
3//
4
5#ifndef IDOL_PLOTS_OPTIMALITYGAP_H
6#define IDOL_PLOTS_OPTIMALITYGAP_H
7
8#include "idol/mixed-integer/optimizers/callbacks/CallbackFactory.h"
9#include "idol/mixed-integer/optimizers/callbacks/Callback.h"
10#include "PlotManager.h"
11
12namespace idol::Plots {
13 class OptimalityGap;
14}
15
16class TCanvas;
17class TGraph;
18class TLegend;
19
21 Manager& m_plot_manager;
22public:
23 class Strategy : public Callback {
24 Manager& m_plot_manager;
25 TCanvas* m_canvas = nullptr;
26 TGraph* m_graph_bound = nullptr;
27 TGraph* m_graph_obj = nullptr;
28 int m_n_points_bound = 0;
29 int m_n_points_obj = 0;
30 std::optional<double> m_worst_bound;
31 std::optional<double> m_worst_obj;
32 std::optional<double> m_best_obj;
33 std::optional<double> m_best_bound;
34 protected:
35 void initialize();
36 void operator()(CallbackEvent t_event) override;
37 public:
38 explicit Strategy(Manager& t_plot_manager);
39 };
40
41 explicit OptimalityGap(Manager& t_plot_manager) : m_plot_manager(t_plot_manager) {}
42
43 Callback *operator()() override {
44 return new Strategy(m_plot_manager);
45 }
46
47 [[nodiscard]] CallbackFactory *clone() const override {
48 return new OptimalityGap(*this);
49 }
50};
51
52#endif //IDOL_PLOTS_OPTIMALITYGAP_H
void operator()(CallbackEvent t_event) override