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-2019 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not visit scip.zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file scip_solvingstats.h
17  * @ingroup PUBLICCOREAPI
18  * @brief public methods for querying solving statistics
19  * @author Tobias Achterberg
20  * @author Timo Berthold
21  * @author Thorsten Koch
22  * @author Alexander Martin
23  * @author Marc Pfetsch
24  * @author Kati Wolter
25  * @author Gregor Hendel
26  * @author Robert Lion Gottwald
27  */
28 
29 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
30 
31 #ifndef __SCIP_SCIP_SOLVINGSTATS_H__
32 #define __SCIP_SCIP_SOLVINGSTATS_H__
33 
34 
35 #include "scip/def.h"
36 #include "scip/type_history.h"
37 #include "scip/type_message.h"
38 #include "scip/type_retcode.h"
39 #include "scip/type_scip.h"
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /**@addtogroup PublicSolvingStatsMethods
46  *
47  * @{
48  */
49 
50 /** gets number of branch and bound runs performed, including the current run
51  *
52  * @return the number of branch and bound runs performed, including the current run
53  *
54  * @pre This method can be called if SCIP is in one of the following stages:
55  * - \ref SCIP_STAGE_PROBLEM
56  * - \ref SCIP_STAGE_TRANSFORMING
57  * - \ref SCIP_STAGE_TRANSFORMED
58  * - \ref SCIP_STAGE_INITPRESOLVE
59  * - \ref SCIP_STAGE_PRESOLVING
60  * - \ref SCIP_STAGE_EXITPRESOLVE
61  * - \ref SCIP_STAGE_PRESOLVED
62  * - \ref SCIP_STAGE_INITSOLVE
63  * - \ref SCIP_STAGE_SOLVING
64  * - \ref SCIP_STAGE_SOLVED
65  * - \ref SCIP_STAGE_EXITSOLVE
66  * - \ref SCIP_STAGE_FREETRANS
67  */
69 int SCIPgetNRuns(
70  SCIP* scip /**< SCIP data structure */
71  );
72 
73 /** gets number of reoptimization runs performed, including the current run
74  *
75  * @return the number of reoptimization runs performed, including the current run
76  *
77  * @pre This method can be called if SCIP is in one of the following stages:
78  * - \ref SCIP_STAGE_PROBLEM
79  * - \ref SCIP_STAGE_TRANSFORMING
80  * - \ref SCIP_STAGE_TRANSFORMED
81  * - \ref SCIP_STAGE_INITPRESOLVE
82  * - \ref SCIP_STAGE_PRESOLVING
83  * - \ref SCIP_STAGE_EXITPRESOLVE
84  * - \ref SCIP_STAGE_PRESOLVED
85  * - \ref SCIP_STAGE_INITSOLVE
86  * - \ref SCIP_STAGE_SOLVING
87  * - \ref SCIP_STAGE_SOLVED
88  * - \ref SCIP_STAGE_EXITSOLVE
89  * - \ref SCIP_STAGE_FREETRANS
90  */
93  SCIP* scip /**< SCIP data structure */
94  );
95 
96 /** add given number to the number of processed nodes in current run and in all runs, including the focus node
97  *
98  * @return the number of processed nodes in current run, including the focus node
99  *
100  * @pre This method can be called if SCIP is in one of the following stages:
101  * - \ref SCIP_STAGE_PROBLEM
102  * - \ref SCIP_STAGE_TRANSFORMING
103  * - \ref SCIP_STAGE_TRANSFORMED
104  * - \ref SCIP_STAGE_INITPRESOLVE
105  * - \ref SCIP_STAGE_PRESOLVING
106  * - \ref SCIP_STAGE_EXITPRESOLVE
107  * - \ref SCIP_STAGE_PRESOLVED
108  * - \ref SCIP_STAGE_INITSOLVE
109  * - \ref SCIP_STAGE_SOLVING
110  * - \ref SCIP_STAGE_SOLVED
111  * - \ref SCIP_STAGE_EXITSOLVE
112  * - \ref SCIP_STAGE_FREETRANS
113  */
115 void SCIPaddNNodes(
116  SCIP* scip, /**< SCIP data structure */
117  SCIP_Longint nnodes /**< number of processed nodes to add to the statistics */
118  );
119 
120 /** gets number of processed nodes in current run, including the focus node
121  *
122  * @return the number of processed nodes in current run, including the focus node
123  *
124  * @pre This method can be called if SCIP is in one of the following stages:
125  * - \ref SCIP_STAGE_PROBLEM
126  * - \ref SCIP_STAGE_TRANSFORMING
127  * - \ref SCIP_STAGE_TRANSFORMED
128  * - \ref SCIP_STAGE_INITPRESOLVE
129  * - \ref SCIP_STAGE_PRESOLVING
130  * - \ref SCIP_STAGE_EXITPRESOLVE
131  * - \ref SCIP_STAGE_PRESOLVED
132  * - \ref SCIP_STAGE_INITSOLVE
133  * - \ref SCIP_STAGE_SOLVING
134  * - \ref SCIP_STAGE_SOLVED
135  * - \ref SCIP_STAGE_EXITSOLVE
136  * - \ref SCIP_STAGE_FREETRANS
137  */
140  SCIP* scip /**< SCIP data structure */
141  );
142 
143 /** gets total number of processed nodes in all runs, including the focus node
144  *
145  * @return the total number of processed nodes in all runs, including the focus node
146  *
147  * @pre This method can be called if SCIP is in one of the following stages:
148  * - \ref SCIP_STAGE_PROBLEM
149  * - \ref SCIP_STAGE_TRANSFORMING
150  * - \ref SCIP_STAGE_TRANSFORMED
151  * - \ref SCIP_STAGE_INITPRESOLVE
152  * - \ref SCIP_STAGE_PRESOLVING
153  * - \ref SCIP_STAGE_EXITPRESOLVE
154  * - \ref SCIP_STAGE_PRESOLVED
155  * - \ref SCIP_STAGE_INITSOLVE
156  * - \ref SCIP_STAGE_SOLVING
157  * - \ref SCIP_STAGE_SOLVED
158  * - \ref SCIP_STAGE_EXITSOLVE
159  * - \ref SCIP_STAGE_FREETRANS
160  */
163  SCIP* scip /**< SCIP data structure */
164  );
165 
166 /** gets number of leaf nodes processed with feasible relaxation solution
167  *
168  * @return number of leaf nodes processed with feasible relaxation solution
169  *
170  * @pre This method can be called if SCIP is in one of the following stages:
171  * - \ref SCIP_STAGE_PROBLEM
172  * - \ref SCIP_STAGE_TRANSFORMING
173  * - \ref SCIP_STAGE_TRANSFORMED
174  * - \ref SCIP_STAGE_INITPRESOLVE
175  * - \ref SCIP_STAGE_PRESOLVING
176  * - \ref SCIP_STAGE_EXITPRESOLVE
177  * - \ref SCIP_STAGE_PRESOLVED
178  * - \ref SCIP_STAGE_INITSOLVE
179  * - \ref SCIP_STAGE_SOLVING
180  * - \ref SCIP_STAGE_SOLVED
181  * - \ref SCIP_STAGE_EXITSOLVE
182  * - \ref SCIP_STAGE_FREETRANS
183  */
186  SCIP* scip /**< SCIP data structure */
187  );
188 
189 /** gets number of infeasible leaf nodes processed
190  *
191  * @return number of infeasible leaf nodes processed
192  *
193  * @pre This method can be called if SCIP is in one of the following stages:
194  * - \ref SCIP_STAGE_PROBLEM
195  * - \ref SCIP_STAGE_TRANSFORMING
196  * - \ref SCIP_STAGE_TRANSFORMED
197  * - \ref SCIP_STAGE_INITPRESOLVE
198  * - \ref SCIP_STAGE_PRESOLVING
199  * - \ref SCIP_STAGE_EXITPRESOLVE
200  * - \ref SCIP_STAGE_PRESOLVED
201  * - \ref SCIP_STAGE_INITSOLVE
202  * - \ref SCIP_STAGE_SOLVING
203  * - \ref SCIP_STAGE_SOLVED
204  * - \ref SCIP_STAGE_EXITSOLVE
205  * - \ref SCIP_STAGE_FREETRANS
206  */
209  SCIP* scip /**< SCIP data structure */
210  );
211 
212 /** gets number of processed leaf nodes that hit LP objective limit
213  *
214  * @return number of processed leaf nodes that hit LP objective limit
215  *
216  * @pre This method can be called if SCIP is in one of the following stages:
217  * - \ref SCIP_STAGE_PROBLEM
218  * - \ref SCIP_STAGE_TRANSFORMING
219  * - \ref SCIP_STAGE_TRANSFORMED
220  * - \ref SCIP_STAGE_INITPRESOLVE
221  * - \ref SCIP_STAGE_PRESOLVING
222  * - \ref SCIP_STAGE_EXITPRESOLVE
223  * - \ref SCIP_STAGE_PRESOLVED
224  * - \ref SCIP_STAGE_INITSOLVE
225  * - \ref SCIP_STAGE_SOLVING
226  * - \ref SCIP_STAGE_SOLVED
227  * - \ref SCIP_STAGE_EXITSOLVE
228  * - \ref SCIP_STAGE_FREETRANS
229  */
232  SCIP* scip /**< SCIP data structure */
233  );
234 
235 /** gets number of times a selected node was from a cut off subtree
236  *
237  * @return number of times a selected node was from a cut off subtree
238  *
239  * @pre This method can be called if SCIP is in one of the following stages:
240  * - \ref SCIP_STAGE_PROBLEM
241  * - \ref SCIP_STAGE_TRANSFORMING
242  * - \ref SCIP_STAGE_TRANSFORMED
243  * - \ref SCIP_STAGE_INITPRESOLVE
244  * - \ref SCIP_STAGE_PRESOLVING
245  * - \ref SCIP_STAGE_EXITPRESOLVE
246  * - \ref SCIP_STAGE_PRESOLVED
247  * - \ref SCIP_STAGE_INITSOLVE
248  * - \ref SCIP_STAGE_SOLVING
249  * - \ref SCIP_STAGE_SOLVED
250  * - \ref SCIP_STAGE_EXITSOLVE
251  * - \ref SCIP_STAGE_FREETRANS
252  */
255  SCIP* scip /**< SCIP data structure */
256  );
257 
258 /** gets total number of LPs solved so far
259  *
260  * @return the total number of LPs solved so far
261  *
262  * @pre This method can be called if SCIP is in one of the following stages:
263  * - \ref SCIP_STAGE_PROBLEM
264  * - \ref SCIP_STAGE_TRANSFORMING
265  * - \ref SCIP_STAGE_TRANSFORMED
266  * - \ref SCIP_STAGE_INITPRESOLVE
267  * - \ref SCIP_STAGE_PRESOLVING
268  * - \ref SCIP_STAGE_EXITPRESOLVE
269  * - \ref SCIP_STAGE_PRESOLVED
270  * - \ref SCIP_STAGE_INITSOLVE
271  * - \ref SCIP_STAGE_SOLVING
272  * - \ref SCIP_STAGE_SOLVED
273  * - \ref SCIP_STAGE_EXITSOLVE
274  * - \ref SCIP_STAGE_FREETRANS
275  */
278  SCIP* scip /**< SCIP data structure */
279  );
280 
281 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm
282  *
283  * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm
284  *
285  * @pre This method can be called if SCIP is in one of the following stages:
286  * - \ref SCIP_STAGE_PRESOLVING
287  * - \ref SCIP_STAGE_PRESOLVED
288  * - \ref SCIP_STAGE_SOLVING
289  * - \ref SCIP_STAGE_SOLVED
290  */
293  SCIP* scip /**< SCIP data structure */
294  );
295 
296 /** gets number of active non-zeros in the current transformed problem
297  *
298  * @return the number of active non-zeros in the current transformed problem
299  *
300  * @pre This method can be called if SCIP is in one of the following stages:
301  * - \ref SCIP_STAGE_PROBLEM
302  * - \ref SCIP_STAGE_TRANSFORMING
303  * - \ref SCIP_STAGE_TRANSFORMED
304  * - \ref SCIP_STAGE_INITPRESOLVE
305  * - \ref SCIP_STAGE_PRESOLVING
306  * - \ref SCIP_STAGE_EXITPRESOLVE
307  * - \ref SCIP_STAGE_PRESOLVED
308  * - \ref SCIP_STAGE_INITSOLVE
309  * - \ref SCIP_STAGE_SOLVING
310  * - \ref SCIP_STAGE_SOLVED
311  * - \ref SCIP_STAGE_EXITSOLVE
312  */
315  SCIP* scip /**< SCIP data structure */
316  );
317 
318 
319 /** gets total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
320  *
321  * @return the total number of iterations used so far in primal and dual simplex and barrier algorithm for the root node
322  *
323  * @pre This method can be called if SCIP is in one of the following stages:
324  * - \ref SCIP_STAGE_PRESOLVED
325  * - \ref SCIP_STAGE_SOLVING
326  * - \ref SCIP_STAGE_SOLVED
327  */
330  SCIP* scip /**< SCIP data structure */
331  );
332 
333 /** gets total number of iterations used in primal and dual simplex and barrier algorithm for the first LP at the root
334  * node
335  *
336  * @return the total number of iterations used in primal and dual simplex and barrier algorithm for the first root LP
337  *
338  * @pre This method can be called if SCIP is in one of the following stages:
339  * - \ref SCIP_STAGE_PRESOLVED
340  * - \ref SCIP_STAGE_SOLVING
341  * - \ref SCIP_STAGE_SOLVED
342  */
345  SCIP* scip /**< SCIP data structure */
346  );
347 
348 /** gets total number of primal LPs solved so far
349  *
350  * @return the total number of primal LPs solved so far
351  *
352  * @pre This method can be called if SCIP is in one of the following stages:
353  * - \ref SCIP_STAGE_PRESOLVED
354  * - \ref SCIP_STAGE_SOLVING
355  * - \ref SCIP_STAGE_SOLVED
356  */
359  SCIP* scip /**< SCIP data structure */
360  );
361 
362 /** gets total number of iterations used so far in primal simplex
363  *
364  * @return total number of iterations used so far in primal simplex
365  *
366  * @pre This method can be called if SCIP is in one of the following stages:
367  * - \ref SCIP_STAGE_PRESOLVED
368  * - \ref SCIP_STAGE_SOLVING
369  * - \ref SCIP_STAGE_SOLVED
370  */
373  SCIP* scip /**< SCIP data structure */
374  );
375 
376 /** gets total number of dual LPs solved so far
377  *
378  * @return the total number of dual LPs solved so far
379  *
380  * @pre This method can be called if SCIP is in one of the following stages:
381  * - \ref SCIP_STAGE_PRESOLVED
382  * - \ref SCIP_STAGE_SOLVING
383  * - \ref SCIP_STAGE_SOLVED
384  */
387  SCIP* scip /**< SCIP data structure */
388  );
389 
390 /** gets total number of iterations used so far in dual simplex
391  *
392  * @return the total number of iterations used so far in dual simplex
393  *
394  * @pre This method can be called if SCIP is in one of the following stages:
395  * - \ref SCIP_STAGE_PRESOLVED
396  * - \ref SCIP_STAGE_SOLVING
397  * - \ref SCIP_STAGE_SOLVED
398  */
401  SCIP* scip /**< SCIP data structure */
402  );
403 
404 /** gets total number of barrier LPs solved so far
405  *
406  * @return the total number of barrier LPs solved so far
407  *
408  * @pre This method can be called if SCIP is in one of the following stages:
409  * - \ref SCIP_STAGE_PRESOLVED
410  * - \ref SCIP_STAGE_SOLVING
411  * - \ref SCIP_STAGE_SOLVED
412  */
415  SCIP* scip /**< SCIP data structure */
416  );
417 
418 /** gets total number of iterations used so far in barrier algorithm
419  *
420  * @return the total number of iterations used so far in barrier algorithm
421  *
422  * @pre This method can be called if SCIP is in one of the following stages:
423  * - \ref SCIP_STAGE_PRESOLVED
424  * - \ref SCIP_STAGE_SOLVING
425  * - \ref SCIP_STAGE_SOLVED
426  */
429  SCIP* scip /**< SCIP data structure */
430  );
431 
432 /** gets total number of LPs solved so far that were resolved from an advanced start basis
433  *
434  * @return the total number of LPs solved so far that were resolved from an advanced start basis
435  *
436  * @pre This method can be called if SCIP is in one of the following stages:
437  * - \ref SCIP_STAGE_PRESOLVED
438  * - \ref SCIP_STAGE_SOLVING
439  * - \ref SCIP_STAGE_SOLVED
440  */
443  SCIP* scip /**< SCIP data structure */
444  );
445 
446 /** gets total number of simplex iterations used so far in primal and dual simplex calls where an advanced start basis
447  * was available
448  *
449  * @return the total number of simplex iterations used so far in primal and dual simplex calls where an advanced start
450  * basis was available
451  *
452  * @pre This method can be called if SCIP is in one of the following stages:
453  * - \ref SCIP_STAGE_PRESOLVED
454  * - \ref SCIP_STAGE_SOLVING
455  * - \ref SCIP_STAGE_SOLVED
456  */
459  SCIP* scip /**< SCIP data structure */
460  );
461 
462 /** gets total number of primal LPs solved so far that were resolved from an advanced start basis
463  *
464  * @return the total number of primal LPs solved so far that were resolved from an advanced start basis
465  *
466  * @pre This method can be called if SCIP is in one of the following stages:
467  * - \ref SCIP_STAGE_PRESOLVED
468  * - \ref SCIP_STAGE_SOLVING
469  * - \ref SCIP_STAGE_SOLVED
470  */
473  SCIP* scip /**< SCIP data structure */
474  );
475 
476 /** gets total number of simplex iterations used so far in primal simplex calls where an advanced start basis
477  * was available
478  *
479  * @return the total number of simplex iterations used so far in primal simplex calls where an advanced start
480  * basis was available
481  *
482  * @pre This method can be called if SCIP is in one of the following stages:
483  * - \ref SCIP_STAGE_PRESOLVED
484  * - \ref SCIP_STAGE_SOLVING
485  * - \ref SCIP_STAGE_SOLVED
486  */
489  SCIP* scip /**< SCIP data structure */
490  );
491 
492 /** gets total number of dual LPs solved so far that were resolved from an advanced start basis
493  *
494  * @return the total number of dual LPs solved so far that were resolved from an advanced start basis
495  *
496  * @pre This method can be called if SCIP is in one of the following stages:
497  * - \ref SCIP_STAGE_PRESOLVED
498  * - \ref SCIP_STAGE_SOLVING
499  * - \ref SCIP_STAGE_SOLVED
500  */
503  SCIP* scip /**< SCIP data structure */
504  );
505 
506 /** gets total number of simplex iterations used so far in dual simplex calls where an advanced start basis
507  * was available
508  *
509  * @return the total number of simplex iterations used so far in dual simplex calls where an advanced start
510  * basis was available
511  *
512  * @pre This method can be called if SCIP is in one of the following stages:
513  * - \ref SCIP_STAGE_PRESOLVED
514  * - \ref SCIP_STAGE_SOLVING
515  * - \ref SCIP_STAGE_SOLVED
516  */
519  SCIP* scip /**< SCIP data structure */
520  );
521 
522 /** gets total number of LPs solved so far for node relaxations
523  *
524  * @return the total number of LPs solved so far for node relaxations
525  *
526  * @pre This method can be called if SCIP is in one of the following stages:
527  * - \ref SCIP_STAGE_PRESOLVED
528  * - \ref SCIP_STAGE_SOLVING
529  * - \ref SCIP_STAGE_SOLVED
530  */
533  SCIP* scip /**< SCIP data structure */
534  );
535 
536 /** gets total number of simplex iterations used so far for node relaxations
537  *
538  * @return the total number of simplex iterations used so far for node relaxations
539  *
540  * @pre This method can be called if SCIP is in one of the following stages:
541  * - \ref SCIP_STAGE_PRESOLVED
542  * - \ref SCIP_STAGE_SOLVING
543  * - \ref SCIP_STAGE_SOLVED
544  */
547  SCIP* scip /**< SCIP data structure */
548  );
549 
550 /** gets total number of LPs solved so far for initial LP in node relaxations
551  *
552  * @return the total number of LPs solved so far for initial LP in node relaxations
553  *
554  * @pre This method can be called if SCIP is in one of the following stages:
555  * - \ref SCIP_STAGE_PRESOLVED
556  * - \ref SCIP_STAGE_SOLVING
557  * - \ref SCIP_STAGE_SOLVED
558  */
561  SCIP* scip /**< SCIP data structure */
562  );
563 
564 /** gets total number of simplex iterations used so far for initial LP in node relaxations
565  *
566  * @return the total number of simplex iterations used so far for initial LP in node relaxations
567  *
568  * @pre This method can be called if SCIP is in one of the following stages:
569  * - \ref SCIP_STAGE_PRESOLVED
570  * - \ref SCIP_STAGE_SOLVING
571  * - \ref SCIP_STAGE_SOLVED
572  */
575  SCIP* scip /**< SCIP data structure */
576  );
577 
578 /** gets total number of LPs solved so far during diving and probing
579  *
580  * @return total number of LPs solved so far during diving and probing
581  *
582  * @pre This method can be called if SCIP is in one of the following stages:
583  * - \ref SCIP_STAGE_PRESOLVED
584  * - \ref SCIP_STAGE_SOLVING
585  * - \ref SCIP_STAGE_SOLVED
586  */
589  SCIP* scip /**< SCIP data structure */
590  );
591 
592 /** gets total number of simplex iterations used so far during diving and probing
593  *
594  * @return the total number of simplex iterations used so far during diving and probing
595  *
596  * @pre This method can be called if SCIP is in one of the following stages:
597  * - \ref SCIP_STAGE_PRESOLVED
598  * - \ref SCIP_STAGE_SOLVING
599  * - \ref SCIP_STAGE_SOLVED
600  */
603  SCIP* scip /**< SCIP data structure */
604  );
605 
606 /** gets total number of times, strong branching was called (each call represents solving two LPs)
607  *
608  * @return the total number of times, strong branching was called (each call represents solving two LPs)
609  *
610  * @pre This method can be called if SCIP is in one of the following stages:
611  * - \ref SCIP_STAGE_PRESOLVED
612  * - \ref SCIP_STAGE_SOLVING
613  * - \ref SCIP_STAGE_SOLVED
614  */
617  SCIP* scip /**< SCIP data structure */
618  );
619 
620 /** gets total number of simplex iterations used so far in strong branching
621  *
622  * @return the total number of simplex iterations used so far in strong branching
623  *
624  * @pre This method can be called if SCIP is in one of the following stages:
625  * - \ref SCIP_STAGE_PRESOLVED
626  * - \ref SCIP_STAGE_SOLVING
627  * - \ref SCIP_STAGE_SOLVED
628  */
631  SCIP* scip /**< SCIP data structure */
632  );
633 
634 /** gets total number of times, strong branching was called at the root node (each call represents solving two LPs)
635  *
636  * @return the total number of times, strong branching was called at the root node (each call represents solving two LPs)
637  *
638  * @pre This method can be called if SCIP is in one of the following stages:
639  * - \ref SCIP_STAGE_PRESOLVED
640  * - \ref SCIP_STAGE_SOLVING
641  * - \ref SCIP_STAGE_SOLVED
642  */
645  SCIP* scip /**< SCIP data structure */
646  );
647 
648 /** gets total number of simplex iterations used so far in strong branching at the root node
649  *
650  * @return the total number of simplex iterations used so far in strong branching at the root node
651  *
652  * @pre This method can be called if SCIP is in one of the following stages:
653  * - \ref SCIP_STAGE_PRESOLVED
654  * - \ref SCIP_STAGE_SOLVING
655  * - \ref SCIP_STAGE_SOLVED
656  */
659  SCIP* scip /**< SCIP data structure */
660  );
661 
662 /** gets number of pricing rounds performed so far at the current node
663  *
664  * @return the number of pricing rounds performed so far at the current node
665  *
666  * @pre This method can be called if SCIP is in one of the following stages:
667  * - \ref SCIP_STAGE_SOLVING
668  */
671  SCIP* scip /**< SCIP data structure */
672  );
673 
674 /** get current number of variables in the pricing store
675  *
676  * @return the current number of variables in the pricing store
677  *
678  * @pre This method can be called if SCIP is in one of the following stages:
679  * - \ref SCIP_STAGE_PRESOLVED
680  * - \ref SCIP_STAGE_SOLVING
681  * - \ref SCIP_STAGE_SOLVED
682  */
685  SCIP* scip /**< SCIP data structure */
686  );
687 
688 /** get total number of pricing variables found so far
689  *
690  * @return the total number of pricing variables found so far
691  *
692  * @pre This method can be called if SCIP is in one of the following stages:
693  * - \ref SCIP_STAGE_PRESOLVED
694  * - \ref SCIP_STAGE_SOLVING
695  * - \ref SCIP_STAGE_SOLVED
696  */
699  SCIP* scip /**< SCIP data structure */
700  );
701 
702 /** get total number of pricing variables applied to the LPs
703  *
704  * @return the total number of pricing variables applied to the LPs
705  *
706  * @pre This method can be called if SCIP is in one of the following stages:
707  * - \ref SCIP_STAGE_PRESOLVED
708  * - \ref SCIP_STAGE_SOLVING
709  * - \ref SCIP_STAGE_SOLVED
710  */
713  SCIP* scip /**< SCIP data structure */
714  );
715 
716 /** gets number of separation rounds performed so far at the current node
717  *
718  * @return the number of separation rounds performed so far at the current node
719  *
720  * @pre This method can be called if SCIP is in one of the following stages:
721  * - \ref SCIP_STAGE_SOLVING
722  */
725  SCIP* scip /**< SCIP data structure */
726  );
727 
728 /** get total number of cuts found so far
729  *
730  * @return the total number of cuts found so far
731  *
732  * @pre This method can be called if SCIP is in one of the following stages:
733  * - \ref SCIP_STAGE_PRESOLVED
734  * - \ref SCIP_STAGE_SOLVING
735  * - \ref SCIP_STAGE_SOLVED
736  */
739  SCIP* scip /**< SCIP data structure */
740  );
741 
742 /** get number of cuts found so far in current separation round
743  *
744  * @return the number of cuts found so far in current separation round
745  *
746  * @pre This method can be called if SCIP is in one of the following stages:
747  * - \ref SCIP_STAGE_PRESOLVED
748  * - \ref SCIP_STAGE_SOLVING
749  * - \ref SCIP_STAGE_SOLVED
750  */
753  SCIP* scip /**< SCIP data structure */
754  );
755 
756 /** get total number of cuts applied to the LPs
757  *
758  * @return the total number of cuts applied to the LPs
759  *
760  * @pre This method can be called if SCIP is in one of the following stages:
761  * - \ref SCIP_STAGE_PRESOLVED
762  * - \ref SCIP_STAGE_SOLVING
763  * - \ref SCIP_STAGE_SOLVED
764  */
767  SCIP* scip /**< SCIP data structure */
768  );
769 
770 /** get total number of constraints found in conflict analysis (conflict and reconvergence constraints)
771  *
772  * @return the total number of constraints found in conflict analysis (conflict and reconvergence constraints)
773  *
774  * @pre This method can be called if SCIP is in one of the following stages:
775  * - \ref SCIP_STAGE_TRANSFORMED
776  * - \ref SCIP_STAGE_INITPRESOLVE
777  * - \ref SCIP_STAGE_PRESOLVING
778  * - \ref SCIP_STAGE_EXITPRESOLVE
779  * - \ref SCIP_STAGE_PRESOLVED
780  * - \ref SCIP_STAGE_INITSOLVE
781  * - \ref SCIP_STAGE_SOLVING
782  * - \ref SCIP_STAGE_SOLVED
783  * - \ref SCIP_STAGE_EXITSOLVE
784  */
787  SCIP* scip /**< SCIP data structure */
788  );
789 
790 /** get number of conflict constraints found so far at the current node
791  *
792  * @return the number of conflict constraints found so far at the current node
793  *
794  * @pre This method can be called if SCIP is in one of the following stages:
795  * - \ref SCIP_STAGE_TRANSFORMED
796  * - \ref SCIP_STAGE_INITPRESOLVE
797  * - \ref SCIP_STAGE_PRESOLVING
798  * - \ref SCIP_STAGE_EXITPRESOLVE
799  * - \ref SCIP_STAGE_PRESOLVED
800  * - \ref SCIP_STAGE_INITSOLVE
801  * - \ref SCIP_STAGE_SOLVING
802  * - \ref SCIP_STAGE_SOLVED
803  * - \ref SCIP_STAGE_EXITSOLVE
804  */
807  SCIP* scip /**< SCIP data structure */
808  );
809 
810 /** get total number of conflict constraints added to the problem
811  *
812  * @return the total number of conflict constraints added to the problem
813  *
814  * @pre This method can be called if SCIP is in one of the following stages:
815  * - \ref SCIP_STAGE_TRANSFORMED
816  * - \ref SCIP_STAGE_INITPRESOLVE
817  * - \ref SCIP_STAGE_PRESOLVING
818  * - \ref SCIP_STAGE_EXITPRESOLVE
819  * - \ref SCIP_STAGE_PRESOLVED
820  * - \ref SCIP_STAGE_INITSOLVE
821  * - \ref SCIP_STAGE_SOLVING
822  * - \ref SCIP_STAGE_SOLVED
823  * - \ref SCIP_STAGE_EXITSOLVE
824  */
827  SCIP* scip /**< SCIP data structure */
828  );
829 
830 /** gets maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
831  *
832  * @return the maximal depth of all processed nodes in current branch and bound run (excluding probing nodes)
833  *
834  * @pre This method can be called if SCIP is in one of the following stages:
835  * - \ref SCIP_STAGE_TRANSFORMED
836  * - \ref SCIP_STAGE_INITPRESOLVE
837  * - \ref SCIP_STAGE_PRESOLVING
838  * - \ref SCIP_STAGE_EXITPRESOLVE
839  * - \ref SCIP_STAGE_PRESOLVED
840  * - \ref SCIP_STAGE_INITSOLVE
841  * - \ref SCIP_STAGE_SOLVING
842  * - \ref SCIP_STAGE_SOLVED
843  * - \ref SCIP_STAGE_EXITSOLVE
844  */
846 int SCIPgetMaxDepth(
847  SCIP* scip /**< SCIP data structure */
848  );
849 
850 /** gets maximal depth of all processed nodes over all branch and bound runs
851  *
852  * @return the maximal depth of all processed nodes over all branch and bound runs
853  *
854  * @pre This method can be called if SCIP is in one of the following stages:
855  * - \ref SCIP_STAGE_TRANSFORMED
856  * - \ref SCIP_STAGE_INITPRESOLVE
857  * - \ref SCIP_STAGE_PRESOLVING
858  * - \ref SCIP_STAGE_EXITPRESOLVE
859  * - \ref SCIP_STAGE_PRESOLVED
860  * - \ref SCIP_STAGE_INITSOLVE
861  * - \ref SCIP_STAGE_SOLVING
862  * - \ref SCIP_STAGE_SOLVED
863  * - \ref SCIP_STAGE_EXITSOLVE
864  */
867  SCIP* scip /**< SCIP data structure */
868  );
869 
870 /** gets total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
871  *
872  * @return the total number of backtracks, i.e. number of times, the new node was selected from the leaves queue
873  *
874  * @pre This method can be called if SCIP is in one of the following stages:
875  * - \ref SCIP_STAGE_TRANSFORMED
876  * - \ref SCIP_STAGE_INITPRESOLVE
877  * - \ref SCIP_STAGE_PRESOLVING
878  * - \ref SCIP_STAGE_EXITPRESOLVE
879  * - \ref SCIP_STAGE_PRESOLVED
880  * - \ref SCIP_STAGE_INITSOLVE
881  * - \ref SCIP_STAGE_SOLVING
882  * - \ref SCIP_STAGE_SOLVED
883  * - \ref SCIP_STAGE_EXITSOLVE
884  */
887  SCIP* scip /**< SCIP data structure */
888  );
889 
890 /** gets total number of active constraints at the current node
891  *
892  * @return the total number of active constraints at the current node
893  *
894  * @pre This method can be called if SCIP is in one of the following stages:
895  * - \ref SCIP_STAGE_INITPRESOLVE
896  * - \ref SCIP_STAGE_PRESOLVING
897  * - \ref SCIP_STAGE_EXITPRESOLVE
898  * - \ref SCIP_STAGE_PRESOLVED
899  * - \ref SCIP_STAGE_SOLVING
900  */
903  SCIP* scip /**< SCIP data structure */
904  );
905 
906 /** gets total number of enabled constraints at the current node
907  *
908  * @return the total number of enabled constraints at the current node
909  *
910  * @pre This method can be called if SCIP is in one of the following stages:
911  * - \ref SCIP_STAGE_PRESOLVED
912  * - \ref SCIP_STAGE_SOLVING
913  */
916  SCIP* scip /**< SCIP data structure */
917  );
918 
919 /** gets average dual bound of all unprocessed nodes for original problem */
922  SCIP* scip /**< SCIP data structure */
923  );
924 
925 /** gets average lower (dual) bound of all unprocessed nodes in transformed problem
926  *
927  * @return the average lower (dual) bound of all unprocessed nodes in transformed problem
928  *
929  * @pre This method can be called if SCIP is in one of the following stages:
930  * - \ref SCIP_STAGE_PRESOLVED
931  * - \ref SCIP_STAGE_SOLVING
932  * - \ref SCIP_STAGE_SOLVED
933  */
936  SCIP* scip /**< SCIP data structure */
937  );
938 
939 /** gets global dual bound
940  *
941  * @return the global dual bound
942  *
943  * @pre This method can be called if SCIP is in one of the following stages:
944  * - \ref SCIP_STAGE_TRANSFORMED
945  * - \ref SCIP_STAGE_INITPRESOLVE
946  * - \ref SCIP_STAGE_PRESOLVING
947  * - \ref SCIP_STAGE_EXITPRESOLVE
948  * - \ref SCIP_STAGE_PRESOLVED
949  * - \ref SCIP_STAGE_INITSOLVE
950  * - \ref SCIP_STAGE_SOLVING
951  * - \ref SCIP_STAGE_SOLVED
952  */
955  SCIP* scip /**< SCIP data structure */
956  );
957 
958 /** gets global lower (dual) bound in transformed problem
959  *
960  * @return the global lower (dual) bound in transformed problem
961  *
962  * @pre This method can be called if SCIP is in one of the following stages:
963  * - \ref SCIP_STAGE_TRANSFORMED
964  * - \ref SCIP_STAGE_INITPRESOLVE
965  * - \ref SCIP_STAGE_PRESOLVING
966  * - \ref SCIP_STAGE_EXITPRESOLVE
967  * - \ref SCIP_STAGE_PRESOLVED
968  * - \ref SCIP_STAGE_INITSOLVE
969  * - \ref SCIP_STAGE_SOLVING
970  * - \ref SCIP_STAGE_SOLVED
971  */
974  SCIP* scip /**< SCIP data structure */
975  );
976 
977 /** gets dual bound of the root node for the original problem
978  *
979  * @return the dual bound of the root node for the original problem
980  *
981  * @pre This method can be called if SCIP is in one of the following stages:
982  * - \ref SCIP_STAGE_PRESOLVING
983  * - \ref SCIP_STAGE_EXITPRESOLVE
984  * - \ref SCIP_STAGE_PRESOLVED
985  * - \ref SCIP_STAGE_INITSOLVE
986  * - \ref SCIP_STAGE_SOLVING
987  * - \ref SCIP_STAGE_SOLVED
988  */
991  SCIP* scip /**< SCIP data structure */
992  );
993 
994 /** gets lower (dual) bound in transformed problem of the root node
995  *
996  * @return the lower (dual) bound in transformed problem of the root node
997  *
998  * @pre This method can be called if SCIP is in one of the following stages:
999  * - \ref SCIP_STAGE_PRESOLVING
1000  * - \ref SCIP_STAGE_EXITPRESOLVE
1001  * - \ref SCIP_STAGE_PRESOLVED
1002  * - \ref SCIP_STAGE_INITSOLVE
1003  * - \ref SCIP_STAGE_SOLVING
1004  * - \ref SCIP_STAGE_SOLVED
1005  */
1008  SCIP* scip /**< SCIP data structure */
1009  );
1010 
1011 /** gets dual bound for the original problem obtained by the first LP solve at the root node
1012  *
1013  * @return the dual bound for the original problem of the first LP solve at the root node
1014  *
1015  * @pre This method can be called if SCIP is in one of the following stages:
1016  * - \ref SCIP_STAGE_PRESOLVING
1017  * - \ref SCIP_STAGE_EXITPRESOLVE
1018  * - \ref SCIP_STAGE_PRESOLVED
1019  * - \ref SCIP_STAGE_INITSOLVE
1020  * - \ref SCIP_STAGE_SOLVING
1021  * - \ref SCIP_STAGE_SOLVED
1022  */
1025  SCIP* scip /**< SCIP data structure */
1026  );
1027 
1028 /** gets lower (dual) bound in transformed problem obtained by the first LP solve at the root node
1029  *
1030  * @return the lower (dual) bound in transformed problem obtained by first LP solve at the root node
1031  *
1032  * @pre This method can be called if SCIP is in one of the following stages:
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  */
1042  SCIP* scip /**< SCIP data structure */
1043  );
1044 
1045 
1046 /** the primal bound of the very first solution */
1049  SCIP* scip /**< SCIP data structure */
1050  );
1051 
1052 /** gets global primal bound (objective value of best solution or user objective limit) for the original problem
1053  *
1054  * @return the global primal bound (objective value of best solution or user objective limit) for the original problem
1055  *
1056  * @pre This method can be called if SCIP is in one of the following stages:
1057  * - \ref SCIP_STAGE_TRANSFORMED
1058  * - \ref SCIP_STAGE_INITPRESOLVE
1059  * - \ref SCIP_STAGE_PRESOLVING
1060  * - \ref SCIP_STAGE_EXITPRESOLVE
1061  * - \ref SCIP_STAGE_PRESOLVED
1062  * - \ref SCIP_STAGE_INITSOLVE
1063  * - \ref SCIP_STAGE_SOLVING
1064  * - \ref SCIP_STAGE_SOLVED
1065  * - \ref SCIP_STAGE_EXITSOLVE
1066  */
1069  SCIP* scip /**< SCIP data structure */
1070  );
1071 
1072 /** gets global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
1073  *
1074  * @return the global upper (primal) bound in transformed problem (objective value of best solution or user objective limit)
1075  *
1076  * @pre This method can be called if SCIP is in one of the following stages:
1077  * - \ref SCIP_STAGE_TRANSFORMED
1078  * - \ref SCIP_STAGE_INITPRESOLVE
1079  * - \ref SCIP_STAGE_PRESOLVING
1080  * - \ref SCIP_STAGE_EXITPRESOLVE
1081  * - \ref SCIP_STAGE_PRESOLVED
1082  * - \ref SCIP_STAGE_INITSOLVE
1083  * - \ref SCIP_STAGE_SOLVING
1084  * - \ref SCIP_STAGE_SOLVED
1085  * - \ref SCIP_STAGE_EXITSOLVE
1086  */
1089  SCIP* scip /**< SCIP data structure */
1090  );
1091 
1092 /** gets global cutoff bound in transformed problem: a sub problem with lower bound larger than the cutoff
1093  * cannot contain a better feasible solution; usually, this bound is equal to the upper bound, but if the
1094  * objective value is always integral, the cutoff bound is (nearly) one less than the upper bound;
1095  * additionally, due to objective function domain propagation, the cutoff bound can be further reduced
1096  *
1097  * @return global cutoff bound in transformed problem
1098  *
1099  * @pre This method can be called if SCIP is in one of the following stages:
1100  * - \ref SCIP_STAGE_TRANSFORMED
1101  * - \ref SCIP_STAGE_INITPRESOLVE
1102  * - \ref SCIP_STAGE_PRESOLVING
1103  * - \ref SCIP_STAGE_EXITPRESOLVE
1104  * - \ref SCIP_STAGE_PRESOLVED
1105  * - \ref SCIP_STAGE_INITSOLVE
1106  * - \ref SCIP_STAGE_SOLVING
1107  * - \ref SCIP_STAGE_SOLVED
1108  * - \ref SCIP_STAGE_EXITSOLVE
1109  */
1112  SCIP* scip /**< SCIP data structure */
1113  );
1114 
1115 /** updates the cutoff bound
1116  *
1117  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1118  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1119  *
1120  * @note using this method in the solving stage can lead to an erroneous SCIP solving status; in particular,
1121  * if a solution not respecting the cutoff bound was found before installing a cutoff bound which
1122  * renders the remaining problem infeasible, this solution may be reported as optimal
1123  *
1124  * @pre This method can be called if SCIP is in one of the following stages:
1125  * - \ref SCIP_STAGE_TRANSFORMED
1126  * - \ref SCIP_STAGE_PRESOLVING
1127  * - \ref SCIP_STAGE_PRESOLVED
1128  * - \ref SCIP_STAGE_INITSOLVE
1129  * - \ref SCIP_STAGE_SOLVING
1130  *
1131  * @note the given cutoff bound has to better or equal to known one (SCIPgetCutoffbound())
1132  */
1135  SCIP* scip, /**< SCIP data structure */
1136  SCIP_Real cutoffbound /**< new cutoff bound */
1137  );
1138 
1139 /** returns whether the current primal bound is justified with a feasible primal solution; if not, the primal bound
1140  * was set from the user as objective limit
1141  *
1142  * @return TRUE if the current primal bound is justified with a feasible primal solution, otherwise FALSE
1143  *
1144  * @pre This method can be called if SCIP is in one of the following stages:
1145  * - \ref SCIP_STAGE_TRANSFORMED
1146  * - \ref SCIP_STAGE_INITPRESOLVE
1147  * - \ref SCIP_STAGE_PRESOLVING
1148  * - \ref SCIP_STAGE_EXITPRESOLVE
1149  * - \ref SCIP_STAGE_PRESOLVED
1150  * - \ref SCIP_STAGE_INITSOLVE
1151  * - \ref SCIP_STAGE_SOLVING
1152  * - \ref SCIP_STAGE_SOLVED
1153  * - \ref SCIP_STAGE_EXITSOLVE
1154  */
1157  SCIP* scip /**< SCIP data structure */
1158  );
1159 
1160 /** gets current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
1161  * or infinity, if they have opposite sign
1162  *
1163  * @return the current gap |(primalbound - dualbound)/min(|primalbound|,|dualbound|)| if both bounds have same sign,
1164  * or infinity, if they have opposite sign
1165  *
1166  * @pre This method can be called if SCIP is in one of the following stages:
1167  * - \ref SCIP_STAGE_PRESOLVED
1168  * - \ref SCIP_STAGE_SOLVING
1169  * - \ref SCIP_STAGE_SOLVED
1170  */
1173  SCIP* scip /**< SCIP data structure */
1174  );
1175 
1176 /** gets current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
1177  * have same sign, or infinity, if they have opposite sign
1178  *
1179  * @return current gap |(upperbound - lowerbound)/min(|upperbound|,|lowerbound|)| in transformed problem if both bounds
1180  * have same sign, or infinity, if they have opposite sign
1181  *
1182  * @pre This method can be called if SCIP is in one of the following stages:
1183  * - \ref SCIP_STAGE_PRESOLVED
1184  * - \ref SCIP_STAGE_SOLVING
1185  * - \ref SCIP_STAGE_SOLVED
1186  */
1189  SCIP* scip /**< SCIP data structure */
1190  );
1191 
1192 /** gets number of feasible primal solutions found so far
1193  *
1194  * @return the number of feasible primal solutions found so far
1195  *
1196  * @pre This method can be called if SCIP is in one of the following stages:
1197  * - \ref SCIP_STAGE_TRANSFORMED
1198  * - \ref SCIP_STAGE_INITPRESOLVE
1199  * - \ref SCIP_STAGE_PRESOLVING
1200  * - \ref SCIP_STAGE_EXITPRESOLVE
1201  * - \ref SCIP_STAGE_PRESOLVED
1202  * - \ref SCIP_STAGE_INITSOLVE
1203  * - \ref SCIP_STAGE_SOLVING
1204  * - \ref SCIP_STAGE_SOLVED
1205  * - \ref SCIP_STAGE_EXITSOLVE
1206  */
1209  SCIP* scip /**< SCIP data structure */
1210  );
1211 
1212 /** gets number of feasible primal solutions respecting the objective limit found so far
1213  *
1214  * @return the number of feasible primal solutions respecting the objective limit found so far
1215  *
1216  * @pre This method can be called if SCIP is in one of the following stages:
1217  * - \ref SCIP_STAGE_INIT
1218  * - \ref SCIP_STAGE_PROBLEM
1219  * - \ref SCIP_STAGE_TRANSFORMING
1220  * - \ref SCIP_STAGE_TRANSFORMED
1221  * - \ref SCIP_STAGE_INITPRESOLVE
1222  * - \ref SCIP_STAGE_PRESOLVING
1223  * - \ref SCIP_STAGE_EXITPRESOLVE
1224  * - \ref SCIP_STAGE_PRESOLVED
1225  * - \ref SCIP_STAGE_INITSOLVE
1226  * - \ref SCIP_STAGE_SOLVING
1227  * - \ref SCIP_STAGE_SOLVED
1228  * - \ref SCIP_STAGE_EXITSOLVE
1229  */
1232  SCIP* scip /**< SCIP data structure */
1233  );
1234 
1235 /** gets number of feasible primal solutions found so far, that improved the primal bound at the time they were found
1236  *
1237  * @return the number of feasible primal solutions found so far, that improved the primal bound at the time they were found
1238  *
1239  * @pre This method can be called if SCIP is in one of the following stages:
1240  * - \ref SCIP_STAGE_TRANSFORMED
1241  * - \ref SCIP_STAGE_INITPRESOLVE
1242  * - \ref SCIP_STAGE_PRESOLVING
1243  * - \ref SCIP_STAGE_EXITPRESOLVE
1244  * - \ref SCIP_STAGE_PRESOLVED
1245  * - \ref SCIP_STAGE_INITSOLVE
1246  * - \ref SCIP_STAGE_SOLVING
1247  * - \ref SCIP_STAGE_SOLVED
1248  * - \ref SCIP_STAGE_EXITSOLVE
1249  */
1252  SCIP* scip /**< SCIP data structure */
1253  );
1254 
1255 /** gets the average pseudo cost value for the given direction over all variables
1256  *
1257  * @return the average pseudo cost value for the given direction over all variables
1258  *
1259  * @pre This method can be called if SCIP is in one of the following stages:
1260  * - \ref SCIP_STAGE_SOLVING
1261  * - \ref SCIP_STAGE_SOLVED
1262  */
1265  SCIP* scip, /**< SCIP data structure */
1266  SCIP_Real solvaldelta /**< difference of variable's new LP value - old LP value */
1267  );
1268 
1269 /** gets the average pseudo cost value for the given direction over all variables,
1270  * only using the pseudo cost information of the current run
1271  *
1272  * @return the average pseudo cost value for the given direction over all variables,
1273  * only using the pseudo cost information of the current run
1274  *
1275  * @pre This method can be called if SCIP is in one of the following stages:
1276  * - \ref SCIP_STAGE_SOLVING
1277  * - \ref SCIP_STAGE_SOLVED
1278  */
1281  SCIP* scip, /**< SCIP data structure */
1282  SCIP_Real solvaldelta /**< difference of variable's new LP value - old LP value */
1283  );
1284 
1285 /** gets the average number of pseudo cost updates for the given direction over all variables
1286  *
1287  * @return the average number of pseudo cost updates for the given direction over all variables
1288  *
1289  * @pre This method can be called if SCIP is in one of the following stages:
1290  * - \ref SCIP_STAGE_SOLVING
1291  * - \ref SCIP_STAGE_SOLVED
1292  */
1295  SCIP* scip, /**< SCIP data structure */
1296  SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1297  );
1298 
1299 /** gets the average number of pseudo cost updates for the given direction over all variables,
1300  * only using the pseudo cost information of the current run
1301  *
1302  * @return the average number of pseudo cost updates for the given direction over all variables,
1303  * only using the pseudo cost information of the current run
1304  *
1305  * @pre This method can be called if SCIP is in one of the following stages:
1306  * - \ref SCIP_STAGE_SOLVING
1307  * - \ref SCIP_STAGE_SOLVED
1308  */
1311  SCIP* scip, /**< SCIP data structure */
1312  SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1313  );
1314 
1315 /** gets the number of pseudo cost updates for the given direction over all variables
1316  *
1317  * @return the number of pseudo cost updates for the given direction over all variables
1318  *
1319  * @pre This method can be called if SCIP is in one of the following stages:
1320  * - \ref SCIP_STAGE_SOLVING
1321  * - \ref SCIP_STAGE_SOLVED
1322  */
1325  SCIP* scip, /**< SCIP data structure */
1326  SCIP_BRANCHDIR dir, /**< branching direction (downwards, or upwards) */
1327  SCIP_Bool onlycurrentrun /**< use only history of current run? */
1328  );
1329 
1330 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5
1331  *
1332  * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5
1333  *
1334  * @pre This method can be called if SCIP is in one of the following stages:
1335  * - \ref SCIP_STAGE_SOLVING
1336  * - \ref SCIP_STAGE_SOLVED
1337  */
1340  SCIP* scip /**< SCIP data structure */
1341  );
1342 
1343 /** returns the variance of pseudo costs for all variables in the requested direction
1344  *
1345  * @return the variance of pseudo costs for all variables in the requested direction
1346  *
1347  * @pre This method can be called if SCIP is in one of the following stages:
1348  * - \ref SCIP_STAGE_SOLVING
1349  * - \ref SCIP_STAGE_SOLVED
1350  */
1353  SCIP* scip, /**< SCIP data structure */
1354  SCIP_BRANCHDIR branchdir, /**< the branching direction, up or down */
1355  SCIP_Bool onlycurrentrun /**< use only history of current run? */
1356  );
1357 
1358 /** gets the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
1359  * only using the pseudo cost information of the current run
1360  *
1361  * @return the average pseudo cost score value over all variables, assuming a fractionality of 0.5,
1362  * only using the pseudo cost information of the current run
1363  *
1364  * @pre This method can be called if SCIP is in one of the following stages:
1365  * - \ref SCIP_STAGE_SOLVING
1366  * - \ref SCIP_STAGE_SOLVED
1367  */
1370  SCIP* scip /**< SCIP data structure */
1371  );
1372 
1373 /** gets the average conflict score value over all variables */
1376  SCIP* scip /**< SCIP data structure */
1377  );
1378 
1379 /** gets the average conflict score value over all variables, only using the conflict information of the current run
1380  *
1381  * @return the average conflict score value over all variables, only using the conflict information of the current run
1382  *
1383  * @pre This method can be called if SCIP is in one of the following stages:
1384  * - \ref SCIP_STAGE_SOLVING
1385  * - \ref SCIP_STAGE_SOLVED
1386  */
1389  SCIP* scip /**< SCIP data structure */
1390  );
1391 
1392 /** gets the average inference score value over all variables
1393  *
1394  * @return the average inference score value over all variables
1395  *
1396  * @pre This method can be called if SCIP is in one of the following stages:
1397  * - \ref SCIP_STAGE_SOLVING
1398  * - \ref SCIP_STAGE_SOLVED
1399  */
1402  SCIP* scip /**< SCIP data structure */
1403  );
1404 
1405 /** gets the average conflictlength score value over all variables, only using the conflictlength information of the
1406  * current run
1407  *
1408  * @return the average conflictlength score value over all variables, only using the conflictlength information of the
1409  * current run
1410  *
1411  * @pre This method can be called if SCIP is in one of the following stages:
1412  * - \ref SCIP_STAGE_SOLVING
1413  * - \ref SCIP_STAGE_SOLVED
1414  */
1417  SCIP* scip /**< SCIP data structure */
1418  );
1419 
1420 /** returns the average number of inferences found after branching in given direction over all variables
1421  *
1422  * @return the average number of inferences found after branching in given direction over all variables
1423  *
1424  * @pre This method can be called if SCIP is in one of the following stages:
1425  * - \ref SCIP_STAGE_SOLVING
1426  * - \ref SCIP_STAGE_SOLVED
1427  */
1430  SCIP* scip, /**< SCIP data structure */
1431  SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1432  );
1433 
1434 /** returns the average number of inferences found after branching in given direction over all variables,
1435  * only using the inference information of the current run
1436  *
1437  * @return the average number of inferences found after branching in given direction over all variables,
1438  * only using the inference information of the current run
1439  *
1440  * @pre This method can be called if SCIP is in one of the following stages:
1441  * - \ref SCIP_STAGE_SOLVING
1442  * - \ref SCIP_STAGE_SOLVED
1443  */
1446  SCIP* scip, /**< SCIP data structure */
1447  SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1448  );
1449 
1450 /** gets the average inference score value over all variables
1451  *
1452  * @return the average inference score value over all variables
1453  *
1454  * @pre This method can be called if SCIP is in one of the following stages:
1455  * - \ref SCIP_STAGE_SOLVING
1456  * - \ref SCIP_STAGE_SOLVED
1457  */
1460  SCIP* scip /**< SCIP data structure */
1461  );
1462 
1463 /** gets the average inference score value over all variables, only using the inference information of the
1464  * current run
1465  *
1466  * @return the average inference score value over all variables, only using the inference information of the
1467  * current run
1468  *
1469  * @pre This method can be called if SCIP is in one of the following stages:
1470  * - \ref SCIP_STAGE_SOLVING
1471  * - \ref SCIP_STAGE_SOLVED
1472  */
1475  SCIP* scip /**< SCIP data structure */
1476  );
1477 
1478 /** returns the average number of cutoffs found after branching in given direction over all variables
1479  *
1480  * @return the average number of cutoffs found after branching in given direction over all variables
1481  *
1482  * @pre This method can be called if SCIP is in one of the following stages:
1483  * - \ref SCIP_STAGE_SOLVING
1484  * - \ref SCIP_STAGE_SOLVED
1485  */
1488  SCIP* scip, /**< SCIP data structure */
1489  SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1490  );
1491 
1492 /** returns the average number of cutoffs found after branching in given direction over all variables,
1493  * only using the cutoff information of the current run
1494  *
1495  * @return the average number of cutoffs found after branching in given direction over all variables,
1496  * only using the cutoff information of the current run
1497  *
1498  * @pre This method can be called if SCIP is in one of the following stages:
1499  * - \ref SCIP_STAGE_SOLVING
1500  * - \ref SCIP_STAGE_SOLVED
1501  */
1504  SCIP* scip, /**< SCIP data structure */
1505  SCIP_BRANCHDIR dir /**< branching direction (downwards, or upwards) */
1506  );
1507 
1508 /** gets the average cutoff score value over all variables
1509  *
1510  * @return the average cutoff score value over all variables
1511  *
1512  * @pre This method can be called if SCIP is in one of the following stages:
1513  * - \ref SCIP_STAGE_SOLVING
1514  * - \ref SCIP_STAGE_SOLVED
1515  */
1518  SCIP* scip /**< SCIP data structure */
1519  );
1520 
1521 /** gets the average cutoff score value over all variables, only using the cutoff information of the current run
1522  *
1523  * @return the average cutoff score value over all variables, only using the cutoff information of the current run
1524  *
1525  * @pre This method can be called if SCIP is in one of the following stages:
1526  * - \ref SCIP_STAGE_SOLVING
1527  * - \ref SCIP_STAGE_SOLVED
1528  */
1531  SCIP* scip /**< SCIP data structure */
1532  );
1533 
1534 /** gets deterministic time number of LPs solved so far
1535  *
1536  * @return the total number of LPs solved so far
1537  *
1538  * @pre This method can be called if SCIP is in one of the following stages:
1539  * - \ref SCIP_STAGE_PRESOLVED
1540  * - \ref SCIP_STAGE_SOLVING
1541  * - \ref SCIP_STAGE_SOLVED
1542  */
1545  SCIP* scip /**< SCIP data structure */
1546  );
1547 
1548 /** outputs original problem to file stream
1549  *
1550  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1551  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1552  *
1553  * @pre This method can be called if SCIP is in one of the following stages:
1554  * - \ref SCIP_STAGE_PROBLEM
1555  * - \ref SCIP_STAGE_TRANSFORMING
1556  * - \ref SCIP_STAGE_TRANSFORMED
1557  * - \ref SCIP_STAGE_INITPRESOLVE
1558  * - \ref SCIP_STAGE_PRESOLVING
1559  * - \ref SCIP_STAGE_EXITPRESOLVE
1560  * - \ref SCIP_STAGE_PRESOLVED
1561  * - \ref SCIP_STAGE_INITSOLVE
1562  * - \ref SCIP_STAGE_SOLVING
1563  * - \ref SCIP_STAGE_SOLVED
1564  * - \ref SCIP_STAGE_EXITSOLVE
1565  * - \ref SCIP_STAGE_FREETRANS
1566  */
1569  SCIP* scip, /**< SCIP data structure */
1570  FILE* file, /**< output file (or NULL for standard output) */
1571  const char* extension, /**< file format (or NULL for default CIP format)*/
1572  SCIP_Bool genericnames /**< using generic variable and constraint names? */
1573  );
1574 
1575 /** outputs transformed problem of the current node to file stream
1576  *
1577  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1578  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1579  *
1580  * @pre This method can be called if SCIP is in one of the following stages:
1581  * - \ref SCIP_STAGE_TRANSFORMED
1582  * - \ref SCIP_STAGE_INITPRESOLVE
1583  * - \ref SCIP_STAGE_PRESOLVING
1584  * - \ref SCIP_STAGE_EXITPRESOLVE
1585  * - \ref SCIP_STAGE_PRESOLVED
1586  * - \ref SCIP_STAGE_INITSOLVE
1587  * - \ref SCIP_STAGE_SOLVING
1588  * - \ref SCIP_STAGE_SOLVED
1589  * - \ref SCIP_STAGE_EXITSOLVE
1590  * - \ref SCIP_STAGE_FREETRANS
1591  */
1594  SCIP* scip, /**< SCIP data structure */
1595  FILE* file, /**< output file (or NULL for standard output) */
1596  const char* extension, /**< file format (or NULL for default CIP format)*/
1597  SCIP_Bool genericnames /**< using generic variable and constraint names? */
1598  );
1599 
1600 /** outputs status statistics
1601  *
1602  * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
1603  * thus may to correspond to the original status.
1604  *
1605  * @pre This method can be called if SCIP is in one of the following stages:
1606  * - \ref SCIP_STAGE_INIT
1607  * - \ref SCIP_STAGE_PROBLEM
1608  * - \ref SCIP_STAGE_TRANSFORMED
1609  * - \ref SCIP_STAGE_INITPRESOLVE
1610  * - \ref SCIP_STAGE_PRESOLVING
1611  * - \ref SCIP_STAGE_EXITPRESOLVE
1612  * - \ref SCIP_STAGE_PRESOLVED
1613  * - \ref SCIP_STAGE_SOLVING
1614  * - \ref SCIP_STAGE_SOLVED
1615  */
1618  SCIP* scip, /**< SCIP data structure */
1619  FILE* file /**< output file */
1620  );
1621 
1622 /** outputs timing statistics
1623  *
1624  * @pre This method can be called if SCIP is in one of the following stages:
1625  * - \ref SCIP_STAGE_PROBLEM
1626  * - \ref SCIP_STAGE_TRANSFORMED
1627  * - \ref SCIP_STAGE_INITPRESOLVE
1628  * - \ref SCIP_STAGE_PRESOLVING
1629  * - \ref SCIP_STAGE_EXITPRESOLVE
1630  * - \ref SCIP_STAGE_PRESOLVED
1631  * - \ref SCIP_STAGE_SOLVING
1632  * - \ref SCIP_STAGE_SOLVED
1633  */
1636  SCIP* scip, /**< SCIP data structure */
1637  FILE* file /**< output file */
1638  );
1639 
1640 /** outputs statistics for original problem
1641  *
1642  * @pre This method can be called if SCIP is in one of the following stages:
1643  * - \ref SCIP_STAGE_PROBLEM
1644  * - \ref SCIP_STAGE_TRANSFORMED
1645  * - \ref SCIP_STAGE_INITPRESOLVE
1646  * - \ref SCIP_STAGE_PRESOLVING
1647  * - \ref SCIP_STAGE_EXITPRESOLVE
1648  * - \ref SCIP_STAGE_PRESOLVED
1649  * - \ref SCIP_STAGE_SOLVING
1650  * - \ref SCIP_STAGE_SOLVED
1651  */
1654  SCIP* scip, /**< SCIP data structure */
1655  FILE* file /**< output file (or NULL for standard output) */
1656  );
1657 
1658 /** outputs statistics for transformed problem
1659  *
1660  * @pre This method can be called if SCIP is in one of the following stages:
1661  * - \ref SCIP_STAGE_PROBLEM
1662  * - \ref SCIP_STAGE_TRANSFORMED
1663  * - \ref SCIP_STAGE_INITPRESOLVE
1664  * - \ref SCIP_STAGE_PRESOLVING
1665  * - \ref SCIP_STAGE_EXITPRESOLVE
1666  * - \ref SCIP_STAGE_PRESOLVED
1667  * - \ref SCIP_STAGE_SOLVING
1668  * - \ref SCIP_STAGE_SOLVED
1669  */
1672  SCIP* scip, /**< SCIP data structure */
1673  FILE* file /**< output file */
1674  );
1675 
1676 /** outputs presolver statistics
1677  *
1678  * @pre This method can be called if SCIP is in one of the following stages:
1679  * - \ref SCIP_STAGE_TRANSFORMED
1680  * - \ref SCIP_STAGE_INITPRESOLVE
1681  * - \ref SCIP_STAGE_PRESOLVING
1682  * - \ref SCIP_STAGE_EXITPRESOLVE
1683  * - \ref SCIP_STAGE_PRESOLVED
1684  * - \ref SCIP_STAGE_SOLVING
1685  * - \ref SCIP_STAGE_SOLVED
1686  */
1689  SCIP* scip, /**< SCIP data structure */
1690  FILE* file /**< output file */
1691  );
1692 
1693 /** outputs constraint statistics
1694  *
1695  * @pre This method can be called if SCIP is in one of the following stages:
1696  * - \ref SCIP_STAGE_TRANSFORMED
1697  * - \ref SCIP_STAGE_INITPRESOLVE
1698  * - \ref SCIP_STAGE_PRESOLVING
1699  * - \ref SCIP_STAGE_EXITPRESOLVE
1700  * - \ref SCIP_STAGE_PRESOLVED
1701  * - \ref SCIP_STAGE_SOLVING
1702  * - \ref SCIP_STAGE_SOLVED
1703  */
1706  SCIP* scip, /**< SCIP data structure */
1707  FILE* file /**< output file */
1708  );
1709 
1710 /** outputs constraint timing statistics
1711  *
1712  * @pre This method can be called if SCIP is in one of the following stages:
1713  * - \ref SCIP_STAGE_TRANSFORMED
1714  * - \ref SCIP_STAGE_INITPRESOLVE
1715  * - \ref SCIP_STAGE_PRESOLVING
1716  * - \ref SCIP_STAGE_EXITPRESOLVE
1717  * - \ref SCIP_STAGE_PRESOLVED
1718  * - \ref SCIP_STAGE_SOLVING
1719  * - \ref SCIP_STAGE_SOLVED
1720  */
1723  SCIP* scip, /**< SCIP data structure */
1724  FILE* file /**< output file */
1725  );
1726 
1727 /** outputs propagator statistics
1728  *
1729  * @pre This method can be called if SCIP is in one of the following stages:
1730  * - \ref SCIP_STAGE_TRANSFORMED
1731  * - \ref SCIP_STAGE_INITPRESOLVE
1732  * - \ref SCIP_STAGE_PRESOLVING
1733  * - \ref SCIP_STAGE_EXITPRESOLVE
1734  * - \ref SCIP_STAGE_PRESOLVED
1735  * - \ref SCIP_STAGE_SOLVING
1736  * - \ref SCIP_STAGE_SOLVED
1737  */
1740  SCIP* scip, /**< SCIP data structure */
1741  FILE* file /**< output file */
1742  );
1743 
1744 /** outputs conflict statistics
1745  *
1746  * @pre This method can be called if SCIP is in one of the following stages:
1747  * - \ref SCIP_STAGE_TRANSFORMED
1748  * - \ref SCIP_STAGE_INITPRESOLVE
1749  * - \ref SCIP_STAGE_PRESOLVING
1750  * - \ref SCIP_STAGE_EXITPRESOLVE
1751  * - \ref SCIP_STAGE_PRESOLVED
1752  * - \ref SCIP_STAGE_SOLVING
1753  * - \ref SCIP_STAGE_SOLVED
1754  */
1757  SCIP* scip, /**< SCIP data structure */
1758  FILE* file /**< output file */
1759  );
1760 
1761 /** outputs separator statistics
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  */
1769  SCIP* scip, /**< SCIP data structure */
1770  FILE* file /**< output file */
1771  );
1772 
1773 /** outputs pricer statistics
1774  *
1775  * @pre This method can be called if SCIP is in one of the following stages:
1776  * - \ref SCIP_STAGE_SOLVING
1777  * - \ref SCIP_STAGE_SOLVED
1778  */
1781  SCIP* scip, /**< SCIP data structure */
1782  FILE* file /**< output file */
1783  );
1784 
1785 /** outputs branching rule statistics
1786  *
1787  * @pre This method can be called if SCIP is in one of the following stages:
1788  * - \ref SCIP_STAGE_SOLVING
1789  * - \ref SCIP_STAGE_SOLVED
1790  */
1793  SCIP* scip, /**< SCIP data structure */
1794  FILE* file /**< output file */
1795  );
1796 
1797 /** outputs heuristics statistics
1798  *
1799  * @pre This method can be called if SCIP is in one of the following stages:
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  */
1808  SCIP* scip, /**< SCIP data structure */
1809  FILE* file /**< output file */
1810  );
1811 
1812 /** outputs compression statistics
1813  *
1814  * @pre This method can be called if SCIP is in one of the following stages:
1815  * - \ref SCIP_STAGE_PRESOLVING
1816  * - \ref SCIP_STAGE_EXITPRESOLVE
1817  * - \ref SCIP_STAGE_PRESOLVED
1818  * - \ref SCIP_STAGE_SOLVING
1819  * - \ref SCIP_STAGE_SOLVED
1820  */
1823  SCIP* scip, /**< SCIP data structure */
1824  FILE* file /**< output file */
1825  );
1826 
1827 /** outputs LP statistics
1828  *
1829  * @pre This method can be called if SCIP is in one of the following stages:
1830  * - \ref SCIP_STAGE_SOLVING
1831  * - \ref SCIP_STAGE_SOLVED
1832  */
1835  SCIP* scip, /**< SCIP data structure */
1836  FILE* file /**< output file */
1837  );
1838 
1839 /** outputs NLP statistics
1840  *
1841  * @pre This method can be called if SCIP is in one of the following stages:
1842  * - \ref SCIP_STAGE_SOLVING
1843  * - \ref SCIP_STAGE_SOLVED
1844  */
1847  SCIP* scip, /**< SCIP data structure */
1848  FILE* file /**< output file */
1849  );
1850 
1851 /** outputs relaxator statistics
1852  *
1853  * @pre This method can be called if SCIP is in one of the following stages:
1854  * - \ref SCIP_STAGE_SOLVING
1855  * - \ref SCIP_STAGE_SOLVED
1856  */
1859  SCIP* scip, /**< SCIP data structure */
1860  FILE* file /**< output file */
1861  );
1862 
1863 /** outputs tree statistics
1864  *
1865  * @pre This method can be called if SCIP is in one of the following stages:
1866  * - \ref SCIP_STAGE_SOLVING
1867  * - \ref SCIP_STAGE_SOLVED
1868  */
1871  SCIP* scip, /**< SCIP data structure */
1872  FILE* file /**< output file */
1873  );
1874 
1875 /** outputs root statistics
1876  *
1877  * @pre This method can be called if SCIP is in one of the following stages:
1878  * - \ref SCIP_STAGE_SOLVING
1879  * - \ref SCIP_STAGE_SOLVED
1880  */
1883  SCIP* scip, /**< SCIP data structure */
1884  FILE* file /**< output file */
1885  );
1886 
1887 /** outputs solution statistics
1888  *
1889  * @pre This method can be called if SCIP is in one of the following stages:
1890  * - \ref SCIP_STAGE_PRESOLVING
1891  * - \ref SCIP_STAGE_EXITPRESOLVE
1892  * - \ref SCIP_STAGE_PRESOLVED
1893  * - \ref SCIP_STAGE_SOLVING
1894  * - \ref SCIP_STAGE_SOLVED
1895  */
1898  SCIP* scip, /**< SCIP data structure */
1899  FILE* file /**< output file */
1900  );
1901 
1902 /** outputs concurrent solver statistics
1903  *
1904  * @pre This method can be called if SCIP is in one of the following stages:
1905  * - \ref SCIP_STAGE_TRANSFORMED
1906  * - \ref SCIP_STAGE_INITPRESOLVE
1907  * - \ref SCIP_STAGE_PRESOLVING
1908  * - \ref SCIP_STAGE_EXITPRESOLVE
1909  * - \ref SCIP_STAGE_PRESOLVED
1910  * - \ref SCIP_STAGE_SOLVING
1911  * - \ref SCIP_STAGE_SOLVED
1912  */
1915  SCIP* scip, /**< SCIP data structure */
1916  FILE* file /**< output file */
1917  );
1918 
1919 /** outputs Benders' decomposition statistics
1920  *
1921  * @pre This method can be called if SCIP is in one of the following stages:
1922  * - \ref SCIP_STAGE_SOLVING
1923  * - \ref SCIP_STAGE_SOLVED
1924  */
1927  SCIP* scip, /**< SCIP data structure */
1928  FILE* file /**< output file */
1929  );
1930 
1931 /** outputs solving statistics
1932  *
1933  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1934  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1935  *
1936  * @note If limits have been changed between the solution and the call to this function, the status is recomputed and
1937  * thus may to correspond to the original status.
1938  *
1939  * @pre This method can be called if SCIP is in one of the following stages:
1940  * - \ref SCIP_STAGE_INIT
1941  * - \ref SCIP_STAGE_PROBLEM
1942  * - \ref SCIP_STAGE_TRANSFORMED
1943  * - \ref SCIP_STAGE_INITPRESOLVE
1944  * - \ref SCIP_STAGE_PRESOLVING
1945  * - \ref SCIP_STAGE_EXITPRESOLVE
1946  * - \ref SCIP_STAGE_PRESOLVED
1947  * - \ref SCIP_STAGE_SOLVING
1948  * - \ref SCIP_STAGE_SOLVED
1949  */
1952  SCIP* scip, /**< SCIP data structure */
1953  FILE* file /**< output file (or NULL for standard output) */
1954  );
1955 
1956 /** outputs reoptimization statistics
1957  *
1958  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1959  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1960  *
1961  * @pre This method can be called if SCIP is in one of the following stages:
1962  * - \ref SCIP_STAGE_INIT
1963  * - \ref SCIP_STAGE_PROBLEM
1964  * - \ref SCIP_STAGE_TRANSFORMED
1965  * - \ref SCIP_STAGE_INITPRESOLVE
1966  * - \ref SCIP_STAGE_PRESOLVING
1967  * - \ref SCIP_STAGE_EXITPRESOLVE
1968  * - \ref SCIP_STAGE_PRESOLVED
1969  * - \ref SCIP_STAGE_SOLVING
1970  * - \ref SCIP_STAGE_SOLVED
1971  */
1974  SCIP* scip, /**< SCIP data structure */
1975  FILE* file /**< output file (or NULL for standard output) */
1976  );
1977 
1978 /** outputs history statistics about branchings on variables
1979  *
1980  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
1981  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
1982  *
1983  * @pre This method can be called if SCIP is in one of the following stages:
1984  * - \ref SCIP_STAGE_INIT
1985  * - \ref SCIP_STAGE_PROBLEM
1986  * - \ref SCIP_STAGE_TRANSFORMED
1987  * - \ref SCIP_STAGE_INITPRESOLVE
1988  * - \ref SCIP_STAGE_PRESOLVING
1989  * - \ref SCIP_STAGE_EXITPRESOLVE
1990  * - \ref SCIP_STAGE_PRESOLVED
1991  * - \ref SCIP_STAGE_SOLVING
1992  * - \ref SCIP_STAGE_SOLVED
1993  */
1996  SCIP* scip, /**< SCIP data structure */
1997  FILE* file /**< output file (or NULL for standard output) */
1998  );
1999 
2000 /** outputs node information display line
2001  *
2002  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2003  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2004  *
2005  * @pre This method can be called if SCIP is in one of the following stages:
2006  * - \ref SCIP_STAGE_SOLVING
2007  */
2010  SCIP* scip, /**< SCIP data structure */
2011  FILE* file, /**< output file (or NULL for standard output) */
2012  SCIP_VERBLEVEL verblevel, /**< minimal verbosity level to actually display the information line */
2013  SCIP_Bool endline /**< should the line be terminated with a newline symbol? */
2014  );
2015 
2016 /** gets total number of implications between variables that are stored in the implication graph
2017  *
2018  * @return the total number of implications between variables that are stored in the implication graph
2019  *
2020  * @pre This method can be called if SCIP is in one of the following stages:
2021  * - \ref SCIP_STAGE_INITPRESOLVE
2022  * - \ref SCIP_STAGE_PRESOLVING
2023  * - \ref SCIP_STAGE_EXITPRESOLVE
2024  * - \ref SCIP_STAGE_PRESOLVED
2025  * - \ref SCIP_STAGE_INITSOLVE
2026  * - \ref SCIP_STAGE_SOLVING
2027  * - \ref SCIP_STAGE_SOLVED
2028  */
2031  SCIP* scip /**< SCIP data structure */
2032  );
2033 
2034 /** stores conflict graph of binary variables' implications into a file, which can be used as input for the DOT tool
2035  *
2036  * @return \ref SCIP_OKAY is returned if everything worked. Otherwise a suitable error code is passed. See \ref
2037  * SCIP_Retcode "SCIP_RETCODE" for a complete list of error codes.
2038  *
2039  * @pre This method can be called if SCIP is in one of the following stages:
2040  * - \ref SCIP_STAGE_TRANSFORMED
2041  * - \ref SCIP_STAGE_INITPRESOLVE
2042  * - \ref SCIP_STAGE_PRESOLVING
2043  * - \ref SCIP_STAGE_EXITPRESOLVE
2044  * - \ref SCIP_STAGE_PRESOLVED
2045  * - \ref SCIP_STAGE_INITSOLVE
2046  * - \ref SCIP_STAGE_SOLVING
2047  * - \ref SCIP_STAGE_SOLVED
2048  * - \ref SCIP_STAGE_EXITSOLVE
2049  *
2050  * @deprecated because binary implications are now stored as cliques
2051  */
2054  SCIP* scip, /**< SCIP data structure */
2055  const char* filename /**< file name, or NULL for stdout */
2056  );
2057 
2058 
2059 /** update statistical information when a new solution was found */
2062  SCIP* scip /**< SCIP data structure */
2063  );
2064 
2065 /**@} */
2066 
2067 #ifdef __cplusplus
2068 }
2069 #endif
2070 
2071 #endif
SCIP_EXPORT SCIP_Longint SCIPgetNStrongbranchs(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNSolsFound(SCIP *scip)
SCIP_EXPORT void SCIPprintConflictStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_RETCODE SCIPprintDisplayLine(SCIP *scip, FILE *file, SCIP_VERBLEVEL verblevel, SCIP_Bool endline)
SCIP_EXPORT SCIP_Real SCIPgetAvgInferences(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_EXPORT int SCIPgetNCutsApplied(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNDualResolveLPIterations(SCIP *scip)
SCIP_EXPORT SCIP_RETCODE SCIPwriteImplicationConflictGraph(SCIP *scip, const char *filename)
SCIP_EXPORT SCIP_Longint SCIPgetNFeasibleLeaves(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgLowerbound(SCIP *scip)
SCIP_EXPORT int SCIPgetNConflictConssFoundNode(SCIP *scip)
SCIP_EXPORT void SCIPprintLPStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Real SCIPgetGap(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNNodeInitLPIterations(SCIP *scip)
#define SCIP_EXPORT
Definition: def.h:98
SCIP_EXPORT int SCIPgetNEnabledConss(SCIP *scip)
SCIP_EXPORT int SCIPgetNCutsFoundRound(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNLimSolsFound(SCIP *scip)
SCIP_EXPORT void SCIPstoreSolutionGap(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgCutoffScoreCurrentRun(SCIP *scip)
SCIP_EXPORT void SCIPprintBranchruleStatistics(SCIP *scip, FILE *file)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
SCIP_EXPORT void SCIPprintSeparatorStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT void SCIPprintConcsolverStatistics(SCIP *scip, FILE *file)
enum SCIP_VerbLevel SCIP_VERBLEVEL
Definition: type_message.h:48
type definitions for return codes for SCIP methods
SCIP_EXPORT SCIP_Real SCIPgetUpperbound(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNBarrierLPs(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNStrongbranchLPIterations(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNNodeLPIterations(SCIP *scip)
SCIP_EXPORT int SCIPgetNReoptRuns(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetCutoffbound(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgInferencesCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_EXPORT void SCIPprintCompressionStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Longint SCIPgetNPrimalLPIterations(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNDualLPIterations(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNLPs(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetFirstLPDualboundRoot(SCIP *scip)
SCIP_EXPORT void SCIPaddNNodes(SCIP *scip, SCIP_Longint nnodes)
enum SCIP_BranchDir SCIP_BRANCHDIR
Definition: type_history.h:39
SCIP_EXPORT void SCIPprintPresolverStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Longint SCIPgetNNodes(SCIP *scip)
SCIP_EXPORT int SCIPgetMaxDepth(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetPseudocostCount(SCIP *scip, SCIP_BRANCHDIR dir, SCIP_Bool onlycurrentrun)
SCIP_EXPORT SCIP_Real SCIPgetAvgPseudocostCountCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_EXPORT SCIP_Real SCIPgetAvgPseudocostScore(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNRootFirstLPIterations(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNTotalNodes(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNNZs(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgConflictScoreCurrentRun(SCIP *scip)
type definitions for SCIP&#39;s main datastructure
SCIP_EXPORT SCIP_Longint SCIPgetNNodeLPs(SCIP *scip)
SCIP_EXPORT int SCIPgetNActiveConss(SCIP *scip)
SCIP_EXPORT SCIP_Bool SCIPisPrimalboundSol(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetFirstPrimalBound(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgInferenceScore(SCIP *scip)
SCIP_EXPORT SCIP_RETCODE SCIPprintBranchingStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT int SCIPgetNPriceRounds(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNDelayedCutoffs(SCIP *scip)
SCIP_EXPORT SCIP_RETCODE SCIPprintOrigProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames)
SCIP_EXPORT SCIP_Real SCIPgetPseudocostVariance(SCIP *scip, SCIP_BRANCHDIR branchdir, SCIP_Bool onlycurrentrun)
SCIP_EXPORT SCIP_Real SCIPgetAvgConflictlengthScoreCurrentRun(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNObjlimLeaves(SCIP *scip)
SCIP_EXPORT void SCIPprintTransProblemStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT void SCIPprintPropagatorStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT int SCIPgetNPricevarsApplied(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNRootStrongbranchs(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNDivingLPIterations(SCIP *scip)
SCIP_EXPORT void SCIPprintHeuristicStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT void SCIPprintRootStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT void SCIPprintSolutionStatistics(SCIP *scip, FILE *file)
#define SCIP_Bool
Definition: def.h:70
SCIP_EXPORT SCIP_Longint SCIPgetNPrimalLPs(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNDualResolveLPs(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetDeterministicTime(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgPseudocostCurrentRun(SCIP *scip, SCIP_Real solvaldelta)
SCIP_EXPORT SCIP_Longint SCIPgetNBacktracks(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNDivingLPs(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetTransGap(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNConflictConssFound(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNDualLPs(SCIP *scip)
SCIP_EXPORT SCIP_RETCODE SCIPupdateCutoffbound(SCIP *scip, SCIP_Real cutoffbound)
SCIP_EXPORT int SCIPgetMaxTotalDepth(SCIP *scip)
SCIP_EXPORT SCIP_RETCODE SCIPprintStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Longint SCIPgetNResolveLPIterations(SCIP *scip)
SCIP_EXPORT void SCIPprintConstraintStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT void SCIPprintConstraintTimingStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Real SCIPgetLowerboundRoot(SCIP *scip)
SCIP_EXPORT int SCIPgetNSepaRounds(SCIP *scip)
SCIP_EXPORT SCIP_RETCODE SCIPprintTransProblem(SCIP *scip, FILE *file, const char *extension, SCIP_Bool genericnames)
SCIP_EXPORT SCIP_Longint SCIPgetNPrimalResolveLPIterations(SCIP *scip)
SCIP_EXPORT int SCIPgetNCutsFound(SCIP *scip)
SCIP_EXPORT SCIP_RETCODE SCIPprintReoptStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Longint SCIPgetNResolveLPs(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNLPIterations(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNRootStrongbranchLPIterations(SCIP *scip)
SCIP_EXPORT void SCIPprintOrigProblemStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Real SCIPgetLowerbound(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetFirstLPLowerboundRoot(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgPseudocostCount(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_EXPORT void SCIPprintPricerStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Longint SCIPgetNRootLPIterations(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNPrimalResolveLPs(SCIP *scip)
#define SCIP_Real
Definition: def.h:164
type definitions for branching and inference history
SCIP_EXPORT SCIP_Real SCIPgetAvgPseudocost(SCIP *scip, SCIP_Real solvaldelta)
SCIP_EXPORT SCIP_Real SCIPgetAvgCutoffsCurrentRun(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_EXPORT SCIP_Real SCIPgetPrimalbound(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgPseudocostScoreCurrentRun(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNNodeInitLPs(SCIP *scip)
#define SCIP_Longint
Definition: def.h:149
SCIP_EXPORT SCIP_Real SCIPgetAvgDualbound(SCIP *scip)
SCIP_EXPORT int SCIPgetNPricevars(SCIP *scip)
type definitions for message output methods
SCIP_EXPORT SCIP_Longint SCIPgetNBestSolsFound(SCIP *scip)
SCIP_EXPORT void SCIPprintNLPStatistics(SCIP *scip, FILE *file)
#define nnodes
Definition: gastrans.c:65
SCIP_EXPORT SCIP_Real SCIPgetAvgCutoffs(SCIP *scip, SCIP_BRANCHDIR dir)
SCIP_EXPORT SCIP_Real SCIPgetAvgCutoffScore(SCIP *scip)
SCIP_EXPORT void SCIPprintTreeStatistics(SCIP *scip, FILE *file)
common defines and data types used in all packages of SCIP
SCIP_EXPORT int SCIPgetNImplications(SCIP *scip)
SCIP_EXPORT void SCIPprintTimingStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Longint SCIPgetNBarrierLPIterations(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetDualbound(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgInferenceScoreCurrentRun(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetAvgConflictlengthScore(SCIP *scip)
SCIP_EXPORT void SCIPprintBendersStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT SCIP_Real SCIPgetAvgConflictScore(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNConflictConssApplied(SCIP *scip)
SCIP_EXPORT void SCIPprintStatusStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT void SCIPprintRelaxatorStatistics(SCIP *scip, FILE *file)
SCIP_EXPORT int SCIPgetNPricevarsFound(SCIP *scip)
SCIP_EXPORT SCIP_Longint SCIPgetNInfeasibleLeaves(SCIP *scip)
SCIP_EXPORT int SCIPgetNRuns(SCIP *scip)
SCIP_EXPORT SCIP_Real SCIPgetDualboundRoot(SCIP *scip)