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-2018 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 email to scip@zib.de. */
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 */
49 extern
51  SCIP_PRIMAL** primal /**< pointer to primal data */
52  );
53 
54 /** frees primal data */
55 extern
57  SCIP_PRIMAL** primal, /**< pointer to primal data */
58  BMS_BLKMEM* blkmem /**< block memory */
59  );
60 
61 /** clears primal data */
62 extern
64  SCIP_PRIMAL** primal, /**< pointer to primal data */
65  BMS_BLKMEM* blkmem /**< block memory */
66  );
67 
68 /** sets the cutoff bound in primal data and in LP solver */
69 extern
71  SCIP_PRIMAL* primal, /**< primal data */
72  BMS_BLKMEM* blkmem, /**< block memory */
73  SCIP_SET* set, /**< global SCIP settings */
74  SCIP_STAT* stat, /**< problem statistics data */
75  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
76  SCIP_PROB* transprob, /**< tranformed problem data */
77  SCIP_PROB* origprob, /**< original problem data */
78  SCIP_TREE* tree, /**< branch and bound tree */
79  SCIP_REOPT* reopt, /**< reoptimization data structure */
80  SCIP_LP* lp, /**< current LP data */
81  SCIP_Real cutoffbound, /**< new cutoff bound */
82  SCIP_Bool useforobjlimit /**< should the cutoff bound be used to update the objective limit, if
83  * better? */
84  );
85 
86 /** sets upper bound in primal data and in LP solver */
87 extern
89  SCIP_PRIMAL* primal, /**< primal data */
90  BMS_BLKMEM* blkmem, /**< block memory */
91  SCIP_SET* set, /**< global SCIP settings */
92  SCIP_STAT* stat, /**< problem statistics data */
93  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
94  SCIP_PROB* prob, /**< transformed problem after presolve */
95  SCIP_TREE* tree, /**< branch and bound tree */
96  SCIP_REOPT* reopt, /**< reoptimization data structure */
97  SCIP_LP* lp, /**< current LP data */
98  SCIP_Real upperbound /**< new upper bound */
99  );
100 
101 /** updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit */
102 extern
104  SCIP_PRIMAL* primal, /**< primal data */
105  BMS_BLKMEM* blkmem, /**< block memory */
106  SCIP_SET* set, /**< global SCIP settings */
107  SCIP_STAT* stat, /**< problem statistics data */
108  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
109  SCIP_PROB* transprob, /**< tranformed problem data */
110  SCIP_PROB* origprob, /**< original problem data */
111  SCIP_TREE* tree, /**< branch and bound tree */
112  SCIP_REOPT* reopt, /**< reoptimization data structure */
113  SCIP_LP* lp /**< current LP data */
114  );
115 
116 /** recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset */
117 extern
119  SCIP_PRIMAL* primal, /**< primal data */
120  BMS_BLKMEM* blkmem, /**< block memory */
121  SCIP_SET* set, /**< global SCIP settings */
122  SCIP_STAT* stat, /**< problem statistics data */
123  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
124  SCIP_PROB* transprob, /**< tranformed problem data */
125  SCIP_PROB* origprob, /**< original problem data */
126  SCIP_TREE* tree, /**< branch and bound tree */
127  SCIP_REOPT* reopt, /**< reoptimization data structure */
128  SCIP_LP* lp /**< current LP data */
129  );
130 
131 /** adds additional objective offset in origanal space to all existing solution (in original space) */
132 extern
134  SCIP_PRIMAL* primal, /**< primal data */
135  SCIP_SET* set, /**< global SCIP settings */
136  SCIP_Real addval /**< additional objective offset in original space */
137  );
138 
139 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
140  * was set from the user as objective limit
141  */
142 extern
144  SCIP_PRIMAL* primal, /**< primal data */
145  SCIP_SET* set, /**< global SCIP settings */
146  SCIP_PROB* transprob, /**< tranformed problem data */
147  SCIP_PROB* origprob /**< original problem data */
148  );
149 
150 /** returns the primal ray thats proves unboundedness */
151 extern
153  SCIP_PRIMAL* primal /**< primal data */
154  );
155 
156 /** update the primal ray thats proves unboundedness */
157 extern
159  SCIP_PRIMAL* primal, /**< primal data */
160  SCIP_SET* set, /**< global SCIP settings */
161  SCIP_STAT* stat, /**< dynamic SCIP statistics */
162  SCIP_SOL* primalray, /**< the new primal ray */
163  BMS_BLKMEM* blkmem /**< block memory */
164  );
165 
166 /** adds primal solution to solution storage by copying it */
167 extern
169  SCIP_PRIMAL* primal, /**< primal data */
170  BMS_BLKMEM* blkmem, /**< block memory */
171  SCIP_SET* set, /**< global SCIP settings */
172  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
173  SCIP_STAT* stat, /**< problem statistics data */
174  SCIP_PROB* origprob, /**< original problem */
175  SCIP_PROB* transprob, /**< transformed problem after presolve */
176  SCIP_TREE* tree, /**< branch and bound tree */
177  SCIP_REOPT* reopt, /**< reoptimization data structure */
178  SCIP_LP* lp, /**< current LP data */
179  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
180  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
181  SCIP_SOL* sol, /**< primal CIP solution */
182  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
183  );
184 
185 /** adds primal solution to solution storage, frees the solution afterwards */
186 extern
188  SCIP_PRIMAL* primal, /**< primal data */
189  BMS_BLKMEM* blkmem, /**< block memory */
190  SCIP_SET* set, /**< global SCIP settings */
191  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
192  SCIP_STAT* stat, /**< problem statistics data */
193  SCIP_PROB* origprob, /**< original problem */
194  SCIP_PROB* transprob, /**< transformed problem after presolve */
195  SCIP_TREE* tree, /**< branch and bound tree */
196  SCIP_REOPT* reopt, /**< reoptimization data structure */
197  SCIP_LP* lp, /**< current LP data */
198  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
199  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
200  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
201  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
202  );
203 
204 /** adds primal solution to solution candidate storage of original problem space */
205 extern
207  SCIP_PRIMAL* primal, /**< primal data */
208  BMS_BLKMEM* blkmem, /**< block memory */
209  SCIP_SET* set, /**< global SCIP settings */
210  SCIP_STAT* stat, /**< problem statistics data */
211  SCIP_PROB* prob, /**< original problem data */
212  SCIP_SOL* sol, /**< primal CIP solution; is cleared in function call */
213  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
214  );
215 
216 /** adds primal solution to solution candidate storage of original problem space, frees the solution afterwards */
217 extern
219  SCIP_PRIMAL* primal, /**< primal data */
220  BMS_BLKMEM* blkmem, /**< block memory */
221  SCIP_SET* set, /**< global SCIP settings */
222  SCIP_STAT* stat, /**< problem statistics data */
223  SCIP_PROB* prob, /**< original problem data */
224  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
225  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
226  );
227 
228 /** adds current LP/pseudo solution to solution storage */
229 extern
231  SCIP_PRIMAL* primal, /**< primal data */
232  BMS_BLKMEM* blkmem, /**< block memory */
233  SCIP_SET* set, /**< global SCIP settings */
234  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
235  SCIP_STAT* stat, /**< problem statistics data */
236  SCIP_PROB* origprob, /**< original problem */
237  SCIP_PROB* transprob, /**< transformed problem after presolve */
238  SCIP_TREE* tree, /**< branch and bound tree */
239  SCIP_REOPT* reopt, /**< reoptimization data structure */
240  SCIP_LP* lp, /**< current LP data */
241  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
242  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
243  SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
244  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
245  );
246 
247 /** checks primal solution; if feasible, adds it to storage by copying it */
248 extern
250  SCIP_PRIMAL* primal, /**< primal data */
251  BMS_BLKMEM* blkmem, /**< block memory */
252  SCIP_SET* set, /**< global SCIP settings */
253  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
254  SCIP_STAT* stat, /**< problem statistics data */
255  SCIP_PROB* origprob, /**< original problem */
256  SCIP_PROB* transprob, /**< transformed problem after presolve */
257  SCIP_TREE* tree, /**< branch and bound tree */
258  SCIP_REOPT* reopt, /**< reoptimization data structure */
259  SCIP_LP* lp, /**< current LP data */
260  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
261  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
262  SCIP_SOL* sol, /**< primal CIP solution */
263  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
264  SCIP_Bool completely, /**< Should all violations be checked? */
265  SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
266  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
267  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
268  SCIP_Bool* stored /**< stores whether given solution was feasible and good enough to keep */
269  );
270 
271 /** checks primal solution; if feasible, adds it to storage; solution is freed afterwards */
272 extern
274  SCIP_PRIMAL* primal, /**< primal data */
275  BMS_BLKMEM* blkmem, /**< block memory */
276  SCIP_SET* set, /**< global SCIP settings */
277  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
278  SCIP_STAT* stat, /**< problem statistics data */
279  SCIP_PROB* origprob, /**< original problem */
280  SCIP_PROB* transprob, /**< transformed problem after presolve */
281  SCIP_TREE* tree, /**< branch and bound tree */
282  SCIP_REOPT* reopt, /**< reoptimization data structure */
283  SCIP_LP* lp, /**< current LP data */
284  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
285  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
286  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
287  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
288  SCIP_Bool completely, /**< Should all violations be checked? */
289  SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
290  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
291  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
292  SCIP_Bool* stored /**< stores whether solution was feasible and good enough to keep */
293  );
294 
295 /** checks current LP/pseudo solution; if feasible, adds it to storage */
296 extern
298  SCIP_PRIMAL* primal, /**< primal data */
299  BMS_BLKMEM* blkmem, /**< block memory */
300  SCIP_SET* set, /**< global SCIP settings */
301  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
302  SCIP_STAT* stat, /**< problem statistics data */
303  SCIP_PROB* origprob, /**< original problem */
304  SCIP_PROB* transprob, /**< transformed problem after presolve */
305  SCIP_TREE* tree, /**< branch and bound tree */
306  SCIP_REOPT* reopt, /**< reoptimization data structure */
307  SCIP_LP* lp, /**< current LP data */
308  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
309  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
310  SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
311  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
312  SCIP_Bool completely, /**< Should all violations be checked? */
313  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
314  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
315  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
316  );
317 
318 /** inserts solution into the global array of all existing primal solutions */
319 extern
321  SCIP_PRIMAL* primal, /**< primal data */
322  SCIP_SET* set, /**< global SCIP settings */
323  SCIP_SOL* sol /**< primal CIP solution */
324  );
325 
326 /** removes solution from the global array of all existing primal solutions */
327 extern
328 void SCIPprimalSolFreed(
329  SCIP_PRIMAL* primal, /**< primal data */
330  SCIP_SOL* sol /**< primal CIP solution */
331  );
332 
333 /** updates all existing primal solutions after a change in a variable's objective value */
334 extern
336  SCIP_PRIMAL* primal, /**< primal data */
337  SCIP_VAR* var, /**< problem variable */
338  SCIP_Real oldobj, /**< old objective value */
339  SCIP_Real newobj /**< new objective value */
340  );
341 
342 /** retransforms all existing solutions to original problem space
343  *
344  * @note as a side effect, the objective value of the solutions can change (numerical errors)
345  * so we update the objective cutoff value and upper bound accordingly
346  */
347 extern
349  SCIP_PRIMAL* primal, /**< primal data */
350  BMS_BLKMEM* blkmem, /**< block memory */
351  SCIP_SET* set, /**< global SCIP settings */
352  SCIP_STAT* stat, /**< problem statistics data */
353  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
354  SCIP_PROB* origprob, /**< original problem */
355  SCIP_PROB* transprob, /**< transformed problem */
356  SCIP_TREE* tree, /**< branch and bound tree */
357  SCIP_REOPT* reopt, /**< reoptimization data structure */
358  SCIP_LP* lp /**< current LP data */
359  );
360 
361 /** tries to transform original solution to the transformed problem space */
362 extern
364  SCIP_PRIMAL* primal, /**< primal data */
365  SCIP_SOL* sol, /**< primal solution */
366  BMS_BLKMEM* blkmem, /**< block memory */
367  SCIP_SET* set, /**< global SCIP settings */
368  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
369  SCIP_STAT* stat, /**< problem statistics data */
370  SCIP_PROB* origprob, /**< original problem */
371  SCIP_PROB* transprob, /**< transformed problem after presolve */
372  SCIP_TREE* tree, /**< branch and bound tree */
373  SCIP_REOPT* reopt, /**< reoptimization data structure */
374  SCIP_LP* lp, /**< current LP data */
375  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
376  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
377  SCIP_Real* solvals, /**< array for internal use to store solution values, or NULL;
378  * if the method is called multiple times in a row, an array with size >=
379  * number of active variables should be given for performance reasons */
380  SCIP_Bool* solvalset, /**< array for internal use to store which solution values were set, or NULL;
381  * if the method is called multiple times in a row, an array with size >=
382  * number of active variables should be given for performance reasons */
383  int solvalssize, /**< size of solvals and solvalset arrays, should be >= number of active
384  * variables */
385  SCIP_Bool* added /**< pointer to store whether the solution was added */
386  );
387 
388 /** is the updating of violations enabled for this problem? */
389 extern
391  SCIP_PRIMAL* primal /**< problem data */
392  );
393 
394 /** set whether the updating of violations is turned on */
395 extern
397  SCIP_PRIMAL* primal, /**< problem data */
398  SCIP_Bool updateviolations /**< TRUE to enable violation updates, FALSE otherwise */
399  );
400 
401 #ifdef __cplusplus
402 }
403 #endif
404 
405 #endif
SCIP_RETCODE SCIPprimalClear(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:190
SCIP_RETCODE SCIPprimalUpdateRay(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *primalray, BMS_BLKMEM *blkmem)
Definition: primal.c:566
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:1268
void SCIPprimalAddOrigObjoffset(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_Real addval)
Definition: primal.c:509
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:1581
SCIP_RETCODE SCIPprimalRetransformSolutions(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:1691
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
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:1407
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:1437
type definitions for return codes for SCIP methods
SCIP_SOL * SCIPprimalGetRay(SCIP_PRIMAL *primal)
Definition: primal.c:556
type definitions for collecting reoptimization information
type definitions for LP management
SCIP_RETCODE SCIPprimalSetCutoffbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, 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:266
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:1507
SCIP_RETCODE SCIPprimalUpdateObjlimit(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:404
SCIP_RETCODE SCIPprimalSolCreated(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
Definition: primal.c:1616
type definitions for problem variables
type definitions for managing events
#define SCIP_Bool
Definition: def.h:61
void SCIPprimalSetUpdateViolations(SCIP_PRIMAL *primal, SCIP_Bool updateviolations)
Definition: primal.c:1922
type definitions for branch and bound tree
SCIP_Bool SCIPprimalUpdateViolations(SCIP_PRIMAL *primal)
Definition: primal.c:1912
SCIP_Bool SCIPprimalUpperboundIsSol(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
Definition: primal.c:543
type definitions for storing primal CIP solutions
type definitions for storing and manipulating the main problem
SCIP_RETCODE SCIPprimalSetUpperbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real upperbound)
Definition: primal.c:373
void SCIPprimalUpdateVarObj(SCIP_PRIMAL *primal, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
Definition: primal.c:1668
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:1145
SCIP_RETCODE SCIPprimalUpdateObjoffset(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:443
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:1737
#define SCIP_Real
Definition: def.h:149
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:1213
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:1323
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:419
void SCIPprimalSolFreed(SCIP_PRIMAL *primal, SCIP_SOL *sol)
Definition: primal.c:1638
SCIP_RETCODE SCIPprimalFree(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:147
SCIP_RETCODE SCIPprimalCreate(SCIP_PRIMAL **primal)
Definition: primal.c:117
memory allocation routines