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-2019 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 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 */
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_EVENTQUEUE* eventqueue, /**< event queue */
72  SCIP_PROB* transprob, /**< tranformed problem data */
73  SCIP_PROB* origprob, /**< original problem data */
74  SCIP_TREE* tree, /**< branch and bound tree */
75  SCIP_REOPT* reopt, /**< reoptimization data structure */
76  SCIP_LP* lp, /**< current LP data */
77  SCIP_Real cutoffbound, /**< new cutoff bound */
78  SCIP_Bool useforobjlimit /**< should the cutoff bound be used to update the objective limit, if
79  * better? */
80  );
81 
82 /** sets upper bound in primal data and in LP solver */
84  SCIP_PRIMAL* primal, /**< primal data */
85  BMS_BLKMEM* blkmem, /**< block memory */
86  SCIP_SET* set, /**< global SCIP settings */
87  SCIP_STAT* stat, /**< problem statistics data */
88  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
89  SCIP_PROB* prob, /**< transformed problem after presolve */
90  SCIP_TREE* tree, /**< branch and bound tree */
91  SCIP_REOPT* reopt, /**< reoptimization data structure */
92  SCIP_LP* lp, /**< current LP data */
93  SCIP_Real upperbound /**< new upper bound */
94  );
95 
96 /** updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit */
98  SCIP_PRIMAL* primal, /**< primal data */
99  BMS_BLKMEM* blkmem, /**< block memory */
100  SCIP_SET* set, /**< global SCIP settings */
101  SCIP_STAT* stat, /**< problem statistics data */
102  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
103  SCIP_PROB* transprob, /**< tranformed problem data */
104  SCIP_PROB* origprob, /**< original problem data */
105  SCIP_TREE* tree, /**< branch and bound tree */
106  SCIP_REOPT* reopt, /**< reoptimization data structure */
107  SCIP_LP* lp /**< current LP data */
108  );
109 
110 /** recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset */
112  SCIP_PRIMAL* primal, /**< primal data */
113  BMS_BLKMEM* blkmem, /**< block memory */
114  SCIP_SET* set, /**< global SCIP settings */
115  SCIP_STAT* stat, /**< problem statistics data */
116  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
117  SCIP_PROB* transprob, /**< tranformed problem data */
118  SCIP_PROB* origprob, /**< original problem data */
119  SCIP_TREE* tree, /**< branch and bound tree */
120  SCIP_REOPT* reopt, /**< reoptimization data structure */
121  SCIP_LP* lp /**< current LP data */
122  );
123 
124 /** adds additional objective offset in origanal space to all existing solution (in original space) */
126  SCIP_PRIMAL* primal, /**< primal data */
127  SCIP_SET* set, /**< global SCIP settings */
128  SCIP_Real addval /**< additional objective offset in original space */
129  );
130 
131 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
132  * was set from the user as objective limit
133  */
135  SCIP_PRIMAL* primal, /**< primal data */
136  SCIP_SET* set, /**< global SCIP settings */
137  SCIP_PROB* transprob, /**< tranformed problem data */
138  SCIP_PROB* origprob /**< original problem data */
139  );
140 
141 /** returns the primal ray thats proves unboundedness */
143  SCIP_PRIMAL* primal /**< primal data */
144  );
145 
146 /** update the primal ray thats proves unboundedness */
148  SCIP_PRIMAL* primal, /**< primal data */
149  SCIP_SET* set, /**< global SCIP settings */
150  SCIP_STAT* stat, /**< dynamic SCIP statistics */
151  SCIP_SOL* primalray, /**< the new primal ray */
152  BMS_BLKMEM* blkmem /**< block memory */
153  );
154 
155 /** adds primal solution to solution storage by copying it */
157  SCIP_PRIMAL* primal, /**< primal data */
158  BMS_BLKMEM* blkmem, /**< block memory */
159  SCIP_SET* set, /**< global SCIP settings */
160  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
161  SCIP_STAT* stat, /**< problem statistics data */
162  SCIP_PROB* origprob, /**< original problem */
163  SCIP_PROB* transprob, /**< transformed problem after presolve */
164  SCIP_TREE* tree, /**< branch and bound tree */
165  SCIP_REOPT* reopt, /**< reoptimization data structure */
166  SCIP_LP* lp, /**< current LP data */
167  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
168  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
169  SCIP_SOL* sol, /**< primal CIP solution */
170  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
171  );
172 
173 /** adds primal solution to solution storage, frees the solution afterwards */
175  SCIP_PRIMAL* primal, /**< primal data */
176  BMS_BLKMEM* blkmem, /**< block memory */
177  SCIP_SET* set, /**< global SCIP settings */
178  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
179  SCIP_STAT* stat, /**< problem statistics data */
180  SCIP_PROB* origprob, /**< original problem */
181  SCIP_PROB* transprob, /**< transformed problem after presolve */
182  SCIP_TREE* tree, /**< branch and bound tree */
183  SCIP_REOPT* reopt, /**< reoptimization data structure */
184  SCIP_LP* lp, /**< current LP data */
185  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
186  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
187  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
188  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
189  );
190 
191 /** adds primal solution to solution candidate storage of original problem space */
193  SCIP_PRIMAL* primal, /**< primal data */
194  BMS_BLKMEM* blkmem, /**< block memory */
195  SCIP_SET* set, /**< global SCIP settings */
196  SCIP_STAT* stat, /**< problem statistics data */
197  SCIP_PROB* prob, /**< original problem data */
198  SCIP_SOL* sol, /**< primal CIP solution; is cleared in function call */
199  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
200  );
201 
202 /** adds primal solution to solution candidate storage of original problem space, frees the solution afterwards */
204  SCIP_PRIMAL* primal, /**< primal data */
205  BMS_BLKMEM* blkmem, /**< block memory */
206  SCIP_SET* set, /**< global SCIP settings */
207  SCIP_STAT* stat, /**< problem statistics data */
208  SCIP_PROB* prob, /**< original problem data */
209  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
210  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
211  );
212 
213 /** adds current LP/pseudo solution to solution storage */
215  SCIP_PRIMAL* primal, /**< primal data */
216  BMS_BLKMEM* blkmem, /**< block memory */
217  SCIP_SET* set, /**< global SCIP settings */
218  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
219  SCIP_STAT* stat, /**< problem statistics data */
220  SCIP_PROB* origprob, /**< original problem */
221  SCIP_PROB* transprob, /**< transformed problem after presolve */
222  SCIP_TREE* tree, /**< branch and bound tree */
223  SCIP_REOPT* reopt, /**< reoptimization data structure */
224  SCIP_LP* lp, /**< current LP data */
225  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
226  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
227  SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
228  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
229  );
230 
231 /** checks primal solution; if feasible, adds it to storage by copying it */
233  SCIP_PRIMAL* primal, /**< primal data */
234  BMS_BLKMEM* blkmem, /**< block memory */
235  SCIP_SET* set, /**< global SCIP settings */
236  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
237  SCIP_STAT* stat, /**< problem statistics data */
238  SCIP_PROB* origprob, /**< original problem */
239  SCIP_PROB* transprob, /**< transformed problem after presolve */
240  SCIP_TREE* tree, /**< branch and bound tree */
241  SCIP_REOPT* reopt, /**< reoptimization data structure */
242  SCIP_LP* lp, /**< current LP data */
243  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
244  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
245  SCIP_SOL* sol, /**< primal CIP solution */
246  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
247  SCIP_Bool completely, /**< Should all violations be checked? */
248  SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
249  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
250  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
251  SCIP_Bool* stored /**< stores whether given solution was feasible and good enough to keep */
252  );
253 
254 /** checks primal solution; if feasible, adds it to storage; solution is freed afterwards */
256  SCIP_PRIMAL* primal, /**< primal data */
257  BMS_BLKMEM* blkmem, /**< block memory */
258  SCIP_SET* set, /**< global SCIP settings */
259  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
260  SCIP_STAT* stat, /**< problem statistics data */
261  SCIP_PROB* origprob, /**< original problem */
262  SCIP_PROB* transprob, /**< transformed problem after presolve */
263  SCIP_TREE* tree, /**< branch and bound tree */
264  SCIP_REOPT* reopt, /**< reoptimization data structure */
265  SCIP_LP* lp, /**< current LP data */
266  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
267  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
268  SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
269  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
270  SCIP_Bool completely, /**< Should all violations be checked? */
271  SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
272  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
273  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
274  SCIP_Bool* stored /**< stores whether solution was feasible and good enough to keep */
275  );
276 
277 /** checks current LP/pseudo solution; if feasible, adds it to storage */
279  SCIP_PRIMAL* primal, /**< primal data */
280  BMS_BLKMEM* blkmem, /**< block memory */
281  SCIP_SET* set, /**< global SCIP settings */
282  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
283  SCIP_STAT* stat, /**< problem statistics data */
284  SCIP_PROB* origprob, /**< original problem */
285  SCIP_PROB* transprob, /**< transformed problem after presolve */
286  SCIP_TREE* tree, /**< branch and bound tree */
287  SCIP_REOPT* reopt, /**< reoptimization data structure */
288  SCIP_LP* lp, /**< current LP data */
289  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
290  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
291  SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
292  SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
293  SCIP_Bool completely, /**< Should all violations be checked? */
294  SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
295  SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
296  SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
297  );
298 
299 /** inserts solution into the global array of all existing primal solutions */
301  SCIP_PRIMAL* primal, /**< primal data */
302  SCIP_SET* set, /**< global SCIP settings */
303  SCIP_SOL* sol /**< primal CIP solution */
304  );
305 
306 /** removes solution from the global array of all existing primal solutions */
307 void SCIPprimalSolFreed(
308  SCIP_PRIMAL* primal, /**< primal data */
309  SCIP_SOL* sol /**< primal CIP solution */
310  );
311 
312 /** updates all existing primal solutions after a change in a variable's objective value */
314  SCIP_PRIMAL* primal, /**< primal data */
315  SCIP_VAR* var, /**< problem variable */
316  SCIP_Real oldobj, /**< old objective value */
317  SCIP_Real newobj /**< new objective value */
318  );
319 
320 /** retransforms all existing solutions to original problem space
321  *
322  * @note as a side effect, the objective value of the solutions can change (numerical errors)
323  * so we update the objective cutoff value and upper bound accordingly
324  */
326  SCIP_PRIMAL* primal, /**< primal data */
327  BMS_BLKMEM* blkmem, /**< block memory */
328  SCIP_SET* set, /**< global SCIP settings */
329  SCIP_STAT* stat, /**< problem statistics data */
330  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
331  SCIP_PROB* origprob, /**< original problem */
332  SCIP_PROB* transprob, /**< transformed problem */
333  SCIP_TREE* tree, /**< branch and bound tree */
334  SCIP_REOPT* reopt, /**< reoptimization data structure */
335  SCIP_LP* lp /**< current LP data */
336  );
337 
338 /** tries to transform original solution to the transformed problem space */
340  SCIP_PRIMAL* primal, /**< primal data */
341  SCIP_SOL* sol, /**< primal solution */
342  BMS_BLKMEM* blkmem, /**< block memory */
343  SCIP_SET* set, /**< global SCIP settings */
344  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
345  SCIP_STAT* stat, /**< problem statistics data */
346  SCIP_PROB* origprob, /**< original problem */
347  SCIP_PROB* transprob, /**< transformed problem after presolve */
348  SCIP_TREE* tree, /**< branch and bound tree */
349  SCIP_REOPT* reopt, /**< reoptimization data structure */
350  SCIP_LP* lp, /**< current LP data */
351  SCIP_EVENTQUEUE* eventqueue, /**< event queue */
352  SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
353  SCIP_Real* solvals, /**< array for internal use to store solution values, or NULL;
354  * if the method is called multiple times in a row, an array with size >=
355  * number of active variables should be given for performance reasons */
356  SCIP_Bool* solvalset, /**< array for internal use to store which solution values were set, or NULL;
357  * if the method is called multiple times in a row, an array with size >=
358  * number of active variables should be given for performance reasons */
359  int solvalssize, /**< size of solvals and solvalset arrays, should be >= number of active
360  * variables */
361  SCIP_Bool* added /**< pointer to store whether the solution was added */
362  );
363 
364 /** is the updating of violations enabled for this problem? */
366  SCIP_PRIMAL* primal /**< problem data */
367  );
368 
369 /** set whether the updating of violations is turned on */
371  SCIP_PRIMAL* primal, /**< problem data */
372  SCIP_Bool updateviolations /**< TRUE to enable violation updates, FALSE otherwise */
373  );
374 
375 #ifdef __cplusplus
376 }
377 #endif
378 
379 #endif
SCIP_RETCODE SCIPprimalClear(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:192
SCIP_RETCODE SCIPprimalUpdateRay(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *primalray, BMS_BLKMEM *blkmem)
Definition: primal.c:568
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:1269
void SCIPprimalAddOrigObjoffset(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_Real addval)
Definition: primal.c:511
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:1582
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:1692
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:1408
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:1438
type definitions for return codes for SCIP methods
SCIP_SOL * SCIPprimalGetRay(SCIP_PRIMAL *primal)
Definition: primal.c:558
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:268
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:1508
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:406
SCIP_RETCODE SCIPprimalSolCreated(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
Definition: primal.c:1617
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:1923
type definitions for branch and bound tree
SCIP_Bool SCIPprimalUpdateViolations(SCIP_PRIMAL *primal)
Definition: primal.c:1913
SCIP_Bool SCIPprimalUpperboundIsSol(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
Definition: primal.c:545
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:375
void SCIPprimalUpdateVarObj(SCIP_PRIMAL *primal, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
Definition: primal.c:1669
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:1146
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:445
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:1738
#define SCIP_Real
Definition: def.h:164
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:1214
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:1324
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:427
void SCIPprimalSolFreed(SCIP_PRIMAL *primal, SCIP_SOL *sol)
Definition: primal.c:1639
SCIP_RETCODE SCIPprimalFree(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:149
SCIP_RETCODE SCIPprimalCreate(SCIP_PRIMAL **primal)
Definition: primal.c:119
memory allocation routines