Scippy

SCIP

Solving Constraint Integer Programs

scip_solvingstats.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 scip_solvingstats.h
26 * @ingroup PUBLICCOREAPI
27 * @brief public methods for querying solving statistics
28 * @author Tobias Achterberg
29 * @author Timo Berthold
30 * @author Thorsten Koch
31 * @author Alexander Martin
32 * @author Marc Pfetsch
33 * @author Kati Wolter
34 * @author Gregor Hendel
35 * @author Leona Gottwald
36 */
37
38/*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
39
40#ifndef __SCIP_SCIP_SOLVINGSTATS_H__
41#define __SCIP_SCIP_SOLVINGSTATS_H__
42
43
44#include "scip/def.h"
45#include "scip/type_history.h"
46#include "scip/type_message.h"
47#include "scip/type_rational.h"
48#include "scip/type_retcode.h"
49#include "scip/type_scip.h"
50#include "scip/type_datatree.h"
51
52#ifdef __cplusplus
53extern "C" {
54#endif
55
56/**@addtogroup PublicSolvingStatsMethods
57 *
58 * @{
59 */
60
61/** gets number of branch and bound runs performed, including the current run
62 *
63 * @return the number of branch and bound runs performed, including the current run
64 *
65 * @pre This method can be called if SCIP is in one of the following stages:
66 * - \ref SCIP_STAGE_PROBLEM
67 * - \ref SCIP_STAGE_TRANSFORMING
68 * - \ref SCIP_STAGE_TRANSFORMED
69 * - \ref SCIP_STAGE_INITPRESOLVE
70 * - \ref SCIP_STAGE_PRESOLVING
71 * - \ref SCIP_STAGE_EXITPRESOLVE
72 * - \ref SCIP_STAGE_PRESOLVED
73 * - \ref SCIP_STAGE_INITSOLVE
74 * - \ref SCIP_STAGE_SOLVING
75 * - \ref SCIP_STAGE_SOLVED
76 * - \ref SCIP_STAGE_EXITSOLVE
77 * - \ref SCIP_STAGE_FREETRANS
78 */
79SCIP_EXPORT
80int SCIPgetNRuns(
81 SCIP* scip /**< SCIP data structure */
82 );
83
84/** gets number of reoptimization runs performed, including the current run
85 *
86 * @return the number of reoptimization runs performed, including the current run
87 *
88 * @pre This method can be called if SCIP is in one of the following stages:
89 * - \ref SCIP_STAGE_PROBLEM
90 * - \ref SCIP_STAGE_TRANSFORMING
91 * - \ref SCIP_STAGE_TRANSFORMED
92 * - \ref SCIP_STAGE_INITPRESOLVE
93 * - \ref SCIP_STAGE_PRESOLVING
94 * - \ref SCIP_STAGE_EXITPRESOLVE
95 * - \ref SCIP_STAGE_PRESOLVED
96 * - \ref SCIP_STAGE_INITSOLVE
97 * - \ref SCIP_STAGE_SOLVING
98 * - \ref SCIP_STAGE_SOLVED
99 * - \ref SCIP_STAGE_EXITSOLVE
100 * - \ref SCIP_STAGE_FREETRANS
101 */
102SCIP_EXPORT
104 SCIP* scip /**< SCIP data structure */
105 );
106
107/** add given number to the number of processed nodes in current run and in all runs, including the focus node
108 *
109 * @pre This method can be called if SCIP is in one of the following stages:
110 * - \ref SCIP_STAGE_PROBLEM
111 * - \ref SCIP_STAGE_TRANSFORMING
112 * - \ref SCIP_STAGE_TRANSFORMED
113 * - \ref SCIP_STAGE_INITPRESOLVE
114 * - \ref SCIP_STAGE_PRESOLVING
115 * - \ref SCIP_STAGE_EXITPRESOLVE
116 * - \ref SCIP_STAGE_PRESOLVED
117 * - \ref SCIP_STAGE_INITSOLVE
118 * - \ref SCIP_STAGE_SOLVING
119 * - \ref SCIP_STAGE_SOLVED
120 * - \ref SCIP_STAGE_EXITSOLVE
121 * - \ref SCIP_STAGE_FREETRANS
122 */
123SCIP_EXPORT
124void SCIPaddNNodes(
125 SCIP* scip, /**< SCIP data structure */
126 SCIP_Longint nnodes /**< number of processed nodes to add to the statistics */
127 );
128
129/** gets number of processed nodes in current run, including the focus node
130 *
131 * @return the number of processed nodes in current run, including the focus node
132 *
133 * @pre This method can be called if SCIP is in one of the following stages:
134 * - \ref SCIP_STAGE_PROBLEM
135 * - \ref SCIP_STAGE_TRANSFORMING
136 * - \ref SCIP_STAGE_TRANSFORMED
137 * - \ref SCIP_STAGE_INITPRESOLVE
138 * - \ref SCIP_STAGE_PRESOLVING
139 * - \ref SCIP_STAGE_EXITPRESOLVE
140 * - \ref SCIP_STAGE_PRESOLVED
141 * - \ref SCIP_STAGE_INITSOLVE
142 * - \ref SCIP_STAGE_SOLVING
143 * - \ref SCIP_STAGE_SOLVED
144 * - \ref SCIP_STAGE_EXITSOLVE
145 * - \ref SCIP_STAGE_FREETRANS
146 */
147SCIP_EXPORT
149 SCIP* scip /**< SCIP data structure */
150 );
151
152/** gets total number of processed nodes in all runs, including the focus node
153 *
154 * @return the total number of processed nodes in all runs, including the focus node
155 *
156 * @pre This method can be called if SCIP is in one of the following stages:
157 * - \ref SCIP_STAGE_PROBLEM
158 * - \ref SCIP_STAGE_TRANSFORMING
159 * - \ref SCIP_STAGE_TRANSFORMED
160 * - \ref SCIP_STAGE_INITPRESOLVE
161 * - \ref SCIP_STAGE_PRESOLVING
162 * - \ref SCIP_STAGE_EXITPRESOLVE
163 * - \ref SCIP_STAGE_PRESOLVED
164 * - \ref SCIP_STAGE_INITSOLVE
165 * - \ref SCIP_STAGE_SOLVING
166 * - \ref SCIP_STAGE_SOLVED
167 * - \ref SCIP_STAGE_EXITSOLVE
168 * - \ref SCIP_STAGE_FREETRANS
169 */
170SCIP_EXPORT
172 SCIP* scip /**< SCIP data structure */
173 );
174
175/** gets number of leaf nodes processed with feasible relaxation solution
176 *
177 * @return number of leaf nodes processed with feasible relaxation solution
178 *
179 * @pre This method can be called if SCIP is in one of the following stages:
180 * - \ref SCIP_STAGE_PROBLEM
181 * - \ref SCIP_STAGE_TRANSFORMING
182 * - \ref SCIP_STAGE_TRANSFORMED
183 * - \ref SCIP_STAGE_INITPRESOLVE
184 * - \ref SCIP_STAGE_PRESOLVING
185 * - \ref SCIP_STAGE_EXITPRESOLVE
186 * - \ref SCIP_STAGE_PRESOLVED
187 * - \ref SCIP_STAGE_INITSOLVE
188 * - \ref SCIP_STAGE_SOLVING
189 * - \ref SCIP_STAGE_SOLVED
190 * - \ref SCIP_STAGE_EXITSOLVE
191 * - \ref SCIP_STAGE_FREETRANS
192 */
193SCIP_EXPORT
195 SCIP* scip /**< SCIP data structure */
196 );
197
198/** gets number of infeasible leaf nodes processed
199 *
200 * @return number of infeasible leaf nodes processed
201 *
202 * @pre This method can be called if SCIP is in one of the following stages:
203 * - \ref SCIP_STAGE_PROBLEM
204 * - \ref SCIP_STAGE_TRANSFORMING
205 * - \ref SCIP_STAGE_TRANSFORMED
206 * - \ref SCIP_STAGE_INITPRESOLVE
207 * - \ref SCIP_STAGE_PRESOLVING
208 * - \ref SCIP_STAGE_EXITPRESOLVE
209 * - \ref SCIP_STAGE_PRESOLVED
210 * - \ref SCIP_STAGE_INITSOLVE
211 * - \ref SCIP_STAGE_SOLVING
212 * - \ref SCIP_STAGE_SOLVED
213 * - \ref SCIP_STAGE_EXITSOLVE
214 * - \ref SCIP_STAGE_FREETRANS
215 */
216SCIP_EXPORT
218 SCIP* scip /**< SCIP data structure */
219 );
220
221/** gets number of processed leaf nodes that hit LP objective limit
222 *
223 * @return number of processed leaf nodes that hit LP objective limit
224 *
225 * @pre This method can be called if SCIP is in one of the following stages:
226 * - \ref SCIP_STAGE_PROBLEM
227 * - \ref SCIP_STAGE_TRANSFORMING
228 * - \ref SCIP_STAGE_TRANSFORMED
229 * - \ref SCIP_STAGE_INITPRESOLVE
230 * - \ref SCIP_STAGE_PRESOLVING
231 * - \ref SCIP_STAGE_EXITPRESOLVE
232 * - \ref SCIP_STAGE_PRESOLVED
233 * - \ref SCIP_STAGE_INITSOLVE
234 * - \ref SCIP_STAGE_SOLVING
235 * - \ref SCIP_STAGE_SOLVED
236 * - \ref SCIP_STAGE_EXITSOLVE
237 * - \ref SCIP_STAGE_FREETRANS
238 */
239SCIP_EXPORT
241 SCIP* scip /**< SCIP data structure */
242 );
243
244/** gets number of global bound changes
245 *
246 * @return number of global bound changes
247 *
248 * @pre This method can be called if SCIP is in one of the following stages:
249 * - \ref SCIP_STAGE_PROBLEM
250 * - \ref SCIP_STAGE_TRANSFORMING
251 * - \ref SCIP_STAGE_TRANSFORMED
252 * - \ref SCIP_STAGE_INITPRESOLVE
253 * - \ref SCIP_STAGE_PRESOLVING
254 * - \ref SCIP_STAGE_EXITPRESOLVE
255 * - \ref SCIP_STAGE_PRESOLVED
256 * - \ref SCIP_STAGE_INITSOLVE
257 * - \ref SCIP_STAGE_SOLVING
258 * - \ref SCIP_STAGE_SOLVED
259 * - \ref SCIP_STAGE_EXITSOLVE
260 * - \ref SCIP_STAGE_FREETRANS
261 */
262SCIP_EXPORT
264 SCIP* scip /**< Scip data structure */
265 );
266
267/** gets number of global bound changes applied in the current run
268 *
269 * @return number of global bound changes
270 *
271 * @pre This method can be called if SCIP is in one of the following stages:
272 * - \ref SCIP_STAGE_PROBLEM
273 * - \ref SCIP_STAGE_TRANSFORMING
274 * - \ref SCIP_STAGE_TRANSFORMED
275 * - \ref SCIP_STAGE_INITPRESOLVE
276 * - \ref SCIP_STAGE_PRESOLVING
277 * - \ref SCIP_STAGE_EXITPRESOLVE
278 * - \ref SCIP_STAGE_PRESOLVED
279 * - \ref SCIP_STAGE_INITSOLVE
280 * - \ref SCIP_STAGE_SOLVING
281 * - \ref SCIP_STAGE_SOLVED
282 * - \ref SCIP_STAGE_EXITSOLVE
283 * - \ref SCIP_STAGE_FREETRANS
284 */
285SCIP_EXPORT
287 SCIP* scip /**< Scip data structure */
288 );
289
290/** gets number of global fixings applied in the current run
291 *
292 * @return number of global fixings
293 *
294 * @pre This method can be called if SCIP is in one of the following stages:
295 * - \ref SCIP_STAGE_PROBLEM
296 * - \ref SCIP_STAGE_TRANSFORMING
297 * - \ref SCIP_STAGE_TRANSFORMED
298 * - \ref SCIP_STAGE_INITPRESOLVE
299 * - \ref SCIP_STAGE_PRESOLVING
300 * - \ref SCIP_STAGE_EXITPRESOLVE
301 * - \ref SCIP_STAGE_PRESOLVED
302 * - \ref SCIP_STAGE_INITSOLVE
303 * - \ref SCIP_STAGE_SOLVING
304 * - \ref SCIP_STAGE_SOLVED
305 * - \ref SCIP_STAGE_EXITSOLVE
306 * - \ref SCIP_STAGE_FREETRANS
307*/
308SCIP_EXPORT
310 SCIP* scip /**< Scip data structure */
311 );
312
313/** gets number of times a selected node was from a cut off subtree
314 *
315 * @return number of times a selected node was from a cut off subtree
316 *
317 * @pre This method can be called if SCIP is in one of the following stages:
318 * - \ref SCIP_STAGE_PROBLEM
319 * - \ref SCIP_STAGE_TRANSFORMING
320 * - \ref SCIP_STAGE_TRANSFORMED
321 * - \ref SCIP_STAGE_INITPRESOLVE
322 * - \ref SCIP_STAGE_PRESOLVING
323 * - \ref SCIP_STAGE_EXITPRESOLVE
324 * - \ref SCIP_STAGE_PRESOLVED
325 * - \ref SCIP_STAGE_INITSOLVE
326 * - \ref SCIP_STAGE_SOLVING
327 * - \ref SCIP_STAGE_SOLVED
328 * - \ref SCIP_STAGE_EXITSOLVE
329 * - \ref SCIP_STAGE_FREETRANS
330 */
331SCIP_EXPORT
333 SCIP* scip /**< SCIP data structure */
334 );
335
336/** gets total number of LPs solved so far
337 *
338 * @return the total number of LPs solved so far
339 *
340 * @pre This method can be called if SCIP is in one of the following stages:
341 * - \ref SCIP_STAGE_PROBLEM
342 * - \ref SCIP_STAGE_TRANSFORMING
343 * - \ref SCIP_STAGE_TRANSFORMED
344 * - \ref SCIP_STAGE_INITPRESOLVE
345 * - \ref SCIP_STAGE_PRESOLVING
346 * - \ref SCIP_STAGE_EXITPRESOLVE
347 * - \ref SCIP_STAGE_PRESOLVED
348 * - \ref SCIP_STAGE_INITSOLVE
349 * - \ref SCIP_STAGE_SOLVING
350 * - \ref SCIP_STAGE_SOLVED
351 * - \ref SCIP_STAGE_EXITSOLVE
352 * - \ref SCIP_STAGE_FREETRANS
353 */
354SCIP_EXPORT
356 SCIP* scip /**< SCIP data structure */
357 );
358
359/** gets number of calls to the exact LP solver
360 *
361 * @return the number of calls to the exact LP solver
362 *
363 * @pre This method can be called if SCIP is in one of the following stages:
364 * - \ref SCIP_STAGE_PROBLEM
365 * - \ref SCIP_STAGE_TRANSFORMING
366 * - \ref SCIP_STAGE_TRANSFORMED
367 * - \ref SCIP_STAGE_INITPRESOLVE
368 * - \ref SCIP_STAGE_PRESOLVING
369 * - \ref SCIP_STAGE_EXITPRESOLVE
370 * - \ref SCIP_STAGE_PRESOLVED
371 * - \ref SCIP_STAGE_INITSOLVE
372 * - \ref SCIP_STAGE_SOLVING
373 * - \ref SCIP_STAGE_SOLVED
374 * - \ref SCIP_STAGE_EXITSOLVE
375 * - \ref SCIP_STAGE_FREETRANS
376 */
377SCIP_EXPORT
379 SCIP* scip /**< SCIP data structure */
380 );
381
382/** gets total number of iterations used so far in primal and dual simplex and barrier algorithm
383 *
384 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm
385 *
386 * @pre This method can be called if SCIP is in one of the following stages:
387 * - \ref SCIP_STAGE_PRESOLVING
388 * - \ref SCIP_STAGE_PRESOLVED
389 * - \ref SCIP_STAGE_SOLVING
390 * - \ref SCIP_STAGE_SOLVED
391 */
392SCIP_EXPORT
394 SCIP* scip /**< SCIP data structure */
395 );
396
397/** gets number of active non-zeros in the current transformed problem
398 *
399 * @return the number of active non-zeros in the current transformed problem
400 *
401 * @pre This method can be called if SCIP is in one of the following stages:
402 * - \ref SCIP_STAGE_PROBLEM
403 * - \ref SCIP_STAGE_TRANSFORMING
404 * - \ref SCIP_STAGE_TRANSFORMED
405 * - \ref SCIP_STAGE_INITPRESOLVE
406 * - \ref SCIP_STAGE_PRESOLVING
407 * - \ref SCIP_STAGE_EXITPRESOLVE
408 * - \ref SCIP_STAGE_PRESOLVED
409 * - \ref SCIP_STAGE_INITSOLVE
410 * - \ref SCIP_STAGE_SOLVING
411 * - \ref SCIP_STAGE_SOLVED
412 * - \ref SCIP_STAGE_EXITSOLVE
413 */
414SCIP_EXPORT
416 SCIP* scip /**< SCIP data structure */
417 );
418
419
420/** gets total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
421 *
422 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
423 *
424 * @pre This method can be called if SCIP is in one of the following stages:
425 * - \ref SCIP_STAGE_PRESOLVED
426 * - \ref SCIP_STAGE_SOLVING
427 * - \ref SCIP_STAGE_SOLVED
428 */
429SCIP_EXPORT
431 SCIP* scip /**< SCIP data structure */
432 );
433
434/** gets total number of iterations used in primal and dual simplex and barrier algorithm for the first LP at the root
435 * node
436 *
437 * @return the total number of iterations used in primal and dual simplex and barrier algorithm for the first root LP
438 *
439 * @pre This method can be called if SCIP is in one of the following stages:
440 * - \ref SCIP_STAGE_PRESOLVED
441 * - \ref SCIP_STAGE_SOLVING
442 * - \ref SCIP_STAGE_SOLVED
443 */
444SCIP_EXPORT
446 SCIP* scip /**< SCIP data structure */
447 );
448
449/** gets total number of primal LPs solved so far
450 *
451 * @return the total number of primal LPs solved so far
452 *
453 * @pre This method can be called if SCIP is in one of the following stages:
454 * - \ref SCIP_STAGE_PRESOLVED
455 * - \ref SCIP_STAGE_SOLVING
456 * - \ref SCIP_STAGE_SOLVED
457 */
458SCIP_EXPORT
460 SCIP* scip /**< SCIP data structure */
461 );
462
463/** gets total number of iterations used so far in primal simplex
464 *
465 * @return total number of iterations used so far in primal simplex
466 *
467 * @pre This method can be called if SCIP is in one of the following stages:
468 * - \ref SCIP_STAGE_PRESOLVED
469 * - \ref SCIP_STAGE_SOLVING
470 * - \ref SCIP_STAGE_SOLVED
471 */
472SCIP_EXPORT
474 SCIP* scip /**< SCIP data structure */
475 );
476
477/** gets total number of dual LPs solved so far
478 *
479 * @return the total number of dual LPs solved so far
480 *
481 * @pre This method can be called if SCIP is in one of the following stages:
482 * - \ref SCIP_STAGE_PRESOLVED
483 * - \ref SCIP_STAGE_SOLVING
484 * - \ref SCIP_STAGE_SOLVED
485 */
486SCIP_EXPORT
488 SCIP* scip /**< SCIP data structure */
489 );
490
491/** gets total number of iterations used so far in dual simplex
492 *
493 * @return the total number of iterations used so far in dual simplex
494 *
495 * @pre This method can be called if SCIP is in one of the following stages:
496 * - \ref SCIP_STAGE_PRESOLVED
497 * - \ref SCIP_STAGE_SOLVING
498 * - \ref SCIP_STAGE_SOLVED
499 */
500SCIP_EXPORT
502 SCIP* scip /**< SCIP data structure */
503 );
504
505/** gets total number of barrier LPs solved so far
506 *
507 * @return the total number of barrier LPs solved so far
508 *
509 * @pre This method can be called if SCIP is in one of the following stages:
510 * - \ref SCIP_STAGE_PRESOLVED
511 * - \ref SCIP_STAGE_SOLVING
512 * - \ref SCIP_STAGE_SOLVED
513 */
514SCIP_EXPORT
516 SCIP* scip /**< SCIP data structure */
517 );
518
519/** gets total number of iterations used so far in barrier algorithm
520 *
521 * @return the total number of iterations used so far in barrier algorithm
522 *
523 * @pre This method can be called if SCIP is in one of the following stages:
524 * - \ref SCIP_STAGE_PRESOLVED
525 * - \ref SCIP_STAGE_SOLVING
526 * - \ref SCIP_STAGE_SOLVED
527 */
528SCIP_EXPORT
530 SCIP* scip /**< SCIP data structure */
531 );
532
533/** gets total number of LPs solved so far that were resolved from an advanced start basis
534 *
535 * @return the total number of LPs solved so far that were resolved from an advanced start basis
536 *
537 * @pre This method can be called if SCIP is in one of the following stages:
538 * - \ref SCIP_STAGE_PRESOLVED
539 * - \ref SCIP_STAGE_SOLVING
540 * - \ref SCIP_STAGE_SOLVED
541 */
542SCIP_EXPORT
544 SCIP* scip /**< SCIP data structure */
545 );
546
547/** gets total number of simplex iterations used so far in primal and dual simplex calls where an advanced start basis
548 * was available
549 *
550 * @return the total number of simplex iterations used so far in primal and dual simplex calls where an advanced start
551 * basis was available
552 *
553 * @pre This method can be called if SCIP is in one of the following stages:
554 * - \ref SCIP_STAGE_PRESOLVED
555 * - \ref SCIP_STAGE_SOLVING
556 * - \ref SCIP_STAGE_SOLVED
557 */
558SCIP_EXPORT
560 SCIP* scip /**< SCIP data structure */
561 );
562
563/** gets total number of primal LPs solved so far that were resolved from an advanced start basis
564 *
565 * @return the total number of primal LPs solved so far that were resolved from an advanced start basis
566 *
567 * @pre This method can be called if SCIP is in one of the following stages:
568 * - \ref SCIP_STAGE_PRESOLVED
569 * - \ref SCIP_STAGE_SOLVING
570 * - \ref SCIP_STAGE_SOLVED
571 */
572SCIP_EXPORT
574 SCIP* scip /**< SCIP data structure */
575 );
576
577/** gets total number of simplex iterations used so far in primal simplex calls where an advanced start basis
578 * was available
579 *
580 * @return the total number of simplex iterations used so far in primal simplex calls where an advanced start
581 * basis was available
582 *
583 * @pre This method can be called if SCIP is in one of the following stages:
584 * - \ref SCIP_STAGE_PRESOLVED
585 * - \ref SCIP_STAGE_SOLVING
586 * - \ref SCIP_STAGE_SOLVED
587 */
588SCIP_EXPORT
590 SCIP* scip /**< SCIP data structure */
591 );
592
593/** gets total number of dual LPs solved so far that were resolved from an advanced start basis
594 *
595 * @return the total number of dual LPs solved so far that were resolved from an advanced start basis
596 *
597 * @pre This method can be called if SCIP is in one of the following stages:
598 * - \ref SCIP_STAGE_PRESOLVED
599 * - \ref SCIP_STAGE_SOLVING
600 * - \ref SCIP_STAGE_SOLVED
601 */
602SCIP_EXPORT
604 SCIP* scip /**< SCIP data structure */
605 );
606
607/** gets total number of simplex iterations used so far in dual simplex calls where an advanced start basis
608 * was available
609 *
610 * @return the total number of simplex iterations used so far in dual simplex calls where an advanced start
611 * basis was available
612 *
613 * @pre This method can be called if SCIP is in one of the following stages:
614 * - \ref SCIP_STAGE_PRESOLVED
615 * - \ref SCIP_STAGE_SOLVING
616 * - \ref SCIP_STAGE_SOLVED
617 */
618SCIP_EXPORT
620 SCIP* scip /**< SCIP data structure */
621 );
622
623/** gets total number of LPs solved so far for node relaxations
624 *
625 * @return the total number of LPs solved so far for node relaxations
626 *
627 * @pre This method can be called if SCIP is in one of the following stages:
628 * - \ref SCIP_STAGE_PRESOLVED
629 * - \ref SCIP_STAGE_SOLVING
630 * - \ref SCIP_STAGE_SOLVED
631 */
632SCIP_EXPORT
634 SCIP* scip /**< SCIP data structure */
635 );
636
637/** gets total number of LPs solved in 0 iterations for node relaxations
638 *
639 * @return the total number of LPs solved with 0 iteratins for node relaxations
640 *
641 * @pre This method can be called if SCIP is in one of the following stages:
642 * - \ref SCIP_STAGE_PRESOLVED
643 * - \ref SCIP_STAGE_SOLVING
644 * - \ref SCIP_STAGE_SOLVED
645 */
646SCIP_EXPORT
648 SCIP* scip /**< SCIP data structure */
649 );
650
651/** gets total number of simplex iterations used so far for node relaxations
652 *
653 * @return the total number of simplex iterations used so far for node relaxations
654 *
655 * @pre This method can be called if SCIP is in one of the following stages:
656 * - \ref SCIP_STAGE_PRESOLVED
657 * - \ref SCIP_STAGE_SOLVING
658 * - \ref SCIP_STAGE_SOLVED
659 */
660SCIP_EXPORT
662 SCIP* scip /**< SCIP data structure */
663 );
664
665/** gets total number of LPs solved so far for initial LP in node relaxations
666 *
667 * @return the total number of LPs solved so far for initial LP in node relaxations
668 *
669 * @pre This method can be called if SCIP is in one of the following stages:
670 * - \ref SCIP_STAGE_PRESOLVED
671 * - \ref SCIP_STAGE_SOLVING
672 * - \ref SCIP_STAGE_SOLVED
673 */
674SCIP_EXPORT
676 SCIP* scip /**< SCIP data structure */
677 );
678
679/** gets total number of simplex iterations used so far for initial LP in node relaxations
680 *
681 * @return the total number of simplex iterations used so far for initial LP in node relaxations
682 *
683 * @pre This method can be called if SCIP is in one of the following stages:
684 * - \ref SCIP_STAGE_PRESOLVED
685 * - \ref SCIP_STAGE_SOLVING
686 * - \ref SCIP_STAGE_SOLVED
687 */
688SCIP_EXPORT
690 SCIP* scip /**< SCIP data structure */
691 );
692
693/** gets total number of LPs solved so far during diving and probing
694 *
695 * @return total number of LPs solved so far during diving and probing
696 *
697 * @pre This method can be called if SCIP is in one of the following stages:
698 * - \ref SCIP_STAGE_PRESOLVED
699 * - \ref SCIP_STAGE_SOLVING
700 * - \ref SCIP_STAGE_SOLVED
701 */
702SCIP_EXPORT
704 SCIP* scip /**< SCIP data structure */
705 );
706
707/** gets total number of simplex iterations used so far during diving and probing
708 *
709 * @return the total number of simplex iterations used so far during diving and probing
710 *
711 * @pre This method can be called if SCIP is in one of the following stages:
712 * - \ref SCIP_STAGE_PRESOLVED
713 * - \ref SCIP_STAGE_SOLVING
714 * - \ref SCIP_STAGE_SOLVED
715 */
716SCIP_EXPORT
718 SCIP* scip /**< SCIP data structure */
719 );
720
721/** gets total number of times, strong branching was called (each call represents solving two LPs)
722 *
723 * @return the total number of times, strong branching was called (each call represents solving two LPs)
724 *
725 * @pre This method can be called if SCIP is in one of the following stages:
726 * - \ref SCIP_STAGE_PRESOLVED
727 * - \ref SCIP_STAGE_SOLVING
728 * - \ref SCIP_STAGE_SOLVED
729 */
730SCIP_EXPORT
732 SCIP* scip /**< SCIP data structure */
733 );
734
735/** gets total number of simplex iterations used so far in strong branching
736 *
737 * @return the total number of simplex iterations used so far in strong branching
738 *
739 * @pre This method can be called if SCIP is in one of the following stages:
740 * - \ref SCIP_STAGE_PRESOLVED
741 * - \ref SCIP_STAGE_SOLVING
742 * - \ref SCIP_STAGE_SOLVED
743 */
744SCIP_EXPORT
746 SCIP* scip /**< SCIP data structure */
747 );
748
749/** gets total number of times, strong branching was called at the root node (each call represents solving two LPs)
750 *
751 * @return the total number of times, strong branching was called at the root node (each call represents solving two LPs)
752 *
753 * @pre This method can be called if SCIP is in one of the following stages:
754 * - \ref SCIP_STAGE_PRESOLVED
755 * - \ref SCIP_STAGE_SOLVING
756 * - \ref SCIP_STAGE_SOLVED
757 */
758SCIP_EXPORT
760 SCIP* scip /**< SCIP data structure */
761 );
762
763/** gets total number of simplex iterations used so far in strong branching at the root node
764 *
765 * @return the total number of simplex iterations used so far in strong branching at the root node
766 *
767 * @pre This method can be called if SCIP is in one of the following stages:
768 * - \ref SCIP_STAGE_PRESOLVED
769 * - \ref SCIP_STAGE_SOLVING
770 * - \ref SCIP_STAGE_SOLVED
771 */
772SCIP_EXPORT
774 SCIP* scip /**< SCIP data structure */
775 );
776
777/** gets number of pricing rounds performed so far at the current node
778 *
779 * @return the number of pricing rounds performed so far at the current node
780 *
781 * @pre This method can be called if SCIP is in one of the following stages:
782 * - \ref SCIP_STAGE_SOLVING
783 */
784SCIP_EXPORT
786 SCIP* scip /**< SCIP data structure */
787 );
788
789/** get current number of variables in the pricing store
790 *
791 * @return the current number of variables in the pricing store
792 *
793 * @pre This method can be called if SCIP is in one of the following stages:
794 * - \ref SCIP_STAGE_PRESOLVED
795 * - \ref SCIP_STAGE_SOLVING
796 * - \ref SCIP_STAGE_SOLVED
797 */
798SCIP_EXPORT
800 SCIP* scip /**< SCIP data structure */
801 );
802
803/** get total number of pricing variables found so far
804 *
805 * @return the total number of pricing variables found so far
806 *
807 * @pre This method can be called if SCIP is in one of the following stages:
808 * - \ref SCIP_STAGE_PRESOLVED
809 * - \ref SCIP_STAGE_SOLVING
810 * - \ref SCIP_STAGE_SOLVED
811 */
812SCIP_EXPORT
814 SCIP* scip /**< SCIP data structure */
815 );
816
817/** get total number of pricing variables applied to the LPs
818 *
819 * @return the total number of pricing variables applied to the LPs
820 *
821 * @pre This method can be called if SCIP is in one of the following stages:
822 * - \ref SCIP_STAGE_PRESOLVED
823 * - \ref SCIP_STAGE_SOLVING
824 * - \ref SCIP_STAGE_SOLVED
825 */
826SCIP_EXPORT
828 SCIP* scip /**< SCIP data structure */
829 );
830
831/** gets number of separation rounds performed so far at the current node
832 *
833 * @return the number of separation rounds performed so far at the current node
834 *
835 * @pre This method can be called if SCIP is in one of the following stages:
836 * - \ref SCIP_STAGE_SOLVING
837 */
838SCIP_EXPORT
840 SCIP* scip /**< SCIP data structure */
841 );
842
843/** get total number of cuts added to the sepastore so far; this includes global cuts from the cut pool as often as they are separated
844 *
845 * @return the total number of cuts added to the sepastore so far
846 *
847 * @pre This method can be called if SCIP is in one of the following stages:
848 * - \ref SCIP_STAGE_PRESOLVED
849 * - \ref SCIP_STAGE_SOLVING
850 * - \ref SCIP_STAGE_SOLVED
851 */
852SCIP_EXPORT
854 SCIP* scip /**< SCIP data structure */
855 );
856
857/** get number of cuts found so far in current separation round
858 *
859 * @return the number of cuts found so far in current separation round
860 *
861 * @pre This method can be called if SCIP is in one of the following stages:
862 * - \ref SCIP_STAGE_PRESOLVED
863 * - \ref SCIP_STAGE_SOLVING
864 * - \ref SCIP_STAGE_SOLVED
865 */
866SCIP_EXPORT
868 SCIP* scip /**< SCIP data structure */
869 );
870
871/** get total number of cuts applied to the LPs
872 *
873 * @return the total number of cuts applied to the LPs
874 *
875 * @pre This method can be called if SCIP is in one of the following stages:
876 * - \ref SCIP_STAGE_PRESOLVED
877 * - \ref SCIP_STAGE_SOLVING
878 * - \ref SCIP_STAGE_SOLVED
879 */
880SCIP_EXPORT
882 SCIP* scip /**< SCIP data structure */
883 );
884
885/** get total number of constraints found in conflict analysis (conflict, reconvergence constraints, and dual proofs)
886 *
887 * @return the total number of constraints found in conflict analysis (conflict, reconvergence constraints, and dual proofs)
888 *
889 * @pre This method can be called if SCIP is in one of the following stages:
890 * - \ref SCIP_STAGE_TRANSFORMED
891 * - \ref SCIP_STAGE_INITPRESOLVE
892 * - \ref SCIP_STAGE_PRESOLVING
893 * - \ref SCIP_STAGE_EXITPRESOLVE
894 * - \ref SCIP_STAGE_PRESOLVED
895 * - \ref SCIP_STAGE_INITSOLVE
896 * - \ref SCIP_STAGE_SOLVING
897 * - \ref SCIP_STAGE_SOLVED
898 * - \ref SCIP_STAGE_EXITSOLVE
899 */
900SCIP_EXPORT
902 SCIP* scip /**< SCIP data structure */
903 );
904
905/** get number of conflict constraints found so far at the current node
906 *
907 * @return the number of conflict constraints found so far at the current node
908 *
909 * @pre This method can be called if SCIP is in one of the following stages:
910 * - \ref SCIP_STAGE_TRANSFORMED
911 * - \ref SCIP_STAGE_INITPRESOLVE
912 * - \ref SCIP_STAGE_PRESOLVING
913 * - \ref SCIP_STAGE_EXITPRESOLVE
914 * - \ref SCIP_STAGE_PRESOLVED
915 * - \ref SCIP_STAGE_INITSOLVE
916 * - \ref SCIP_STAGE_SOLVING
917 * - \ref SCIP_STAGE_SOLVED
918 * - \ref SCIP_STAGE_EXITSOLVE
919 */
920SCIP_EXPORT
922 SCIP* scip /**< SCIP data structure */
923 );
924
925/** get total number of conflict constraints added to the problem
926 *
927 * @return the total number of conflict constraints added to the problem
928 *
929 * @pre This method can be called if SCIP is in one of the following stages:
930 * - \ref SCIP_STAGE_TRANSFORMED
931 * - \ref SCIP_STAGE_INITPRESOLVE
932 * - \ref SCIP_STAGE_PRESOLVING
933 * - \ref SCIP_STAGE_EXITPRESOLVE
934 * - \ref SCIP_STAGE_PRESOLVED
935 * - \ref SCIP_STAGE_INITSOLVE
936 * - \ref SCIP_STAGE_SOLVING
937 * - \ref SCIP_STAGE_SOLVED
938 * - \ref SCIP_STAGE_EXITSOLVE
939 */
940SCIP_EXPORT
942 SCIP* scip /**< SCIP data structure */
943 );
944
945
946/** get total number of resolution conflict constraints added to the problem
947 *
948 * @return the total number of resolution conflict constraints added to the problem
949 *
950 * @pre This method can be called if SCIP is in one of the following stages:
951 * - \ref SCIP_STAGE_TRANSFORMED
952 * - \ref SCIP_STAGE_INITPRESOLVE
953 * - \ref SCIP_STAGE_PRESOLVING
954 * - \ref SCIP_STAGE_EXITPRESOLVE
955 * - \ref SCIP_STAGE_PRESOLVED
956 * - \ref SCIP_STAGE_INITSOLVE
957 * - \ref SCIP_STAGE_SOLVING
958 * - \ref SCIP_STAGE_SOLVED
959 * - \ref SCIP_STAGE_EXITSOLVE
960 */
961SCIP_EXPORT
963 SCIP* scip /**< SCIP data structure */
964 );
965
966/** get total number of dual proof constraints added to the problem
967 *
968 * @return the total number of dual proof constraints added to the problem
969 *
970 * @pre This method can be called if SCIP is in one of the following stages:
971 * - \ref SCIP_STAGE_TRANSFORMED
972 * - \ref SCIP_STAGE_INITPRESOLVE
973 * - \ref SCIP_STAGE_PRESOLVING
974 * - \ref SCIP_STAGE_EXITPRESOLVE
975 * - \ref SCIP_STAGE_PRESOLVED
976 * - \ref SCIP_STAGE_INITSOLVE
977 * - \ref SCIP_STAGE_SOLVING
978 * - \ref SCIP_STAGE_SOLVED
979 * - \ref SCIP_STAGE_EXITSOLVE
980 */
981SCIP_EXPORT
983 SCIP* scip /**< SCIP data structure */
984 );
985
986/** gets maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
987 *
988 * @return the maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
989 *
990 * @pre This method can be called if SCIP is in one of the following stages:
991 * - \ref SCIP_STAGE_TRANSFORMED
992 * - \ref SCIP_STAGE_INITPRESOLVE
993 * - \ref SCIP_STAGE_PRESOLVING
994 * - \ref SCIP_STAGE_EXITPRESOLVE
995 * - \ref SCIP_STAGE_PRESOLVED
996 * - \ref SCIP_STAGE_INITSOLVE
997 * - \ref SCIP_STAGE_SOLVING
998 * - \ref SCIP_STAGE_SOLVED
999 * - \ref SCIP_STAGE_EXITSOLVE
1000 */
1001SCIP_EXPORT
1002int SCIPgetMaxDepth(
1003 SCIP* scip /**< SCIP data structure */
1004 );
1005
1006/** gets maximal depth of all processed nodes over all branch and bound runs
1007 *
1008 * @return the maximal depth of all processed nodes over all branch and bound runs
1009 *
1010 * @pre This method can be called if SCIP is in one of the following stages:
1011 * - \ref SCIP_STAGE_TRANSFORMED
1012 * - \ref SCIP_STAGE_INITPRESOLVE
1013 * - \ref SCIP_STAGE_PRESOLVING
1014 * - \ref SCIP_STAGE_EXITPRESOLVE
1015 * - \ref SCIP_STAGE_PRESOLVED
1016 * - \ref SCIP_STAGE_INITSOLVE
1017 * - \ref SCIP_STAGE_SOLVING
1018 * - \ref SCIP_STAGE_SOLVED
1019 * - \ref SCIP_STAGE_EXITSOLVE
1020 */
1021SCIP_EXPORT
1023 SCIP* scip /**< SCIP data structure */
1024 );
1025
1026/** gets total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
1027 *
1028 * @return the total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
1029 *
1030 * @pre This method can be called if SCIP is in one of the following stages:
1031 * - \ref SCIP_STAGE_TRANSFORMED
1032 * - \ref SCIP_STAGE_INITPRESOLVE
1033 * - \ref SCIP_STAGE_PRESOLVING
1034 * - \ref SCIP_STAGE_EXITPRESOLVE
1035 * - \ref SCIP_STAGE_PRESOLVED
1036 * - \ref SCIP_STAGE_INITSOLVE
1037 * - \ref SCIP_STAGE_SOLVING
1038 * - \ref SCIP_STAGE_SOLVED
1039 * - \ref SCIP_STAGE_EXITSOLVE
1040 */
1041SCIP_EXPORT
1043 SCIP* scip /**< SCIP data structure */
1044 );
1045
1046/** gets total number of active constraints at the current node
1047 *
1048 * @return the total number of active constraints at the current node
1049 *
1050 * @pre This method can be called if SCIP is in one of the following stages:
1051 * - \ref SCIP_STAGE_INITPRESOLVE
1052 * - \ref SCIP_STAGE_PRESOLVING
1053 * - \ref SCIP_STAGE_EXITPRESOLVE
1054 * - \ref SCIP_STAGE_PRESOLVED
1055 * - \ref SCIP_STAGE_SOLVING
1056 */
1057SCIP_EXPORT
1059 SCIP* scip /**< SCIP data structure */
1060 );
1061
1062/** gets total number of enabled constraints at the current node
1063 *
1064 * @return the total number of enabled constraints at the current node
1065 *
1066 * @pre This method can be called if SCIP is in one of the following stages:
1067 * - \ref SCIP_STAGE_PRESOLVED
1068 * - \ref SCIP_STAGE_SOLVING
1069 */
1070SCIP_EXPORT
1072 SCIP* scip /**< SCIP data structure */
1073 );
1074
1075/** gets average dual bound of all unprocessed nodes for original problem
1076 *
1077 * @return the average dual bound of all unprocessed nodes for original problem
1078 *
1079 * @pre This method can be called if SCIP is in one of the following stages:
1080 * - \ref SCIP_STAGE_PRESOLVED
1081 * - \ref SCIP_STAGE_SOLVING
1082 * - \ref SCIP_STAGE_SOLVED
1083 */
1084SCIP_EXPORT
1086 SCIP* scip /**< SCIP data structure */
1087 );
1088
1089/** gets average lower (dual) bound of all unprocessed nodes in transformed problem
1090 *
1091 * @return the average lower (dual) bound of all unprocessed nodes in transformed problem
1092 *
1093 * @pre This method can be called if SCIP is in one of the following stages:
1094 * - \ref SCIP_STAGE_PRESOLVED
1095 * - \ref SCIP_STAGE_SOLVING
1096 * - \ref SCIP_STAGE_SOLVED
1097 */
1098SCIP_EXPORT
1100 SCIP* scip /**< SCIP data structure */
1101 );
1102
1103/** gets global dual bound
1104 *
1105 * @return the global dual bound
1106 *
1107 * @pre This method can be called if SCIP is in one of the following stages:
1108 * - \ref SCIP_STAGE_TRANSFORMED
1109 * - \ref SCIP_STAGE_INITPRESOLVE
1110 * - \ref SCIP_STAGE_PRESOLVING
1111 * - \ref SCIP_STAGE_EXITPRESOLVE
1112 * - \ref SCIP_STAGE_PRESOLVED
1113 * - \ref SCIP_STAGE_INITSOLVE
1114 * - \ref SCIP_STAGE_SOLVING
1115 * - \ref SCIP_STAGE_SOLVED
1116 * - \ref SCIP_STAGE_EXITSOLVE
1117 */
1118SCIP_EXPORT
1120 SCIP* scip /**< SCIP data structure */
1121 );
1122
1123/** gets global exact dual bound
1124 *
1125 * @pre This method can be called if SCIP is in one of the following stages:
1126 * - \ref SCIP_STAGE_TRANSFORMED
1127 * - \ref SCIP_STAGE_INITPRESOLVE
1128 * - \ref SCIP_STAGE_PRESOLVING
1129 * - \ref SCIP_STAGE_EXITPRESOLVE
1130 * - \ref SCIP_STAGE_PRESOLVED
1131 * - \ref SCIP_STAGE_INITSOLVE
1132 * - \ref SCIP_STAGE_SOLVING
1133 * - \ref SCIP_STAGE_SOLVED
1134 * - \ref SCIP_STAGE_EXITSOLVE
1135 */
1136SCIP_EXPORT
1138 SCIP* scip, /**< SCIP data structure */
1139 SCIP_RATIONAL* result /**< the resulting obj value */
1140 );
1141
1142/** gets global lower (dual) bound in transformed problem
1143 *
1144 * @return the global lower (dual) bound in transformed problem
1145 *
1146 * @pre This method can be called if SCIP is in one of the following stages:
1147 * - \ref SCIP_STAGE_TRANSFORMED
1148 * - \ref SCIP_STAGE_INITPRESOLVE
1149 * - \ref SCIP_STAGE_PRESOLVING
1150 * - \ref SCIP_STAGE_EXITPRESOLVE
1151 * - \ref SCIP_STAGE_PRESOLVED
1152 * - \ref SCIP_STAGE_INITSOLVE
1153 * - \ref SCIP_STAGE_SOLVING
1154 * - \ref SCIP_STAGE_SOLVED
1155 */
1156SCIP_EXPORT
1158 SCIP* scip /**< SCIP data structure */
1159 );
1160
1161/** gets global exact lower (dual) bound in transformed problem
1162 *
1163 * @pre This method can be called if SCIP is in one of the following stages:
1164 * - \ref SCIP_STAGE_TRANSFORMED
1165 * - \ref SCIP_STAGE_INITPRESOLVE
1166 * - \ref SCIP_STAGE_PRESOLVING
1167 * - \ref SCIP_STAGE_EXITPRESOLVE
1168 * - \ref SCIP_STAGE_PRESOLVED
1169 * - \ref SCIP_STAGE_INITSOLVE
1170 * - \ref SCIP_STAGE_SOLVING
1171 * - \ref SCIP_STAGE_SOLVED
1172 */
1173SCIP_EXPORT
1175 SCIP* scip, /**< SCIP data structure */
1176 SCIP_RATIONAL* result /**< the resulting bound */
1177 );
1178
1179/** gets dual bound of the root node for the original problem
1180 *
1181 * @return the dual bound of the root node for the original problem
1182 *
1183 * @pre This method can be called if SCIP is in one of the following stages:
1184 * - \ref SCIP_STAGE_PRESOLVING
1185 * - \ref SCIP_STAGE_EXITPRESOLVE
1186 * - \ref SCIP_STAGE_PRESOLVED
1187 * - \ref SCIP_STAGE_INITSOLVE
1188 * - \ref SCIP_STAGE_SOLVING
1189 * - \ref SCIP_STAGE_SOLVED
1190 */
1191SCIP_EXPORT
1193 SCIP* scip /**< SCIP data structure */
1194 );
1195
1196/** gets lower (dual) bound in transformed problem of the root node
1197 *
1198 * @return the lower (dual) bound in transformed problem of the root node
1199 *
1200 * @pre This method can be called if SCIP is in one of the following stages:
1201 * - \ref SCIP_STAGE_PRESOLVING
1202 * - \ref SCIP_STAGE_EXITPRESOLVE
1203 * - \ref SCIP_STAGE_PRESOLVED
1204 * - \ref SCIP_STAGE_INITSOLVE
1205 * - \ref SCIP_STAGE_SOLVING
1206 * - \ref SCIP_STAGE_SOLVED
1207 */
1208SCIP_EXPORT
1210 SCIP* scip /**< SCIP data structure */
1211 );
1212
1213/** gets dual bound for the original problem obtained by the first LP solve at the root node
1214 *
1215 * @return the dual bound for the original problem of the first LP solve at the root node
1216 *
1217 * @pre This method can be called if SCIP is in one of the following stages:
1218 * - \ref SCIP_STAGE_PRESOLVING
1219 * - \ref SCIP_STAGE_EXITPRESOLVE
1220 * - \ref SCIP_STAGE_PRESOLVED
1221 * - \ref SCIP_STAGE_INITSOLVE
1222 * - \ref SCIP_STAGE_SOLVING
1223 * - \ref SCIP_STAGE_SOLVED
1224 */
1225SCIP_EXPORT
1227 SCIP* scip /**< SCIP data structure */
1228 );
1229
1230/** gets lower (dual) bound in transformed problem obtained by the first LP solve at the root node
1231 *
1232 * @return the lower (dual) bound in transformed problem obtained by first LP solve at the root node
1233 *
1234 * @pre This method can be called if SCIP is in one of the following stages:
1235 * - \ref SCIP_STAGE_PRESOLVING
1236 * - \ref SCIP_STAGE_EXITPRESOLVE
1237 * - \ref SCIP_STAGE_PRESOLVED
1238 * - \ref SCIP_STAGE_INITSOLVE
1239 * - \ref SCIP_STAGE_SOLVING
1240 * - \ref SCIP_STAGE_SOLVED
1241 */
1242SCIP_EXPORT
1244 SCIP* scip /**< SCIP data structure */
1245 );
1246
1247
1248/** gets the primal bound of the very first solution
1249 *
1250 * @return the primal bound of the very first solution
1251 */
1252SCIP_EXPORT
1254 SCIP* scip /**< SCIP data structure */
1255 );
1256
1257/** gets global primal bound (objective value of best solution or user objective limit) for the original problem
1258 *
1259 * @return the global primal bound (objective value of best solution or user objective limit) for the original problem
1260 *
1261 * @pre This method can be called if SCIP is in one of the following stages:
1262 * - \ref SCIP_STAGE_TRANSFORMED
1263 * - \ref SCIP_STAGE_INITPRESOLVE
1264 * - \ref SCIP_STAGE_PRESOLVING
1265 * - \ref SCIP_STAGE_EXITPRESOLVE
1266 * - \ref SCIP_STAGE_PRESOLVED
1267 * - \ref SCIP_STAGE_INITSOLVE
1268 * - \ref SCIP_STAGE_SOLVING
1269 * - \ref SCIP_STAGE_SOLVED
1270 * - \ref SCIP_STAGE_EXITSOLVE
1271 */
1272SCIP_EXPORT
1274 SCIP* scip /**< SCIP data structure */
1275 );
1276
1277/** gets global primal bound (objective value of best solution or user objective limit) for the original problem
1278 *
1279 * @pre This method can be called if SCIP is in one of the following stages:
1280 * - \ref SCIP_STAGE_TRANSFORMED
1281 * - \ref SCIP_STAGE_INITPRESOLVE
1282 * - \ref SCIP_STAGE_PRESOLVING
1283 * - \ref SCIP_STAGE_EXITPRESOLVE
1284 * - \ref SCIP_STAGE_PRESOLVED
1285 * - \ref SCIP_STAGE_INITSOLVE
1286 * - \ref SCIP_STAGE_SOLVING
1287 * - \ref SCIP_STAGE_SOLVED
1288 * - \ref SCIP_STAGE_EXITSOLVE
1289 */
1290SCIP_EXPORT
1292 SCIP* scip, /**< SCIP data structure */
1293 SCIP_RATIONAL* result /**< the resulting obj value */
1294 );
1295
1296/** gets global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
1297 *
1298 * @return the global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
1299 *
1300 * @pre This method can be called if SCIP is in one of the following stages:
1301 * - \ref SCIP_STAGE_TRANSFORMED
1302 * - \ref SCIP_STAGE_INITPRESOLVE
1303 * - \ref SCIP_STAGE_PRESOLVING
1304 * - \ref SCIP_STAGE_EXITPRESOLVE
1305 * - \ref SCIP_STAGE_PRESOLVED
1306 * - \ref SCIP_STAGE_INITSOLVE
1307 * - \ref SCIP_STAGE_SOLVING
1308 * - \ref SCIP_STAGE_SOLVED
1309 * - \ref SCIP_STAGE_EXITSOLVE
1310 */
1311SCIP_EXPORT
1313 SCIP* scip /**< SCIP data structure */
1314 );
1315
1316/** gets global exact upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
1317 *
1318 * @pre This method can be called if SCIP is in one of the following stages:
1319 * - \ref SCIP_STAGE_TRANSFORMED
1320 * - \ref SCIP_STAGE_INITPRESOLVE
1321 * - \ref SCIP_STAGE_PRESOLVING
1322 * - \ref SCIP_STAGE_EXITPRESOLVE
1323 * - \ref SCIP_STAGE_PRESOLVED
1324 * - \ref SCIP_STAGE_INITSOLVE
1325 * - \ref SCIP_STAGE_SOLVING
1326 * - \ref SCIP_STAGE_SOLVED
1327 * - \ref SCIP_STAGE_EXITSOLVE
1328 */
1329SCIP_EXPORT
1331 SCIP* scip, /**< SCIP data structure */
1332 SCIP_RATIONAL* result /**< the resulting upper bound value */
1333 );
1334
1335/** gets global cutoff bound in transformed problem: a sub problem with lower bound larger than the cutoff
1336 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
1337 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
1338 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
1339 *
1340 * @return global cutoff bound in transformed problem
1341 *
1342 * @pre This method can be called if SCIP is in one of the following stages:
1343 * - \ref SCIP_STAGE_TRANSFORMED
1344 * - \ref SCIP_STAGE_INITPRESOLVE
1345 * - \ref SCIP_STAGE_PRESOLVING
1346 * - \ref SCIP_STAGE_EXITPRESOLVE
1347 * - \ref SCIP_STAGE_PRESOLVED
1348 * - \ref SCIP_STAGE_INITSOLVE
1349 * - \ref SCIP_STAGE_SOLVING
1350 * - \ref SCIP_STAGE_SOLVED
1351 * - \ref SCIP_STAGE_EXITSOLVE
1352 */
1353SCIP_EXPORT
1355 SCIP* scip /**< SCIP data structure */
1356 );
1357
1358/** gets global cutoff bound of exact transformed problem: a sub problem with lower bound larger than the cutoff
1359 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
1360 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
1361 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
1362 *
1363 * @return global cutoff bound in transformed problem
1364 *
1365 * @pre This method can be called if SCIP is in one of the following stages:
1366 * - \ref SCIP_STAGE_TRANSFORMED
1367 * - \ref SCIP_STAGE_INITPRESOLVE
1368 * - \ref SCIP_STAGE_PRESOLVING
1369 * - \ref SCIP_STAGE_EXITPRESOLVE
1370 * - \ref SCIP_STAGE_PRESOLVED
1371 * - \ref SCIP_STAGE_INITSOLVE
1372 * - \ref SCIP_STAGE_SOLVING
1373 * - \ref SCIP_STAGE_SOLVED
1374 * - \ref SCIP_STAGE_EXITSOLVE
1375 */
1376SCIP_EXPORT
1378 SCIP* scip /**< SCIP data structure */
1379 );
1380
1381/** updates the cutoff bound
1382 *
1383 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1384 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1385 *
1386 * @note using this method in the solving stage can lead to an erroneous SCIP solving status; in particular,
1387 * if a solution not respecting the cutoff bound was found before installing a cutoff bound which
1388 * renders the remaining problem infeasible, this solution may be reported as optimal
1389 *
1390 * @pre This method can be called if SCIP is in one of the following stages:
1391 * - \ref SCIP_STAGE_TRANSFORMED
1392 * - \ref SCIP_STAGE_PRESOLVING
1393 * - \ref SCIP_STAGE_PRESOLVED
1394 * - \ref SCIP_STAGE_INITSOLVE
1395 * - \ref SCIP_STAGE_SOLVING
1396 *
1397 * @note the given cutoff bound has to better or equal to known one (SCIPgetCutoffbound())
1398 * @note a given cutoff bound is also used for updating the objective limit, if possible
1399 */
1400SCIP_EXPORT
1402 SCIP* scip, /**< SCIP data structure */
1403 SCIP_Real cutoffbound /**< new cutoff bound */
1404 );
1405
1406/** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
1407 * was set from the user as objective limit
1408 *
1409 * @return TRUE if the current primal bound is justified with a feasible primal solution, otherwise FALSE
1410 *
1411 * @pre This method can be called if SCIP is in one of the following stages:
1412 * - \ref SCIP_STAGE_TRANSFORMED
1413 * - \ref SCIP_STAGE_INITPRESOLVE
1414 * - \ref SCIP_STAGE_PRESOLVING
1415 * - \ref SCIP_STAGE_EXITPRESOLVE
1416 * - \ref SCIP_STAGE_PRESOLVED
1417 * - \ref SCIP_STAGE_INITSOLVE
1418 * - \ref SCIP_STAGE_SOLVING
1419 * - \ref SCIP_STAGE_SOLVED
1420 * - \ref SCIP_STAGE_EXITSOLVE
1421 */
1422SCIP_EXPORT
1424 SCIP* scip /**< SCIP data structure */
1425 );
1426
1427/** gets current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
1428 * or infinity, if they have opposite sign
1429 *
1430 * @return the current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
1431 * or infinity, if they have opposite sign
1432 *
1433 * @pre This method can be called if SCIP is in one of the following stages:
1434 * - \ref SCIP_STAGE_PRESOLVING
1435 * - \ref SCIP_STAGE_EXITPRESOLVE
1436 * - \ref SCIP_STAGE_PRESOLVED
1437 * - \ref SCIP_STAGE_INITSOLVE
1438 * - \ref SCIP_STAGE_SOLVING
1439 * - \ref SCIP_STAGE_SOLVED
1440 */
1441SCIP_EXPORT
1443 SCIP* scip /**< SCIP data structure */
1444 );
1445
1446/** gets current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
1447 * have same sign, or infinity, if they have opposite sign
1448 *
1449 * @return current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
1450 * have same sign, or infinity, if they have opposite sign
1451 *
1452 * @pre This method can be called if SCIP is in one of the following stages:
1453 * - \ref SCIP_STAGE_PRESOLVED
1454 * - \ref SCIP_STAGE_SOLVING
1455 * - \ref SCIP_STAGE_SOLVED
1456 */
1457SCIP_EXPORT
1459 SCIP* scip /**< SCIP data structure */
1460 );
1461
1462/** gets number of feasible primal solutions found so far
1463 *
1464 * @return the number of feasible primal solutions found so far
1465 *
1466 * @pre This method can be called if SCIP is in one of the following stages:
1467 * - \ref SCIP_STAGE_TRANSFORMED
1468 * - \ref SCIP_STAGE_INITPRESOLVE
1469 * - \ref SCIP_STAGE_PRESOLVING
1470 * - \ref SCIP_STAGE_EXITPRESOLVE
1471 * - \ref SCIP_STAGE_PRESOLVED
1472 * - \ref SCIP_STAGE_INITSOLVE
1473 * - \ref SCIP_STAGE_SOLVING
1474 * - \ref SCIP_STAGE_SOLVED
1475 * - \ref SCIP_STAGE_EXITSOLVE
1476 */
1477SCIP_EXPORT
1479 SCIP* scip /**< SCIP data structure */
1480 );
1481
1482/** gets number of feasible primal solutions respecting the objective limit found so far
1483 *
1484 * @return the number of feasible primal solutions respecting the objective limit found so far
1485 *
1486 * @pre This method can be called if SCIP is in one of the following stages:
1487 * - \ref SCIP_STAGE_INIT
1488 * - \ref SCIP_STAGE_PROBLEM
1489 * - \ref SCIP_STAGE_TRANSFORMING
1490 * - \ref SCIP_STAGE_TRANSFORMED
1491 * - \ref SCIP_STAGE_INITPRESOLVE
1492 * - \ref SCIP_STAGE_PRESOLVING
1493 * - \ref SCIP_STAGE_EXITPRESOLVE
1494 * - \ref SCIP_STAGE_PRESOLVED
1495 * - \ref SCIP_STAGE_INITSOLVE
1496 * - \ref SCIP_STAGE_SOLVING
1497 * - \ref SCIP_STAGE_SOLVED
1498 * - \ref SCIP_STAGE_EXITSOLVE
1499 */
1500SCIP_EXPORT
1502 SCIP* scip /**< SCIP data structure */
1503 );
1504
1505/** gets number of feasible primal solutions found so far, that improved the primal bound at the time they were found
1506 *
1507 * @return the number of feasible primal solutions found so far, that improved the primal bound at the time they were found
1508 *
1509 * @pre This method can be called if SCIP is in one of the following stages:
1510 * - \ref SCIP_STAGE_TRANSFORMED
1511 * - \ref SCIP_STAGE_INITPRESOLVE
1512 * - \ref SCIP_STAGE_PRESOLVING
1513 * - \ref SCIP_STAGE_EXITPRESOLVE
1514 * - \ref SCIP_STAGE_PRESOLVED
1515 * - \ref SCIP_STAGE_INITSOLVE
1516 * - \ref SCIP_STAGE_SOLVING
1517 * - \ref SCIP_STAGE_SOLVED
1518 * - \ref SCIP_STAGE_EXITSOLVE
1519 */
1520SCIP_EXPORT
1522 SCIP* scip /**< SCIP data structure */
1523 );
1524
1525/** gets the average pseudo cost value for the given direction over all variables
1526 *
1527 * @return the average pseudo cost value for the given direction over all variables
1528 *
1529 * @pre This method can be called if SCIP is in one of the following stages:
1530 * - \ref SCIP_STAGE_SOLVING
1531 * - \ref SCIP_STAGE_SOLVED
1532 */
1533SCIP_EXPORT
1535 SCIP* scip, /**< SCIP data structure */
1536 SCIP_Real solvaldelta /**< difference of variable's new LP value - old LP value */
1537 );
1538
1539/** gets the average pseudo cost value for the given direction over all variables,
1540 * only using the pseudo cost information of the current run
1541 *
1542 * @return the average pseudo cost value for the given direction over all variables,
1543 * only using the pseudo cost information of the current run
1544 *
1545 * @pre This method can be called if SCIP is in one of the following stages:
1546 * - \ref SCIP_STAGE_SOLVING
1547 * - \ref SCIP_STAGE_SOLVED
1548 */
1549SCIP_EXPORT
1551 SCIP* scip, /**< SCIP data structure */
1552 SCIP_Real solvaldelta /**< difference of variable's new LP value - old LP value */
1553 );
1554
1555/** gets the average number of pseudo cost updates for the given direction over all variables
1556 *
1557 * @return the average number of pseudo cost updates for the given direction over all variables
1558 *
1559 * @pre This method can be called if SCIP is in one of the following stages:
1560 * - \ref SCIP_STAGE_SOLVING
1561 * - \ref SCIP_STAGE_SOLVED
1562 */
1563SCIP_EXPORT
1565 SCIP* scip, /**< SCIP data structure */
1566 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1567 );
1568
1569/** gets the average number of pseudo cost updates for the given direction over all variables,
1570 * only using the pseudo cost information of the current run
1571 *
1572 * @return the average number of pseudo cost updates for the given direction over all variables,
1573 * only using the pseudo cost information of the current run
1574 *
1575 * @pre This method can be called if SCIP is in one of the following stages:
1576 * - \ref SCIP_STAGE_SOLVING
1577 * - \ref SCIP_STAGE_SOLVED
1578 */
1579SCIP_EXPORT
1581 SCIP* scip, /**< SCIP data structure */
1582 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1583 );
1584
1585/** gets the number of pseudo cost updates for the given direction over all variables
1586 *
1587 * @return the number of pseudo cost updates for the given direction over all variables
1588 *
1589 * @pre This method can be called if SCIP is in one of the following stages:
1590 * - \ref SCIP_STAGE_SOLVING
1591 * - \ref SCIP_STAGE_SOLVED
1592 */
1593SCIP_EXPORT
1595 SCIP* scip, /**< SCIP data structure */
1596 SCIP_BRANCHDIR dir, /**< branching direction (downwards, or upwards) */
1597 SCIP_Bool onlycurrentrun /**< use only history of current run? */
1598 );
1599
1600/** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5
1601 *
1602 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5
1603 *
1604 * @pre This method can be called if SCIP is in one of the following stages:
1605 * - \ref SCIP_STAGE_SOLVING
1606 * - \ref SCIP_STAGE_SOLVED
1607 */
1608SCIP_EXPORT
1610 SCIP* scip /**< SCIP data structure */
1611 );
1612
1613/** gets the average discounted pseudo cost score value over all variables, assuming a fractionality of 0.5
1614 *
1615 * This combines both pscost and ancpscost fields.
1616 *
1617 * @return the average discounted pseudo cost score value over all variables, assuming a fractionality of 0.5,
1618 * combining both pscost and ancpscost fields
1619 *
1620 * @pre This method can be called if SCIP is in one of the following stages:
1621 * - \ref SCIP_STAGE_SOLVING
1622 * - \ref SCIP_STAGE_SOLVED
1623 */
1624SCIP_EXPORT
1626 SCIP* scip, /**< SCIP data structure */
1627 SCIP_Real discountfac /**< discount factor for discounted pseudocost */
1628 );
1629
1630/** returns the variance of pseudo costs for all variables in the requested direction
1631 *
1632 * @return the variance of pseudo costs for all variables in the requested direction
1633 *
1634 * @pre This method can be called if SCIP is in one of the following stages:
1635 * - \ref SCIP_STAGE_SOLVING
1636 * - \ref SCIP_STAGE_SOLVED
1637 */
1638SCIP_EXPORT
1640 SCIP* scip, /**< SCIP data structure */
1641 SCIP_BRANCHDIR branchdir, /**< the branching direction, up or down */
1642 SCIP_Bool onlycurrentrun /**< use only history of current run? */
1643 );
1644
1645/** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
1646 * only using the pseudo cost information of the current run
1647 *
1648 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
1649 * only using the pseudo cost information of the current run
1650 *
1651 * @pre This method can be called if SCIP is in one of the following stages:
1652 * - \ref SCIP_STAGE_SOLVING
1653 * - \ref SCIP_STAGE_SOLVED
1654 */
1655SCIP_EXPORT
1657 SCIP* scip /**< SCIP data structure */
1658 );
1659
1660/** gets the average conflict score value over all variables
1661 *
1662 * @return the average conflict score value over all variables
1663 *
1664 * @pre This method can be called if SCIP is in one of the following stages:
1665 * - \ref SCIP_STAGE_SOLVING
1666 * - \ref SCIP_STAGE_SOLVED
1667 */
1668SCIP_EXPORT
1670 SCIP* scip /**< SCIP data structure */
1671 );
1672
1673/** gets the average conflict score value over all variables, only using the conflict score information of the current run
1674 *
1675 * @return the average conflict score value over all variables, only using the conflict score information of the current run
1676 *
1677 * @pre This method can be called if SCIP is in one of the following stages:
1678 * - \ref SCIP_STAGE_SOLVING
1679 * - \ref SCIP_STAGE_SOLVED
1680 */
1681SCIP_EXPORT
1683 SCIP* scip /**< SCIP data structure */
1684 );
1685
1686/** gets the average inference score value over all variables
1687 *
1688 * @return the average inference score value over all variables
1689 *
1690 * @pre This method can be called if SCIP is in one of the following stages:
1691 * - \ref SCIP_STAGE_SOLVING
1692 * - \ref SCIP_STAGE_SOLVED
1693 */
1694SCIP_EXPORT
1696 SCIP* scip /**< SCIP data structure */
1697 );
1698
1699/** gets the average conflictlength score value over all variables, only using the conflictlength information of the
1700 * current run
1701 *
1702 * @return the average conflictlength score value over all variables, only using the conflictlength information of the
1703 * current run
1704 *
1705 * @pre This method can be called if SCIP is in one of the following stages:
1706 * - \ref SCIP_STAGE_SOLVING
1707 * - \ref SCIP_STAGE_SOLVED
1708 */
1709SCIP_EXPORT
1711 SCIP* scip /**< SCIP data structure */
1712 );
1713
1714/** returns the average number of inferences found after branching in given direction over all variables
1715 *
1716 * @return the average number of inferences found after branching in given direction over all variables
1717 *
1718 * @pre This method can be called if SCIP is in one of the following stages:
1719 * - \ref SCIP_STAGE_SOLVING
1720 * - \ref SCIP_STAGE_SOLVED
1721 */
1722SCIP_EXPORT
1724 SCIP* scip, /**< SCIP data structure */
1725 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1726 );
1727
1728/** returns the average number of inferences found after branching in given direction over all variables,
1729 * only using the inference information of the current run
1730 *
1731 * @return the average number of inferences found after branching in given direction over all variables,
1732 * only using the inference information of the current run
1733 *
1734 * @pre This method can be called if SCIP is in one of the following stages:
1735 * - \ref SCIP_STAGE_SOLVING
1736 * - \ref SCIP_STAGE_SOLVED
1737 */
1738SCIP_EXPORT
1740 SCIP* scip, /**< SCIP data structure */
1741 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1742 );
1743
1744/** gets the average inference score value over all variables
1745 *
1746 * @return the average inference score value over all variables
1747 *
1748 * @pre This method can be called if SCIP is in one of the following stages:
1749 * - \ref SCIP_STAGE_SOLVING
1750 * - \ref SCIP_STAGE_SOLVED
1751 */
1752SCIP_EXPORT
1754 SCIP* scip /**< SCIP data structure */
1755 );
1756
1757/** gets the average inference score value over all variables, only using the inference information of the
1758 * current run
1759 *
1760 * @return the average inference score value over all variables, only using the inference information of the
1761 * current run
1762 *
1763 * @pre This method can be called if SCIP is in one of the following stages:
1764 * - \ref SCIP_STAGE_SOLVING
1765 * - \ref SCIP_STAGE_SOLVED
1766 */
1767SCIP_EXPORT
1769 SCIP* scip /**< SCIP data structure */
1770 );
1771
1772/** returns the average number of cutoffs found after branching in given direction over all variables
1773 *
1774 * @return the average number of cutoffs found after branching in given direction over all variables
1775 *
1776 * @pre This method can be called if SCIP is in one of the following stages:
1777 * - \ref SCIP_STAGE_SOLVING
1778 * - \ref SCIP_STAGE_SOLVED
1779 */
1780SCIP_EXPORT
1782 SCIP* scip, /**< SCIP data structure */
1783 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1784 );
1785
1786/** returns the average number of cutoffs found after branching in given direction over all variables,
1787 * only using the cutoff information of the current run
1788 *
1789 * @return the average number of cutoffs found after branching in given direction over all variables,
1790 * only using the cutoff information of the current run
1791 *
1792 * @pre This method can be called if SCIP is in one of the following stages:
1793 * - \ref SCIP_STAGE_SOLVING
1794 * - \ref SCIP_STAGE_SOLVED
1795 */
1796SCIP_EXPORT
1798 SCIP* scip, /**< SCIP data structure */
1799 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1800 );
1801
1802/** gets the average cutoff score value over all variables
1803 *
1804 * @return the average cutoff score value over all variables
1805 *
1806 * @pre This method can be called if SCIP is in one of the following stages:
1807 * - \ref SCIP_STAGE_SOLVING
1808 * - \ref SCIP_STAGE_SOLVED
1809 */
1810SCIP_EXPORT
1812 SCIP* scip /**< SCIP data structure */
1813 );
1814
1815/** gets the average cutoff score value over all variables, only using the cutoff score information of the current run
1816 *
1817 * @return the average cutoff score value over all variables, only using the cutoff score information of the current run
1818 *
1819 * @pre This method can be called if SCIP is in one of the following stages:
1820 * - \ref SCIP_STAGE_SOLVING
1821 * - \ref SCIP_STAGE_SOLVED
1822 */
1823SCIP_EXPORT
1825 SCIP* scip /**< SCIP data structure */
1826 );
1827
1828/** returns the average normalized efficacy of a GMI cut over all variables
1829 *
1830 * @return the average normalized efficacy of a GMI cut over all variables
1831 *
1832 * @pre This method can be called if SCIP is in one of the following stages:
1833 * - \ref SCIP_STAGE_SOLVING
1834 * - \ref SCIP_STAGE_SOLVED
1835 */
1836SCIP_EXPORT
1838 SCIP* scip /**< SCIP data structure */
1839 );
1840
1841/** increases the average normalized efficacy of a GMI cut over all variables
1842 *
1843 * @pre This method can be called if SCIP is in one of the following stages:
1844 * - \ref SCIP_STAGE_SOLVING
1845 * - \ref SCIP_STAGE_SOLVED
1846 */
1847SCIP_EXPORT
1848void SCIPincAvgGMIeff(
1849 SCIP* scip, /**< SCIP data structure */
1850 SCIP_Real gmieff /**< average normalized GMI efficacy over all variables */
1851 );
1852
1853/** computes a deterministic measure of time from statistics
1854 *
1855 * @return the deterministic time
1856 *
1857 * @pre This method can be called if SCIP is in one of the following stages:
1858 * - \ref SCIP_STAGE_PRESOLVING
1859 * - \ref SCIP_STAGE_PRESOLVED
1860 * - \ref SCIP_STAGE_SOLVING
1861 * - \ref SCIP_STAGE_SOLVED
1862 */
1863SCIP_EXPORT
1865 SCIP* scip /**< SCIP data structure */
1866 );
1867
1868/** outputs status statistics
1869 *
1870 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
1871 * thus may correspond to the original status.
1872 *
1873 * @pre This method can be called if SCIP is in one of the following stages:
1874 * - \ref SCIP_STAGE_INIT
1875 * - \ref SCIP_STAGE_PROBLEM
1876 * - \ref SCIP_STAGE_TRANSFORMED
1877 * - \ref SCIP_STAGE_INITPRESOLVE
1878 * - \ref SCIP_STAGE_PRESOLVING
1879 * - \ref SCIP_STAGE_EXITPRESOLVE
1880 * - \ref SCIP_STAGE_PRESOLVED
1881 * - \ref SCIP_STAGE_SOLVING
1882 * - \ref SCIP_STAGE_SOLVED
1883 */
1884SCIP_EXPORT
1886 SCIP* scip, /**< SCIP data structure */
1887 FILE* file /**< output file */
1888 );
1889
1890/** collects status statistics in a SCIP_DATATREE object
1891 *
1892 * This function sets:
1893 * - status: the current status of the solver
1894 * - info: info about the keys and values stored in the datatree
1895 *
1896 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
1897 * thus may correspond to the original status.
1898 *
1899 * @pre This method can be called if SCIP is in one of the following stages:
1900 * - \ref SCIP_STAGE_INIT
1901 * - \ref SCIP_STAGE_PROBLEM
1902 * - \ref SCIP_STAGE_TRANSFORMED
1903 * - \ref SCIP_STAGE_INITPRESOLVE
1904 * - \ref SCIP_STAGE_PRESOLVING
1905 * - \ref SCIP_STAGE_EXITPRESOLVE
1906 * - \ref SCIP_STAGE_PRESOLVED
1907 * - \ref SCIP_STAGE_SOLVING
1908 * - \ref SCIP_STAGE_SOLVED
1909 */
1910SCIP_EXPORT
1912 SCIP* scip, /**< SCIP data structure */
1913 SCIP_DATATREE* datatree /**< data tree */
1914 );
1915
1916/** outputs timing statistics
1917 *
1918 * @pre This method can be called if SCIP is in one of the following stages:
1919 * - \ref SCIP_STAGE_PROBLEM
1920 * - \ref SCIP_STAGE_TRANSFORMED
1921 * - \ref SCIP_STAGE_INITPRESOLVE
1922 * - \ref SCIP_STAGE_PRESOLVING
1923 * - \ref SCIP_STAGE_EXITPRESOLVE
1924 * - \ref SCIP_STAGE_PRESOLVED
1925 * - \ref SCIP_STAGE_SOLVING
1926 * - \ref SCIP_STAGE_SOLVED
1927 */
1928SCIP_EXPORT
1930 SCIP* scip, /**< SCIP data structure */
1931 FILE* file /**< output file */
1932 );
1933
1934/** collects timing statistics in SCIP_DATATREE
1935 *
1936 * The following keys are set:
1937 * - "total_time": Total time spent in SCIP.
1938 * - "solving_time": Time spent solving the problem.
1939 * - "presolving_time": Time spent in presolving.
1940 * - "reading_time": Time spent reading the problem.
1941 * - "copy_time": Time spent copying the problem (if applicable).
1942 *
1943 * @pre This method can be called if SCIP is in one of the following stages:
1944 * - \ref SCIP_STAGE_PROBLEM
1945 * - \ref SCIP_STAGE_TRANSFORMED
1946 * - \ref SCIP_STAGE_INITPRESOLVE
1947 * - \ref SCIP_STAGE_PRESOLVING
1948 * - \ref SCIP_STAGE_EXITPRESOLVE
1949 * - \ref SCIP_STAGE_PRESOLVED
1950 * - \ref SCIP_STAGE_SOLVING
1951 * - \ref SCIP_STAGE_SOLVED
1952 */
1953SCIP_EXPORT
1955 SCIP* scip, /**< SCIP data structure */
1956 SCIP_DATATREE* datatree /**< data tree */
1957 );
1958
1959/** outputs statistics for original problem
1960 *
1961 * @pre This method can be called if SCIP is in one of the following stages:
1962 * - \ref SCIP_STAGE_PROBLEM
1963 * - \ref SCIP_STAGE_TRANSFORMED
1964 * - \ref SCIP_STAGE_INITPRESOLVE
1965 * - \ref SCIP_STAGE_PRESOLVING
1966 * - \ref SCIP_STAGE_EXITPRESOLVE
1967 * - \ref SCIP_STAGE_PRESOLVED
1968 * - \ref SCIP_STAGE_SOLVING
1969 * - \ref SCIP_STAGE_SOLVED
1970 */
1971SCIP_EXPORT
1973 SCIP* scip, /**< SCIP data structure */
1974 FILE* file /**< output file (or NULL for standard output) */
1975 );
1976
1977/** collects statistics for original problem in a SCIP_DATATREE object
1978 *
1979 * @pre This method can be called if SCIP is in one of the following stages:
1980 * - \ref SCIP_STAGE_PROBLEM
1981 * - \ref SCIP_STAGE_TRANSFORMED
1982 * - \ref SCIP_STAGE_INITPRESOLVE
1983 * - \ref SCIP_STAGE_PRESOLVING
1984 * - \ref SCIP_STAGE_EXITPRESOLVE
1985 * - \ref SCIP_STAGE_PRESOLVED
1986 * - \ref SCIP_STAGE_SOLVING
1987 * - \ref SCIP_STAGE_SOLVED
1988 */
1989SCIP_EXPORT
1991 SCIP* scip, /**< SCIP data structure */
1992 SCIP_DATATREE* datatree /**< data tree */
1993 );
1994
1995/** outputs statistics for transformed problem
1996 *
1997 * @pre This method can be called if SCIP is in one of the following stages:
1998 * - \ref SCIP_STAGE_PROBLEM
1999 * - \ref SCIP_STAGE_TRANSFORMED
2000 * - \ref SCIP_STAGE_INITPRESOLVE
2001 * - \ref SCIP_STAGE_PRESOLVING
2002 * - \ref SCIP_STAGE_EXITPRESOLVE
2003 * - \ref SCIP_STAGE_PRESOLVED
2004 * - \ref SCIP_STAGE_SOLVING
2005 * - \ref SCIP_STAGE_SOLVED
2006 */
2007SCIP_EXPORT
2009 SCIP* scip, /**< SCIP data structure */
2010 FILE* file /**< output file */
2011 );
2012
2013/** collects statistics for transformed problem
2014 *
2015 * @pre This method can be called if SCIP is in one of the following stages:
2016 * - \ref SCIP_STAGE_PROBLEM
2017 * - \ref SCIP_STAGE_TRANSFORMED
2018 * - \ref SCIP_STAGE_INITPRESOLVE
2019 * - \ref SCIP_STAGE_PRESOLVING
2020 * - \ref SCIP_STAGE_EXITPRESOLVE
2021 * - \ref SCIP_STAGE_PRESOLVED
2022 * - \ref SCIP_STAGE_SOLVING
2023 * - \ref SCIP_STAGE_SOLVED
2024 */
2025SCIP_EXPORT
2027 SCIP* scip, /**< SCIP data structure */
2028 SCIP_DATATREE* datatree /**< data tree */
2029 );
2030
2031/** outputs presolver statistics
2032 *
2033 * @pre This method can be called if SCIP is in one of the following stages:
2034 * - \ref SCIP_STAGE_TRANSFORMED
2035 * - \ref SCIP_STAGE_INITPRESOLVE
2036 * - \ref SCIP_STAGE_PRESOLVING
2037 * - \ref SCIP_STAGE_EXITPRESOLVE
2038 * - \ref SCIP_STAGE_PRESOLVED
2039 * - \ref SCIP_STAGE_SOLVING
2040 * - \ref SCIP_STAGE_SOLVED
2041 */
2042SCIP_EXPORT
2044 SCIP* scip, /**< SCIP data structure */
2045 FILE* file /**< output file */
2046 );
2047
2048/** collects presolver statistics
2049 *
2050 * @pre This method can be called if SCIP is in one of the following stages:
2051 * - \ref SCIP_STAGE_TRANSFORMED
2052 * - \ref SCIP_STAGE_INITPRESOLVE
2053 * - \ref SCIP_STAGE_PRESOLVING
2054 * - \ref SCIP_STAGE_EXITPRESOLVE
2055 * - \ref SCIP_STAGE_PRESOLVED
2056 * - \ref SCIP_STAGE_SOLVING
2057 * - \ref SCIP_STAGE_SOLVED
2058 */
2059SCIP_EXPORT
2061 SCIP* scip, /**< SCIP data structure */
2062 SCIP_DATATREE* datatree /**< data tree */
2063 );
2064
2065/** outputs constraint statistics
2066 *
2067 * @pre This method can be called if SCIP is in one of the following stages:
2068 * - \ref SCIP_STAGE_TRANSFORMED
2069 * - \ref SCIP_STAGE_INITPRESOLVE
2070 * - \ref SCIP_STAGE_PRESOLVING
2071 * - \ref SCIP_STAGE_EXITPRESOLVE
2072 * - \ref SCIP_STAGE_PRESOLVED
2073 * - \ref SCIP_STAGE_SOLVING
2074 * - \ref SCIP_STAGE_SOLVED
2075 */
2076SCIP_EXPORT
2078 SCIP* scip, /**< SCIP data structure */
2079 FILE* file /**< output file */
2080 );
2081
2082/** collects constraint statistics
2083 *
2084 * @pre This method can be called if SCIP is in one of the following stages:
2085 * - \ref SCIP_STAGE_TRANSFORMED
2086 * - \ref SCIP_STAGE_INITPRESOLVE
2087 * - \ref SCIP_STAGE_PRESOLVING
2088 * - \ref SCIP_STAGE_EXITPRESOLVE
2089 * - \ref SCIP_STAGE_PRESOLVED
2090 * - \ref SCIP_STAGE_SOLVING
2091 * - \ref SCIP_STAGE_SOLVED
2092 */
2093SCIP_EXPORT
2095 SCIP* scip, /**< SCIP data structure */
2096 SCIP_DATATREE* datatree /**< data tree */
2097 );
2098
2099/** outputs constraint timing statistics
2100 *
2101 * @pre This method can be called if SCIP is in one of the following stages:
2102 * - \ref SCIP_STAGE_TRANSFORMED
2103 * - \ref SCIP_STAGE_INITPRESOLVE
2104 * - \ref SCIP_STAGE_PRESOLVING
2105 * - \ref SCIP_STAGE_EXITPRESOLVE
2106 * - \ref SCIP_STAGE_PRESOLVED
2107 * - \ref SCIP_STAGE_SOLVING
2108 * - \ref SCIP_STAGE_SOLVED
2109 */
2110SCIP_EXPORT
2112 SCIP* scip, /**< SCIP data structure */
2113 FILE* file /**< output file */
2114 );
2115
2116/** collects constraint timing statistics
2117 *
2118 * @pre This method can be called if SCIP is in one of the following stages:
2119 * - \ref SCIP_STAGE_TRANSFORMED
2120 * - \ref SCIP_STAGE_INITPRESOLVE
2121 * - \ref SCIP_STAGE_PRESOLVING
2122 * - \ref SCIP_STAGE_EXITPRESOLVE
2123 * - \ref SCIP_STAGE_PRESOLVED
2124 * - \ref SCIP_STAGE_SOLVING
2125 * - \ref SCIP_STAGE_SOLVED
2126 */
2127SCIP_EXPORT
2129 SCIP* scip, /**< SCIP data structure */
2130 SCIP_DATATREE* datatree /**< data tree */
2131 );
2132
2133/** outputs propagator statistics
2134 *
2135 * @pre This method can be called if SCIP is in one of the following stages:
2136 * - \ref SCIP_STAGE_TRANSFORMED
2137 * - \ref SCIP_STAGE_INITPRESOLVE
2138 * - \ref SCIP_STAGE_PRESOLVING
2139 * - \ref SCIP_STAGE_EXITPRESOLVE
2140 * - \ref SCIP_STAGE_PRESOLVED
2141 * - \ref SCIP_STAGE_SOLVING
2142 * - \ref SCIP_STAGE_SOLVED
2143 */
2144SCIP_EXPORT
2146 SCIP* scip, /**< SCIP data structure */
2147 FILE* file /**< output file */
2148 );
2149
2150/** collects propagator statistics
2151 *
2152 * @pre This method can be called if SCIP is in one of the following stages:
2153 * - \ref SCIP_STAGE_TRANSFORMED
2154 * - \ref SCIP_STAGE_INITPRESOLVE
2155 * - \ref SCIP_STAGE_PRESOLVING
2156 * - \ref SCIP_STAGE_EXITPRESOLVE
2157 * - \ref SCIP_STAGE_PRESOLVED
2158 * - \ref SCIP_STAGE_SOLVING
2159 * - \ref SCIP_STAGE_SOLVED
2160 */
2161SCIP_EXPORT
2163 SCIP* scip, /**< SCIP data structure */
2164 SCIP_DATATREE* datatree /**< data tree */
2165 );
2166
2167/** outputs conflict statistics
2168 *
2169 * @pre This method can be called if SCIP is in one of the following stages:
2170 * - \ref SCIP_STAGE_TRANSFORMED
2171 * - \ref SCIP_STAGE_INITPRESOLVE
2172 * - \ref SCIP_STAGE_PRESOLVING
2173 * - \ref SCIP_STAGE_EXITPRESOLVE
2174 * - \ref SCIP_STAGE_PRESOLVED
2175 * - \ref SCIP_STAGE_SOLVING
2176 * - \ref SCIP_STAGE_SOLVED
2177 */
2178SCIP_EXPORT
2180 SCIP* scip, /**< SCIP data structure */
2181 FILE* file /**< output file */
2182 );
2183
2184/** collects conflict statistics
2185 *
2186 * @pre This method can be called if SCIP is in one of the following stages:
2187 * - \ref SCIP_STAGE_TRANSFORMED
2188 * - \ref SCIP_STAGE_INITPRESOLVE
2189 * - \ref SCIP_STAGE_PRESOLVING
2190 * - \ref SCIP_STAGE_EXITPRESOLVE
2191 * - \ref SCIP_STAGE_PRESOLVED
2192 * - \ref SCIP_STAGE_SOLVING
2193 * - \ref SCIP_STAGE_SOLVED
2194 */
2195SCIP_EXPORT
2197 SCIP* scip, /**< SCIP data structure */
2198 SCIP_DATATREE* datatree /**< data tree */
2199 );
2200
2201/** outputs separator statistics
2202 *
2203 * Columns:
2204 * - RootCalls: The number of calls that happened at the root.
2205 * - FoundCuts: The total number of cuts generated by the separators.
2206 * Note: Cutpool-FoundCuts \f$= \sum_{i=1}^nsepas ( Foundcuts_i - DirectAdd_i )\f$.
2207 * - ViaPoolAdd: The total number of cuts added to the sepastore from the cutpool.
2208 * - DirectAdd: The total number of cuts added directly to the sepastore from the separator.
2209 * - Applied: The sum of all cuts from the separator that were applied to the LP.
2210 * - ViaPoolApp: The number of cuts that entered the sepastore from the cutpool that were applied to the LP.
2211 * - DirectApp: The number of cuts that entered the sepastore directly and were applied to the LP.
2212 *
2213 * The number of cuts ViaPoolAdd + Directly should be equal to the number of cuts Filtered + Forced + Selected in the
2214 * cutselector statistics.
2215 *
2216 * @note The following edge case may lead to over or undercounting of statistics: When SCIPapplyCutsProbing() is
2217 * called, cuts are counted for the cut selection statistics, but not for the separator statistics. This
2218 * happens, e.g., in the default plugin prop_obbt.c.
2219 *
2220 * @pre This method can be called if SCIP is in one of the following stages:
2221 * - \ref SCIP_STAGE_SOLVING
2222 * - \ref SCIP_STAGE_SOLVED
2223 */
2224SCIP_EXPORT
2226 SCIP* scip, /**< SCIP data structure */
2227 FILE* file /**< output file */
2228 );
2229
2230/** collects separator statistics
2231 *
2232 * @pre This method can be called if SCIP is in one of the following stages:
2233 * - \ref SCIP_STAGE_SOLVING
2234 * - \ref SCIP_STAGE_SOLVED
2235 */
2236SCIP_EXPORT
2238 SCIP* scip, /**< SCIP data structure */
2239 SCIP_DATATREE* datatree /**< data tree */
2240 );
2241
2242/** outputs cutselector statistics
2243 *
2244 * @pre This method can be called if SCIP is in one of the following stages:
2245 * - \ref SCIP_STAGE_SOLVING
2246 * - \ref SCIP_STAGE_SOLVED
2247 */
2248SCIP_EXPORT
2250 SCIP* scip, /**< SCIP data structure */
2251 FILE* file /**< output file */
2252 );
2253
2254/** collects cutselector statistics
2255 *
2256 * @pre This method can be called if SCIP is in one of the following stages:
2257 * - \ref SCIP_STAGE_SOLVING
2258 * - \ref SCIP_STAGE_SOLVED
2259 */
2260SCIP_EXPORT
2262 SCIP* scip, /**< SCIP data structure */
2263 SCIP_DATATREE* datatree /**< data tree */
2264 );
2265
2266/** outputs pricer statistics
2267 *
2268 * @pre This method can be called if SCIP is in one of the following stages:
2269 * - \ref SCIP_STAGE_SOLVING
2270 * - \ref SCIP_STAGE_SOLVED
2271 */
2272SCIP_EXPORT
2274 SCIP* scip, /**< SCIP data structure */
2275 FILE* file /**< output file */
2276 );
2277
2278/** collects pricer statistics
2279 *
2280 * @pre This method can be called if SCIP is in one of the following stages:
2281 * - \ref SCIP_STAGE_SOLVING
2282 * - \ref SCIP_STAGE_SOLVED
2283 */
2284SCIP_EXPORT
2286 SCIP* scip, /**< SCIP data structure */
2287 SCIP_DATATREE* datatree /**< data tree */
2288 );
2289
2290/** outputs branching rule statistics
2291 *
2292 * @pre This method can be called if SCIP is in one of the following stages:
2293 * - \ref SCIP_STAGE_SOLVING
2294 * - \ref SCIP_STAGE_SOLVED
2295 */
2296SCIP_EXPORT
2298 SCIP* scip, /**< SCIP data structure */
2299 FILE* file /**< output file */
2300 );
2301
2302
2303/** collects branching rule statistics in a SCIP_DATATREE object */
2304SCIP_EXPORT
2306 SCIP* scip, /**< SCIP data structure */
2307 SCIP_DATATREE* datatree /**< data tree */
2308 );
2309
2310/** outputs heuristics statistics
2311 *
2312 * @pre This method can be called if SCIP is in one of the following stages:
2313 * - \ref SCIP_STAGE_PRESOLVING
2314 * - \ref SCIP_STAGE_EXITPRESOLVE
2315 * - \ref SCIP_STAGE_PRESOLVED
2316 * - \ref SCIP_STAGE_SOLVING
2317 * - \ref SCIP_STAGE_SOLVED
2318 */
2319SCIP_EXPORT
2321 SCIP* scip, /**< SCIP data structure */
2322 FILE* file /**< output file */
2323 );
2324
2325/** collects heuristics statistics into SCIP_DATATREE
2326 *
2327 * @pre This method can be called if SCIP is in one of the following stages:
2328 * - \ref SCIP_STAGE_PRESOLVING
2329 * - \ref SCIP_STAGE_EXITPRESOLVE
2330 * - \ref SCIP_STAGE_PRESOLVED
2331 * - \ref SCIP_STAGE_SOLVING
2332 * - \ref SCIP_STAGE_SOLVED
2333 */
2334SCIP_EXPORT
2336 SCIP* scip, /**< SCIP data structure */
2337 SCIP_DATATREE* datatree /**< data tree */
2338 );
2339
2340/** outputs compression statistics
2341 *
2342 * @pre This method can be called if SCIP is in one of the following stages:
2343 * - \ref SCIP_STAGE_PRESOLVING
2344 * - \ref SCIP_STAGE_EXITPRESOLVE
2345 * - \ref SCIP_STAGE_PRESOLVED
2346 * - \ref SCIP_STAGE_SOLVING
2347 * - \ref SCIP_STAGE_SOLVED
2348 */
2349SCIP_EXPORT
2351 SCIP* scip, /**< SCIP data structure */
2352 FILE* file /**< output file */
2353 );
2354
2355/** collects compression statistics
2356 *
2357 * @pre This method can be called if SCIP is in one of the following stages:
2358 * - \ref SCIP_STAGE_PRESOLVING
2359 * - \ref SCIP_STAGE_EXITPRESOLVE
2360 * - \ref SCIP_STAGE_PRESOLVED
2361 * - \ref SCIP_STAGE_SOLVING
2362 * - \ref SCIP_STAGE_SOLVED
2363 */
2364SCIP_EXPORT
2366 SCIP* scip, /**< SCIP data structure */
2367 SCIP_DATATREE* datatree /**< data tree */
2368 );
2369
2370/** outputs LP statistics
2371 *
2372 * @pre This method can be called if SCIP is in one of the following stages:
2373 * - \ref SCIP_STAGE_SOLVING
2374 * - \ref SCIP_STAGE_SOLVED
2375 */
2376SCIP_EXPORT
2378 SCIP* scip, /**< SCIP data structure */
2379 FILE* file /**< output file */
2380 );
2381
2382/** collects LP statistics
2383 *
2384 * @pre This method can be called if SCIP is in one of the following stages:
2385 * - \ref SCIP_STAGE_SOLVING
2386 * - \ref SCIP_STAGE_SOLVED
2387 */
2388SCIP_EXPORT
2390 SCIP* scip, /**< SCIP data structure */
2391 SCIP_DATATREE* datatree /**< data tree */
2392 );
2393
2394/** outputs NLP statistics
2395 *
2396 * @pre This method can be called if SCIP is in one of the following stages:
2397 * - \ref SCIP_STAGE_SOLVING
2398 * - \ref SCIP_STAGE_SOLVED
2399 */
2400SCIP_EXPORT
2402 SCIP* scip, /**< SCIP data structure */
2403 FILE* file /**< output file */
2404 );
2405
2406/** collects NLP statistics
2407 *
2408 * @pre This method can be called if SCIP is in one of the following stages:
2409 * - \ref SCIP_STAGE_SOLVING
2410 * - \ref SCIP_STAGE_SOLVED
2411 */
2412SCIP_EXPORT
2414 SCIP* scip, /**< SCIP data structure */
2415 SCIP_DATATREE* datatree /**< data tree */
2416 );
2417
2418/** outputs relaxator statistics
2419 *
2420 * @pre This method can be called if SCIP is in one of the following stages:
2421 * - \ref SCIP_STAGE_SOLVING
2422 * - \ref SCIP_STAGE_SOLVED
2423 */
2424SCIP_EXPORT
2426 SCIP* scip, /**< SCIP data structure */
2427 FILE* file /**< output file */
2428 );
2429
2430/** collects relaxator statistics
2431 *
2432 * @pre This method can be called if SCIP is in one of the following stages:
2433 * - \ref SCIP_STAGE_SOLVING
2434 * - \ref SCIP_STAGE_SOLVED
2435 */
2436SCIP_EXPORT
2438 SCIP* scip, /**< SCIP data structure */
2439 SCIP_DATATREE* datatree /**< data tree */
2440 );
2441
2442/** outputs tree statistics
2443 *
2444 * @pre This method can be called if SCIP is in one of the following stages:
2445 * - \ref SCIP_STAGE_SOLVING
2446 * - \ref SCIP_STAGE_SOLVED
2447 */
2448SCIP_EXPORT
2450 SCIP* scip, /**< SCIP data structure */
2451 FILE* file /**< output file */
2452 );
2453
2454/** collects tree statistics
2455 *
2456 * @pre This method can be called if SCIP is in one of the following stages:
2457 * - \ref SCIP_STAGE_SOLVING
2458 * - \ref SCIP_STAGE_SOLVED
2459 */
2460SCIP_EXPORT
2462 SCIP* scip, /**< SCIP data structure */
2463 SCIP_DATATREE* datatree /**< data tree */
2464 );
2465
2466/** outputs root statistics
2467 *
2468 * @pre This method can be called if SCIP is in one of the following stages:
2469 * - \ref SCIP_STAGE_SOLVING
2470 * - \ref SCIP_STAGE_SOLVED
2471 */
2472SCIP_EXPORT
2474 SCIP* scip, /**< SCIP data structure */
2475 FILE* file /**< output file */
2476 );
2477
2478/** collects root statistics
2479 *
2480 * @pre This method can be called if SCIP is in one of the following stages:
2481 * - \ref SCIP_STAGE_SOLVING
2482 * - \ref SCIP_STAGE_SOLVED
2483 */
2484SCIP_EXPORT
2486 SCIP* scip, /**< SCIP data structure */
2487 SCIP_DATATREE* datatree /**< data tree */
2488 );
2489
2490/** outputs solution statistics
2491 *
2492 * @pre This method can be called if SCIP is in one of the following stages:
2493 * - \ref SCIP_STAGE_PRESOLVING
2494 * - \ref SCIP_STAGE_EXITPRESOLVE
2495 * - \ref SCIP_STAGE_PRESOLVED
2496 * - \ref SCIP_STAGE_SOLVING
2497 * - \ref SCIP_STAGE_SOLVED
2498 */
2499SCIP_EXPORT
2501 SCIP* scip, /**< SCIP data structure */
2502 FILE* file /**< output file */
2503 );
2504
2505/** collects solution statistics
2506 *
2507 * @pre This method can be called if SCIP is in one of the following stages:
2508 * - \ref SCIP_STAGE_PRESOLVING
2509 * - \ref SCIP_STAGE_EXITPRESOLVE
2510 * - \ref SCIP_STAGE_PRESOLVED
2511 * - \ref SCIP_STAGE_SOLVING
2512 * - \ref SCIP_STAGE_SOLVED
2513 */
2514SCIP_EXPORT
2516 SCIP* scip, /**< SCIP data structure */
2517 SCIP_DATATREE* datatree /**< data tree */
2518 );
2519
2520/** outputs concurrent solver statistics
2521 *
2522 * @pre This method can be called if SCIP is in one of the following stages:
2523 * - \ref SCIP_STAGE_TRANSFORMED
2524 * - \ref SCIP_STAGE_INITPRESOLVE
2525 * - \ref SCIP_STAGE_PRESOLVING
2526 * - \ref SCIP_STAGE_EXITPRESOLVE
2527 * - \ref SCIP_STAGE_PRESOLVED
2528 * - \ref SCIP_STAGE_SOLVING
2529 * - \ref SCIP_STAGE_SOLVED
2530 */
2531SCIP_EXPORT
2533 SCIP* scip, /**< SCIP data structure */
2534 FILE* file /**< output file */
2535 );
2536
2537/** collects concurrent solver statistics
2538 *
2539 * @pre This method can be called if SCIP is in one of the following stages:
2540 * - \ref SCIP_STAGE_TRANSFORMED
2541 * - \ref SCIP_STAGE_INITPRESOLVE
2542 * - \ref SCIP_STAGE_PRESOLVING
2543 * - \ref SCIP_STAGE_EXITPRESOLVE
2544 * - \ref SCIP_STAGE_PRESOLVED
2545 * - \ref SCIP_STAGE_SOLVING
2546 * - \ref SCIP_STAGE_SOLVED
2547 */
2548SCIP_EXPORT
2550 SCIP* scip, /**< SCIP data structure */
2551 SCIP_DATATREE* datatree /**< data tree */
2552);
2553
2554/** outputs Benders' decomposition statistics
2555 *
2556 * @pre This method can be called if SCIP is in one of the following stages:
2557 * - \ref SCIP_STAGE_SOLVING
2558 * - \ref SCIP_STAGE_SOLVED
2559 */
2560SCIP_EXPORT
2562 SCIP* scip, /**< SCIP data structure */
2563 FILE* file /**< output file */
2564 );
2565
2566/** collects Benders' decomposition statistics
2567 *
2568 * @pre This method can be called if SCIP is in one of the following stages:
2569 * - \ref SCIP_STAGE_SOLVING
2570 * - \ref SCIP_STAGE_SOLVED
2571 */
2572SCIP_EXPORT
2574 SCIP* scip, /**< SCIP data structure */
2575 SCIP_DATATREE* datatree /**< data tree */
2576 );
2577
2578/** outputs expression handler statistics
2579 *
2580 * @pre This method can be called if SCIP is in one of the following stages:
2581 * - \ref SCIP_STAGE_PROBLEM
2582 * - \ref SCIP_STAGE_TRANSFORMED
2583 * - \ref SCIP_STAGE_INITPRESOLVE
2584 * - \ref SCIP_STAGE_PRESOLVING
2585 * - \ref SCIP_STAGE_EXITPRESOLVE
2586 * - \ref SCIP_STAGE_PRESOLVED
2587 * - \ref SCIP_STAGE_SOLVING
2588 * - \ref SCIP_STAGE_SOLVED
2589 */
2590SCIP_EXPORT
2592 SCIP* scip, /**< SCIP data structure */
2593 FILE* file /**< output file */
2594 );
2595
2596/** collects expression handler statistics
2597 *
2598 * @pre This method can be called if SCIP is in one of the following stages:
2599 * - \ref SCIP_STAGE_PROBLEM
2600 * - \ref SCIP_STAGE_TRANSFORMED
2601 * - \ref SCIP_STAGE_INITPRESOLVE
2602 * - \ref SCIP_STAGE_PRESOLVING
2603 * - \ref SCIP_STAGE_EXITPRESOLVE
2604 * - \ref SCIP_STAGE_PRESOLVED
2605 * - \ref SCIP_STAGE_SOLVING
2606 * - \ref SCIP_STAGE_SOLVED
2607 */
2608SCIP_EXPORT
2610 SCIP* scip, /**< SCIP data structure */
2611 SCIP_DATATREE* datatree /**< data tree */
2612 );
2613
2614/** outputs NLPI statistics
2615 *
2616 * @pre This method can be called if SCIP is in one of the following stages:
2617 * - \ref SCIP_STAGE_PROBLEM
2618 * - \ref SCIP_STAGE_TRANSFORMED
2619 * - \ref SCIP_STAGE_INITPRESOLVE
2620 * - \ref SCIP_STAGE_PRESOLVING
2621 * - \ref SCIP_STAGE_EXITPRESOLVE
2622 * - \ref SCIP_STAGE_PRESOLVED
2623 * - \ref SCIP_STAGE_SOLVING
2624 * - \ref SCIP_STAGE_SOLVED
2625 */
2626SCIP_EXPORT
2628 SCIP* scip, /**< SCIP data structure */
2629 FILE* file /**< output file */
2630 );
2631
2632/** collects NLPI statistics
2633 *
2634 * @pre This method can be called if SCIP is in one of the following stages:
2635 * - \ref SCIP_STAGE_PROBLEM
2636 * - \ref SCIP_STAGE_TRANSFORMED
2637 * - \ref SCIP_STAGE_INITPRESOLVE
2638 * - \ref SCIP_STAGE_PRESOLVING
2639 * - \ref SCIP_STAGE_EXITPRESOLVE
2640 * - \ref SCIP_STAGE_PRESOLVED
2641 * - \ref SCIP_STAGE_SOLVING
2642 * - \ref SCIP_STAGE_SOLVED
2643 */
2644SCIP_EXPORT
2646 SCIP* scip, /**< SCIP data structure */
2647 SCIP_DATATREE* datatree /**< data tree */
2648 );
2649
2650/** outputs solving statistics
2651 *
2652 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2653 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2654 *
2655 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
2656 * thus may to correspond to the original status.
2657 *
2658 * @pre This method can be called if SCIP is in one of the following stages:
2659 * - \ref SCIP_STAGE_INIT
2660 * - \ref SCIP_STAGE_PROBLEM
2661 * - \ref SCIP_STAGE_TRANSFORMED
2662 * - \ref SCIP_STAGE_INITPRESOLVE
2663 * - \ref SCIP_STAGE_PRESOLVING
2664 * - \ref SCIP_STAGE_EXITPRESOLVE
2665 * - \ref SCIP_STAGE_PRESOLVED
2666 * - \ref SCIP_STAGE_SOLVING
2667 * - \ref SCIP_STAGE_SOLVED
2668 */
2669SCIP_EXPORT
2671 SCIP* scip, /**< SCIP data structure */
2672 FILE* file /**< output file (or NULL for standard output) */
2673 );
2674
2675/** outputs solving statistics in JSON format
2676 *
2677 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2678 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2679 *
2680 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
2681 * thus may correspond to the original status.
2682 *
2683 * @pre This method can be called if SCIP is in one of the following stages:
2684 * - \ref SCIP_STAGE_INIT
2685 * - \ref SCIP_STAGE_PROBLEM
2686 * - \ref SCIP_STAGE_TRANSFORMED
2687 * - \ref SCIP_STAGE_INITPRESOLVE
2688 * - \ref SCIP_STAGE_PRESOLVING
2689 * - \ref SCIP_STAGE_EXITPRESOLVE
2690 * - \ref SCIP_STAGE_PRESOLVED
2691 * - \ref SCIP_STAGE_SOLVING
2692 * - \ref SCIP_STAGE_SOLVED
2693 */
2694SCIP_EXPORT
2696 SCIP* scip, /**< SCIP data structure */
2697 FILE* file /**< output file (or NULL for standard output) */
2698 );
2699
2700/** outputs reoptimization statistics
2701 *
2702 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2703 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2704 *
2705 * @pre This method can be called if SCIP is in one of the following stages:
2706 * - \ref SCIP_STAGE_INIT
2707 * - \ref SCIP_STAGE_PROBLEM
2708 * - \ref SCIP_STAGE_TRANSFORMED
2709 * - \ref SCIP_STAGE_INITPRESOLVE
2710 * - \ref SCIP_STAGE_PRESOLVING
2711 * - \ref SCIP_STAGE_EXITPRESOLVE
2712 * - \ref SCIP_STAGE_PRESOLVED
2713 * - \ref SCIP_STAGE_SOLVING
2714 * - \ref SCIP_STAGE_SOLVED
2715 */
2716SCIP_EXPORT
2718 SCIP* scip, /**< SCIP data structure */
2719 FILE* file /**< output file (or NULL for standard output) */
2720 );
2721
2722/** outputs history statistics about branchings on variables
2723 *
2724 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2725 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2726 *
2727 * @pre This method can be called if SCIP is in one of the following stages:
2728 * - \ref SCIP_STAGE_INIT
2729 * - \ref SCIP_STAGE_PROBLEM
2730 * - \ref SCIP_STAGE_TRANSFORMED
2731 * - \ref SCIP_STAGE_INITPRESOLVE
2732 * - \ref SCIP_STAGE_PRESOLVING
2733 * - \ref SCIP_STAGE_EXITPRESOLVE
2734 * - \ref SCIP_STAGE_PRESOLVED
2735 * - \ref SCIP_STAGE_SOLVING
2736 * - \ref SCIP_STAGE_SOLVED
2737 */
2738SCIP_EXPORT
2740 SCIP* scip, /**< SCIP data structure */
2741 FILE* file /**< output file (or NULL for standard output) */
2742 );
2743
2744/** collects branching statistics about variables in a SCIP_DATATREE
2745 *
2746 * This function collects detailed branching statistics for all variables in the SCIP instance and organizes them into
2747 * a hierarchical structure in the provided `SCIP_DATATREE`. The statistics include locks, branchings, inferences,
2748 * cutoffs, pseudocosts, and strong branching information.
2749 *
2750 * The `datatree` will contain the following keys:
2751 * - `variables`: A nested table keyed by variable names, containing:
2752 * - `name`: Name of the variable.
2753 * - `priority`: Branching priority of the variable.
2754 * - `factor`: Branching factor of the variable.
2755 * - `locks_down`: Number of locks in the down direction.
2756 * - `locks_up`: Number of locks in the up direction.
2757 * - `avg_depth`: Average branching depth for the variable.
2758 * - `branchings_down`: Number of branchings in the down direction.
2759 * - `branchings_up`: Number of branchings in the up direction.
2760 * - `strong_branchings`: Number of strong branchings performed on the variable.
2761 * - `avg_inferences_down`: Average number of inferences per branching in the down direction.
2762 * - `avg_inferences_up`: Average number of inferences per branching in the up direction.
2763 * - `cutoff_rate_down`: Percentage of branchings in the down direction that led to cutoffs.
2764 * - `cutoff_rate_up`: Percentage of branchings in the up direction that led to cutoffs.
2765 * - `pseudocost_down`: Pseudocost in the down direction.
2766 * - `pseudocost_up`: Pseudocost in the up direction.
2767 * - `pseudocost_count_down`: Number of pseudocost updates in the down direction.
2768 * - `pseudocost_count_up`: Number of pseudocost updates in the up direction.
2769 * - `pseudocost_variance_down`: Variance of pseudocost in the down direction.
2770 * - `pseudocost_variance_up`: Variance of pseudocost in the up direction.
2771 * - `total_branchings_down`: Total number of branchings in the down direction across all variables.
2772 * - `total_branchings_up`: Total number of branchings in the up direction across all variables.
2773 * - `total_strong_branchings`: Total number of strong branchings across all variables.
2774 * - `avg_inferences_down`: Average inferences per branching in the down direction across all variables.
2775 * - `avg_inferences_up`: Average inferences per branching in the up direction across all variables.
2776 * - `avg_cutoff_rate_down`: Average cutoff rate for branchings in the down direction across all variables.
2777 * - `avg_cutoff_rate_up`: Average cutoff rate for branchings in the up direction across all variables.
2778 * - `status`: If the problem is not solved, a string indicating that statistics are not available.
2779 *
2780 * @pre This method can be called if SCIP is in one of the following stages:
2781 * - \ref SCIP_STAGE_INIT
2782 * - \ref SCIP_STAGE_PROBLEM
2783 * - \ref SCIP_STAGE_TRANSFORMED
2784 * - \ref SCIP_STAGE_INITPRESOLVE
2785 * - \ref SCIP_STAGE_PRESOLVING
2786 * - \ref SCIP_STAGE_EXITPRESOLVE
2787 * - \ref SCIP_STAGE_PRESOLVED
2788 * - \ref SCIP_STAGE_SOLVING
2789 * - \ref SCIP_STAGE_SOLVED
2790 *
2791 * @return \ref SCIP_OKAY if everything worked. Otherwise, a suitable error code is returned.
2792 */
2793SCIP_EXPORT
2795 SCIP* scip, /**< SCIP data structure */
2796 SCIP_DATATREE* datatree /**< data tree */
2797 );
2798
2799/** outputs node information display line
2800 *
2801 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2802 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2803 *
2804 * @pre This method can be called if SCIP is in one of the following stages:
2805 * - \ref SCIP_STAGE_SOLVING
2806 */
2807SCIP_EXPORT
2809 SCIP* scip, /**< SCIP data structure */
2810 FILE* file, /**< output file (or NULL for standard output) */
2811 SCIP_VERBLEVEL verblevel, /**< minimal verbosity level to actually display the information line */
2812 SCIP_Bool endline /**< should the line be terminated with a newline symbol? */
2813 );
2814
2815/** gets total number of implications between variables that are stored in the implication graph
2816 *
2817 * @return the total number of implications between variables that are stored in the implication graph
2818 *
2819 * @pre This method can be called if SCIP is in one of the following stages:
2820 * - \ref SCIP_STAGE_INITPRESOLVE
2821 * - \ref SCIP_STAGE_PRESOLVING
2822 * - \ref SCIP_STAGE_EXITPRESOLVE
2823 * - \ref SCIP_STAGE_PRESOLVED
2824 * - \ref SCIP_STAGE_INITSOLVE
2825 * - \ref SCIP_STAGE_SOLVING
2826 * - \ref SCIP_STAGE_SOLVED
2827 */
2828SCIP_EXPORT
2830 SCIP* scip /**< SCIP data structure */
2831 );
2832
2833/** update statistical information when a new solution was found */
2834SCIP_EXPORT
2836 SCIP* scip /**< SCIP data structure */
2837 );
2838
2839/** recomputes and returns the primal dual gap stored in the stats
2840 *
2841 * @return returns the primal dual gap stored in the stats
2842 */
2843SCIP_EXPORT
2845 SCIP* scip /**< SCIP data structure */
2846 );
2847
2848/**@} */
2849
2850#ifdef __cplusplus
2851}
2852#endif
2853
2854#endif
common defines and data types used in all packages of SCIP
#define SCIP_Longint
Definition: def.h:141
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:156
#define nnodes
Definition: gastrans.c:74
void SCIPprintPropagatorStatistics(SCIP *scip, FILE *file)
void SCIPprintTreeStatistics(SCIP *scip, FILE *file)
void SCIPprintStatusStatistics(SCIP *scip, FILE *file)
SCIP_Real SCIPgetAvgConflictScoreCurrentRun(SCIP *scip)
SCIP_RETCODE SCIPcollectTimingStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_RATIONAL * SCIPgetCutoffboundExact(SCIP *scip)
void SCIPprintCompressionStatistics(SCIP *scip, FILE *file)
SCIP_Real SCIPgetAvgCutoffsCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
void SCIPprintRootStatistics(SCIP *scip, FILE *file)
SCIP_Bool SCIPisPrimalboundSol(SCIP *scip)
SCIP_RETCODE SCIPcollectRelaxatorStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Longint SCIPgetNConflictDualproofsApplied(SCIP *scip)
int SCIPgetNImplications(SCIP *scip)
void SCIPprintConstraintTimingStatistics(SCIP *scip, FILE *file)
void SCIPaddNNodes(SCIP *scip, SCIP_Longint nnodes)
void SCIPincAvgGMIeff(SCIP *scip, SCIP_Real gmieff)
SCIP_RETCODE SCIPcollectCutselectorStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Real SCIPgetDeterministicTime(SCIP *scip)
SCIP_Longint SCIPgetNSolsFound(SCIP *scip)
SCIP_Real SCIPgetPrimalbound(SCIP *scip)
int SCIPgetMaxDepth(SCIP *scip)
SCIP_RETCODE SCIPcollectNLPIStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_RETCODE SCIPupdateCutoffbound(SCIP *scip, SCIP_Real cutoffbound)
SCIP_Longint SCIPgetNBarrierLPIterations(SCIP *scip)
void SCIPgetUpperboundExact(SCIP *scip, SCIP_RATIONAL *result)
SCIP_Real SCIPgetAvgInferenceScore(SCIP *scip)
SCIP_RETCODE SCIPcollectStatusStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Longint SCIPgetNDivingLPIterations(SCIP *scip)
SCIP_Real SCIPgetAvgPseudocostScoreCurrentRun(SCIP *scip)
SCIP_RETCODE SCIPcollectConstraintStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_RETCODE SCIPcollectHeuristicStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Real SCIPgetUpperbound(SCIP *scip)
SCIP_Real SCIPgetLowerboundRoot(SCIP *scip)
SCIP_Real SCIPgetAvgConflictlengthScore(SCIP *scip)
void SCIPprintSolutionStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPcollectBendersStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Real SCIPgetAvgPseudocostCount(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPgetNInfeasibleLeaves(SCIP *scip)
void SCIPprintRelaxatorStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPcollectNLPStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Real SCIPgetGap(SCIP *scip)
SCIP_Longint SCIPgetNResolveLPIterations(SCIP *scip)
void SCIPprintOrigProblemStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNNodeZeroIterationLPs(SCIP *scip)
SCIP_Longint SCIPgetNNodes(SCIP *scip)
SCIP_Longint SCIPgetNFeasibleLeaves(SCIP *scip)
SCIP_Longint SCIPgetNNodeInitLPs(SCIP *scip)
int SCIPgetMaxTotalDepth(SCIP *scip)
SCIP_RETCODE SCIPcollectConflictStatistics(SCIP *scip, SCIP_DATATREE *datatree)
int SCIPgetNPricevars(SCIP *scip)
SCIP_Longint SCIPgetNResConflictConssApplied(SCIP *scip)
int SCIPgetNRootboundChgsRun(SCIP *scip)
SCIP_Real SCIPgetDualbound(SCIP *scip)
SCIP_RETCODE SCIPcollectSeparatorStatistics(SCIP *scip, SCIP_DATATREE *datatree)
void SCIPprintLPStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNRootStrongbranchs(SCIP *scip)
int SCIPgetNEnabledConss(SCIP *scip)
int SCIPgetNSepaRounds(SCIP *scip)
int SCIPgetNCutsFoundRound(SCIP *scip)
SCIP_RETCODE SCIPprintStatisticsJson(SCIP *scip, FILE *file)
void SCIPprintNLPStatistics(SCIP *scip, FILE *file)
int SCIPgetNRootboundChgs(SCIP *scip)
SCIP_Real SCIPgetFirstPrimalBound(SCIP *scip)
void SCIPgetDualboundExact(SCIP *scip, SCIP_RATIONAL *result)
SCIP_Longint SCIPgetNStrongbranchLPIterations(SCIP *scip)
int SCIPgetNPricevarsApplied(SCIP *scip)
SCIP_RETCODE SCIPcollectTreeStatistics(SCIP *scip, SCIP_DATATREE *datatree)
int SCIPgetNCutsApplied(SCIP *scip)
void SCIPprintPricerStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPprintStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPcollectOrigProblemStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Real SCIPgetLowerbound(SCIP *scip)
SCIP_Real SCIPgetAvgLowerbound(SCIP *scip)
SCIP_RETCODE SCIPcollectBranchruleStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_RETCODE SCIPcollectPricerStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_RETCODE SCIPprintBranchingStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNTotalNodes(SCIP *scip)
void SCIPprintSeparatorStatistics(SCIP *scip, FILE *file)
void SCIPprintConcsolverStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPcollectRootStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Longint SCIPgetNResolveLPs(SCIP *scip)
void SCIPgetPrimalboundExact(SCIP *scip, SCIP_RATIONAL *result)
int SCIPgetNRuns(SCIP *scip)
void SCIPprintNLPIStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNNodeLPIterations(SCIP *scip)
SCIP_Longint SCIPgetNDualLPIterations(SCIP *scip)
void SCIPprintBranchruleStatistics(SCIP *scip, FILE *file)
int SCIPgetNActiveConss(SCIP *scip)
void SCIPprintConflictStatistics(SCIP *scip, FILE *file)
SCIP_Real SCIPgetDualboundRoot(SCIP *scip)
SCIP_Longint SCIPgetNDualLPs(SCIP *scip)
SCIP_Real SCIPgetAvgCutoffScoreCurrentRun(SCIP *scip)
SCIP_Real SCIPgetAvgGMIeff(SCIP *scip)
void SCIPprintExpressionHandlerStatistics(SCIP *scip, FILE *file)
int SCIPgetNPriceRounds(SCIP *scip)
SCIP_Longint SCIPgetNLPs(SCIP *scip)
int SCIPgetNReoptRuns(SCIP *scip)
SCIP_Real SCIPgetAvgDualbound(SCIP *scip)
void SCIPprintBendersStatistics(SCIP *scip, FILE *file)
void SCIPprintTimingStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNRootLPIterations(SCIP *scip)
SCIP_Longint SCIPgetNPrimalResolveLPIterations(SCIP *scip)
SCIP_Real SCIPgetAvgInferenceScoreCurrentRun(SCIP *scip)
void SCIPprintCutselectorStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPcollectExpressionHandlerStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Real SCIPgetAvgConflictScore(SCIP *scip)
SCIP_Longint SCIPgetNLimSolsFound(SCIP *scip)
void SCIPstoreSolutionGap(SCIP *scip)
SCIP_Real SCIPgetAvgPseudocost(SCIP *scip, SCIP_Real solvaldelta)
int SCIPgetNRootIntFixingsRun(SCIP *scip)
SCIP_RETCODE SCIPcollectCompressionStatistics(SCIP *scip, SCIP_DATATREE *datatree)
void SCIPprintConstraintStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNBacktracks(SCIP *scip)
SCIP_RETCODE SCIPprintReoptStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNBarrierLPs(SCIP *scip)
SCIP_Longint SCIPgetNDualResolveLPIterations(SCIP *scip)
SCIP_Real SCIPgetTransGap(SCIP *scip)
SCIP_Longint SCIPgetNBestSolsFound(SCIP *scip)
SCIP_Real SCIPgetAvgPseudocostScore(SCIP *scip)
SCIP_Real SCIPgetPseudocostCount(SCIP *scip, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
SCIP_Real SCIPgetCutoffbound(SCIP *scip)
SCIP_Real SCIPgetFirstLPLowerboundRoot(SCIP *scip)
SCIP_Real SCIPgetAvgPseudocostCountCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPgetNExactLPs(SCIP *scip)
SCIP_Longint SCIPgetNConflictConssApplied(SCIP *scip)
SCIP_Longint SCIPgetNObjlimLeaves(SCIP *scip)
SCIP_RETCODE SCIPcollectPropagatorStatistics(SCIP *scip, SCIP_DATATREE *datatree)
int SCIPgetNCutsFound(SCIP *scip)
void SCIPprintPresolverStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPcollectPresolverStatistics(SCIP *scip, SCIP_DATATREE *datatree)
void SCIPprintTransProblemStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPprintDisplayLine(SCIP *scip, FILE *file, SCIP_VERBLEVEL verblevel, SCIP_Bool endline)
SCIP_Longint SCIPgetNDivingLPs(SCIP *scip)
SCIP_Longint SCIPgetNNodeLPs(SCIP *scip)
SCIP_Real SCIPgetFirstLPDualboundRoot(SCIP *scip)
SCIP_Real SCIPgetAvgConflictlengthScoreCurrentRun(SCIP *scip)
SCIP_Longint SCIPgetNRootFirstLPIterations(SCIP *scip)
int SCIPgetNPricevarsFound(SCIP *scip)
void SCIPgetLowerboundExact(SCIP *scip, SCIP_RATIONAL *result)
SCIP_Longint SCIPgetNNodeInitLPIterations(SCIP *scip)
SCIP_Longint SCIPgetNNZs(SCIP *scip)
SCIP_Longint SCIPgetNDelayedCutoffs(SCIP *scip)
SCIP_Longint SCIPgetNPrimalResolveLPs(SCIP *scip)
SCIP_Longint SCIPgetNConflictConssFound(SCIP *scip)
SCIP_Real SCIPgetAvgDPseudocostScore(SCIP *scip, SCIP_Real discountfac)
SCIP_Real SCIPgetAvgPseudocostCurrentRun(SCIP *scip, SCIP_Real solvaldelta)
SCIP_Real SCIPgetAvgInferences(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPgetNPrimalLPIterations(SCIP *scip)
SCIP_Longint SCIPgetNStrongbranchs(SCIP *scip)
SCIP_RETCODE SCIPcollectLPStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_RETCODE SCIPcollectConcsolverStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_RETCODE SCIPcollectBranchingStatistics(SCIP *scip, SCIP_DATATREE *datatree)
int SCIPgetNConflictConssFoundNode(SCIP *scip)
SCIP_Longint SCIPgetNLPIterations(SCIP *scip)
SCIP_RETCODE SCIPcollectConstraintTimingStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Real SCIPgetAvgInferencesCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPgetNDualResolveLPs(SCIP *scip)
void SCIPprintHeuristicStatistics(SCIP *scip, FILE *file)
SCIP_Real SCIPgetPseudocostVariance(SCIP *scip, SCIP_BRANCHDIR branchdir, SCIP_Bool onlycurrentrun)
SCIP_Real SCIPgetPrimalDualIntegral(SCIP *scip)
SCIP_RETCODE SCIPcollectTransProblemStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Longint SCIPgetNPrimalLPs(SCIP *scip)
SCIP_Real SCIPgetAvgCutoffs(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPgetNRootStrongbranchLPIterations(SCIP *scip)
SCIP_RETCODE SCIPcollectSolutionStatistics(SCIP *scip, SCIP_DATATREE *datatree)
SCIP_Real SCIPgetAvgCutoffScore(SCIP *scip)
type definitions for data tree
type definitions for branching and inference history
enum SCIP_BranchDir SCIP_BRANCHDIR
Definition: type_history.h:48
type definitions for message output methods
enum SCIP_VerbLevel SCIP_VERBLEVEL
Definition: type_message.h:64
type definitions for rational numbers
type definitions for return codes for SCIP methods
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:63
type definitions for SCIP's main datastructure