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_retcode.h"
48#include "scip/type_scip.h"
49
50#ifdef __cplusplus
51extern "C" {
52#endif
53
54/**@addtogroup PublicSolvingStatsMethods
55 *
56 * @{
57 */
58
59/** gets number of branch and bound runs performed, including the current run
60 *
61 * @return the number of branch and bound runs performed, including the current run
62 *
63 * @pre This method can be called if SCIP is in one of the following stages:
64 * - \ref SCIP_STAGE_PROBLEM
65 * - \ref SCIP_STAGE_TRANSFORMING
66 * - \ref SCIP_STAGE_TRANSFORMED
67 * - \ref SCIP_STAGE_INITPRESOLVE
68 * - \ref SCIP_STAGE_PRESOLVING
69 * - \ref SCIP_STAGE_EXITPRESOLVE
70 * - \ref SCIP_STAGE_PRESOLVED
71 * - \ref SCIP_STAGE_INITSOLVE
72 * - \ref SCIP_STAGE_SOLVING
73 * - \ref SCIP_STAGE_SOLVED
74 * - \ref SCIP_STAGE_EXITSOLVE
75 * - \ref SCIP_STAGE_FREETRANS
76 */
77SCIP_EXPORT
78int SCIPgetNRuns(
79 SCIP* scip /**< SCIP data structure */
80 );
81
82/** gets number of reoptimization runs performed, including the current run
83 *
84 * @return the number of reoptimization runs performed, including the current run
85 *
86 * @pre This method can be called if SCIP is in one of the following stages:
87 * - \ref SCIP_STAGE_PROBLEM
88 * - \ref SCIP_STAGE_TRANSFORMING
89 * - \ref SCIP_STAGE_TRANSFORMED
90 * - \ref SCIP_STAGE_INITPRESOLVE
91 * - \ref SCIP_STAGE_PRESOLVING
92 * - \ref SCIP_STAGE_EXITPRESOLVE
93 * - \ref SCIP_STAGE_PRESOLVED
94 * - \ref SCIP_STAGE_INITSOLVE
95 * - \ref SCIP_STAGE_SOLVING
96 * - \ref SCIP_STAGE_SOLVED
97 * - \ref SCIP_STAGE_EXITSOLVE
98 * - \ref SCIP_STAGE_FREETRANS
99 */
100SCIP_EXPORT
102 SCIP* scip /**< SCIP data structure */
103 );
104
105/** add given number to the number of processed nodes in current run and in all runs, including the focus node
106 *
107 * @pre This method can be called if SCIP is in one of the following stages:
108 * - \ref SCIP_STAGE_PROBLEM
109 * - \ref SCIP_STAGE_TRANSFORMING
110 * - \ref SCIP_STAGE_TRANSFORMED
111 * - \ref SCIP_STAGE_INITPRESOLVE
112 * - \ref SCIP_STAGE_PRESOLVING
113 * - \ref SCIP_STAGE_EXITPRESOLVE
114 * - \ref SCIP_STAGE_PRESOLVED
115 * - \ref SCIP_STAGE_INITSOLVE
116 * - \ref SCIP_STAGE_SOLVING
117 * - \ref SCIP_STAGE_SOLVED
118 * - \ref SCIP_STAGE_EXITSOLVE
119 * - \ref SCIP_STAGE_FREETRANS
120 */
121SCIP_EXPORT
122void SCIPaddNNodes(
123 SCIP* scip, /**< SCIP data structure */
124 SCIP_Longint nnodes /**< number of processed nodes to add to the statistics */
125 );
126
127/** gets number of processed nodes in current run, including the focus node
128 *
129 * @return the number of processed nodes in current run, including the focus node
130 *
131 * @pre This method can be called if SCIP is in one of the following stages:
132 * - \ref SCIP_STAGE_PROBLEM
133 * - \ref SCIP_STAGE_TRANSFORMING
134 * - \ref SCIP_STAGE_TRANSFORMED
135 * - \ref SCIP_STAGE_INITPRESOLVE
136 * - \ref SCIP_STAGE_PRESOLVING
137 * - \ref SCIP_STAGE_EXITPRESOLVE
138 * - \ref SCIP_STAGE_PRESOLVED
139 * - \ref SCIP_STAGE_INITSOLVE
140 * - \ref SCIP_STAGE_SOLVING
141 * - \ref SCIP_STAGE_SOLVED
142 * - \ref SCIP_STAGE_EXITSOLVE
143 * - \ref SCIP_STAGE_FREETRANS
144 */
145SCIP_EXPORT
147 SCIP* scip /**< SCIP data structure */
148 );
149
150/** gets total number of processed nodes in all runs, including the focus node
151 *
152 * @return the total number of processed nodes in all runs, including the focus node
153 *
154 * @pre This method can be called if SCIP is in one of the following stages:
155 * - \ref SCIP_STAGE_PROBLEM
156 * - \ref SCIP_STAGE_TRANSFORMING
157 * - \ref SCIP_STAGE_TRANSFORMED
158 * - \ref SCIP_STAGE_INITPRESOLVE
159 * - \ref SCIP_STAGE_PRESOLVING
160 * - \ref SCIP_STAGE_EXITPRESOLVE
161 * - \ref SCIP_STAGE_PRESOLVED
162 * - \ref SCIP_STAGE_INITSOLVE
163 * - \ref SCIP_STAGE_SOLVING
164 * - \ref SCIP_STAGE_SOLVED
165 * - \ref SCIP_STAGE_EXITSOLVE
166 * - \ref SCIP_STAGE_FREETRANS
167 */
168SCIP_EXPORT
170 SCIP* scip /**< SCIP data structure */
171 );
172
173/** gets number of leaf nodes processed with feasible relaxation solution
174 *
175 * @return number of leaf nodes processed with feasible relaxation solution
176 *
177 * @pre This method can be called if SCIP is in one of the following stages:
178 * - \ref SCIP_STAGE_PROBLEM
179 * - \ref SCIP_STAGE_TRANSFORMING
180 * - \ref SCIP_STAGE_TRANSFORMED
181 * - \ref SCIP_STAGE_INITPRESOLVE
182 * - \ref SCIP_STAGE_PRESOLVING
183 * - \ref SCIP_STAGE_EXITPRESOLVE
184 * - \ref SCIP_STAGE_PRESOLVED
185 * - \ref SCIP_STAGE_INITSOLVE
186 * - \ref SCIP_STAGE_SOLVING
187 * - \ref SCIP_STAGE_SOLVED
188 * - \ref SCIP_STAGE_EXITSOLVE
189 * - \ref SCIP_STAGE_FREETRANS
190 */
191SCIP_EXPORT
193 SCIP* scip /**< SCIP data structure */
194 );
195
196/** gets number of infeasible leaf nodes processed
197 *
198 * @return number of infeasible leaf nodes processed
199 *
200 * @pre This method can be called if SCIP is in one of the following stages:
201 * - \ref SCIP_STAGE_PROBLEM
202 * - \ref SCIP_STAGE_TRANSFORMING
203 * - \ref SCIP_STAGE_TRANSFORMED
204 * - \ref SCIP_STAGE_INITPRESOLVE
205 * - \ref SCIP_STAGE_PRESOLVING
206 * - \ref SCIP_STAGE_EXITPRESOLVE
207 * - \ref SCIP_STAGE_PRESOLVED
208 * - \ref SCIP_STAGE_INITSOLVE
209 * - \ref SCIP_STAGE_SOLVING
210 * - \ref SCIP_STAGE_SOLVED
211 * - \ref SCIP_STAGE_EXITSOLVE
212 * - \ref SCIP_STAGE_FREETRANS
213 */
214SCIP_EXPORT
216 SCIP* scip /**< SCIP data structure */
217 );
218
219/** gets number of processed leaf nodes that hit LP objective limit
220 *
221 * @return number of processed leaf nodes that hit LP objective limit
222 *
223 * @pre This method can be called if SCIP is in one of the following stages:
224 * - \ref SCIP_STAGE_PROBLEM
225 * - \ref SCIP_STAGE_TRANSFORMING
226 * - \ref SCIP_STAGE_TRANSFORMED
227 * - \ref SCIP_STAGE_INITPRESOLVE
228 * - \ref SCIP_STAGE_PRESOLVING
229 * - \ref SCIP_STAGE_EXITPRESOLVE
230 * - \ref SCIP_STAGE_PRESOLVED
231 * - \ref SCIP_STAGE_INITSOLVE
232 * - \ref SCIP_STAGE_SOLVING
233 * - \ref SCIP_STAGE_SOLVED
234 * - \ref SCIP_STAGE_EXITSOLVE
235 * - \ref SCIP_STAGE_FREETRANS
236 */
237SCIP_EXPORT
239 SCIP* scip /**< SCIP data structure */
240 );
241
242/** gets number of global bound changes
243 *
244 * @return number of global bound changes
245 *
246 * @pre This method can be called if SCIP is in one of the following stages:
247 * - \ref SCIP_STAGE_PROBLEM
248 * - \ref SCIP_STAGE_TRANSFORMING
249 * - \ref SCIP_STAGE_TRANSFORMED
250 * - \ref SCIP_STAGE_INITPRESOLVE
251 * - \ref SCIP_STAGE_PRESOLVING
252 * - \ref SCIP_STAGE_EXITPRESOLVE
253 * - \ref SCIP_STAGE_PRESOLVED
254 * - \ref SCIP_STAGE_INITSOLVE
255 * - \ref SCIP_STAGE_SOLVING
256 * - \ref SCIP_STAGE_SOLVED
257 * - \ref SCIP_STAGE_EXITSOLVE
258 * - \ref SCIP_STAGE_FREETRANS
259 */
260SCIP_EXPORT
262 SCIP* scip /**< Scip data structure */
263 );
264
265/** gets number of global bound changes applied in the current run
266 *
267 * @return number of global bound changes
268 *
269 * @pre This method can be called if SCIP is in one of the following stages:
270 * - \ref SCIP_STAGE_PROBLEM
271 * - \ref SCIP_STAGE_TRANSFORMING
272 * - \ref SCIP_STAGE_TRANSFORMED
273 * - \ref SCIP_STAGE_INITPRESOLVE
274 * - \ref SCIP_STAGE_PRESOLVING
275 * - \ref SCIP_STAGE_EXITPRESOLVE
276 * - \ref SCIP_STAGE_PRESOLVED
277 * - \ref SCIP_STAGE_INITSOLVE
278 * - \ref SCIP_STAGE_SOLVING
279 * - \ref SCIP_STAGE_SOLVED
280 * - \ref SCIP_STAGE_EXITSOLVE
281 * - \ref SCIP_STAGE_FREETRANS
282 */
283SCIP_EXPORT
285 SCIP* scip /**< Scip data structure */
286 );
287
288/** gets number of times a selected node was from a cut off subtree
289 *
290 * @return number of times a selected node was from a cut off subtree
291 *
292 * @pre This method can be called if SCIP is in one of the following stages:
293 * - \ref SCIP_STAGE_PROBLEM
294 * - \ref SCIP_STAGE_TRANSFORMING
295 * - \ref SCIP_STAGE_TRANSFORMED
296 * - \ref SCIP_STAGE_INITPRESOLVE
297 * - \ref SCIP_STAGE_PRESOLVING
298 * - \ref SCIP_STAGE_EXITPRESOLVE
299 * - \ref SCIP_STAGE_PRESOLVED
300 * - \ref SCIP_STAGE_INITSOLVE
301 * - \ref SCIP_STAGE_SOLVING
302 * - \ref SCIP_STAGE_SOLVED
303 * - \ref SCIP_STAGE_EXITSOLVE
304 * - \ref SCIP_STAGE_FREETRANS
305 */
306SCIP_EXPORT
308 SCIP* scip /**< SCIP data structure */
309 );
310
311/** gets total number of LPs solved so far
312 *
313 * @return the total number of LPs solved so far
314 *
315 * @pre This method can be called if SCIP is in one of the following stages:
316 * - \ref SCIP_STAGE_PROBLEM
317 * - \ref SCIP_STAGE_TRANSFORMING
318 * - \ref SCIP_STAGE_TRANSFORMED
319 * - \ref SCIP_STAGE_INITPRESOLVE
320 * - \ref SCIP_STAGE_PRESOLVING
321 * - \ref SCIP_STAGE_EXITPRESOLVE
322 * - \ref SCIP_STAGE_PRESOLVED
323 * - \ref SCIP_STAGE_INITSOLVE
324 * - \ref SCIP_STAGE_SOLVING
325 * - \ref SCIP_STAGE_SOLVED
326 * - \ref SCIP_STAGE_EXITSOLVE
327 * - \ref SCIP_STAGE_FREETRANS
328 */
329SCIP_EXPORT
331 SCIP* scip /**< SCIP data structure */
332 );
333
334/** gets total number of iterations used so far in primal and dual simplex and barrier algorithm
335 *
336 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm
337 *
338 * @pre This method can be called if SCIP is in one of the following stages:
339 * - \ref SCIP_STAGE_PRESOLVING
340 * - \ref SCIP_STAGE_PRESOLVED
341 * - \ref SCIP_STAGE_SOLVING
342 * - \ref SCIP_STAGE_SOLVED
343 */
344SCIP_EXPORT
346 SCIP* scip /**< SCIP data structure */
347 );
348
349/** gets number of active non-zeros in the current transformed problem
350 *
351 * @return the number of active non-zeros in the current transformed problem
352 *
353 * @pre This method can be called if SCIP is in one of the following stages:
354 * - \ref SCIP_STAGE_PROBLEM
355 * - \ref SCIP_STAGE_TRANSFORMING
356 * - \ref SCIP_STAGE_TRANSFORMED
357 * - \ref SCIP_STAGE_INITPRESOLVE
358 * - \ref SCIP_STAGE_PRESOLVING
359 * - \ref SCIP_STAGE_EXITPRESOLVE
360 * - \ref SCIP_STAGE_PRESOLVED
361 * - \ref SCIP_STAGE_INITSOLVE
362 * - \ref SCIP_STAGE_SOLVING
363 * - \ref SCIP_STAGE_SOLVED
364 * - \ref SCIP_STAGE_EXITSOLVE
365 */
366SCIP_EXPORT
368 SCIP* scip /**< SCIP data structure */
369 );
370
371
372/** gets total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
373 *
374 * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
375 *
376 * @pre This method can be called if SCIP is in one of the following stages:
377 * - \ref SCIP_STAGE_PRESOLVED
378 * - \ref SCIP_STAGE_SOLVING
379 * - \ref SCIP_STAGE_SOLVED
380 */
381SCIP_EXPORT
383 SCIP* scip /**< SCIP data structure */
384 );
385
386/** gets total number of iterations used in primal and dual simplex and barrier algorithm for the first LP at the root
387 * node
388 *
389 * @return the total number of iterations used in primal and dual simplex and barrier algorithm for the first root LP
390 *
391 * @pre This method can be called if SCIP is in one of the following stages:
392 * - \ref SCIP_STAGE_PRESOLVED
393 * - \ref SCIP_STAGE_SOLVING
394 * - \ref SCIP_STAGE_SOLVED
395 */
396SCIP_EXPORT
398 SCIP* scip /**< SCIP data structure */
399 );
400
401/** gets total number of primal LPs solved so far
402 *
403 * @return the total number of primal LPs solved so far
404 *
405 * @pre This method can be called if SCIP is in one of the following stages:
406 * - \ref SCIP_STAGE_PRESOLVED
407 * - \ref SCIP_STAGE_SOLVING
408 * - \ref SCIP_STAGE_SOLVED
409 */
410SCIP_EXPORT
412 SCIP* scip /**< SCIP data structure */
413 );
414
415/** gets total number of iterations used so far in primal simplex
416 *
417 * @return total number of iterations used so far in primal simplex
418 *
419 * @pre This method can be called if SCIP is in one of the following stages:
420 * - \ref SCIP_STAGE_PRESOLVED
421 * - \ref SCIP_STAGE_SOLVING
422 * - \ref SCIP_STAGE_SOLVED
423 */
424SCIP_EXPORT
426 SCIP* scip /**< SCIP data structure */
427 );
428
429/** gets total number of dual LPs solved so far
430 *
431 * @return the total number of dual LPs solved so far
432 *
433 * @pre This method can be called if SCIP is in one of the following stages:
434 * - \ref SCIP_STAGE_PRESOLVED
435 * - \ref SCIP_STAGE_SOLVING
436 * - \ref SCIP_STAGE_SOLVED
437 */
438SCIP_EXPORT
440 SCIP* scip /**< SCIP data structure */
441 );
442
443/** gets total number of iterations used so far in dual simplex
444 *
445 * @return the total number of iterations used so far in dual simplex
446 *
447 * @pre This method can be called if SCIP is in one of the following stages:
448 * - \ref SCIP_STAGE_PRESOLVED
449 * - \ref SCIP_STAGE_SOLVING
450 * - \ref SCIP_STAGE_SOLVED
451 */
452SCIP_EXPORT
454 SCIP* scip /**< SCIP data structure */
455 );
456
457/** gets total number of barrier LPs solved so far
458 *
459 * @return the total number of barrier LPs solved so far
460 *
461 * @pre This method can be called if SCIP is in one of the following stages:
462 * - \ref SCIP_STAGE_PRESOLVED
463 * - \ref SCIP_STAGE_SOLVING
464 * - \ref SCIP_STAGE_SOLVED
465 */
466SCIP_EXPORT
468 SCIP* scip /**< SCIP data structure */
469 );
470
471/** gets total number of iterations used so far in barrier algorithm
472 *
473 * @return the total number of iterations used so far in barrier algorithm
474 *
475 * @pre This method can be called if SCIP is in one of the following stages:
476 * - \ref SCIP_STAGE_PRESOLVED
477 * - \ref SCIP_STAGE_SOLVING
478 * - \ref SCIP_STAGE_SOLVED
479 */
480SCIP_EXPORT
482 SCIP* scip /**< SCIP data structure */
483 );
484
485/** gets total number of LPs solved so far that were resolved from an advanced start basis
486 *
487 * @return the total number of LPs solved so far that were resolved from an advanced start basis
488 *
489 * @pre This method can be called if SCIP is in one of the following stages:
490 * - \ref SCIP_STAGE_PRESOLVED
491 * - \ref SCIP_STAGE_SOLVING
492 * - \ref SCIP_STAGE_SOLVED
493 */
494SCIP_EXPORT
496 SCIP* scip /**< SCIP data structure */
497 );
498
499/** gets total number of simplex iterations used so far in primal and dual simplex calls where an advanced start basis
500 * was available
501 *
502 * @return the total number of simplex iterations used so far in primal and dual simplex calls where an advanced start
503 * basis was available
504 *
505 * @pre This method can be called if SCIP is in one of the following stages:
506 * - \ref SCIP_STAGE_PRESOLVED
507 * - \ref SCIP_STAGE_SOLVING
508 * - \ref SCIP_STAGE_SOLVED
509 */
510SCIP_EXPORT
512 SCIP* scip /**< SCIP data structure */
513 );
514
515/** gets total number of primal LPs solved so far that were resolved from an advanced start basis
516 *
517 * @return the total number of primal LPs solved so far that were resolved from an advanced start basis
518 *
519 * @pre This method can be called if SCIP is in one of the following stages:
520 * - \ref SCIP_STAGE_PRESOLVED
521 * - \ref SCIP_STAGE_SOLVING
522 * - \ref SCIP_STAGE_SOLVED
523 */
524SCIP_EXPORT
526 SCIP* scip /**< SCIP data structure */
527 );
528
529/** gets total number of simplex iterations used so far in primal simplex calls where an advanced start basis
530 * was available
531 *
532 * @return the total number of simplex iterations used so far in primal simplex calls where an advanced start
533 * basis was available
534 *
535 * @pre This method can be called if SCIP is in one of the following stages:
536 * - \ref SCIP_STAGE_PRESOLVED
537 * - \ref SCIP_STAGE_SOLVING
538 * - \ref SCIP_STAGE_SOLVED
539 */
540SCIP_EXPORT
542 SCIP* scip /**< SCIP data structure */
543 );
544
545/** gets total number of dual LPs solved so far that were resolved from an advanced start basis
546 *
547 * @return the total number of dual LPs solved so far that were resolved from an advanced start basis
548 *
549 * @pre This method can be called if SCIP is in one of the following stages:
550 * - \ref SCIP_STAGE_PRESOLVED
551 * - \ref SCIP_STAGE_SOLVING
552 * - \ref SCIP_STAGE_SOLVED
553 */
554SCIP_EXPORT
556 SCIP* scip /**< SCIP data structure */
557 );
558
559/** gets total number of simplex iterations used so far in dual simplex calls where an advanced start basis
560 * was available
561 *
562 * @return the total number of simplex iterations used so far in dual simplex calls where an advanced start
563 * basis was available
564 *
565 * @pre This method can be called if SCIP is in one of the following stages:
566 * - \ref SCIP_STAGE_PRESOLVED
567 * - \ref SCIP_STAGE_SOLVING
568 * - \ref SCIP_STAGE_SOLVED
569 */
570SCIP_EXPORT
572 SCIP* scip /**< SCIP data structure */
573 );
574
575/** gets total number of LPs solved so far for node relaxations
576 *
577 * @return the total number of LPs solved so far for node relaxations
578 *
579 * @pre This method can be called if SCIP is in one of the following stages:
580 * - \ref SCIP_STAGE_PRESOLVED
581 * - \ref SCIP_STAGE_SOLVING
582 * - \ref SCIP_STAGE_SOLVED
583 */
584SCIP_EXPORT
586 SCIP* scip /**< SCIP data structure */
587 );
588
589/** gets total number of LPs solved in 0 iterations for node relaxations
590 *
591 * @return the total number of LPs solved with 0 iteratins for node relaxations
592 *
593 * @pre This method can be called if SCIP is in one of the following stages:
594 * - \ref SCIP_STAGE_PRESOLVED
595 * - \ref SCIP_STAGE_SOLVING
596 * - \ref SCIP_STAGE_SOLVED
597 */
598SCIP_EXPORT
600 SCIP* scip /**< SCIP data structure */
601 );
602
603/** gets total number of simplex iterations used so far for node relaxations
604 *
605 * @return the total number of simplex iterations used so far for node relaxations
606 *
607 * @pre This method can be called if SCIP is in one of the following stages:
608 * - \ref SCIP_STAGE_PRESOLVED
609 * - \ref SCIP_STAGE_SOLVING
610 * - \ref SCIP_STAGE_SOLVED
611 */
612SCIP_EXPORT
614 SCIP* scip /**< SCIP data structure */
615 );
616
617/** gets total number of LPs solved so far for initial LP in node relaxations
618 *
619 * @return the total number of LPs solved so far for initial LP in node relaxations
620 *
621 * @pre This method can be called if SCIP is in one of the following stages:
622 * - \ref SCIP_STAGE_PRESOLVED
623 * - \ref SCIP_STAGE_SOLVING
624 * - \ref SCIP_STAGE_SOLVED
625 */
626SCIP_EXPORT
628 SCIP* scip /**< SCIP data structure */
629 );
630
631/** gets total number of simplex iterations used so far for initial LP in node relaxations
632 *
633 * @return the total number of simplex iterations used so far for initial LP in node relaxations
634 *
635 * @pre This method can be called if SCIP is in one of the following stages:
636 * - \ref SCIP_STAGE_PRESOLVED
637 * - \ref SCIP_STAGE_SOLVING
638 * - \ref SCIP_STAGE_SOLVED
639 */
640SCIP_EXPORT
642 SCIP* scip /**< SCIP data structure */
643 );
644
645/** gets total number of LPs solved so far during diving and probing
646 *
647 * @return total number of LPs solved so far during diving and probing
648 *
649 * @pre This method can be called if SCIP is in one of the following stages:
650 * - \ref SCIP_STAGE_PRESOLVED
651 * - \ref SCIP_STAGE_SOLVING
652 * - \ref SCIP_STAGE_SOLVED
653 */
654SCIP_EXPORT
656 SCIP* scip /**< SCIP data structure */
657 );
658
659/** gets total number of simplex iterations used so far during diving and probing
660 *
661 * @return the total number of simplex iterations used so far during diving and probing
662 *
663 * @pre This method can be called if SCIP is in one of the following stages:
664 * - \ref SCIP_STAGE_PRESOLVED
665 * - \ref SCIP_STAGE_SOLVING
666 * - \ref SCIP_STAGE_SOLVED
667 */
668SCIP_EXPORT
670 SCIP* scip /**< SCIP data structure */
671 );
672
673/** gets total number of times, strong branching was called (each call represents solving two LPs)
674 *
675 * @return the total number of times, strong branching was called (each call represents solving two LPs)
676 *
677 * @pre This method can be called if SCIP is in one of the following stages:
678 * - \ref SCIP_STAGE_PRESOLVED
679 * - \ref SCIP_STAGE_SOLVING
680 * - \ref SCIP_STAGE_SOLVED
681 */
682SCIP_EXPORT
684 SCIP* scip /**< SCIP data structure */
685 );
686
687/** gets total number of simplex iterations used so far in strong branching
688 *
689 * @return the total number of simplex iterations used so far in strong branching
690 *
691 * @pre This method can be called if SCIP is in one of the following stages:
692 * - \ref SCIP_STAGE_PRESOLVED
693 * - \ref SCIP_STAGE_SOLVING
694 * - \ref SCIP_STAGE_SOLVED
695 */
696SCIP_EXPORT
698 SCIP* scip /**< SCIP data structure */
699 );
700
701/** gets total number of times, strong branching was called at the root node (each call represents solving two LPs)
702 *
703 * @return the total number of times, strong branching was called at the root node (each call represents solving two LPs)
704 *
705 * @pre This method can be called if SCIP is in one of the following stages:
706 * - \ref SCIP_STAGE_PRESOLVED
707 * - \ref SCIP_STAGE_SOLVING
708 * - \ref SCIP_STAGE_SOLVED
709 */
710SCIP_EXPORT
712 SCIP* scip /**< SCIP data structure */
713 );
714
715/** gets total number of simplex iterations used so far in strong branching at the root node
716 *
717 * @return the total number of simplex iterations used so far in strong branching at the root node
718 *
719 * @pre This method can be called if SCIP is in one of the following stages:
720 * - \ref SCIP_STAGE_PRESOLVED
721 * - \ref SCIP_STAGE_SOLVING
722 * - \ref SCIP_STAGE_SOLVED
723 */
724SCIP_EXPORT
726 SCIP* scip /**< SCIP data structure */
727 );
728
729/** gets number of pricing rounds performed so far at the current node
730 *
731 * @return the number of pricing rounds performed so far at the current node
732 *
733 * @pre This method can be called if SCIP is in one of the following stages:
734 * - \ref SCIP_STAGE_SOLVING
735 */
736SCIP_EXPORT
738 SCIP* scip /**< SCIP data structure */
739 );
740
741/** get current number of variables in the pricing store
742 *
743 * @return the current number of variables in the pricing store
744 *
745 * @pre This method can be called if SCIP is in one of the following stages:
746 * - \ref SCIP_STAGE_PRESOLVED
747 * - \ref SCIP_STAGE_SOLVING
748 * - \ref SCIP_STAGE_SOLVED
749 */
750SCIP_EXPORT
752 SCIP* scip /**< SCIP data structure */
753 );
754
755/** get total number of pricing variables found so far
756 *
757 * @return the total number of pricing variables found so far
758 *
759 * @pre This method can be called if SCIP is in one of the following stages:
760 * - \ref SCIP_STAGE_PRESOLVED
761 * - \ref SCIP_STAGE_SOLVING
762 * - \ref SCIP_STAGE_SOLVED
763 */
764SCIP_EXPORT
766 SCIP* scip /**< SCIP data structure */
767 );
768
769/** get total number of pricing variables applied to the LPs
770 *
771 * @return the total number of pricing variables applied to the LPs
772 *
773 * @pre This method can be called if SCIP is in one of the following stages:
774 * - \ref SCIP_STAGE_PRESOLVED
775 * - \ref SCIP_STAGE_SOLVING
776 * - \ref SCIP_STAGE_SOLVED
777 */
778SCIP_EXPORT
780 SCIP* scip /**< SCIP data structure */
781 );
782
783/** gets number of separation rounds performed so far at the current node
784 *
785 * @return the number of separation rounds performed so far at the current node
786 *
787 * @pre This method can be called if SCIP is in one of the following stages:
788 * - \ref SCIP_STAGE_SOLVING
789 */
790SCIP_EXPORT
792 SCIP* scip /**< SCIP data structure */
793 );
794
795/** 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
796 *
797 * @return the total number of cuts added to the sepastore so far
798 *
799 * @pre This method can be called if SCIP is in one of the following stages:
800 * - \ref SCIP_STAGE_PRESOLVED
801 * - \ref SCIP_STAGE_SOLVING
802 * - \ref SCIP_STAGE_SOLVED
803 */
804SCIP_EXPORT
806 SCIP* scip /**< SCIP data structure */
807 );
808
809/** get number of cuts found so far in current separation round
810 *
811 * @return the number of cuts found so far in current separation round
812 *
813 * @pre This method can be called if SCIP is in one of the following stages:
814 * - \ref SCIP_STAGE_PRESOLVED
815 * - \ref SCIP_STAGE_SOLVING
816 * - \ref SCIP_STAGE_SOLVED
817 */
818SCIP_EXPORT
820 SCIP* scip /**< SCIP data structure */
821 );
822
823/** get total number of cuts applied to the LPs
824 *
825 * @return the total number of cuts applied to the LPs
826 *
827 * @pre This method can be called if SCIP is in one of the following stages:
828 * - \ref SCIP_STAGE_PRESOLVED
829 * - \ref SCIP_STAGE_SOLVING
830 * - \ref SCIP_STAGE_SOLVED
831 */
832SCIP_EXPORT
834 SCIP* scip /**< SCIP data structure */
835 );
836
837/** get total number of constraints found in conflict analysis (conflict, reconvergence constraints, and dual proofs)
838 *
839 * @return the total number of constraints found in conflict analysis (conflict, reconvergence constraints, and dual proofs)
840 *
841 * @pre This method can be called if SCIP is in one of the following stages:
842 * - \ref SCIP_STAGE_TRANSFORMED
843 * - \ref SCIP_STAGE_INITPRESOLVE
844 * - \ref SCIP_STAGE_PRESOLVING
845 * - \ref SCIP_STAGE_EXITPRESOLVE
846 * - \ref SCIP_STAGE_PRESOLVED
847 * - \ref SCIP_STAGE_INITSOLVE
848 * - \ref SCIP_STAGE_SOLVING
849 * - \ref SCIP_STAGE_SOLVED
850 * - \ref SCIP_STAGE_EXITSOLVE
851 */
852SCIP_EXPORT
854 SCIP* scip /**< SCIP data structure */
855 );
856
857/** get number of conflict constraints found so far at the current node
858 *
859 * @return the number of conflict constraints found so far at the current node
860 *
861 * @pre This method can be called if SCIP is in one of the following stages:
862 * - \ref SCIP_STAGE_TRANSFORMED
863 * - \ref SCIP_STAGE_INITPRESOLVE
864 * - \ref SCIP_STAGE_PRESOLVING
865 * - \ref SCIP_STAGE_EXITPRESOLVE
866 * - \ref SCIP_STAGE_PRESOLVED
867 * - \ref SCIP_STAGE_INITSOLVE
868 * - \ref SCIP_STAGE_SOLVING
869 * - \ref SCIP_STAGE_SOLVED
870 * - \ref SCIP_STAGE_EXITSOLVE
871 */
872SCIP_EXPORT
874 SCIP* scip /**< SCIP data structure */
875 );
876
877/** get total number of conflict constraints added to the problem
878 *
879 * @return the total number of conflict constraints added to the problem
880 *
881 * @pre This method can be called if SCIP is in one of the following stages:
882 * - \ref SCIP_STAGE_TRANSFORMED
883 * - \ref SCIP_STAGE_INITPRESOLVE
884 * - \ref SCIP_STAGE_PRESOLVING
885 * - \ref SCIP_STAGE_EXITPRESOLVE
886 * - \ref SCIP_STAGE_PRESOLVED
887 * - \ref SCIP_STAGE_INITSOLVE
888 * - \ref SCIP_STAGE_SOLVING
889 * - \ref SCIP_STAGE_SOLVED
890 * - \ref SCIP_STAGE_EXITSOLVE
891 */
892SCIP_EXPORT
894 SCIP* scip /**< SCIP data structure */
895 );
896
897/** get total number of dual proof constraints added to the problem
898 *
899 * @return the total number of dual proof constraints added to the problem
900 *
901 * @pre This method can be called if SCIP is in one of the following stages:
902 * - \ref SCIP_STAGE_TRANSFORMED
903 * - \ref SCIP_STAGE_INITPRESOLVE
904 * - \ref SCIP_STAGE_PRESOLVING
905 * - \ref SCIP_STAGE_EXITPRESOLVE
906 * - \ref SCIP_STAGE_PRESOLVED
907 * - \ref SCIP_STAGE_INITSOLVE
908 * - \ref SCIP_STAGE_SOLVING
909 * - \ref SCIP_STAGE_SOLVED
910 * - \ref SCIP_STAGE_EXITSOLVE
911 */
912SCIP_EXPORT
914 SCIP* scip /**< SCIP data structure */
915 );
916
917/** gets maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
918 *
919 * @return the maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
920 *
921 * @pre This method can be called if SCIP is in one of the following stages:
922 * - \ref SCIP_STAGE_TRANSFORMED
923 * - \ref SCIP_STAGE_INITPRESOLVE
924 * - \ref SCIP_STAGE_PRESOLVING
925 * - \ref SCIP_STAGE_EXITPRESOLVE
926 * - \ref SCIP_STAGE_PRESOLVED
927 * - \ref SCIP_STAGE_INITSOLVE
928 * - \ref SCIP_STAGE_SOLVING
929 * - \ref SCIP_STAGE_SOLVED
930 * - \ref SCIP_STAGE_EXITSOLVE
931 */
932SCIP_EXPORT
934 SCIP* scip /**< SCIP data structure */
935 );
936
937/** gets maximal depth of all processed nodes over all branch and bound runs
938 *
939 * @return the maximal depth of all processed nodes over all branch and bound runs
940 *
941 * @pre This method can be called if SCIP is in one of the following stages:
942 * - \ref SCIP_STAGE_TRANSFORMED
943 * - \ref SCIP_STAGE_INITPRESOLVE
944 * - \ref SCIP_STAGE_PRESOLVING
945 * - \ref SCIP_STAGE_EXITPRESOLVE
946 * - \ref SCIP_STAGE_PRESOLVED
947 * - \ref SCIP_STAGE_INITSOLVE
948 * - \ref SCIP_STAGE_SOLVING
949 * - \ref SCIP_STAGE_SOLVED
950 * - \ref SCIP_STAGE_EXITSOLVE
951 */
952SCIP_EXPORT
954 SCIP* scip /**< SCIP data structure */
955 );
956
957/** gets total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
958 *
959 * @return the total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
960 *
961 * @pre This method can be called if SCIP is in one of the following stages:
962 * - \ref SCIP_STAGE_TRANSFORMED
963 * - \ref SCIP_STAGE_INITPRESOLVE
964 * - \ref SCIP_STAGE_PRESOLVING
965 * - \ref SCIP_STAGE_EXITPRESOLVE
966 * - \ref SCIP_STAGE_PRESOLVED
967 * - \ref SCIP_STAGE_INITSOLVE
968 * - \ref SCIP_STAGE_SOLVING
969 * - \ref SCIP_STAGE_SOLVED
970 * - \ref SCIP_STAGE_EXITSOLVE
971 */
972SCIP_EXPORT
974 SCIP* scip /**< SCIP data structure */
975 );
976
977/** gets total number of active constraints at the current node
978 *
979 * @return the total number of active constraints at the current node
980 *
981 * @pre This method can be called if SCIP is in one of the following stages:
982 * - \ref SCIP_STAGE_INITPRESOLVE
983 * - \ref SCIP_STAGE_PRESOLVING
984 * - \ref SCIP_STAGE_EXITPRESOLVE
985 * - \ref SCIP_STAGE_PRESOLVED
986 * - \ref SCIP_STAGE_SOLVING
987 */
988SCIP_EXPORT
990 SCIP* scip /**< SCIP data structure */
991 );
992
993/** gets total number of enabled constraints at the current node
994 *
995 * @return the total number of enabled constraints at the current node
996 *
997 * @pre This method can be called if SCIP is in one of the following stages:
998 * - \ref SCIP_STAGE_PRESOLVED
999 * - \ref SCIP_STAGE_SOLVING
1000 */
1001SCIP_EXPORT
1003 SCIP* scip /**< SCIP data structure */
1004 );
1005
1006/** gets average dual bound of all unprocessed nodes for original problem
1007 *
1008 * @return the average dual bound of all unprocessed nodes for original problem
1009 *
1010 * @pre This method can be called if SCIP is in one of the following stages:
1011 * - \ref SCIP_STAGE_PRESOLVED
1012 * - \ref SCIP_STAGE_SOLVING
1013 * - \ref SCIP_STAGE_SOLVED
1014 */
1015SCIP_EXPORT
1017 SCIP* scip /**< SCIP data structure */
1018 );
1019
1020/** gets average lower (dual) bound of all unprocessed nodes in transformed problem
1021 *
1022 * @return the average lower (dual) bound of all unprocessed nodes in transformed problem
1023 *
1024 * @pre This method can be called if SCIP is in one of the following stages:
1025 * - \ref SCIP_STAGE_PRESOLVED
1026 * - \ref SCIP_STAGE_SOLVING
1027 * - \ref SCIP_STAGE_SOLVED
1028 */
1029SCIP_EXPORT
1031 SCIP* scip /**< SCIP data structure */
1032 );
1033
1034/** gets global dual bound
1035 *
1036 * @return the global dual bound
1037 *
1038 * @pre This method can be called if SCIP is in one of the following stages:
1039 * - \ref SCIP_STAGE_TRANSFORMED
1040 * - \ref SCIP_STAGE_INITPRESOLVE
1041 * - \ref SCIP_STAGE_PRESOLVING
1042 * - \ref SCIP_STAGE_EXITPRESOLVE
1043 * - \ref SCIP_STAGE_PRESOLVED
1044 * - \ref SCIP_STAGE_INITSOLVE
1045 * - \ref SCIP_STAGE_SOLVING
1046 * - \ref SCIP_STAGE_SOLVED
1047 * - \ref SCIP_STAGE_EXITSOLVE
1048 */
1049SCIP_EXPORT
1051 SCIP* scip /**< SCIP data structure */
1052 );
1053
1054/** gets global lower (dual) bound in transformed problem
1055 *
1056 * @return the global lower (dual) bound in transformed problem
1057 *
1058 * @pre This method can be called if SCIP is in one of the following stages:
1059 * - \ref SCIP_STAGE_TRANSFORMED
1060 * - \ref SCIP_STAGE_INITPRESOLVE
1061 * - \ref SCIP_STAGE_PRESOLVING
1062 * - \ref SCIP_STAGE_EXITPRESOLVE
1063 * - \ref SCIP_STAGE_PRESOLVED
1064 * - \ref SCIP_STAGE_INITSOLVE
1065 * - \ref SCIP_STAGE_SOLVING
1066 * - \ref SCIP_STAGE_SOLVED
1067 */
1068SCIP_EXPORT
1070 SCIP* scip /**< SCIP data structure */
1071 );
1072
1073/** gets dual bound of the root node for the original problem
1074 *
1075 * @return the dual bound of the root node for the original problem
1076 *
1077 * @pre This method can be called if SCIP is in one of the following stages:
1078 * - \ref SCIP_STAGE_PRESOLVING
1079 * - \ref SCIP_STAGE_EXITPRESOLVE
1080 * - \ref SCIP_STAGE_PRESOLVED
1081 * - \ref SCIP_STAGE_INITSOLVE
1082 * - \ref SCIP_STAGE_SOLVING
1083 * - \ref SCIP_STAGE_SOLVED
1084 */
1085SCIP_EXPORT
1087 SCIP* scip /**< SCIP data structure */
1088 );
1089
1090/** gets lower (dual) bound in transformed problem of the root node
1091 *
1092 * @return the lower (dual) bound in transformed problem of the root node
1093 *
1094 * @pre This method can be called if SCIP is in one of the following stages:
1095 * - \ref SCIP_STAGE_PRESOLVING
1096 * - \ref SCIP_STAGE_EXITPRESOLVE
1097 * - \ref SCIP_STAGE_PRESOLVED
1098 * - \ref SCIP_STAGE_INITSOLVE
1099 * - \ref SCIP_STAGE_SOLVING
1100 * - \ref SCIP_STAGE_SOLVED
1101 */
1102SCIP_EXPORT
1104 SCIP* scip /**< SCIP data structure */
1105 );
1106
1107/** gets dual bound for the original problem obtained by the first LP solve at the root node
1108 *
1109 * @return the dual bound for the original problem of the first LP solve at the root node
1110 *
1111 * @pre This method can be called if SCIP is in one of the following stages:
1112 * - \ref SCIP_STAGE_PRESOLVING
1113 * - \ref SCIP_STAGE_EXITPRESOLVE
1114 * - \ref SCIP_STAGE_PRESOLVED
1115 * - \ref SCIP_STAGE_INITSOLVE
1116 * - \ref SCIP_STAGE_SOLVING
1117 * - \ref SCIP_STAGE_SOLVED
1118 */
1119SCIP_EXPORT
1121 SCIP* scip /**< SCIP data structure */
1122 );
1123
1124/** gets lower (dual) bound in transformed problem obtained by the first LP solve at the root node
1125 *
1126 * @return the lower (dual) bound in transformed problem obtained by first LP solve at the root node
1127 *
1128 * @pre This method can be called if SCIP is in one of the following stages:
1129 * - \ref SCIP_STAGE_PRESOLVING
1130 * - \ref SCIP_STAGE_EXITPRESOLVE
1131 * - \ref SCIP_STAGE_PRESOLVED
1132 * - \ref SCIP_STAGE_INITSOLVE
1133 * - \ref SCIP_STAGE_SOLVING
1134 * - \ref SCIP_STAGE_SOLVED
1135 */
1136SCIP_EXPORT
1138 SCIP* scip /**< SCIP data structure */
1139 );
1140
1141
1142/** gets the primal bound of the very first solution
1143 *
1144 * @return the primal bound of the very first solution
1145 */
1146SCIP_EXPORT
1148 SCIP* scip /**< SCIP data structure */
1149 );
1150
1151/** gets global primal bound (objective value of best solution or user objective limit) for the original problem
1152 *
1153 * @return the global primal bound (objective value of best solution or user objective limit) for the original problem
1154 *
1155 * @pre This method can be called if SCIP is in one of the following stages:
1156 * - \ref SCIP_STAGE_TRANSFORMED
1157 * - \ref SCIP_STAGE_INITPRESOLVE
1158 * - \ref SCIP_STAGE_PRESOLVING
1159 * - \ref SCIP_STAGE_EXITPRESOLVE
1160 * - \ref SCIP_STAGE_PRESOLVED
1161 * - \ref SCIP_STAGE_INITSOLVE
1162 * - \ref SCIP_STAGE_SOLVING
1163 * - \ref SCIP_STAGE_SOLVED
1164 * - \ref SCIP_STAGE_EXITSOLVE
1165 */
1166SCIP_EXPORT
1168 SCIP* scip /**< SCIP data structure */
1169 );
1170
1171/** gets global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
1172 *
1173 * @return the global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
1174 *
1175 * @pre This method can be called if SCIP is in one of the following stages:
1176 * - \ref SCIP_STAGE_TRANSFORMED
1177 * - \ref SCIP_STAGE_INITPRESOLVE
1178 * - \ref SCIP_STAGE_PRESOLVING
1179 * - \ref SCIP_STAGE_EXITPRESOLVE
1180 * - \ref SCIP_STAGE_PRESOLVED
1181 * - \ref SCIP_STAGE_INITSOLVE
1182 * - \ref SCIP_STAGE_SOLVING
1183 * - \ref SCIP_STAGE_SOLVED
1184 * - \ref SCIP_STAGE_EXITSOLVE
1185 */
1186SCIP_EXPORT
1188 SCIP* scip /**< SCIP data structure */
1189 );
1190
1191/** gets global cutoff bound in transformed problem: a sub problem with lower bound larger than the cutoff
1192 * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
1193 * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
1194 * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
1195 *
1196 * @return global cutoff bound in transformed problem
1197 *
1198 * @pre This method can be called if SCIP is in one of the following stages:
1199 * - \ref SCIP_STAGE_TRANSFORMED
1200 * - \ref SCIP_STAGE_INITPRESOLVE
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 * - \ref SCIP_STAGE_EXITSOLVE
1208 */
1209SCIP_EXPORT
1211 SCIP* scip /**< SCIP data structure */
1212 );
1213
1214/** updates the cutoff bound
1215 *
1216 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1217 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1218 *
1219 * @note using this method in the solving stage can lead to an erroneous SCIP solving status; in particular,
1220 * if a solution not respecting the cutoff bound was found before installing a cutoff bound which
1221 * renders the remaining problem infeasible, this solution may be reported as optimal
1222 *
1223 * @pre This method can be called if SCIP is in one of the following stages:
1224 * - \ref SCIP_STAGE_TRANSFORMED
1225 * - \ref SCIP_STAGE_PRESOLVING
1226 * - \ref SCIP_STAGE_PRESOLVED
1227 * - \ref SCIP_STAGE_INITSOLVE
1228 * - \ref SCIP_STAGE_SOLVING
1229 *
1230 * @note the given cutoff bound has to better or equal to known one (SCIPgetCutoffbound())
1231 * @note a given cutoff bound is also used for updating the objective limit, if possible
1232 */
1233SCIP_EXPORT
1235 SCIP* scip, /**< SCIP data structure */
1236 SCIP_Real cutoffbound /**< new cutoff bound */
1237 );
1238
1239/** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
1240 * was set from the user as objective limit
1241 *
1242 * @return TRUE if the current primal bound is justified with a feasible primal solution, otherwise FALSE
1243 *
1244 * @pre This method can be called if SCIP is in one of the following stages:
1245 * - \ref SCIP_STAGE_TRANSFORMED
1246 * - \ref SCIP_STAGE_INITPRESOLVE
1247 * - \ref SCIP_STAGE_PRESOLVING
1248 * - \ref SCIP_STAGE_EXITPRESOLVE
1249 * - \ref SCIP_STAGE_PRESOLVED
1250 * - \ref SCIP_STAGE_INITSOLVE
1251 * - \ref SCIP_STAGE_SOLVING
1252 * - \ref SCIP_STAGE_SOLVED
1253 * - \ref SCIP_STAGE_EXITSOLVE
1254 */
1255SCIP_EXPORT
1257 SCIP* scip /**< SCIP data structure */
1258 );
1259
1260/** gets current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
1261 * or infinity, if they have opposite sign
1262 *
1263 * @return the current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
1264 * or infinity, if they have opposite sign
1265 *
1266 * @pre This method can be called if SCIP is in one of the following stages:
1267 * - \ref SCIP_STAGE_PRESOLVING
1268 * - \ref SCIP_STAGE_EXITPRESOLVE
1269 * - \ref SCIP_STAGE_PRESOLVED
1270 * - \ref SCIP_STAGE_INITSOLVE
1271 * - \ref SCIP_STAGE_SOLVING
1272 * - \ref SCIP_STAGE_SOLVED
1273 */
1274SCIP_EXPORT
1276 SCIP* scip /**< SCIP data structure */
1277 );
1278
1279/** gets current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
1280 * have same sign, or infinity, if they have opposite sign
1281 *
1282 * @return current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
1283 * have same sign, or infinity, if they have opposite sign
1284 *
1285 * @pre This method can be called if SCIP is in one of the following stages:
1286 * - \ref SCIP_STAGE_PRESOLVED
1287 * - \ref SCIP_STAGE_SOLVING
1288 * - \ref SCIP_STAGE_SOLVED
1289 */
1290SCIP_EXPORT
1292 SCIP* scip /**< SCIP data structure */
1293 );
1294
1295/** gets number of feasible primal solutions found so far
1296 *
1297 * @return the number of feasible primal solutions found so far
1298 *
1299 * @pre This method can be called if SCIP is in one of the following stages:
1300 * - \ref SCIP_STAGE_TRANSFORMED
1301 * - \ref SCIP_STAGE_INITPRESOLVE
1302 * - \ref SCIP_STAGE_PRESOLVING
1303 * - \ref SCIP_STAGE_EXITPRESOLVE
1304 * - \ref SCIP_STAGE_PRESOLVED
1305 * - \ref SCIP_STAGE_INITSOLVE
1306 * - \ref SCIP_STAGE_SOLVING
1307 * - \ref SCIP_STAGE_SOLVED
1308 * - \ref SCIP_STAGE_EXITSOLVE
1309 */
1310SCIP_EXPORT
1312 SCIP* scip /**< SCIP data structure */
1313 );
1314
1315/** gets number of feasible primal solutions respecting the objective limit found so far
1316 *
1317 * @return the number of feasible primal solutions respecting the objective limit found so far
1318 *
1319 * @pre This method can be called if SCIP is in one of the following stages:
1320 * - \ref SCIP_STAGE_INIT
1321 * - \ref SCIP_STAGE_PROBLEM
1322 * - \ref SCIP_STAGE_TRANSFORMING
1323 * - \ref SCIP_STAGE_TRANSFORMED
1324 * - \ref SCIP_STAGE_INITPRESOLVE
1325 * - \ref SCIP_STAGE_PRESOLVING
1326 * - \ref SCIP_STAGE_EXITPRESOLVE
1327 * - \ref SCIP_STAGE_PRESOLVED
1328 * - \ref SCIP_STAGE_INITSOLVE
1329 * - \ref SCIP_STAGE_SOLVING
1330 * - \ref SCIP_STAGE_SOLVED
1331 * - \ref SCIP_STAGE_EXITSOLVE
1332 */
1333SCIP_EXPORT
1335 SCIP* scip /**< SCIP data structure */
1336 );
1337
1338/** gets number of feasible primal solutions found so far, that improved the primal bound at the time they were found
1339 *
1340 * @return the number of feasible primal solutions found so far, that improved the primal bound at the time they were found
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 the average pseudo cost value for the given direction over all variables
1359 *
1360 * @return the average pseudo cost value for the given direction over all variables
1361 *
1362 * @pre This method can be called if SCIP is in one of the following stages:
1363 * - \ref SCIP_STAGE_SOLVING
1364 * - \ref SCIP_STAGE_SOLVED
1365 */
1366SCIP_EXPORT
1368 SCIP* scip, /**< SCIP data structure */
1369 SCIP_Real solvaldelta /**< difference of variable's new LP value - old LP value */
1370 );
1371
1372/** gets the average pseudo cost value for the given direction over all variables,
1373 * only using the pseudo cost information of the current run
1374 *
1375 * @return the average pseudo cost value for the given direction over all variables,
1376 * only using the pseudo cost information of the current run
1377 *
1378 * @pre This method can be called if SCIP is in one of the following stages:
1379 * - \ref SCIP_STAGE_SOLVING
1380 * - \ref SCIP_STAGE_SOLVED
1381 */
1382SCIP_EXPORT
1384 SCIP* scip, /**< SCIP data structure */
1385 SCIP_Real solvaldelta /**< difference of variable's new LP value - old LP value */
1386 );
1387
1388/** gets the average number of pseudo cost updates for the given direction over all variables
1389 *
1390 * @return the average number of pseudo cost updates for the given direction over all variables
1391 *
1392 * @pre This method can be called if SCIP is in one of the following stages:
1393 * - \ref SCIP_STAGE_SOLVING
1394 * - \ref SCIP_STAGE_SOLVED
1395 */
1396SCIP_EXPORT
1398 SCIP* scip, /**< SCIP data structure */
1399 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1400 );
1401
1402/** gets the average number of pseudo cost updates for the given direction over all variables,
1403 * only using the pseudo cost information of the current run
1404 *
1405 * @return the average number of pseudo cost updates for the given direction over all variables,
1406 * only using the pseudo cost information of the current run
1407 *
1408 * @pre This method can be called if SCIP is in one of the following stages:
1409 * - \ref SCIP_STAGE_SOLVING
1410 * - \ref SCIP_STAGE_SOLVED
1411 */
1412SCIP_EXPORT
1414 SCIP* scip, /**< SCIP data structure */
1415 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1416 );
1417
1418/** gets the number of pseudo cost updates for the given direction over all variables
1419 *
1420 * @return the number of pseudo cost updates for the given direction over all variables
1421 *
1422 * @pre This method can be called if SCIP is in one of the following stages:
1423 * - \ref SCIP_STAGE_SOLVING
1424 * - \ref SCIP_STAGE_SOLVED
1425 */
1426SCIP_EXPORT
1428 SCIP* scip, /**< SCIP data structure */
1429 SCIP_BRANCHDIR dir, /**< branching direction (downwards, or upwards) */
1430 SCIP_Bool onlycurrentrun /**< use only history of current run? */
1431 );
1432
1433/** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5
1434 *
1435 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5
1436 *
1437 * @pre This method can be called if SCIP is in one of the following stages:
1438 * - \ref SCIP_STAGE_SOLVING
1439 * - \ref SCIP_STAGE_SOLVED
1440 */
1441SCIP_EXPORT
1443 SCIP* scip /**< SCIP data structure */
1444 );
1445
1446/** returns the variance of pseudo costs for all variables in the requested direction
1447 *
1448 * @return the variance of pseudo costs for all variables in the requested direction
1449 *
1450 * @pre This method can be called if SCIP is in one of the following stages:
1451 * - \ref SCIP_STAGE_SOLVING
1452 * - \ref SCIP_STAGE_SOLVED
1453 */
1454SCIP_EXPORT
1456 SCIP* scip, /**< SCIP data structure */
1457 SCIP_BRANCHDIR branchdir, /**< the branching direction, up or down */
1458 SCIP_Bool onlycurrentrun /**< use only history of current run? */
1459 );
1460
1461/** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
1462 * only using the pseudo cost information of the current run
1463 *
1464 * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
1465 * only using the pseudo cost information of the current run
1466 *
1467 * @pre This method can be called if SCIP is in one of the following stages:
1468 * - \ref SCIP_STAGE_SOLVING
1469 * - \ref SCIP_STAGE_SOLVED
1470 */
1471SCIP_EXPORT
1473 SCIP* scip /**< SCIP data structure */
1474 );
1475
1476/** gets the average conflict score value over all variables
1477 *
1478 * @return the average conflict score value over all variables
1479 *
1480 * @pre This method can be called if SCIP is in one of the following stages:
1481 * - \ref SCIP_STAGE_SOLVING
1482 * - \ref SCIP_STAGE_SOLVED
1483 */
1484SCIP_EXPORT
1486 SCIP* scip /**< SCIP data structure */
1487 );
1488
1489/** gets the average conflict score value over all variables, only using the conflict score information of the current run
1490 *
1491 * @return the average conflict score value over all variables, only using the conflict score information of the current run
1492 *
1493 * @pre This method can be called if SCIP is in one of the following stages:
1494 * - \ref SCIP_STAGE_SOLVING
1495 * - \ref SCIP_STAGE_SOLVED
1496 */
1497SCIP_EXPORT
1499 SCIP* scip /**< SCIP data structure */
1500 );
1501
1502/** gets the average inference score value over all variables
1503 *
1504 * @return the average inference score value over all variables
1505 *
1506 * @pre This method can be called if SCIP is in one of the following stages:
1507 * - \ref SCIP_STAGE_SOLVING
1508 * - \ref SCIP_STAGE_SOLVED
1509 */
1510SCIP_EXPORT
1512 SCIP* scip /**< SCIP data structure */
1513 );
1514
1515/** gets the average conflictlength score value over all variables, only using the conflictlength information of the
1516 * current run
1517 *
1518 * @return the average conflictlength score value over all variables, only using the conflictlength information of the
1519 * current run
1520 *
1521 * @pre This method can be called if SCIP is in one of the following stages:
1522 * - \ref SCIP_STAGE_SOLVING
1523 * - \ref SCIP_STAGE_SOLVED
1524 */
1525SCIP_EXPORT
1527 SCIP* scip /**< SCIP data structure */
1528 );
1529
1530/** returns the average number of inferences found after branching in given direction over all variables
1531 *
1532 * @return the average number of inferences found after branching in given direction over all variables
1533 *
1534 * @pre This method can be called if SCIP is in one of the following stages:
1535 * - \ref SCIP_STAGE_SOLVING
1536 * - \ref SCIP_STAGE_SOLVED
1537 */
1538SCIP_EXPORT
1540 SCIP* scip, /**< SCIP data structure */
1541 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1542 );
1543
1544/** returns the average number of inferences found after branching in given direction over all variables,
1545 * only using the inference information of the current run
1546 *
1547 * @return the average number of inferences found after branching in given direction over all variables,
1548 * only using the inference information of the current run
1549 *
1550 * @pre This method can be called if SCIP is in one of the following stages:
1551 * - \ref SCIP_STAGE_SOLVING
1552 * - \ref SCIP_STAGE_SOLVED
1553 */
1554SCIP_EXPORT
1556 SCIP* scip, /**< SCIP data structure */
1557 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1558 );
1559
1560/** gets the average inference score value over all variables
1561 *
1562 * @return the average inference score value over all variables
1563 *
1564 * @pre This method can be called if SCIP is in one of the following stages:
1565 * - \ref SCIP_STAGE_SOLVING
1566 * - \ref SCIP_STAGE_SOLVED
1567 */
1568SCIP_EXPORT
1570 SCIP* scip /**< SCIP data structure */
1571 );
1572
1573/** gets the average inference score value over all variables, only using the inference information of the
1574 * current run
1575 *
1576 * @return the average inference score value over all variables, only using the inference information of the
1577 * current run
1578 *
1579 * @pre This method can be called if SCIP is in one of the following stages:
1580 * - \ref SCIP_STAGE_SOLVING
1581 * - \ref SCIP_STAGE_SOLVED
1582 */
1583SCIP_EXPORT
1585 SCIP* scip /**< SCIP data structure */
1586 );
1587
1588/** returns the average number of cutoffs found after branching in given direction over all variables
1589 *
1590 * @return the average number of cutoffs found after branching in given direction over all variables
1591 *
1592 * @pre This method can be called if SCIP is in one of the following stages:
1593 * - \ref SCIP_STAGE_SOLVING
1594 * - \ref SCIP_STAGE_SOLVED
1595 */
1596SCIP_EXPORT
1598 SCIP* scip, /**< SCIP data structure */
1599 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1600 );
1601
1602/** returns the average number of cutoffs found after branching in given direction over all variables,
1603 * only using the cutoff information of the current run
1604 *
1605 * @return the average number of cutoffs found after branching in given direction over all variables,
1606 * only using the cutoff information of the current run
1607 *
1608 * @pre This method can be called if SCIP is in one of the following stages:
1609 * - \ref SCIP_STAGE_SOLVING
1610 * - \ref SCIP_STAGE_SOLVED
1611 */
1612SCIP_EXPORT
1614 SCIP* scip, /**< SCIP data structure */
1615 SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1616 );
1617
1618/** gets the average cutoff score value over all variables
1619 *
1620 * @return the average cutoff score value over all variables
1621 *
1622 * @pre This method can be called if SCIP is in one of the following stages:
1623 * - \ref SCIP_STAGE_SOLVING
1624 * - \ref SCIP_STAGE_SOLVED
1625 */
1626SCIP_EXPORT
1628 SCIP* scip /**< SCIP data structure */
1629 );
1630
1631/** gets the average cutoff score value over all variables, only using the cutoff score information of the current run
1632 *
1633 * @return the average cutoff score value over all variables, only using the cutoff score information of the current run
1634 *
1635 * @pre This method can be called if SCIP is in one of the following stages:
1636 * - \ref SCIP_STAGE_SOLVING
1637 * - \ref SCIP_STAGE_SOLVED
1638 */
1639SCIP_EXPORT
1641 SCIP* scip /**< SCIP data structure */
1642 );
1643
1644/** returns the average normalized efficacy of a GMI cut over all variables
1645 *
1646 * @return the average normalized efficacy of a GMI cut over all variables
1647 *
1648 * @pre This method can be called if SCIP is in one of the following stages:
1649 * - \ref SCIP_STAGE_SOLVING
1650 * - \ref SCIP_STAGE_SOLVED
1651 */
1652SCIP_EXPORT
1654 SCIP* scip /**< SCIP data structure */
1655 );
1656
1657/** increases the average normalized efficacy of a GMI cut over all variables
1658 *
1659 * @pre This method can be called if SCIP is in one of the following stages:
1660 * - \ref SCIP_STAGE_SOLVING
1661 * - \ref SCIP_STAGE_SOLVED
1662 */
1663SCIP_EXPORT
1664void SCIPincAvgGMIeff(
1665 SCIP* scip, /**< SCIP data structure */
1666 SCIP_Real gmieff /**< average normalized GMI efficacy over all variables */
1667 );
1668
1669/** computes a deterministic measure of time from statistics
1670 *
1671 * @return the deterministic time
1672 *
1673 * @pre This method can be called if SCIP is in one of the following stages:
1674 * - \ref SCIP_STAGE_PRESOLVING
1675 * - \ref SCIP_STAGE_PRESOLVED
1676 * - \ref SCIP_STAGE_SOLVING
1677 * - \ref SCIP_STAGE_SOLVED
1678 */
1679SCIP_EXPORT
1681 SCIP* scip /**< SCIP data structure */
1682 );
1683
1684/** outputs original problem to file stream
1685 *
1686 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1687 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1688 *
1689 * @pre This method can be called if SCIP is in one of the following stages:
1690 * - \ref SCIP_STAGE_PROBLEM
1691 * - \ref SCIP_STAGE_TRANSFORMING
1692 * - \ref SCIP_STAGE_TRANSFORMED
1693 * - \ref SCIP_STAGE_INITPRESOLVE
1694 * - \ref SCIP_STAGE_PRESOLVING
1695 * - \ref SCIP_STAGE_EXITPRESOLVE
1696 * - \ref SCIP_STAGE_PRESOLVED
1697 * - \ref SCIP_STAGE_INITSOLVE
1698 * - \ref SCIP_STAGE_SOLVING
1699 * - \ref SCIP_STAGE_SOLVED
1700 * - \ref SCIP_STAGE_EXITSOLVE
1701 * - \ref SCIP_STAGE_FREETRANS
1702 */
1703SCIP_EXPORT
1705 SCIP* scip, /**< SCIP data structure */
1706 FILE* file, /**< output file (or NULL for standard output) */
1707 const char* extension, /**< file format (or NULL for default CIP format)*/
1708 SCIP_Bool genericnames /**< using generic variable and constraint names? */
1709 );
1710
1711/** outputs transformed problem of the current node to file stream
1712 *
1713 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1714 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1715 *
1716 * @pre This method can be called if SCIP is in one of the following stages:
1717 * - \ref SCIP_STAGE_TRANSFORMED
1718 * - \ref SCIP_STAGE_INITPRESOLVE
1719 * - \ref SCIP_STAGE_PRESOLVING
1720 * - \ref SCIP_STAGE_EXITPRESOLVE
1721 * - \ref SCIP_STAGE_PRESOLVED
1722 * - \ref SCIP_STAGE_INITSOLVE
1723 * - \ref SCIP_STAGE_SOLVING
1724 * - \ref SCIP_STAGE_SOLVED
1725 * - \ref SCIP_STAGE_EXITSOLVE
1726 * - \ref SCIP_STAGE_FREETRANS
1727 */
1728SCIP_EXPORT
1730 SCIP* scip, /**< SCIP data structure */
1731 FILE* file, /**< output file (or NULL for standard output) */
1732 const char* extension, /**< file format (or NULL for default CIP format)*/
1733 SCIP_Bool genericnames /**< using generic variable and constraint names? */
1734 );
1735
1736/** outputs status statistics
1737 *
1738 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
1739 * thus may to correspond to the original status.
1740 *
1741 * @pre This method can be called if SCIP is in one of the following stages:
1742 * - \ref SCIP_STAGE_INIT
1743 * - \ref SCIP_STAGE_PROBLEM
1744 * - \ref SCIP_STAGE_TRANSFORMED
1745 * - \ref SCIP_STAGE_INITPRESOLVE
1746 * - \ref SCIP_STAGE_PRESOLVING
1747 * - \ref SCIP_STAGE_EXITPRESOLVE
1748 * - \ref SCIP_STAGE_PRESOLVED
1749 * - \ref SCIP_STAGE_SOLVING
1750 * - \ref SCIP_STAGE_SOLVED
1751 */
1752SCIP_EXPORT
1754 SCIP* scip, /**< SCIP data structure */
1755 FILE* file /**< output file */
1756 );
1757
1758/** outputs timing statistics
1759 *
1760 * @pre This method can be called if SCIP is in one of the following stages:
1761 * - \ref SCIP_STAGE_PROBLEM
1762 * - \ref SCIP_STAGE_TRANSFORMED
1763 * - \ref SCIP_STAGE_INITPRESOLVE
1764 * - \ref SCIP_STAGE_PRESOLVING
1765 * - \ref SCIP_STAGE_EXITPRESOLVE
1766 * - \ref SCIP_STAGE_PRESOLVED
1767 * - \ref SCIP_STAGE_SOLVING
1768 * - \ref SCIP_STAGE_SOLVED
1769 */
1770SCIP_EXPORT
1772 SCIP* scip, /**< SCIP data structure */
1773 FILE* file /**< output file */
1774 );
1775
1776/** outputs statistics for original problem
1777 *
1778 * @pre This method can be called if SCIP is in one of the following stages:
1779 * - \ref SCIP_STAGE_PROBLEM
1780 * - \ref SCIP_STAGE_TRANSFORMED
1781 * - \ref SCIP_STAGE_INITPRESOLVE
1782 * - \ref SCIP_STAGE_PRESOLVING
1783 * - \ref SCIP_STAGE_EXITPRESOLVE
1784 * - \ref SCIP_STAGE_PRESOLVED
1785 * - \ref SCIP_STAGE_SOLVING
1786 * - \ref SCIP_STAGE_SOLVED
1787 */
1788SCIP_EXPORT
1790 SCIP* scip, /**< SCIP data structure */
1791 FILE* file /**< output file (or NULL for standard output) */
1792 );
1793
1794/** outputs statistics for transformed problem
1795 *
1796 * @pre This method can be called if SCIP is in one of the following stages:
1797 * - \ref SCIP_STAGE_PROBLEM
1798 * - \ref SCIP_STAGE_TRANSFORMED
1799 * - \ref SCIP_STAGE_INITPRESOLVE
1800 * - \ref SCIP_STAGE_PRESOLVING
1801 * - \ref SCIP_STAGE_EXITPRESOLVE
1802 * - \ref SCIP_STAGE_PRESOLVED
1803 * - \ref SCIP_STAGE_SOLVING
1804 * - \ref SCIP_STAGE_SOLVED
1805 */
1806SCIP_EXPORT
1808 SCIP* scip, /**< SCIP data structure */
1809 FILE* file /**< output file */
1810 );
1811
1812/** outputs presolver statistics
1813 *
1814 * @pre This method can be called if SCIP is in one of the following stages:
1815 * - \ref SCIP_STAGE_TRANSFORMED
1816 * - \ref SCIP_STAGE_INITPRESOLVE
1817 * - \ref SCIP_STAGE_PRESOLVING
1818 * - \ref SCIP_STAGE_EXITPRESOLVE
1819 * - \ref SCIP_STAGE_PRESOLVED
1820 * - \ref SCIP_STAGE_SOLVING
1821 * - \ref SCIP_STAGE_SOLVED
1822 */
1823SCIP_EXPORT
1825 SCIP* scip, /**< SCIP data structure */
1826 FILE* file /**< output file */
1827 );
1828
1829/** outputs constraint statistics
1830 *
1831 * @pre This method can be called if SCIP is in one of the following stages:
1832 * - \ref SCIP_STAGE_TRANSFORMED
1833 * - \ref SCIP_STAGE_INITPRESOLVE
1834 * - \ref SCIP_STAGE_PRESOLVING
1835 * - \ref SCIP_STAGE_EXITPRESOLVE
1836 * - \ref SCIP_STAGE_PRESOLVED
1837 * - \ref SCIP_STAGE_SOLVING
1838 * - \ref SCIP_STAGE_SOLVED
1839 */
1840SCIP_EXPORT
1842 SCIP* scip, /**< SCIP data structure */
1843 FILE* file /**< output file */
1844 );
1845
1846/** outputs constraint timing statistics
1847 *
1848 * @pre This method can be called if SCIP is in one of the following stages:
1849 * - \ref SCIP_STAGE_TRANSFORMED
1850 * - \ref SCIP_STAGE_INITPRESOLVE
1851 * - \ref SCIP_STAGE_PRESOLVING
1852 * - \ref SCIP_STAGE_EXITPRESOLVE
1853 * - \ref SCIP_STAGE_PRESOLVED
1854 * - \ref SCIP_STAGE_SOLVING
1855 * - \ref SCIP_STAGE_SOLVED
1856 */
1857SCIP_EXPORT
1859 SCIP* scip, /**< SCIP data structure */
1860 FILE* file /**< output file */
1861 );
1862
1863/** outputs propagator statistics
1864 *
1865 * @pre This method can be called if SCIP is in one of the following stages:
1866 * - \ref SCIP_STAGE_TRANSFORMED
1867 * - \ref SCIP_STAGE_INITPRESOLVE
1868 * - \ref SCIP_STAGE_PRESOLVING
1869 * - \ref SCIP_STAGE_EXITPRESOLVE
1870 * - \ref SCIP_STAGE_PRESOLVED
1871 * - \ref SCIP_STAGE_SOLVING
1872 * - \ref SCIP_STAGE_SOLVED
1873 */
1874SCIP_EXPORT
1876 SCIP* scip, /**< SCIP data structure */
1877 FILE* file /**< output file */
1878 );
1879
1880/** outputs conflict statistics
1881 *
1882 * @pre This method can be called if SCIP is in one of the following stages:
1883 * - \ref SCIP_STAGE_TRANSFORMED
1884 * - \ref SCIP_STAGE_INITPRESOLVE
1885 * - \ref SCIP_STAGE_PRESOLVING
1886 * - \ref SCIP_STAGE_EXITPRESOLVE
1887 * - \ref SCIP_STAGE_PRESOLVED
1888 * - \ref SCIP_STAGE_SOLVING
1889 * - \ref SCIP_STAGE_SOLVED
1890 */
1891SCIP_EXPORT
1893 SCIP* scip, /**< SCIP data structure */
1894 FILE* file /**< output file */
1895 );
1896
1897/** outputs separator statistics
1898 *
1899 * Columns:
1900 * - RootCalls: The number of calls that happened at the root.
1901 * - FoundCuts: The total number of cuts generated by the separators.
1902 * Note: Cutpool-FoundCuts \f$= \sum_{i=1}^nsepas ( Foundcuts_i - DirectAdd_i )\f$.
1903 * - ViaPoolAdd: The total number of cuts added to the sepastore from the cutpool.
1904 * - DirectAdd: The total number of cuts added directly to the sepastore from the separator.
1905 * - Applied: The sum of all cuts from the separator that were applied to the LP.
1906 * - ViaPoolApp: The number of cuts that entered the sepastore from the cutpool that were applied to the LP.
1907 * - DirectApp: The number of cuts that entered the sepastore directly and were applied to the LP.
1908 *
1909 * The number of cuts ViaPoolAdd + Directly should be equal to the number of cuts Filtered + Forced + Selected in the
1910 * cutselector statistics.
1911 *
1912 * @note The following edge case may lead to over or undercounting of statistics: When SCIPapplyCutsProbing() is
1913 * called, cuts are counted for the cut selection statistics, but not for the separator statistics. This
1914 * happens, e.g., in the default plugin prop_obbt.c.
1915 *
1916 * @pre This method can be called if SCIP is in one of the following stages:
1917 * - \ref SCIP_STAGE_SOLVING
1918 * - \ref SCIP_STAGE_SOLVED
1919 */
1920SCIP_EXPORT
1922 SCIP* scip, /**< SCIP data structure */
1923 FILE* file /**< output file */
1924 );
1925
1926/** outputs cutselector statistics
1927 *
1928 * @pre This method can be called if SCIP is in one of the following stages:
1929 * - \ref SCIP_STAGE_SOLVING
1930 * - \ref SCIP_STAGE_SOLVED
1931 */
1932SCIP_EXPORT
1934 SCIP* scip, /**< SCIP data structure */
1935 FILE* file /**< output file */
1936 );
1937
1938/** outputs pricer statistics
1939 *
1940 * @pre This method can be called if SCIP is in one of the following stages:
1941 * - \ref SCIP_STAGE_SOLVING
1942 * - \ref SCIP_STAGE_SOLVED
1943 */
1944SCIP_EXPORT
1946 SCIP* scip, /**< SCIP data structure */
1947 FILE* file /**< output file */
1948 );
1949
1950/** outputs branching rule statistics
1951 *
1952 * @pre This method can be called if SCIP is in one of the following stages:
1953 * - \ref SCIP_STAGE_SOLVING
1954 * - \ref SCIP_STAGE_SOLVED
1955 */
1956SCIP_EXPORT
1958 SCIP* scip, /**< SCIP data structure */
1959 FILE* file /**< output file */
1960 );
1961
1962/** outputs heuristics statistics
1963 *
1964 * @pre This method can be called if SCIP is in one of the following stages:
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 */
1975 );
1976
1977/** outputs compression statistics
1978 *
1979 * @pre This method can be called if SCIP is in one of the following stages:
1980 * - \ref SCIP_STAGE_PRESOLVING
1981 * - \ref SCIP_STAGE_EXITPRESOLVE
1982 * - \ref SCIP_STAGE_PRESOLVED
1983 * - \ref SCIP_STAGE_SOLVING
1984 * - \ref SCIP_STAGE_SOLVED
1985 */
1986SCIP_EXPORT
1988 SCIP* scip, /**< SCIP data structure */
1989 FILE* file /**< output file */
1990 );
1991
1992/** outputs LP statistics
1993 *
1994 * @pre This method can be called if SCIP is in one of the following stages:
1995 * - \ref SCIP_STAGE_SOLVING
1996 * - \ref SCIP_STAGE_SOLVED
1997 */
1998SCIP_EXPORT
2000 SCIP* scip, /**< SCIP data structure */
2001 FILE* file /**< output file */
2002 );
2003
2004/** outputs NLP statistics
2005 *
2006 * @pre This method can be called if SCIP is in one of the following stages:
2007 * - \ref SCIP_STAGE_SOLVING
2008 * - \ref SCIP_STAGE_SOLVED
2009 */
2010SCIP_EXPORT
2012 SCIP* scip, /**< SCIP data structure */
2013 FILE* file /**< output file */
2014 );
2015
2016/** outputs relaxator statistics
2017 *
2018 * @pre This method can be called if SCIP is in one of the following stages:
2019 * - \ref SCIP_STAGE_SOLVING
2020 * - \ref SCIP_STAGE_SOLVED
2021 */
2022SCIP_EXPORT
2024 SCIP* scip, /**< SCIP data structure */
2025 FILE* file /**< output file */
2026 );
2027
2028/** outputs tree statistics
2029 *
2030 * @pre This method can be called if SCIP is in one of the following stages:
2031 * - \ref SCIP_STAGE_SOLVING
2032 * - \ref SCIP_STAGE_SOLVED
2033 */
2034SCIP_EXPORT
2036 SCIP* scip, /**< SCIP data structure */
2037 FILE* file /**< output file */
2038 );
2039
2040/** outputs root statistics
2041 *
2042 * @pre This method can be called if SCIP is in one of the following stages:
2043 * - \ref SCIP_STAGE_SOLVING
2044 * - \ref SCIP_STAGE_SOLVED
2045 */
2046SCIP_EXPORT
2048 SCIP* scip, /**< SCIP data structure */
2049 FILE* file /**< output file */
2050 );
2051
2052/** outputs solution statistics
2053 *
2054 * @pre This method can be called if SCIP is in one of the following stages:
2055 * - \ref SCIP_STAGE_PRESOLVING
2056 * - \ref SCIP_STAGE_EXITPRESOLVE
2057 * - \ref SCIP_STAGE_PRESOLVED
2058 * - \ref SCIP_STAGE_SOLVING
2059 * - \ref SCIP_STAGE_SOLVED
2060 */
2061SCIP_EXPORT
2063 SCIP* scip, /**< SCIP data structure */
2064 FILE* file /**< output file */
2065 );
2066
2067/** outputs concurrent solver statistics
2068 *
2069 * @pre This method can be called if SCIP is in one of the following stages:
2070 * - \ref SCIP_STAGE_TRANSFORMED
2071 * - \ref SCIP_STAGE_INITPRESOLVE
2072 * - \ref SCIP_STAGE_PRESOLVING
2073 * - \ref SCIP_STAGE_EXITPRESOLVE
2074 * - \ref SCIP_STAGE_PRESOLVED
2075 * - \ref SCIP_STAGE_SOLVING
2076 * - \ref SCIP_STAGE_SOLVED
2077 */
2078SCIP_EXPORT
2080 SCIP* scip, /**< SCIP data structure */
2081 FILE* file /**< output file */
2082 );
2083
2084/** outputs Benders' decomposition statistics
2085 *
2086 * @pre This method can be called if SCIP is in one of the following stages:
2087 * - \ref SCIP_STAGE_SOLVING
2088 * - \ref SCIP_STAGE_SOLVED
2089 */
2090SCIP_EXPORT
2092 SCIP* scip, /**< SCIP data structure */
2093 FILE* file /**< output file */
2094 );
2095
2096/** outputs expression handler statistics
2097 *
2098 * @pre This method can be called if SCIP is in one of the following stages:
2099 * - \ref SCIP_STAGE_PROBLEM
2100 * - \ref SCIP_STAGE_TRANSFORMED
2101 * - \ref SCIP_STAGE_INITPRESOLVE
2102 * - \ref SCIP_STAGE_PRESOLVING
2103 * - \ref SCIP_STAGE_EXITPRESOLVE
2104 * - \ref SCIP_STAGE_PRESOLVED
2105 * - \ref SCIP_STAGE_SOLVING
2106 * - \ref SCIP_STAGE_SOLVED
2107 */
2108SCIP_EXPORT
2110 SCIP* scip, /**< SCIP data structure */
2111 FILE* file /**< output file */
2112 );
2113
2114/** outputs NLPI statistics
2115 *
2116 * @pre This method can be called if SCIP is in one of the following stages:
2117 * - \ref SCIP_STAGE_PROBLEM
2118 * - \ref SCIP_STAGE_TRANSFORMED
2119 * - \ref SCIP_STAGE_INITPRESOLVE
2120 * - \ref SCIP_STAGE_PRESOLVING
2121 * - \ref SCIP_STAGE_EXITPRESOLVE
2122 * - \ref SCIP_STAGE_PRESOLVED
2123 * - \ref SCIP_STAGE_SOLVING
2124 * - \ref SCIP_STAGE_SOLVED
2125 */
2126SCIP_EXPORT
2128 SCIP* scip, /**< SCIP data structure */
2129 FILE* file /**< output file */
2130 );
2131
2132/** outputs solving statistics
2133 *
2134 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2135 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2136 *
2137 * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
2138 * thus may to correspond to the original status.
2139 *
2140 * @pre This method can be called if SCIP is in one of the following stages:
2141 * - \ref SCIP_STAGE_INIT
2142 * - \ref SCIP_STAGE_PROBLEM
2143 * - \ref SCIP_STAGE_TRANSFORMED
2144 * - \ref SCIP_STAGE_INITPRESOLVE
2145 * - \ref SCIP_STAGE_PRESOLVING
2146 * - \ref SCIP_STAGE_EXITPRESOLVE
2147 * - \ref SCIP_STAGE_PRESOLVED
2148 * - \ref SCIP_STAGE_SOLVING
2149 * - \ref SCIP_STAGE_SOLVED
2150 */
2151SCIP_EXPORT
2153 SCIP* scip, /**< SCIP data structure */
2154 FILE* file /**< output file (or NULL for standard output) */
2155 );
2156
2157/** outputs reoptimization statistics
2158 *
2159 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2160 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2161 *
2162 * @pre This method can be called if SCIP is in one of the following stages:
2163 * - \ref SCIP_STAGE_INIT
2164 * - \ref SCIP_STAGE_PROBLEM
2165 * - \ref SCIP_STAGE_TRANSFORMED
2166 * - \ref SCIP_STAGE_INITPRESOLVE
2167 * - \ref SCIP_STAGE_PRESOLVING
2168 * - \ref SCIP_STAGE_EXITPRESOLVE
2169 * - \ref SCIP_STAGE_PRESOLVED
2170 * - \ref SCIP_STAGE_SOLVING
2171 * - \ref SCIP_STAGE_SOLVED
2172 */
2173SCIP_EXPORT
2175 SCIP* scip, /**< SCIP data structure */
2176 FILE* file /**< output file (or NULL for standard output) */
2177 );
2178
2179/** outputs history statistics about branchings on variables
2180 *
2181 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2182 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2183 *
2184 * @pre This method can be called if SCIP is in one of the following stages:
2185 * - \ref SCIP_STAGE_INIT
2186 * - \ref SCIP_STAGE_PROBLEM
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 FILE* file /**< output file (or NULL for standard output) */
2199 );
2200
2201/** outputs node information display line
2202 *
2203 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2204 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2205 *
2206 * @pre This method can be called if SCIP is in one of the following stages:
2207 * - \ref SCIP_STAGE_SOLVING
2208 */
2209SCIP_EXPORT
2211 SCIP* scip, /**< SCIP data structure */
2212 FILE* file, /**< output file (or NULL for standard output) */
2213 SCIP_VERBLEVEL verblevel, /**< minimal verbosity level to actually display the information line */
2214 SCIP_Bool endline /**< should the line be terminated with a newline symbol? */
2215 );
2216
2217/** gets total number of implications between variables that are stored in the implication graph
2218 *
2219 * @return the total number of implications between variables that are stored in the implication graph
2220 *
2221 * @pre This method can be called if SCIP is in one of the following stages:
2222 * - \ref SCIP_STAGE_INITPRESOLVE
2223 * - \ref SCIP_STAGE_PRESOLVING
2224 * - \ref SCIP_STAGE_EXITPRESOLVE
2225 * - \ref SCIP_STAGE_PRESOLVED
2226 * - \ref SCIP_STAGE_INITSOLVE
2227 * - \ref SCIP_STAGE_SOLVING
2228 * - \ref SCIP_STAGE_SOLVED
2229 */
2230SCIP_EXPORT
2232 SCIP* scip /**< SCIP data structure */
2233 );
2234
2235/** stores conflict graph of binary variables' implications into a file, which can be used as input for the DOT tool
2236 *
2237 * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2238 * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2239 *
2240 * @pre This method can be called if SCIP is in one of the following stages:
2241 * - \ref SCIP_STAGE_TRANSFORMED
2242 * - \ref SCIP_STAGE_INITPRESOLVE
2243 * - \ref SCIP_STAGE_PRESOLVING
2244 * - \ref SCIP_STAGE_EXITPRESOLVE
2245 * - \ref SCIP_STAGE_PRESOLVED
2246 * - \ref SCIP_STAGE_INITSOLVE
2247 * - \ref SCIP_STAGE_SOLVING
2248 * - \ref SCIP_STAGE_SOLVED
2249 * - \ref SCIP_STAGE_EXITSOLVE
2250 *
2251 * @deprecated because binary implications are now stored as cliques, please use SCIPwriteCliqueGraph() instead
2252 */
2253SCIP_EXPORT
2255 SCIP* scip, /**< SCIP data structure */
2256 const char* filename /**< file name, or NULL for stdout */
2257 );
2258
2259
2260/** update statistical information when a new solution was found */
2261SCIP_EXPORT
2263 SCIP* scip /**< SCIP data structure */
2264 );
2265
2266/** recomputes and returns the primal dual gap stored in the stats
2267 *
2268 * @return returns the primal dual gap stored in the stats
2269 */
2270SCIP_EXPORT
2272 SCIP* scip /**< SCIP data structure */
2273 );
2274
2275/**@} */
2276
2277#ifdef __cplusplus
2278}
2279#endif
2280
2281#endif
common defines and data types used in all packages of SCIP
#define SCIP_Longint
Definition: def.h:157
#define SCIP_Bool
Definition: def.h:91
#define SCIP_Real
Definition: def.h:172
#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)
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_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_Real SCIPgetDeterministicTime(SCIP *scip)
SCIP_Longint SCIPgetNSolsFound(SCIP *scip)
SCIP_Real SCIPgetPrimalbound(SCIP *scip)
int SCIPgetMaxDepth(SCIP *scip)
SCIP_RETCODE SCIPupdateCutoffbound(SCIP *scip, SCIP_Real cutoffbound)
SCIP_Longint SCIPgetNBarrierLPIterations(SCIP *scip)
SCIP_Real SCIPgetAvgInferenceScore(SCIP *scip)
SCIP_Longint SCIPgetNDivingLPIterations(SCIP *scip)
SCIP_Real SCIPgetAvgPseudocostScoreCurrentRun(SCIP *scip)
SCIP_Real SCIPgetUpperbound(SCIP *scip)
SCIP_Real SCIPgetLowerboundRoot(SCIP *scip)
SCIP_Real SCIPgetAvgConflictlengthScore(SCIP *scip)
void SCIPprintSolutionStatistics(SCIP *scip, FILE *file)
SCIP_Real SCIPgetAvgPseudocostCount(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPgetNInfeasibleLeaves(SCIP *scip)
void SCIPprintRelaxatorStatistics(SCIP *scip, FILE *file)
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)
int SCIPgetNPricevars(SCIP *scip)
int SCIPgetNRootboundChgsRun(SCIP *scip)
SCIP_Real SCIPgetDualbound(SCIP *scip)
void SCIPprintLPStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNRootStrongbranchs(SCIP *scip)
int SCIPgetNEnabledConss(SCIP *scip)
int SCIPgetNSepaRounds(SCIP *scip)
int SCIPgetNCutsFoundRound(SCIP *scip)
void SCIPprintNLPStatistics(SCIP *scip, FILE *file)
int SCIPgetNRootboundChgs(SCIP *scip)
SCIP_Real SCIPgetFirstPrimalBound(SCIP *scip)
SCIP_Longint SCIPgetNStrongbranchLPIterations(SCIP *scip)
int SCIPgetNPricevarsApplied(SCIP *scip)
int SCIPgetNCutsApplied(SCIP *scip)
void SCIPprintPricerStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPprintStatistics(SCIP *scip, FILE *file)
SCIP_Real SCIPgetLowerbound(SCIP *scip)
SCIP_Real SCIPgetAvgLowerbound(SCIP *scip)
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_Longint SCIPgetNResolveLPs(SCIP *scip)
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_Real SCIPgetAvgConflictScore(SCIP *scip)
SCIP_Longint SCIPgetNLimSolsFound(SCIP *scip)
void SCIPstoreSolutionGap(SCIP *scip)
SCIP_Real SCIPgetAvgPseudocost(SCIP *scip, SCIP_Real solvaldelta)
void SCIPprintConstraintStatistics(SCIP *scip, FILE *file)
SCIP_RETCODE SCIPprintTransProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames)
SCIP_Longint SCIPgetNBacktracks(SCIP *scip)
SCIP_RETCODE SCIPprintReoptStatistics(SCIP *scip, FILE *file)
SCIP_Longint SCIPgetNBarrierLPs(SCIP *scip)
SCIP_RETCODE SCIPprintOrigProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames)
SCIP_Longint SCIPgetNDualResolveLPIterations(SCIP *scip)
SCIP_Real SCIPgetTransGap(SCIP *scip)
SCIP_Longint SCIPgetNBestSolsFound(SCIP *scip)
SCIP_RETCODE SCIPwriteImplicationConflictGraph(SCIP *scip, const char *filename)
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 SCIPgetNConflictConssApplied(SCIP *scip)
SCIP_Longint SCIPgetNObjlimLeaves(SCIP *scip)
int SCIPgetNCutsFound(SCIP *scip)
void SCIPprintPresolverStatistics(SCIP *scip, FILE *file)
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)
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 SCIPgetAvgPseudocostCurrentRun(SCIP *scip, SCIP_Real solvaldelta)
SCIP_Real SCIPgetAvgInferences(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPgetNPrimalLPIterations(SCIP *scip)
SCIP_Longint SCIPgetNStrongbranchs(SCIP *scip)
int SCIPgetNConflictConssFoundNode(SCIP *scip)
SCIP_Longint SCIPgetNLPIterations(SCIP *scip)
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_Longint SCIPgetNPrimalLPs(SCIP *scip)
SCIP_Real SCIPgetAvgCutoffs(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_Longint SCIPgetNRootStrongbranchLPIterations(SCIP *scip)
SCIP_Real SCIPgetAvgCutoffScore(SCIP *scip)
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:59
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