SCIP Doxygen Documentation
Loading...
Searching...
No Matches
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-2026 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:98
#define SCIP_Real
Definition def.h:163
static SCIP_SOL * sol
SCIP_VAR * var
SCIP_Real newobj
SCIP_Real oldobj
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
type definitions for managing events
struct SCIP_EventFilter SCIP_EVENTFILTER
Definition type_event.h:180
struct SCIP_EventQueue SCIP_EVENTQUEUE
Definition type_event.h:181
type definitions for primal heuristics
struct SCIP_Heur SCIP_HEUR
Definition type_heur.h:76
type definitions for LP management
struct SCIP_Lp SCIP_LP
Definition type_lp.h:111
type definitions for exact LP management
struct SCIP_LpExact SCIP_LPEXACT
struct SCIP_Messagehdlr SCIP_MESSAGEHDLR
type definitions for collecting primal CIP solutions and primal informations
struct SCIP_Primal SCIP_PRIMAL
Definition type_primal.h:39
type definitions for storing and manipulating the main problem
struct SCIP_Prob SCIP_PROB
Definition type_prob.h:52
struct SCIP_Rational SCIP_RATIONAL
type definitions for collecting reoptimization information
struct SCIP_Reopt SCIP_REOPT
Definition type_reopt.h:39
type definitions for return codes for SCIP methods
enum SCIP_Retcode SCIP_RETCODE
type definitions for global SCIP settings
struct SCIP_Set SCIP_SET
Definition type_set.h:71
type definitions for storing primal CIP solutions
struct SCIP_Sol SCIP_SOL
Definition type_sol.h:57
struct SCIP_Stat SCIP_STAT
Definition type_stat.h:66
type definitions for branch and bound tree
struct SCIP_Tree SCIP_TREE
Definition type_tree.h:65
type definitions for problem variables
struct SCIP_Var SCIP_VAR
Definition type_var.h:166