#pragma once

#include "util.h"
#include "temporaltree.h"
#include <cmath>
#include "treeorder.h"
#include "constraint.h"
#include "gurobi_c++.h"

enum class AggrType {YES = 0, NO = 1, NOT_SET = -1};

TemporalTree computeTreeOrderILP(TemporalTree tree, GRBModel& model);

TemporalTree computeTreeOrderILPQuadr(TemporalTree tree, GRBModel& model);

TemporalTree computeTreeOrderLeafEdgesILP(TemporalTree tree, GRBModel& model);

TemporalTree getILPSolution(GRBModel& model, TemporalTree tree);

// TemporalTree computeTreeOrderILPAggregated(TemporalTree tree);
