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-2025 Zuse Institute Berlin (ZIB) */
7/* */
8/* Licensed under the Apache License, Version 2.0 (the "License"); */
9/* you may not use this file except in compliance with the License. */
10/* You may obtain a copy of the License at */
11/* */
12/* http://www.apache.org/licenses/LICENSE-2.0 */
13/* */
14/* Unless required by applicable law or agreed to in writing, software */
15/* distributed under the License is distributed on an "AS IS" BASIS, */
16/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. */
17/* See the License for the specific language governing permissions and */
18/* limitations under the License. */
19/* */
20/* You should have received a copy of the Apache-2.0 license */
21/* along with SCIP; see the file LICENSE. If not visit scipopt.org. */
22/* */
23/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
24
25/**@file primal.h
26 * @ingroup INTERNALAPI
27 * @brief internal methods for collecting primal CIP solutions and primal informations
28 * @author Tobias Achterberg
29 */
30
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32
33#ifndef __SCIP_PRIMAL_H__
34#define __SCIP_PRIMAL_H__
35
36
37#include "scip/def.h"
39#include "scip/type_retcode.h"
40#include "scip/type_set.h"
41#include "scip/type_event.h"
42#include "scip/type_lp.h"
43#include "scip/type_lpexact.h"
44#include "scip/type_var.h"
45#include "scip/type_prob.h"
46#include "scip/type_sol.h"
47#include "scip/type_primal.h"
48#include "scip/type_tree.h"
49#include "scip/type_reopt.h"
50#include "scip/type_heur.h"
51
52#include "scip/struct_primal.h"
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58/** creates primal data */
60 SCIP_PRIMAL** primal /**< pointer to primal data */
61 );
62
63/** frees primal data */
65 SCIP_PRIMAL** primal, /**< pointer to primal data */
66 BMS_BLKMEM* blkmem /**< block memory */
67 );
68
69/** clears primal data */
71 SCIP_PRIMAL* primal, /**< pointer to primal data */
72 BMS_BLKMEM* blkmem /**< block memory */
73 );
74
75/** sets the cutoff bound in primal data and in LP solver */
77 SCIP_PRIMAL* primal, /**< primal data */
78 BMS_BLKMEM* blkmem, /**< block memory */
79 SCIP_SET* set, /**< global SCIP settings */
80 SCIP_STAT* stat, /**< problem statistics data */
81 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
82 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
83 SCIP_PROB* transprob, /**< tranformed problem data */
84 SCIP_PROB* origprob, /**< original problem data */
85 SCIP_TREE* tree, /**< branch and bound tree */
86 SCIP_REOPT* reopt, /**< reoptimization data structure */
87 SCIP_LP* lp, /**< current LP data */
88 SCIP_Real cutoffbound, /**< new cutoff bound */
89 SCIP_Bool useforobjlimit /**< should the cutoff bound be used to update the objective limit, if
90 * better? */
91 );
92
93/** sets upper bound in primal data and in LP solver */
95 SCIP_PRIMAL* primal, /**< primal data */
96 BMS_BLKMEM* blkmem, /**< block memory */
97 SCIP_SET* set, /**< global SCIP settings */
98 SCIP_STAT* stat, /**< problem statistics data */
99 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
100 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
101 SCIP_PROB* prob, /**< transformed problem after presolve */
102 SCIP_TREE* tree, /**< branch and bound tree */
103 SCIP_REOPT* reopt, /**< reoptimization data structure */
104 SCIP_LP* lp, /**< current LP data */
105 SCIP_Real upperbound /**< new upper bound */
106 );
107
108/** updates upper bound and cutoff bound in primal data after a tightening of the problem's objective limit */
110 SCIP_PRIMAL* primal, /**< primal data */
111 BMS_BLKMEM* blkmem, /**< block memory */
112 SCIP_SET* set, /**< global SCIP settings */
113 SCIP_STAT* stat, /**< problem statistics data */
114 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
115 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
116 SCIP_PROB* transprob, /**< tranformed problem data */
117 SCIP_PROB* origprob, /**< original problem data */
118 SCIP_TREE* tree, /**< branch and bound tree */
119 SCIP_REOPT* reopt, /**< reoptimization data structure */
120 SCIP_LP* lp /**< current LP data */
121 );
122
123/** recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset */
125 SCIP_PRIMAL* primal, /**< primal data */
126 BMS_BLKMEM* blkmem, /**< block memory */
127 SCIP_SET* set, /**< global SCIP settings */
128 SCIP_STAT* stat, /**< problem statistics data */
129 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
130 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
131 SCIP_PROB* transprob, /**< tranformed problem data */
132 SCIP_PROB* origprob, /**< original problem data */
133 SCIP_TREE* tree, /**< branch and bound tree */
134 SCIP_REOPT* reopt, /**< reoptimization data structure */
135 SCIP_LP* lp /**< current LP data */
136 );
137
138/** recalculates upper bound and cutoff bound in primal data after a change of the problem's objective offset */
140 SCIP_PRIMAL* primal, /**< primal data */
141 BMS_BLKMEM* blkmem, /**< block memory */
142 SCIP_SET* set, /**< global SCIP settings */
143 SCIP_STAT* stat, /**< problem statistics data */
144 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
145 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
146 SCIP_PROB* transprob, /**< tranformed problem data */
147 SCIP_PROB* origprob, /**< original problem data */
148 SCIP_TREE* tree, /**< branch and bound tree */
149 SCIP_REOPT* reopt, /**< reoptimization data structure */
150 SCIP_LP* lp /**< current LP data */
151 );
152
153/** adds additional objective offset in origanal space to all existing solution (in original space) */
155 SCIP_PRIMAL* primal, /**< primal data */
156 SCIP_SET* set, /**< global SCIP settings */
157 SCIP_Real addval /**< additional objective offset in original space */
158 );
159
160/** adds additional objective offset in original space to all existing solution (in original space) */
162 SCIP_PRIMAL* primal, /**< primal data */
163 SCIP_SET* set, /**< global SCIP settings */
164 SCIP_RATIONAL* addval /**< additional objective offset in original space */
165 );
166
167/** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
168 * was set from the user as objective limit
169 */
171 SCIP_PRIMAL* primal, /**< primal data */
172 SCIP_SET* set, /**< global SCIP settings */
173 SCIP_PROB* transprob, /**< tranformed problem data */
174 SCIP_PROB* origprob /**< original problem data */
175 );
176
177/** returns the primal ray thats proves unboundedness */
179 SCIP_PRIMAL* primal /**< primal data */
180 );
181
182/** update the primal ray thats proves unboundedness */
184 SCIP_PRIMAL* primal, /**< primal data */
185 SCIP_SET* set, /**< global SCIP settings */
186 SCIP_STAT* stat, /**< dynamic SCIP statistics */
187 SCIP_SOL* primalray, /**< the new primal ray */
188 BMS_BLKMEM* blkmem /**< block memory */
189 );
190
191/** adds primal solution to solution storage by copying it */
193 SCIP_PRIMAL* primal, /**< primal data */
194 BMS_BLKMEM* blkmem, /**< block memory */
195 SCIP_SET* set, /**< global SCIP settings */
196 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
197 SCIP_STAT* stat, /**< problem statistics data */
198 SCIP_PROB* origprob, /**< original problem */
199 SCIP_PROB* transprob, /**< transformed problem after presolve */
200 SCIP_TREE* tree, /**< branch and bound tree */
201 SCIP_REOPT* reopt, /**< reoptimization data structure */
202 SCIP_LP* lp, /**< current LP data */
203 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
204 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
205 SCIP_SOL* sol, /**< primal CIP solution */
206 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
207 );
208
209/** adds primal solution to solution storage, frees the solution afterwards */
211 SCIP_PRIMAL* primal, /**< primal data */
212 BMS_BLKMEM* blkmem, /**< block memory */
213 SCIP_SET* set, /**< global SCIP settings */
214 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
215 SCIP_STAT* stat, /**< problem statistics data */
216 SCIP_PROB* origprob, /**< original problem */
217 SCIP_PROB* transprob, /**< transformed problem after presolve */
218 SCIP_TREE* tree, /**< branch and bound tree */
219 SCIP_REOPT* reopt, /**< reoptimization data structure */
220 SCIP_LP* lp, /**< current LP data */
221 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
222 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
223 SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
224 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
225 );
226
227/** adds primal solution to solution candidate storage of original problem space */
229 SCIP_PRIMAL* primal, /**< primal data */
230 BMS_BLKMEM* blkmem, /**< block memory */
231 SCIP_SET* set, /**< global SCIP settings */
232 SCIP_STAT* stat, /**< problem statistics data */
233 SCIP_PROB* prob, /**< original problem data */
234 SCIP_SOL* sol, /**< primal CIP solution; is cleared in function call */
235 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
236 );
237
238/** adds primal solution to solution candidate storage of original problem space, frees the solution afterwards */
240 SCIP_PRIMAL* primal, /**< primal data */
241 BMS_BLKMEM* blkmem, /**< block memory */
242 SCIP_SET* set, /**< global SCIP settings */
243 SCIP_STAT* stat, /**< problem statistics data */
244 SCIP_PROB* prob, /**< original problem data */
245 SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
246 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
247 );
248
249/** adds current LP/pseudo solution to solution storage */
251 SCIP_PRIMAL* primal, /**< primal data */
252 BMS_BLKMEM* blkmem, /**< block memory */
253 SCIP_SET* set, /**< global SCIP settings */
254 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
255 SCIP_STAT* stat, /**< problem statistics data */
256 SCIP_PROB* origprob, /**< original problem */
257 SCIP_PROB* transprob, /**< transformed problem after presolve */
258 SCIP_TREE* tree, /**< branch and bound tree */
259 SCIP_REOPT* reopt, /**< reoptimization data structure */
260 SCIP_LP* lp, /**< current LP data */
261 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
262 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
263 SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
264 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
265 );
266
267/** checks primal solution; if feasible, adds it to storage by copying it */
269 SCIP_PRIMAL* primal, /**< primal data */
270 BMS_BLKMEM* blkmem, /**< block memory */
271 SCIP_SET* set, /**< global SCIP settings */
272 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
273 SCIP_STAT* stat, /**< problem statistics data */
274 SCIP_PROB* origprob, /**< original problem */
275 SCIP_PROB* transprob, /**< transformed problem after presolve */
276 SCIP_TREE* tree, /**< branch and bound tree */
277 SCIP_REOPT* reopt, /**< reoptimization data structure */
278 SCIP_LP* lp, /**< current LP data */
279 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
280 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
281 SCIP_SOL* sol, /**< primal CIP solution */
282 SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
283 SCIP_Bool completely, /**< Should all violations be checked? */
284 SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
285 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
286 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
287 SCIP_Bool* stored /**< stores whether given solution was feasible and good enough to keep */
288 );
289
290/** checks primal solution; if feasible, adds it to storage; solution is freed afterwards */
292 SCIP_PRIMAL* primal, /**< primal data */
293 BMS_BLKMEM* blkmem, /**< block memory */
294 SCIP_SET* set, /**< global SCIP settings */
295 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
296 SCIP_STAT* stat, /**< problem statistics data */
297 SCIP_PROB* origprob, /**< original problem */
298 SCIP_PROB* transprob, /**< transformed problem after presolve */
299 SCIP_TREE* tree, /**< branch and bound tree */
300 SCIP_REOPT* reopt, /**< reoptimization data structure */
301 SCIP_LP* lp, /**< current LP data */
302 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
303 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
304 SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
305 SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
306 SCIP_Bool completely, /**< Should all violations be checked? */
307 SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
308 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
309 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
310 SCIP_Bool* stored /**< stores whether solution was feasible and good enough to keep */
311 );
312
313/** checks current LP/pseudo solution; if feasible, adds it to storage */
315 SCIP_PRIMAL* primal, /**< primal data */
316 BMS_BLKMEM* blkmem, /**< block memory */
317 SCIP_SET* set, /**< global SCIP settings */
318 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
319 SCIP_STAT* stat, /**< problem statistics data */
320 SCIP_PROB* origprob, /**< original problem */
321 SCIP_PROB* transprob, /**< transformed problem after presolve */
322 SCIP_TREE* tree, /**< branch and bound tree */
323 SCIP_REOPT* reopt, /**< reoptimization data structure */
324 SCIP_LP* lp, /**< current LP data */
325 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
326 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
327 SCIP_HEUR* heur, /**< heuristic that found the solution (or NULL if it's from the tree) */
328 SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
329 SCIP_Bool completely, /**< Should all violations be checked? */
330 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
331 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
332 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
333 );
334
335/** inserts solution into the global array of all existing primal solutions */
337 SCIP_PRIMAL* primal, /**< primal data */
338 SCIP_SET* set, /**< global SCIP settings */
339 SCIP_SOL* sol /**< primal CIP solution */
340 );
341
342/** removes solution from the global array of all existing primal solutions */
344 SCIP_PRIMAL* primal, /**< primal data */
345 SCIP_SOL* sol /**< primal CIP solution */
346 );
347
348/** updates all existing primal solutions after a change in a variable's objective value */
350 SCIP_PRIMAL* primal, /**< primal data */
351 SCIP_VAR* var, /**< problem variable */
352 SCIP_Real oldobj, /**< old objective value */
353 SCIP_Real newobj /**< new objective value */
354 );
355
356/** retransforms all existing solutions to original problem space
357 *
358 * @note as a side effect, the objective value of the solutions can change (numerical errors)
359 * so we update the objective cutoff value and upper bound accordingly
360 */
362 SCIP_PRIMAL* primal, /**< primal data */
363 BMS_BLKMEM* blkmem, /**< block memory */
364 SCIP_SET* set, /**< global SCIP settings */
365 SCIP_STAT* stat, /**< problem statistics data */
366 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
367 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
368 SCIP_PROB* origprob, /**< original problem */
369 SCIP_PROB* transprob, /**< transformed problem */
370 SCIP_TREE* tree, /**< branch and bound tree */
371 SCIP_REOPT* reopt, /**< reoptimization data structure */
372 SCIP_LP* lp /**< current LP data */
373 );
374
375/** tries to transform original solution to the transformed problem space */
377 SCIP_PRIMAL* primal, /**< primal data */
378 SCIP_SOL* sol, /**< primal solution */
379 BMS_BLKMEM* blkmem, /**< block memory */
380 SCIP_SET* set, /**< global SCIP settings */
381 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
382 SCIP_STAT* stat, /**< problem statistics data */
383 SCIP_PROB* origprob, /**< original problem */
384 SCIP_PROB* transprob, /**< transformed problem after presolve */
385 SCIP_TREE* tree, /**< branch and bound tree */
386 SCIP_REOPT* reopt, /**< reoptimization data structure */
387 SCIP_LP* lp, /**< current LP data */
388 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
389 SCIP_EVENTFILTER* eventfilter, /**< global event filter */
390 SCIP_Real* solvals, /**< array for internal use to store solution values, or NULL;
391 * if the method is called multiple times in a row, an array with size >=
392 * number of active variables should be given for performance reasons */
393 SCIP_Bool* solvalset, /**< array for internal use to store which solution values were set, or NULL;
394 * if the method is called multiple times in a row, an array with size >=
395 * number of active variables should be given for performance reasons */
396 int solvalssize, /**< size of solvals and solvalset arrays, should be >= number of active
397 * variables */
398 SCIP_Bool* added /**< pointer to store whether the solution was added */
399 );
400
401/** is the updating of violations enabled for this problem? */
403 SCIP_PRIMAL* primal /**< problem data */
404 );
405
406/** set whether the updating of violations is turned on */
408 SCIP_PRIMAL* primal, /**< problem data */
409 SCIP_Bool updateviolations /**< TRUE to enable violation updates, FALSE otherwise */
410 );
411
412/** adds exact primal solution to solution storage, frees the solution afterwards */
414 SCIP_PRIMAL* primal, /**< primal data */
415 BMS_BLKMEM* blkmem, /**< block memory */
416 SCIP_SET* set, /**< global SCIP settings */
417 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
418 SCIP_STAT* stat, /**< problem statistics data */
419 SCIP_PROB* origprob, /**< original problem */
420 SCIP_PROB* transprob, /**< transformed problem after presolve */
421 SCIP_TREE* tree, /**< branch and bound tree */
422 SCIP_REOPT* reopt, /**< reoptimization data structure */
423 SCIP_LPEXACT* lpexact, /**< current LP data */
424 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
425 SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
426 SCIP_SOL** sol, /**< pointer to primal CIP solution; is cleared in function call */
427 SCIP_Bool printreason, /**< Should all the reasons of violations be printed? */
428 SCIP_Bool completely, /**< Should all violations be checked? */
429 SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
430 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
431 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
432 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
433 );
434
435/** adds exact primal solution to solution storage by copying it and frees the solution afterwards */
437 SCIP_PRIMAL* primal, /**< primal data */
438 BMS_BLKMEM* blkmem, /**< block memory */
439 SCIP_SET* set, /**< global SCIP settings */
440 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
441 SCIP_STAT* stat, /**< problem statistics data */
442 SCIP_PROB* origprob, /**< original problem */
443 SCIP_PROB* transprob, /**< transformed problem after presolve */
444 SCIP_TREE* tree, /**< branch and bound tree */
445 SCIP_REOPT* reopt, /**< reoptimization data structure */
446 SCIP_LPEXACT* lpexact, /**< current exact LP data */
447 SCIP_EVENTQUEUE* eventqueue, /**< event queue */
448 SCIP_EVENTFILTER* eventfilter, /**< event filter for global (not variable dependent) events */
449 SCIP_SOL** sol, /**< primal CIP solution */
450 SCIP_Bool* stored /**< stores whether given solution was good enough to keep */
451 );
452
453#ifdef __cplusplus
454}
455#endif
456
457#endif
common defines and data types used in all packages of SCIP
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:156
memory allocation routines
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:437
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:1793
void SCIPprimalAddOrigObjoffsetExact(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_RATIONAL *addval)
Definition: primal.c:752
SCIP_RETCODE SCIPprimalUpdateObjoffsetExact(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:646
void SCIPprimalSetUpdateViolations(SCIP_PRIMAL *primal, SCIP_Bool updateviolations)
Definition: primal.c:2311
SCIP_RETCODE SCIPprimalUpdateRay(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_STAT *stat, SCIP_SOL *primalray, BMS_BLKMEM *blkmem)
Definition: primal.c:810
void SCIPprimalSolFreed(SCIP_PRIMAL *primal, SCIP_SOL *sol)
Definition: primal.c:2024
SCIP_RETCODE SCIPprimalTrySolFreeExact(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_LPEXACT *lpexact, 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:2382
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:1709
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:1967
void SCIPprimalAddOrigObjoffset(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_Real addval)
Definition: primal.c:719
SCIP_RETCODE SCIPprimalFree(SCIP_PRIMAL **primal, BMS_BLKMEM *blkmem)
Definition: primal.c:165
SCIP_SOL * SCIPprimalGetRay(SCIP_PRIMAL *primal)
Definition: primal.c:800
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:1893
SCIP_Bool SCIPprimalUpdateViolations(SCIP_PRIMAL *primal)
Definition: primal.c:2301
SCIP_Bool SCIPprimalUpperboundIsSol(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
Definition: primal.c:787
SCIP_RETCODE SCIPprimalSetUpperbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real upperbound)
Definition: primal.c:518
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:1654
SCIP_RETCODE SCIPprimalSetCutoffbound(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp, SCIP_Real cutoffbound, SCIP_Bool useforobjlimit)
Definition: primal.c:348
void SCIPprimalUpdateVarObj(SCIP_PRIMAL *primal, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
Definition: primal.c:2054
SCIP_RETCODE SCIPprimalCreate(SCIP_PRIMAL **primal)
Definition: primal.c:133
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:1823
SCIP_RETCODE SCIPprimalRetransformSolutions(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:2077
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:2126
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:1599
SCIP_RETCODE SCIPprimalUpdateObjoffset(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:590
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:1523
SCIP_RETCODE SCIPprimalUpdateObjlimit(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_PROB *transprob, SCIP_PROB *origprob, SCIP_TREE *tree, SCIP_REOPT *reopt, SCIP_LP *lp)
Definition: primal.c:550
SCIP_RETCODE SCIPprimalSolCreated(SCIP_PRIMAL *primal, SCIP_SET *set, SCIP_SOL *sol)
Definition: primal.c:2002
SCIP_RETCODE SCIPprimalAddSolFreeExact(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_LPEXACT *lpexact, SCIP_EVENTQUEUE *eventqueue, SCIP_EVENTFILTER *eventfilter, SCIP_SOL **sol, SCIP_Bool *stored)
Definition: primal.c:2449
SCIP_RETCODE SCIPprimalClear(SCIP_PRIMAL *primal, BMS_BLKMEM *blkmem)
Definition: primal.c:190
datastructures for collecting primal CIP solutions and primal informations
Definition: heur_padm.c:135
type definitions for managing events
type definitions for primal heuristics
type definitions for LP management
type definitions for exact LP management
type definitions for collecting primal CIP solutions and primal informations
type definitions for storing and manipulating the main problem
type definitions for collecting reoptimization information
type definitions for return codes for SCIP methods
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:63
type definitions for global SCIP settings
type definitions for storing primal CIP solutions
type definitions for branch and bound tree
type definitions for problem variables