Scippy

SCIP

Solving Constraint Integer Programs

primal.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2021 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not visit scipopt.org. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file primal.h
17  * @ingroup INTERNALAPI
18  * @brief internal methods for collecting primal CIP solutions and primal informations
19  * @author Tobias Achterberg
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PRIMAL_H__
25 #define __SCIP_PRIMAL_H__
26 
27 
28 #include "scip/def.h"
29 #include "blockmemshell/memory.h"
30 #include "scip/type_retcode.h"
31 #include "scip/type_set.h"
32 #include "scip/type_event.h"
33 #include "scip/type_lp.h"
34 #include "scip/type_var.h"
35 #include "scip/type_prob.h"
36 #include "scip/type_sol.h"
37 #include "scip/type_primal.h"
38 #include "scip/type_tree.h"
39 #include "scip/type_reopt.h"
40 #include "scip/type_heur.h"
41 
42 #include "scip/struct_primal.h"
43 
44 #ifdef __cplusplus
45 extern "C" {
46 #endif
47 
48 /** creates primal data */
50  SCIP_PRIMAL** primal /**< pointer to primal data */
51  );
52 
53 /** frees primal data */
55  SCIP_PRIMAL** primal, /**< pointer to primal data */
56  BMS_BLKMEM* blkmem /**< block memory */
57  );
58 
59 /** clears primal data */
61  SCIP_PRIMAL** primal, /**< pointer to primal data */
62  BMS_BLKMEM* blkmem /**< block memory */
63  );
64 
65 /** sets the cutoff bound in primal data and in LP solver */
67  SCIP_PRIMAL* primal, /**< primal data */
68  BMS_BLKMEM* blkmem, /**< block memory */
69  SCIP_SET* set, /**< global SCIP settings */
70  SCIP_STAT* stat, /**< problem statistics data */
71  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
72  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
73  SCIP_PROB* transprob, /**< tranformed problem data */
74  SCIP_PROB* origprob, /**< original problem data */
75  SCIP_TREE* tree, /**< branch and bound tree */
76  SCIP_REOPT* reopt, /**< reoptimization data structure */
77  SCIP_LP* lp, /**< current LP data */
78  SCIP_Real cutoffbound, /**< new cutoff bound */
79  SCIP_Bool useforobjlimit /**< should the cutoff bound be used to update the objective limit, if
80  * better? */
81  );
82 
83 /** sets upper bound in primal data and in LP solver */
85  SCIP_PRIMAL* primal, /**< primal data */
86  BMS_BLKMEM* blkmem, /**< block memory */
87  SCIP_SET* set, /**< global SCIP settings */
88  SCIP_STAT* stat, /**< problem statistics data */
89  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
90  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
91  SCIP_PROB* prob, /**< transformed problem after presolve */
92  SCIP_TREE* tree, /**< branch and bound tree */
93  SCIP_REOPT* reopt, /**< reoptimization data structure */
94  SCIP_LP* lp, /**< current LP data */
95  SCIP_Real upperbound /**< new upper bound */
96  );
97 
98 /** updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit */
100  SCIP_PRIMAL* primal, /**< primal data */
101  BMS_BLKMEM* blkmem, /**< block memory */
102  SCIP_SET* set, /**< global SCIP settings */
103  SCIP_STAT* stat, /**< problem statistics data */
104  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
105  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
106  SCIP_PROB* transprob, /**< tranformed problem data */
107  SCIP_PROB* origprob, /**< original problem data */
108  SCIP_TREE* tree, /**< branch and bound tree */
109  SCIP_REOPT* reopt, /**< reoptimization data structure */
110  SCIP_LP* lp /**< current LP data */
111  );
112 
113 /** recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset */
115  SCIP_PRIMAL* primal, /**< primal data */
116  BMS_BLKMEM* blkmem, /**< block memory */
117  SCIP_SET* set, /**< global SCIP settings */
118  SCIP_STAT* stat, /**< problem statistics data */
119  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
120  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
121  SCIP_PROB* transprob, /**< tranformed problem data */
122  SCIP_PROB* origprob, /**< original problem data */
123  SCIP_TREE* tree, /**< branch and bound tree */
124  SCIP_REOPT* reopt, /**< reoptimization data structure */
125  SCIP_LP* lp /**< current LP data */
126  );
127 
128 /** adds additional objective offset in origanal space to all existing solution (in original space) */
130  SCIP_PRIMAL* primal, /**< primal data */
131  SCIP_SET* set, /**< global SCIP settings */
132  SCIP_Real addval /**< additional objective offset in original space */
133  );
134 
135 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
136  * was set from the user as objective limit
137  */
139  SCIP_PRIMAL* primal, /**< primal data */
140  SCIP_SET* set, /**< global SCIP settings */
141  SCIP_PROB* transprob, /**< tranformed problem data */
142  SCIP_PROB* origprob /**< original problem data */
143  );
144 
145 /** returns the primal ray thats proves unboundedness */
147  SCIP_PRIMAL* primal /**< primal data */
148  );
149 
150 /** update the primal ray thats proves unboundedness */
152  SCIP_PRIMAL* primal, /**< primal data */
153  SCIP_SET* set, /**< global SCIP settings */
154  SCIP_STAT* stat, /**< dynamic SCIP statistics */
155  SCIP_SOL* primalray, /**< the new primal ray */
156  BMS_BLKMEM* blkmem /**< block memory */
157  );
158 
159 /** adds primal solution to solution storage by copying it */
161  SCIP_PRIMAL* primal, /**< primal data */
162  BMS_BLKMEM* blkmem, /**< block memory */
163  SCIP_SET* set, /**< global SCIP settings */
164  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
165  SCIP_STAT* stat, /**< problem statistics data */
166  SCIP_PROB* origprob, /**< original problem */
167  SCIP_PROB* transprob, /**< transformed problem after presolve */
168  SCIP_TREE* tree, /**< branch and bound tree */
169  SCIP_REOPT* reopt, /**< reoptimization data structure */
170  SCIP_LP* lp, /**< current LP data */
171  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
172  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
173  SCIP_SOL* sol, /**< primal CIP solution */
174  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
175  );
176 
177 /** adds primal solution to solution storage, frees the solution afterwards */
179  SCIP_PRIMAL* primal, /**< primal data */
180  BMS_BLKMEM* blkmem, /**< block memory */
181  SCIP_SET* set, /**< global SCIP settings */
182  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
183  SCIP_STAT* stat, /**< problem statistics data */
184  SCIP_PROB* origprob, /**< original problem */
185  SCIP_PROB* transprob, /**< transformed problem after presolve */
186  SCIP_TREE* tree, /**< branch and bound tree */
187  SCIP_REOPT* reopt, /**< reoptimization data structure */
188  SCIP_LP* lp, /**< current LP data */
189  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
190  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
191  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
192  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
193  );
194 
195 /** adds primal solution to solution candidate storage of original problem space */
197  SCIP_PRIMAL* primal, /**< primal data */
198  BMS_BLKMEM* blkmem, /**< block memory */
199  SCIP_SET* set, /**< global SCIP settings */
200  SCIP_STAT* stat, /**< problem statistics data */
201  SCIP_PROB* prob, /**< original problem data */
202  SCIP_SOL* sol, /**< primal CIP solution; is cleared in function call */
203  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
204  );
205 
206 /** adds primal solution to solution candidate storage of original problem space, frees the solution afterwards */
208  SCIP_PRIMAL* primal, /**< primal data */
209  BMS_BLKMEM* blkmem, /**< block memory */
210  SCIP_SET* set, /**< global SCIP settings */
211  SCIP_STAT* stat, /**< problem statistics data */
212  SCIP_PROB* prob, /**< original problem data */
213  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
214  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
215  );
216 
217 /** adds current LP/pseudo solution to solution storage */
219  SCIP_PRIMAL* primal, /**< primal data */
220  BMS_BLKMEM* blkmem, /**< block memory */
221  SCIP_SET* set, /**< global SCIP settings */
222  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
223  SCIP_STAT* stat, /**< problem statistics data */
224  SCIP_PROB* origprob, /**< original problem */
225  SCIP_PROB* transprob, /**< transformed problem after presolve */
226  SCIP_TREE* tree, /**< branch and bound tree */
227  SCIP_REOPT* reopt, /**< reoptimization data structure */
228  SCIP_LP* lp, /**< current LP data */
229  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
230  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
231  SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
232  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
233  );
234 
235 /** checks primal solution; if feasible, adds it to storage by copying it */
237  SCIP_PRIMAL* primal, /**< primal data */
238  BMS_BLKMEM* blkmem, /**< block memory */
239  SCIP_SET* set, /**< global SCIP settings */
240  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
241  SCIP_STAT* stat, /**< problem statistics data */
242  SCIP_PROB* origprob, /**< original problem */
243  SCIP_PROB* transprob, /**< transformed problem after presolve */
244  SCIP_TREE* tree, /**< branch and bound tree */
245  SCIP_REOPT* reopt, /**< reoptimization data structure */
246  SCIP_LP* lp, /**< current LP data */
247  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
248  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
249  SCIP_SOL* sol, /**< primal CIP solution */
250  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
251  SCIP_Bool completely, /**< Should all violations be checked? */
252  SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
253  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
254  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
255  SCIP_Bool* stored /**< stores whether given solution was feasible and good enough to keep */
256  );
257 
258 /** checks primal solution; if feasible, adds it to storage; solution is freed afterwards */
260  SCIP_PRIMAL* primal, /**< primal data */
261  BMS_BLKMEM* blkmem, /**< block memory */
262  SCIP_SET* set, /**< global SCIP settings */
263  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
264  SCIP_STAT* stat, /**< problem statistics data */
265  SCIP_PROB* origprob, /**< original problem */
266  SCIP_PROB* transprob, /**< transformed problem after presolve */
267  SCIP_TREE* tree, /**< branch and bound tree */
268  SCIP_REOPT* reopt, /**< reoptimization data structure */
269  SCIP_LP* lp, /**< current LP data */
270  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
271  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
272  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
273  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
274  SCIP_Bool completely, /**< Should all violations be checked? */
275  SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
276  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
277  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
278  SCIP_Bool* stored /**< stores whether solution was feasible and good enough to keep */
279  );
280 
281 /** checks current LP/pseudo solution; if feasible, adds it to storage */
283  SCIP_PRIMAL* primal, /**< primal data */
284  BMS_BLKMEM* blkmem, /**< block memory */
285  SCIP_SET* set, /**< global SCIP settings */
286  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
287  SCIP_STAT* stat, /**< problem statistics data */
288  SCIP_PROB* origprob, /**< original problem */
289  SCIP_PROB* transprob, /**< transformed problem after presolve */
290  SCIP_TREE* tree, /**< branch and bound tree */
291  SCIP_REOPT* reopt, /**< reoptimization data structure */
292  SCIP_LP* lp, /**< current LP data */
293  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
294  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
295  SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
296  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
297  SCIP_Bool completely, /**< Should all violations be checked? */
298  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
299  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
300  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
301  );
302 
303 /** inserts solution into the global array of all existing primal solutions */
305  SCIP_PRIMAL* primal, /**< primal data */
306  SCIP_SET* set, /**< global SCIP settings */
307  SCIP_SOL* sol /**< primal CIP solution */
308  );
309 
310 /** removes solution from the global array of all existing primal solutions */
311 void SCIPprimalSolFreed(
312  SCIP_PRIMAL* primal, /**< primal data */
313  SCIP_SOL* sol /**< primal CIP solution */
314  );
315 
316 /** updates all existing primal solutions after a change in a variable's objective value */
318  SCIP_PRIMAL* primal, /**< primal data */
319  SCIP_VAR* var, /**< problem variable */
320  SCIP_Real oldobj, /**< old objective value */
321  SCIP_Real newobj /**< new objective value */
322  );
323 
324 /** retransforms all existing solutions to original problem space
325  *
326  * @note as a side effect, the objective value of the solutions can change (numerical errors)
327  * so we update the objective cutoff value and upper bound accordingly
328  */
330  SCIP_PRIMAL* primal, /**< primal data */
331  BMS_BLKMEM* blkmem, /**< block memory */
332  SCIP_SET* set, /**< global SCIP settings */
333  SCIP_STAT* stat, /**< problem statistics data */
334  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
335  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
336  SCIP_PROB* origprob, /**< original problem */
337  SCIP_PROB* transprob, /**< transformed problem */
338  SCIP_TREE* tree, /**< branch and bound tree */
339  SCIP_REOPT* reopt, /**< reoptimization data structure */
340  SCIP_LP* lp /**< current LP data */
341  );
342 
343 /** tries to transform original solution to the transformed problem space */
345  SCIP_PRIMAL* primal, /**< primal data */
346  SCIP_SOL* sol, /**< primal solution */
347  BMS_BLKMEM* blkmem, /**< block memory */
348  SCIP_SET* set, /**< global SCIP settings */
349  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
350  SCIP_STAT* stat, /**< problem statistics data */
351  SCIP_PROB* origprob, /**< original problem */
352  SCIP_PROB* transprob, /**< transformed problem after presolve */
353  SCIP_TREE* tree, /**< branch and bound tree */
354  SCIP_REOPT* reopt, /**< reoptimization data structure */
355  SCIP_LP* lp, /**< current LP data */
356  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
357  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
358  SCIP_Real* solvals, /**< array for internal use to store solution values, or NULL;
359  * if the method is called multiple times in a row, an array with size >=
360  * number of active variables should be given for performance reasons */
361  SCIP_Bool* solvalset, /**< array for internal use to store which solution values were set, or NULL;
362  * if the method is called multiple times in a row, an array with size >=
363  * number of active variables should be given for performance reasons */
364  int solvalssize, /**< size of solvals and solvalset arrays, should be >= number of active
365  * variables */
366  SCIP_Bool* added /**< pointer to store whether the solution was added */
367  );
368 
369 /** is the updating of violations enabled for this problem? */
371  SCIP_PRIMAL* primal /**< problem data */
372  );
373 
374 /** set whether the updating of violations is turned on */
376  SCIP_PRIMAL* primal, /**< problem data */
377  SCIP_Bool updateviolations /**< TRUE to enable violation updates, FALSE otherwise */
378  );
379 
380 #ifdef __cplusplus
381 }
382 #endif
383 
384 #endif
SCIP_RETCODE SCIPprimalClear(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:194
SCIP_RETCODE SCIPprimalUpdateRay(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *primalray, BMS_BLKMEM *blkmem)
Definition: primal.c:592
SCIP_RETCODE SCIPprimalAddOrigSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL *sol, SCIP_Bool *stored)
Definition: primal.c:1310
void SCIPprimalAddOrigObjoffset(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_Real addval)
Definition: primal.c:535
SCIP_RETCODE SCIPprimalTryCurrentSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
Definition: primal.c:1623
SCIP_RETCODE SCIPprimalUpdateObjoffset(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:479
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:54
SCIP_RETCODE SCIPprimalAddCurrentSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_HEUR *heur, SCIP_Bool *stored)
Definition: primal.c:1449
type definitions for global SCIP settings
SCIP_RETCODE SCIPprimalTrySol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
Definition: primal.c:1479
type definitions for return codes for SCIP methods
SCIP_SOL * SCIPprimalGetRay(SCIP_PRIMAL *primal)
Definition: primal.c:582
type definitions for collecting reoptimization information
type definitions for LP management
SCIP_RETCODE SCIPprimalUpdateObjlimit(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:439
SCIP_RETCODE SCIPprimalSetCutoffbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound, SCIP_Bool useforobjlimit)
Definition: primal.c:298
type definitions for primal heuristics
SCIP_RETCODE SCIPprimalTrySolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *stored)
Definition: primal.c:1549
SCIP_RETCODE SCIPprimalSetUpperbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real upperbound)
Definition: primal.c:407
SCIP_RETCODE SCIPprimalSolCreated(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
Definition: primal.c:1658
type definitions for problem variables
type definitions for managing events
#define SCIP_Bool
Definition: def.h:70
void SCIPprimalSetUpdateViolations(SCIP_PRIMAL *primal, SCIP_Bool updateviolations)
Definition: primal.c:1967
type definitions for branch and bound tree
SCIP_Bool SCIPprimalUpdateViolations(SCIP_PRIMAL *primal)
Definition: primal.c:1957
SCIP_Bool SCIPprimalUpperboundIsSol(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
Definition: primal.c:569
type definitions for storing primal CIP solutions
type definitions for storing and manipulating the main problem
void SCIPprimalUpdateVarObj(SCIP_PRIMAL *primal, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
Definition: primal.c:1710
SCIP_RETCODE SCIPprimalAddSol(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL *sol, SCIP_Bool *stored)
Definition: primal.c:1187
SCIP_RETCODE SCIPprimalRetransformSolutions(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTFILTER *eventfilter, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:1733
SCIP_RETCODE SCIPprimalTransformSol(SCIP_PRIMAL *primal, SCIP_SOL *sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_Real *solvals, SCIP_Bool *solvalset, int solvalssize, SCIP_Bool *added)
Definition: primal.c:1782
#define SCIP_Real
Definition: def.h:163
SCIP_RETCODE SCIPprimalAddSolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
Definition: primal.c:1255
datastructures for collecting primal CIP solutions and primal informations
type definitions for collecting primal CIP solutions and primal informations
common defines and data types used in all packages of SCIP
SCIP_RETCODE SCIPprimalAddOrigSolFree(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_SOL **sol, SCIP_Bool *stored)
Definition: primal.c:1365
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:429
void SCIPprimalSolFreed(SCIP_PRIMAL *primal, SCIP_SOL *sol)
Definition: primal.c:1680
SCIP_RETCODE SCIPprimalFree(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:151
SCIP_RETCODE SCIPprimalCreate(SCIP_PRIMAL **primal)
Definition: primal.c:121
memory allocation routines