5#ifndef CCG_WITH_NESTED_CG_CUTSEPARATIONCALLBACK_H
6#define CCG_WITH_NESTED_CG_CUTSEPARATIONCALLBACK_H
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"
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;
26 void operator()(CallbackEvent t_event)
override;
28 virtual void hook_add_cut(
const TempCtr& t_cut) = 0;
30 [[nodiscard]]
virtual std::string name()
const = 0;
32 explicit CutSeparation(CallbackEvent t_triggering_event,
33 Model* t_separation_problem,
34 GenerationPattern<Ctr> t_cut,
virtual void operator()(CallbackEvent t_event)=0
static double Feasibility