Scippy

SCIP

Solving Constraint Integer Programs

sol.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-2024 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 sol.h
26 * @ingroup INTERNALAPI
27 * @brief internal methods for storing primal CIP solutions
28 * @author Tobias Achterberg
29 */
30
31/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
32
33#ifndef __SCIP_SOL_H__
34#define __SCIP_SOL_H__
35
36
37#include <stdio.h>
38
39#include "scip/def.h"
41#include "scip/type_retcode.h"
42#include "scip/type_set.h"
43#include "scip/type_stat.h"
44#include "scip/type_lp.h"
45#include "scip/type_nlp.h"
46#include "scip/type_var.h"
47#include "scip/type_prob.h"
48#include "scip/type_sol.h"
49#include "scip/type_primal.h"
50#include "scip/type_tree.h"
51#include "scip/type_heur.h"
52#include "scip/pub_sol.h"
53
54#ifdef __cplusplus
55extern "C" {
56#endif
57
58/** creates primal CIP solution, initialized to zero */
60 SCIP_SOL** sol, /**< pointer to primal CIP solution */
61 BMS_BLKMEM* blkmem, /**< block memory */
62 SCIP_SET* set, /**< global SCIP settings */
63 SCIP_STAT* stat, /**< problem statistics data */
64 SCIP_PRIMAL* primal, /**< primal data */
65 SCIP_TREE* tree, /**< branch and bound tree, or NULL */
66 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
67 );
68
69/** creates primal CIP solution in original problem space, initialized to the offset in the original problem */
71 SCIP_SOL** sol, /**< pointer to primal CIP solution */
72 BMS_BLKMEM* blkmem, /**< block memory */
73 SCIP_SET* set, /**< global SCIP settings */
74 SCIP_STAT* stat, /**< problem statistics data */
75 SCIP_PROB* origprob, /**< original problem data */
76 SCIP_PRIMAL* primal, /**< primal data */
77 SCIP_TREE* tree, /**< branch and bound tree */
78 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
79 );
80
81/** creates a copy of a primal CIP solution */
83 SCIP_SOL** sol, /**< pointer to store the copy of the primal CIP solution */
84 BMS_BLKMEM* blkmem, /**< block memory */
85 SCIP_SET* set, /**< global SCIP settings */
86 SCIP_STAT* stat, /**< problem statistics data */
87 SCIP_PRIMAL* primal, /**< primal data */
88 SCIP_SOL* sourcesol /**< primal CIP solution to copy */
89 );
90
91/** transformes given original solution to the transformed space; a corresponding transformed solution has to be given
92 * which is copied into the existing solution and freed afterwards
93 */
95 SCIP_SOL* sol, /**< primal CIP solution to change, living in original space */
96 SCIP_SOL** transsol, /**< pointer to corresponding transformed primal CIP solution */
97 BMS_BLKMEM* blkmem, /**< block memory */
98 SCIP_SET* set, /**< global SCIP settings */
99 SCIP_PRIMAL* primal /**< primal data */
100 );
101
102/** adjusts solution values of implicit integer variables in handed solution. Solution objective value is not
103 * deteriorated by this method.
104 */
106 SCIP_SOL* sol, /**< primal CIP solution */
107 SCIP_SET* set, /**< global SCIP settings */
108 SCIP_STAT* stat, /**< problem statistics data */
109 SCIP_PROB* prob, /**< either original or transformed problem, depending on sol origin */
110 SCIP_TREE* tree, /**< branch and bound tree */
111 SCIP_Bool uselprows /**< should LP row information be considered for none-objective variables */
112 );
113
114/** creates primal CIP solution, initialized to the current LP solution */
116 SCIP_SOL** sol, /**< pointer to primal CIP solution */
117 BMS_BLKMEM* blkmem, /**< block memory */
118 SCIP_SET* set, /**< global SCIP settings */
119 SCIP_STAT* stat, /**< problem statistics data */
120 SCIP_PROB* prob, /**< transformed problem data */
121 SCIP_PRIMAL* primal, /**< primal data */
122 SCIP_TREE* tree, /**< branch and bound tree */
123 SCIP_LP* lp, /**< current LP data */
124 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
125 );
126
127/** creates primal CIP solution, initialized to the current NLP solution */
129 SCIP_SOL** sol, /**< pointer to primal CIP solution */
130 BMS_BLKMEM* blkmem, /**< block memory */
131 SCIP_SET* set, /**< global SCIP settings */
132 SCIP_STAT* stat, /**< problem statistics data */
133 SCIP_PRIMAL* primal, /**< primal data */
134 SCIP_TREE* tree, /**< branch and bound tree */
135 SCIP_NLP* nlp, /**< current NLP data */
136 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
137 );
138
139/** creates primal CIP solution, initialized to the current relaxation solution */
141 SCIP_SOL** sol, /**< pointer to primal CIP solution */
142 BMS_BLKMEM* blkmem, /**< block memory */
143 SCIP_SET* set, /**< global SCIP settings */
144 SCIP_STAT* stat, /**< problem statistics data */
145 SCIP_PRIMAL* primal, /**< primal data */
146 SCIP_TREE* tree, /**< branch and bound tree */
147 SCIP_RELAXATION* relaxation, /**< global relaxation data */
148 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
149 );
150
151/** creates primal CIP solution, initialized to the current pseudo solution */
153 SCIP_SOL** sol, /**< pointer to primal CIP solution */
154 BMS_BLKMEM* blkmem, /**< block memory */
155 SCIP_SET* set, /**< global SCIP settings */
156 SCIP_STAT* stat, /**< problem statistics data */
157 SCIP_PROB* prob, /**< transformed problem data */
158 SCIP_PRIMAL* primal, /**< primal data */
159 SCIP_TREE* tree, /**< branch and bound tree, or NULL */
160 SCIP_LP* lp, /**< current LP data */
161 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
162 );
163
164/** creates primal CIP solution, initialized to the current solution */
166 SCIP_SOL** sol, /**< pointer to primal CIP solution */
167 BMS_BLKMEM* blkmem, /**< block memory */
168 SCIP_SET* set, /**< global SCIP settings */
169 SCIP_STAT* stat, /**< problem statistics data */
170 SCIP_PROB* prob, /**< transformed problem data */
171 SCIP_PRIMAL* primal, /**< primal data */
172 SCIP_TREE* tree, /**< branch and bound tree */
173 SCIP_LP* lp, /**< current LP data */
174 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
175 );
176
177/** creates partial primal CIP solution, initialized to unknown values */
179 SCIP_SOL** sol, /**< pointer to primal CIP solution */
180 BMS_BLKMEM* blkmem, /**< block memory */
181 SCIP_SET* set, /**< global SCIP settings */
182 SCIP_STAT* stat, /**< problem statistics data */
183 SCIP_PRIMAL* primal, /**< primal data */
184 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
185 );
186
187/** creates primal CIP solution, initialized to unknown values */
189 SCIP_SOL** sol, /**< pointer to primal CIP solution */
190 BMS_BLKMEM* blkmem, /**< block memory */
191 SCIP_SET* set, /**< global SCIP settings */
192 SCIP_STAT* stat, /**< problem statistics data */
193 SCIP_PRIMAL* primal, /**< primal data */
194 SCIP_TREE* tree, /**< branch and bound tree */
195 SCIP_HEUR* heur /**< heuristic that found the solution (or NULL if it's from the tree) */
196 );
197
198/** frees primal CIP solution */
200 SCIP_SOL** sol, /**< pointer to primal CIP solution */
201 BMS_BLKMEM* blkmem, /**< block memory */
202 SCIP_PRIMAL* primal /**< primal data */
203 );
204
205/** copies current LP solution into CIP solution by linking */
207 SCIP_SOL* sol, /**< primal CIP solution */
208 SCIP_SET* set, /**< global SCIP settings */
209 SCIP_STAT* stat, /**< problem statistics data */
210 SCIP_PROB* prob, /**< transformed problem data */
211 SCIP_TREE* tree, /**< branch and bound tree */
212 SCIP_LP* lp /**< current LP data */
213 );
214
215/** copies current NLP solution into CIP solution by linking */
217 SCIP_SOL* sol, /**< primal CIP solution */
218 SCIP_STAT* stat, /**< problem statistics data */
219 SCIP_TREE* tree, /**< branch and bound tree */
220 SCIP_NLP* nlp /**< current NLP data */
221 );
222
223/** copies current relaxation solution into CIP solution by linking */
225 SCIP_SOL* sol, /**< primal CIP solution */
226 SCIP_SET* set, /**< global SCIP settings */
227 SCIP_STAT* stat, /**< problem statistics data */
228 SCIP_TREE* tree, /**< branch and bound tree */
229 SCIP_RELAXATION* relaxation /**< global relaxation data */
230 );
231
232/** copies current pseudo solution into CIP solution by linking */
234 SCIP_SOL* sol, /**< primal CIP solution */
235 SCIP_SET* set, /**< global SCIP settings */
236 SCIP_STAT* stat, /**< problem statistics data */
237 SCIP_PROB* prob, /**< transformed problem data */
238 SCIP_TREE* tree, /**< branch and bound tree, or NULL */
239 SCIP_LP* lp /**< current LP data */
240 );
241
242/** copies current solution (LP or pseudo solution) into CIP solution by linking */
244 SCIP_SOL* sol, /**< primal CIP solution */
245 SCIP_SET* set, /**< global SCIP settings */
246 SCIP_STAT* stat, /**< problem statistics data */
247 SCIP_PROB* prob, /**< transformed problem data */
248 SCIP_TREE* tree, /**< branch and bound tree */
249 SCIP_LP* lp /**< current LP data */
250 );
251
252/** clears primal CIP solution */
254 SCIP_SOL* sol, /**< primal CIP solution */
255 SCIP_STAT* stat, /**< problem statistics data */
256 SCIP_TREE* tree /**< branch and bound tree */
257 );
258
259/** declares all entries in the primal CIP solution to be unknown */
261 SCIP_SOL* sol, /**< primal CIP solution */
262 SCIP_STAT* stat, /**< problem statistics data */
263 SCIP_TREE* tree /**< branch and bound tree */
264 );
265
266/** stores solution values of variables in solution's own array */
268 SCIP_SOL* sol, /**< primal CIP solution */
269 SCIP_SET* set, /**< global SCIP settings */
270 SCIP_PROB* prob /**< transformed problem data */
271 );
272
273/** sets value of variable in primal CIP solution */
275 SCIP_SOL* sol, /**< primal CIP solution */
276 SCIP_SET* set, /**< global SCIP settings */
277 SCIP_STAT* stat, /**< problem statistics data */
278 SCIP_TREE* tree, /**< branch and bound tree */
279 SCIP_VAR* var, /**< variable to add to solution */
280 SCIP_Real val /**< solution value of variable */
281 );
282
283/** increases value of variable in primal CIP solution */
285 SCIP_SOL* sol, /**< primal CIP solution */
286 SCIP_SET* set, /**< global SCIP settings */
287 SCIP_STAT* stat, /**< problem statistics data */
288 SCIP_TREE* tree, /**< branch and bound tree */
289 SCIP_VAR* var, /**< variable to increase solution value for */
290 SCIP_Real incval /**< increment for solution value of variable */
291 );
292
293/** returns value of variable in primal CIP solution */
295 SCIP_SOL* sol, /**< primal CIP solution */
296 SCIP_SET* set, /**< global SCIP settings */
297 SCIP_STAT* stat, /**< problem statistics data */
298 SCIP_VAR* var /**< variable to get value for */
299 );
300
301/** returns value of variable in primal ray represented by primal CIP solution */
303 SCIP_SOL* sol, /**< primal CIP solution, representing a primal ray */
304 SCIP_SET* set, /**< global SCIP settings */
305 SCIP_STAT* stat, /**< problem statistics data */
306 SCIP_VAR* var /**< variable to get value for */
307 );
308
309
310/** gets objective value of primal CIP solution in transformed problem */
312 SCIP_SOL* sol, /**< primal CIP solution */
313 SCIP_SET* set, /**< global SCIP settings */
314 SCIP_PROB* transprob, /**< tranformed problem data */
315 SCIP_PROB* origprob /**< original problem data */
316 );
317
318/** updates primal solutions after a change in a variable's objective value */
320 SCIP_SOL* sol, /**< primal CIP solution */
321 SCIP_VAR* var, /**< problem variable */
322 SCIP_Real oldobj, /**< old objective value */
323 SCIP_Real newobj /**< new objective value */
324 );
325
326/* mark the given solution as partial solution */
328 SCIP_SOL* sol, /**< primal CIP solution */
329 SCIP_SET* set, /**< global SCIP settings */
330 SCIP_STAT* stat, /**< problem statistics */
331 SCIP_VAR** vars, /**< problem variables */
332 int nvars /**< number of problem variables */
333 );
334
335/** checks solution for feasibility in original problem without adding it to the solution store
336 *
337 * We first check the variable bounds. Then we loop over all constraint handlers and constraints, checking each in the
338 * order of their check priority.
339 */
341 SCIP_SOL* sol, /**< primal CIP solution */
342 SCIP_SET* set, /**< global SCIP settings */
343 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
344 BMS_BLKMEM* blkmem, /**< block memory */
345 SCIP_STAT* stat, /**< problem statistics */
346 SCIP_PROB* prob, /**< transformed problem data */
347 SCIP_PRIMAL* primal, /**< primal data */
348 SCIP_Bool printreason, /**< Should the reason for the violation be printed? */
349 SCIP_Bool completely, /**< Should all violations be checked if printreason is true? */
350 SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
351 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
352 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
353 SCIP_Bool checkmodifiable, /**< have modifiable constraint to be checked? */
354 SCIP_Bool* feasible /**< stores whether given solution is feasible */
355 );
356
357/** checks primal CIP solution for feasibility
358 *
359 * @note The difference between SCIPsolCheck() and SCIPcheckSolOrig() is that modifiable constraints are handled
360 * differently. There might be some variables which do not have an original counter part (e.g. in
361 * branch-and-price). Therefore, modifiable constraints can not be double-checked in the original space.
362 */
364 SCIP_SOL* sol, /**< primal CIP solution */
365 SCIP_SET* set, /**< global SCIP settings */
366 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
367 BMS_BLKMEM* blkmem, /**< block memory */
368 SCIP_STAT* stat, /**< problem statistics */
369 SCIP_PROB* prob, /**< transformed problem data */
370 SCIP_Bool printreason, /**< Should all reasons of violations be printed? */
371 SCIP_Bool completely, /**< Should all violations be checked? */
372 SCIP_Bool checkbounds, /**< Should the bounds of the variables be checked? */
373 SCIP_Bool checkintegrality, /**< Has integrality to be checked? */
374 SCIP_Bool checklprows, /**< Do constraints represented by rows in the current LP have to be checked? */
375 SCIP_Bool* feasible /**< stores whether solution is feasible */
376 );
377
378/** try to round given solution */
380 SCIP_SOL* sol, /**< primal solution */
381 SCIP_SET* set, /**< global SCIP settings */
382 SCIP_STAT* stat, /**< problem statistics data */
383 SCIP_PROB* prob, /**< transformed problem data */
384 SCIP_TREE* tree, /**< branch and bound tree */
385 SCIP_Bool* success /**< pointer to store whether rounding was successful */
386 );
387
388/** updates the solution value sums in variables by adding the value in the given solution */
390 SCIP_SOL* sol, /**< primal CIP solution */
391 SCIP_SET* set, /**< global SCIP settings */
392 SCIP_STAT* stat, /**< problem statistics data */
393 SCIP_PROB* prob, /**< transformed problem data */
394 SCIP_Real weight /**< weight of solution in weighted average */
395 );
396
397/** retransforms solution to original problem space */
399 SCIP_SOL* sol, /**< primal CIP solution */
400 SCIP_SET* set, /**< global SCIP settings */
401 SCIP_STAT* stat, /**< problem statistics data */
402 SCIP_PROB* origprob, /**< original problem */
403 SCIP_PROB* transprob, /**< transformed problem */
404 SCIP_Bool* hasinfval /**< pointer to store whether the solution has infinite values */
405 );
406
407/** recomputes the objective value of an original solution, e.g., when transferring solutions
408 * from the solution pool (objective coefficients might have changed in the meantime)
409 */
411 SCIP_SOL* sol, /**< primal CIP solution */
412 SCIP_SET* set, /**< global SCIP settings */
413 SCIP_STAT* stat, /**< problem statistics data */
414 SCIP_PROB* origprob /**< original problem */
415 );
416
417
418/** returns whether the given solutions in transformed space are equal */
420 SCIP_SOL* sol1, /**< first primal CIP solution */
421 SCIP_SOL* sol2, /**< second primal CIP solution */
422 SCIP_SET* set, /**< global SCIP settings */
423 SCIP_STAT* stat, /**< problem statistics data */
424 SCIP_PROB* origprob, /**< original problem */
425 SCIP_PROB* transprob /**< transformed problem after presolve */
426 );
427
428/** outputs non-zero elements of solution to file stream */
430 SCIP_SOL* sol, /**< primal CIP solution */
431 SCIP_SET* set, /**< global SCIP settings */
432 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
433 SCIP_STAT* stat, /**< problem statistics data */
434 SCIP_PROB* prob, /**< problem data (original or transformed) */
435 SCIP_PROB* transprob, /**< transformed problem data or NULL (to display priced variables) */
436 FILE* file, /**< output file (or NULL for standard output) */
437 SCIP_Bool mipstart, /**< should only discrete variables be printed? */
438 SCIP_Bool printzeros /**< should variables set to zero be printed? */
439 );
440
441/** outputs non-zero elements of solution representing a ray to file stream */
443 SCIP_SOL* sol, /**< primal CIP solution */
444 SCIP_SET* set, /**< global SCIP settings */
445 SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
446 SCIP_STAT* stat, /**< problem statistics data */
447 SCIP_PROB* prob, /**< problem data (original or transformed) */
448 SCIP_PROB* transprob, /**< transformed problem data or NULL (to display priced variables) */
449 FILE* file, /**< output file (or NULL for standard output) */
450 SCIP_Bool printzeros /**< should variables set to zero be printed? */
451 );
452
453
454/** reset violations of a solution */
456 SCIP_SOL* sol /**< primal CIP solution */
457 );
458
459/** update integrality violation of a solution */
461 SCIP_SOL* sol, /**< primal CIP solution */
462 SCIP_Real absviolintegrality /**< absolute violation of integrality */
463 );
464
465/** update bound violation of a solution */
467 SCIP_SOL* sol, /**< primal CIP solution */
468 SCIP_Real absviolbounds, /**< absolute violation of bounds */
469 SCIP_Real relviolbounds /**< relative violation of bounds */
470 );
471
472/** update LP row violation of a solution */
474 SCIP_SOL* sol, /**< primal CIP solution */
475 SCIP_Real absviollprows, /**< absolute violation of LP rows */
476 SCIP_Real relviollprows /**< relative violation of LP rows */
477 );
478
479/** update constraint violation of a solution */
481 SCIP_SOL* sol, /**< primal CIP solution */
482 SCIP_Real absviolcons, /**< absolute violation of constraint */
483 SCIP_Real relviolcons /**< relative violation of constraint */
484 );
485
486/** update violation of a constraint that is represented in the LP */
488 SCIP_SOL* sol, /**< primal CIP solution */
489 SCIP_Real absviol, /**< absolute violation of constraint */
490 SCIP_Real relviol /**< relative violation of constraint */
491 );
492
493
494
495/* In debug mode, the following methods are implemented as function calls to ensure
496 * type validity.
497 */
498
499/** adds value to the objective value of a given original primal CIP solution */
501 SCIP_SOL* sol, /**< primal CIP solution */
502 SCIP_Real addval /**< offset value to add */
503 );
504
505/** gets current position of solution in array of existing solutions of primal data */
507 SCIP_SOL* sol /**< primal CIP solution */
508 );
509
510/** sets current position of solution in array of existing solutions of primal data */
512 SCIP_SOL* sol, /**< primal CIP solution */
513 int primalindex /**< new primal index of solution */
514 );
515
516#ifdef NDEBUG
517
518/* In optimized mode, the function calls are overwritten by defines to reduce the number of function calls and
519 * speed up the algorithms.
520 */
521
522#define SCIPsolOrigAddObjval(sol, addval) ((sol)->obj += (addval))
523#define SCIPsolGetPrimalIndex(sol) ((sol)->primalindex)
524#define SCIPsolSetPrimalIndex(sol,idx) { (sol)->primalindex = idx; }
525
526#endif
527
528#ifdef __cplusplus
529}
530#endif
531
532#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:172
memory allocation routines
struct BMS_BlkMem BMS_BLKMEM
Definition: memory.h:437
public methods for primal CIP solutions
void SCIPsolUpdateVarObj(SCIP_SOL *sol, SCIP_VAR *var, SCIP_Real oldobj, SCIP_Real newobj)
Definition: sol.c:1588
SCIP_RETCODE SCIPsolCreateRelaxSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_RELAXATION *relaxation, SCIP_HEUR *heur)
Definition: sol.c:652
void SCIPsolUpdateConsViolation(SCIP_SOL *sol, SCIP_Real absviolcons, SCIP_Real relviolcons)
Definition: sol.c:2587
SCIP_RETCODE SCIPsolLinkPseudoSol(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp)
Definition: sol.c:959
void SCIPsolSetPrimalIndex(SCIP_SOL *sol, int primalindex)
Definition: sol.c:2824
SCIP_RETCODE SCIPsolCreatePartial(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_HEUR *heur)
Definition: sol.c:730
SCIP_RETCODE SCIPsolCreateUnknown(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur)
Definition: sol.c:766
void SCIPsolUpdateBoundViolation(SCIP_SOL *sol, SCIP_Real absviolbounds, SCIP_Real relviolbounds)
Definition: sol.c:2561
int SCIPsolGetPrimalIndex(SCIP_SOL *sol)
Definition: sol.c:2814
SCIP_RETCODE SCIPsolCreateNLPSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_NLP *nlp, SCIP_HEUR *heur)
Definition: sol.c:631
SCIP_RETCODE SCIPsolLinkCurrentSol(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp)
Definition: sol.c:988
SCIP_RETCODE SCIPsolCheck(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool *feasible)
Definition: sol.c:1838
SCIP_RETCODE SCIPsolMarkPartial(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR **vars, int nvars)
Definition: sol.c:1607
SCIP_RETCODE SCIPsolCreateOriginal(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur)
Definition: sol.c:325
SCIP_RETCODE SCIPsolAdjustImplicitSolVals(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_Bool uselprows)
Definition: sol.c:473
SCIP_RETCODE SCIPsolFree(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_PRIMAL *primal)
Definition: sol.c:801
void SCIPsolRecomputeObj(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob)
Definition: sol.c:2186
void SCIPsolUpdateIntegralityViolation(SCIP_SOL *sol, SCIP_Real absviolintegrality)
Definition: sol.c:2550
void SCIPsolUpdateLPRowViolation(SCIP_SOL *sol, SCIP_Real absviollprows, SCIP_Real relviollprows)
Definition: sol.c:2574
SCIP_RETCODE SCIPsolIncVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_VAR *var, SCIP_Real incval)
Definition: sol.c:1296
SCIP_RETCODE SCIPsolLinkNLPSol(SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_NLP *nlp)
Definition: sol.c:878
SCIP_RETCODE SCIPsolRetransform(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob, SCIP_Bool *hasinfval)
Definition: sol.c:2059
SCIP_RETCODE SCIPsolCreateCurrentSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur)
Definition: sol.c:703
SCIP_RETCODE SCIPsolRound(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_Bool *success)
Definition: sol.c:1959
SCIP_RETCODE SCIPsolTransform(SCIP_SOL *sol, SCIP_SOL **transsol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_PRIMAL *primal)
Definition: sol.c:426
SCIP_RETCODE SCIPsolSetVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_VAR *var, SCIP_Real val)
Definition: sol.c:1077
SCIP_RETCODE SCIPsolCreatePseudoSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur)
Definition: sol.c:678
SCIP_RETCODE SCIPsolClear(SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree)
Definition: sol.c:1014
SCIP_RETCODE SCIPsolCreateLPSol(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_LP *lp, SCIP_HEUR *heur)
Definition: sol.c:608
SCIP_RETCODE SCIPsolSetUnknown(SCIP_SOL *sol, SCIP_STAT *stat, SCIP_TREE *tree)
Definition: sol.c:1031
SCIP_RETCODE SCIPsolLinkRelaxSol(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_TREE *tree, SCIP_RELAXATION *relaxation)
Definition: sol.c:929
SCIP_Real SCIPsolGetVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var)
Definition: sol.c:1372
SCIP_RETCODE SCIPsolUnlink(SCIP_SOL *sol, SCIP_SET *set, SCIP_PROB *prob)
Definition: sol.c:1048
SCIP_Real SCIPsolGetRayVal(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_VAR *var)
Definition: sol.c:1502
SCIP_RETCODE SCIPsolPrintRay(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PROB *transprob, FILE *file, SCIP_Bool printzeros)
Definition: sol.c:2422
void SCIPsolResetViolations(SCIP_SOL *sol)
Definition: sol.c:2534
SCIP_RETCODE SCIPsolLinkLPSol(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_TREE *tree, SCIP_LP *lp)
Definition: sol.c:820
SCIP_Bool SCIPsolsAreEqual(SCIP_SOL *sol1, SCIP_SOL *sol2, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *origprob, SCIP_PROB *transprob)
Definition: sol.c:2221
SCIP_Real SCIPsolGetObj(SCIP_SOL *sol, SCIP_SET *set, SCIP_PROB *transprob, SCIP_PROB *origprob)
Definition: sol.c:1571
SCIP_RETCODE SCIPsolPrint(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PROB *transprob, FILE *file, SCIP_Bool mipstart, SCIP_Bool printzeros)
Definition: sol.c:2286
void SCIPsolUpdateVarsum(SCIP_SOL *sol, SCIP_SET *set, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_Real weight)
Definition: sol.c:2031
SCIP_RETCODE SCIPsolCopy(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_SOL *sourcesol)
Definition: sol.c:362
SCIP_RETCODE SCIPsolCheckOrig(SCIP_SOL *sol, SCIP_SET *set, SCIP_MESSAGEHDLR *messagehdlr, BMS_BLKMEM *blkmem, SCIP_STAT *stat, SCIP_PROB *prob, SCIP_PRIMAL *primal, SCIP_Bool printreason, SCIP_Bool completely, SCIP_Bool checkbounds, SCIP_Bool checkintegrality, SCIP_Bool checklprows, SCIP_Bool checkmodifiable, SCIP_Bool *feasible)
Definition: sol.c:1671
SCIP_RETCODE SCIPsolCreate(SCIP_SOL **sol, BMS_BLKMEM *blkmem, SCIP_SET *set, SCIP_STAT *stat, SCIP_PRIMAL *primal, SCIP_TREE *tree, SCIP_HEUR *heur)
Definition: sol.c:288
void SCIPsolUpdateLPConsViolation(SCIP_SOL *sol, SCIP_Real absviol, SCIP_Real relviol)
Definition: sol.c:2600
void SCIPsolOrigAddObjval(SCIP_SOL *sol, SCIP_Real addval)
Definition: sol.c:2752
Definition: heur_padm.c:135
type definitions for primal heuristics
type definitions for LP management
type definitions for NLP management
type definitions for collecting primal CIP solutions and primal informations
type definitions for storing and manipulating the main problem
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 problem statistics
type definitions for branch and bound tree
type definitions for problem variables