Google OR-Tools: ortools/linear_solver/linear_solver_callback.h Source File

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef ORTOOLS_LINEAR_SOLVER_LINEAR_SOLVER_CALLBACK_H_

15#define ORTOOLS_LINEAR_SOLVER_LINEAR_SOLVER_CALLBACK_H_

16

17#include <cstdint>

18#include <string>

19#include <vector>

20

21#include "absl/container/flat_hash_map.h"

22

24

28

29

30

31

32

33

36

37

39

41

43

44

46

48

50

52

54

56};

57

59

60

61

62

64 public:

66

67

68

70

71

72

73

74

75

76

78

79

80

81

82

83

84

85

87

88

89

90

91

92

93

94

95

96

97

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

117

118

119

120

121

122

123

124

126 const absl::flat_hash_map<const MPVariable*, double>& solution) = 0;

127

128

129

130

131

133};

134

135

136

137

139 public:

140

141

142

147

148

149

150

152

155 return might_add_lazy_constraints_;

156 }

157

158 private:

159 bool might_add_cuts_;

160 bool might_add_lazy_constraints_;

161};

162

163

164

166 public:

167 explicit MPCallbackList(const std::vector<MPCallback*>& callbacks);

168

169

171

172 private:

173 const std::vector<MPCallback*> callbacks_;

174};

175

176}

177

178#endif

virtual void AddLazyConstraint(const LinearRange &lazy_constraint)=0

virtual int64_t NumExploredNodes()=0

virtual double SuggestSolution(const absl::flat_hash_map< const MPVariable *, double > &solution)=0

virtual bool CanQueryVariableValues()=0

virtual MPCallbackEvent Event()=0

virtual ~MPCallbackContext()

Definition linear_solver_callback.h:65

virtual double VariableValue(const MPVariable *variable)=0

virtual void AddCut(const LinearRange &cutting_plane)=0

void RunCallback(MPCallbackContext *context) override

MPCallbackList(const std::vector< MPCallback * > &callbacks)

bool might_add_lazy_constraints() const

Definition linear_solver_callback.h:154

virtual ~MPCallback()

Definition linear_solver_callback.h:146

MPCallback(bool might_add_cuts, bool might_add_lazy_constraints)

Definition linear_solver_callback.h:143

bool might_add_cuts() const

Definition linear_solver_callback.h:153

virtual void RunCallback(MPCallbackContext *callback_context)=0

The class for variables of a Mathematical Programming (MP) model.

Select next search node to expand Select next item_i to add this new search node to the search Generate a new search node where item_i is not in the knapsack Check validity of this new partial solution(using propagators) - If valid

MPCallbackEvent

Definition linear_solver_callback.h:34

@ kMultiObj

Definition linear_solver_callback.h:55

@ kUnknown

Definition linear_solver_callback.h:35

@ kPolling

Definition linear_solver_callback.h:38

@ kMipSolution

Definition linear_solver_callback.h:47

@ kMessage

Definition linear_solver_callback.h:53

@ kPresolve

Definition linear_solver_callback.h:40

@ kSimplex

Definition linear_solver_callback.h:42

@ kMipNode

Definition linear_solver_callback.h:49

@ kBarrier

Definition linear_solver_callback.h:51

absl::string_view ToString(MPSolver::OptimizationProblemType optimization_problem_type)