idol
A C++ Framework for Optimization
Loading...
Searching...
No Matches
CutSeparation.h
1//
2// Created by henri on 11/04/23.
3//
4
5#ifndef CCG_WITH_NESTED_CG_CUTSEPARATIONCALLBACK_H
6#define CCG_WITH_NESTED_CG_CUTSEPARATIONCALLBACK_H
7
8#include "idol/mixed-integer/modeling/models/Model.h"
9#include "idol/mixed-integer/optimizers/callbacks/Callback.h"
10#include "idol/mixed-integer/modeling/constraints/TempCtr.h"
11#include "idol/general/utils/GenerationPattern.h"
12
13namespace idol::impl {
14 class CutSeparation;
15}
16
17class idol::impl::CutSeparation : public Callback {
18 CallbackEvent m_triggering_event;
19 std::unique_ptr<Model> m_separation_problem;
20 GenerationPattern<Ctr> m_cut_pattern;
21 GenerationPattern<Ctr> m_separation_objective_pattern;
22 CtrType m_type;
23
24 double m_tolerance = idol::Tolerance::Feasibility;
25protected:
26 void operator()(CallbackEvent t_event) override;
27
28 virtual void hook_add_cut(const TempCtr& t_cut) = 0;
29
30 [[nodiscard]] virtual std::string name() const = 0;
31public:
32 explicit CutSeparation(CallbackEvent t_triggering_event,
33 Model* t_separation_problem,
34 GenerationPattern<Ctr> t_cut,
35 CtrType t_type);
36};
37
38#endif //CCG_WITH_NESTED_CG_CUTSEPARATIONCALLBACK_H
virtual void operator()(CallbackEvent t_event)=0
static double Feasibility
Definition numericals.h:83