swh:1:snp:7a4cd2a5ec73a061be17605597c4b1660b799026
Tip revision: 121131be58bc1b6f91a4863bd01fe7cbd0439ab9 authored by Max Göttlicher on 16 August 2023, 15:14:58 UTC
readme
readme
Tip revision: 121131b
fort_solve.hpp
#ifndef PDS_FORT_SOLVE
#define PDS_FORT_SOLVE
#include "pds.hpp"
#include "pdssolve.hpp"
#include "gurobi_common.hpp"
namespace pds {
namespace callback {
enum class When {
INTERMEDIATE_HS,
FINAL
};
using FortCallback = std::function<void(When when, const PdsState& state, const std::vector<VertexList>& forts, size_t lower, size_t upper)>;
}
SolveResult solveBozeman(PdsState &state,
int output,
double timeLimit,
int fortGenerator,
int fortInit,
int greedyUpper,
int earlyStop,
callback::FortCallback fortCallback,
BoundCallback boundCallback,
int intermediateForts);
SolveResult solveLazyForts(PdsState& state, int output, double timeLimit, callback::FortCallback fortCB, BoundCallback boundsCB);
void addFortConstraints(MIPModel& model, PdsState& state, int fortInit);
} // namespace pds
#endif