Scippy

SCIP

Solving Constraint Integer Programs

paramset.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-2014 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 email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file paramset.h
17  * @brief internal methods for handling parameter settings
18  * @author Tobias Achterberg
19  * @author Timo Berthold
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_PARAMSET_H__
25 #define __SCIP_PARAMSET_H__
26 
27 
28 #include "scip/def.h"
29 #include "blockmemshell/memory.h"
30 #include "scip/type_retcode.h"
31 #include "scip/type_paramset.h"
32 #include "scip/pub_paramset.h"
33 #include "scip/pub_misc.h"
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 /** creates parameter set */
40 extern
42  SCIP_PARAMSET** paramset, /**< pointer to store the parameter set */
43  BMS_BLKMEM* blkmem /**< block memory */
44  );
45 
46 /** frees parameter set */
47 extern
48 void SCIPparamsetFree(
49  SCIP_PARAMSET** paramset, /**< pointer to the parameter set */
50  BMS_BLKMEM* blkmem /**< block memory */
51  );
52 
53 /** creates a bool parameter, sets it to its default value, and adds it to the parameter set */
54 extern
56  SCIP_PARAMSET* paramset, /**< parameter set */
57  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
58  BMS_BLKMEM* blkmem, /**< block memory */
59  const char* name, /**< name of the parameter */
60  const char* desc, /**< description of the parameter */
61  SCIP_Bool* valueptr, /**< pointer to store the current parameter value, or NULL */
62  SCIP_Bool isadvanced, /**< is this parameter an advanced parameter? */
63  SCIP_Bool defaultvalue, /**< default value of the parameter */
64  SCIP_DECL_PARAMCHGD ((*paramchgd)), /**< change information method of parameter */
65  SCIP_PARAMDATA* paramdata /**< locally defined parameter specific data */
66  );
67 
68 /** creates a int parameter, sets it to its default value, and adds it to the parameter set */
69 extern
71  SCIP_PARAMSET* paramset, /**< parameter set */
72  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
73  BMS_BLKMEM* blkmem, /**< block memory */
74  const char* name, /**< name of the parameter */
75  const char* desc, /**< description of the parameter */
76  int* valueptr, /**< pointer to store the current parameter value, or NULL */
77  SCIP_Bool isadvanced, /**< is this parameter an advanced parameter? */
78  int defaultvalue, /**< default value of the parameter */
79  int minvalue, /**< minimum value for parameter */
80  int maxvalue, /**< maximum value for parameter */
81  SCIP_DECL_PARAMCHGD ((*paramchgd)), /**< change information method of parameter */
82  SCIP_PARAMDATA* paramdata /**< locally defined parameter specific data */
83  );
84 
85 /** creates a SCIP_Longint parameter, sets it to its default value, and adds it to the parameter set */
86 extern
88  SCIP_PARAMSET* paramset, /**< parameter set */
89  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
90  BMS_BLKMEM* blkmem, /**< block memory */
91  const char* name, /**< name of the parameter */
92  const char* desc, /**< description of the parameter */
93  SCIP_Longint* valueptr, /**< pointer to store the current parameter value, or NULL */
94  SCIP_Bool isadvanced, /**< is this parameter an advanced parameter? */
95  SCIP_Longint defaultvalue, /**< default value of the parameter */
96  SCIP_Longint minvalue, /**< minimum value for parameter */
97  SCIP_Longint maxvalue, /**< maximum value for parameter */
98  SCIP_DECL_PARAMCHGD ((*paramchgd)), /**< change information method of parameter */
99  SCIP_PARAMDATA* paramdata /**< locally defined parameter specific data */
100  );
101 
102 /** creates a SCIP_Real parameter, sets it to its default value, and adds it to the parameter set */
103 extern
105  SCIP_PARAMSET* paramset, /**< parameter set */
106  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
107  BMS_BLKMEM* blkmem, /**< block memory */
108  const char* name, /**< name of the parameter */
109  const char* desc, /**< description of the parameter */
110  SCIP_Real* valueptr, /**< pointer to store the current parameter value, or NULL */
111  SCIP_Bool isadvanced, /**< is this parameter an advanced parameter? */
112  SCIP_Real defaultvalue, /**< default value of the parameter */
113  SCIP_Real minvalue, /**< minimum value for parameter */
114  SCIP_Real maxvalue, /**< maximum value for parameter */
115  SCIP_DECL_PARAMCHGD ((*paramchgd)), /**< change information method of parameter */
116  SCIP_PARAMDATA* paramdata /**< locally defined parameter specific data */
117  );
118 
119 /** creates a char parameter, sets it to its default value, and adds it to the parameter set */
120 extern
122  SCIP_PARAMSET* paramset, /**< parameter set */
123  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
124  BMS_BLKMEM* blkmem, /**< block memory */
125  const char* name, /**< name of the parameter */
126  const char* desc, /**< description of the parameter */
127  char* valueptr, /**< pointer to store the current parameter value, or NULL */
128  SCIP_Bool isadvanced, /**< is this parameter an advanced parameter? */
129  char defaultvalue, /**< default value of the parameter */
130  const char* allowedvalues, /**< array with possible parameter values, or NULL if not restricted */
131  SCIP_DECL_PARAMCHGD ((*paramchgd)), /**< change information method of parameter */
132  SCIP_PARAMDATA* paramdata /**< locally defined parameter specific data */
133  );
134 
135 /** creates a string parameter, sets it to its default value, and adds it to the parameter set */
136 extern
138  SCIP_PARAMSET* paramset, /**< parameter set */
139  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
140  BMS_BLKMEM* blkmem, /**< block memory */
141  const char* name, /**< name of the parameter */
142  const char* desc, /**< description of the parameter */
143  char** valueptr, /**< pointer to store the current parameter value, or NULL */
144  SCIP_Bool isadvanced, /**< is this parameter an advanced parameter? */
145  const char* defaultvalue, /**< default value of the parameter */
146  SCIP_DECL_PARAMCHGD ((*paramchgd)), /**< change information method of parameter */
147  SCIP_PARAMDATA* paramdata /**< locally defined parameter specific data */
148  );
149 
150 /** returns whether an existing parameter is fixed */
151 extern
153  SCIP_PARAMSET* paramset, /**< parameter set */
154  const char* name /**< name of the parameter */
155  );
156 
157 /** returns the pointer to an existing SCIP parameter */
158 extern
160  SCIP_PARAMSET* paramset, /**< parameter set */
161  const char* name /**< name of the parameter */
162  );
163 
164 /** gets the value of an existing SCIP_Bool parameter */
165 extern
167  SCIP_PARAMSET* paramset, /**< parameter set */
168  const char* name, /**< name of the parameter */
169  SCIP_Bool* value /**< pointer to store the parameter */
170  );
171 
172 /** gets the value of an existing int parameter */
173 extern
175  SCIP_PARAMSET* paramset, /**< parameter set */
176  const char* name, /**< name of the parameter */
177  int* value /**< pointer to store the parameter */
178  );
179 
180 /** gets the value of an existing SCIP_Longint parameter */
181 extern
183  SCIP_PARAMSET* paramset, /**< parameter set */
184  const char* name, /**< name of the parameter */
185  SCIP_Longint* value /**< pointer to store the parameter */
186  );
187 
188 /** gets the value of an existing SCIP_Real parameter */
189 extern
191  SCIP_PARAMSET* paramset, /**< parameter set */
192  const char* name, /**< name of the parameter */
193  SCIP_Real* value /**< pointer to store the parameter */
194  );
195 
196 /** gets the value of an existing char parameter */
197 extern
199  SCIP_PARAMSET* paramset, /**< parameter set */
200  const char* name, /**< name of the parameter */
201  char* value /**< pointer to store the parameter */
202  );
203 
204 /** gets the value of an existing string parameter */
205 extern
207  SCIP_PARAMSET* paramset, /**< parameter set */
208  const char* name, /**< name of the parameter */
209  char** value /**< pointer to store the parameter */
210  );
211 
212 /** changes the fixing status of an existing parameter */
214  SCIP_PARAMSET* paramset, /**< parameter set */
215  const char* name, /**< name of the parameter */
216  SCIP_Bool fixed /**< new fixing status of the parameter */
217  );
218 
219 /** changes the value of an existing parameter */
220 extern
222  SCIP_PARAMSET* paramset, /**< parameter set */
223  SCIP_SET* set, /**< global SCIP settings */
224  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
225  const char* name, /**< name of the parameter */
226  void* value /**< new value of the parameter */
227  );
228 
229 /** changes the value of an existing SCIP_Bool parameter */
230 extern
232  SCIP_PARAMSET* paramset, /**< parameter set */
233  SCIP_SET* set, /**< global SCIP settings */
234  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
235  const char* name, /**< name of the parameter */
236  SCIP_Bool value /**< new value of the parameter */
237  );
238 
239 /** changes the default value of an existing SCIP_Bool parameter */
240 extern
242  SCIP_PARAMSET* paramset, /**< parameter set */
243  const char* name, /**< name of the parameter */
244  SCIP_Bool defaultvalue /**< new default value of the parameter */
245  );
246 
247 /** changes the value of an existing int parameter */
248 extern
250  SCIP_PARAMSET* paramset, /**< parameter set */
251  SCIP_SET* set, /**< global SCIP settings */
252  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
253  const char* name, /**< name of the parameter */
254  int value /**< new value of the parameter */
255  );
256 
257 /** changes the default value of an existing int parameter */
258 extern
260  SCIP_PARAMSET* paramset, /**< parameter set */
261  const char* name, /**< name of the parameter */
262  int defaultvalue /**< new default value of the parameter */
263  );
264 
265 /** changes the value of an existing SCIP_Longint parameter */
266 extern
268  SCIP_PARAMSET* paramset, /**< parameter set */
269  SCIP_SET* set, /**< global SCIP settings */
270  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
271  const char* name, /**< name of the parameter */
272  SCIP_Longint value /**< new value of the parameter */
273  );
274 
275 /** changes the value of an existing SCIP_Real parameter */
276 extern
278  SCIP_PARAMSET* paramset, /**< parameter set */
279  SCIP_SET* set, /**< global SCIP settings */
280  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
281  const char* name, /**< name of the parameter */
282  SCIP_Real value /**< new value of the parameter */
283  );
284 
285 /** changes the value of an existing char parameter */
286 extern
288  SCIP_PARAMSET* paramset, /**< parameter set */
289  SCIP_SET* set, /**< global SCIP settings */
290  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
291  const char* name, /**< name of the parameter */
292  char value /**< new value of the parameter */
293  );
294 
295 /** changes the value of an existing string parameter */
296 extern
298  SCIP_PARAMSET* paramset, /**< parameter set */
299  SCIP_SET* set, /**< global SCIP settings */
300  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
301  const char* name, /**< name of the parameter */
302  const char* value /**< new value of the parameter */
303  );
304 
305 /** reads parameters from a file */
307  SCIP_PARAMSET* paramset, /**< parameter set */
308  SCIP_SET* set, /**< global SCIP settings */
309  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
310  const char* filename /**< file name */
311  );
312 
313 /** writes all parameters in the parameter set to a file */
315  SCIP_PARAMSET* paramset, /**< parameter set */
316  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
317  const char* filename, /**< file name, or NULL for stdout */
318  SCIP_Bool comments, /**< should parameter descriptions be written as comments? */
319  SCIP_Bool onlychanged /**< should only the parameters been written, that are changed from default? */
320  );
321 
322 /** installs default values for all parameters */
323 extern
325  SCIP_PARAMSET* paramset, /**< parameter set */
326  SCIP_SET* set, /**< global SCIP settings */
327  SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
328  );
329 
330 /** installs default value for a single parameter */
331 extern
333  SCIP_PARAMSET* paramset, /**< parameter set */
334  SCIP_SET* set, /**< global SCIP settings */
335  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
336  const char* paramname /**< name of the parameter */
337  );
338 
339 /** sets parameters to
340  * - SCIP_PARAMSETTING_DEFAULT to use default values (see also SCIPparamsetSetToDefault())
341  * - SCIP_PARAMSETTING_COUNTER to get feasible and "fast" counting process
342  * - SCIP_PARAMSETTING_CPSOLVER to get CP like search (e.g. no LP relaxation)
343  * - SCIP_PARAMSETTING_EASYCIP to solve easy problems fast
344  * - SCIP_PARAMSETTING_FEASIBILITY to detect feasibility fast
345  * - SCIP_PARAMSETTING_HARDLP to be capable to handle hard LPs
346  * - SCIP_PARAMSETTING_OPTIMALITY to prove optimality fast
347  */
348 extern
350  SCIP_PARAMSET* paramset, /**< parameter set */
351  SCIP_SET* set, /**< global SCIP settings */
352  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
353  SCIP_PARAMEMPHASIS paramemphasis, /**< parameter emphasis */
354  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
355  );
356 
357 /** sets parameters to deactivate separators and heuristics that use auxiliary SCIP instances; should be called for
358  * auxiliary SCIP instances to avoid recursion
359  */
360 extern
362  SCIP_PARAMSET* paramset, /**< parameter set */
363  SCIP_SET* set, /**< global SCIP settings */
364  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
365  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
366  );
367 
368 /** sets heuristic parameters values to
369  * - SCIP_PARAMSETTING_DEFAULT which are the default values of all heuristic parameters
370  * - SCIP_PARAMSETTING_FAST such that the time spend for heuristic is decreased
371  * - SCIP_PARAMSETTING_AGGRESSIVE such that the heuristic are called more aggregative
372  * - SCIP_PARAMSETTING_OFF which turn off all heuristics
373  */
374 extern
376  SCIP_PARAMSET* paramset, /**< parameter set */
377  SCIP_SET* set, /**< global SCIP settings */
378  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
379  SCIP_PARAMSETTING paramsetting, /**< parameter settings */
380  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
381  );
382 
383 /** sets presolving parameters to
384  * - SCIP_PARAMSETTING_DEFAULT which are the default values of all presolving parameters
385  * - SCIP_PARAMSETTING_FAST such that the time spend for presolving is decreased
386  * - SCIP_PARAMSETTING_AGGRESSIVE such that the presolving is more aggregative
387  * - SCIP_PARAMSETTING_OFF which turn off all presolving
388  */
389 extern
391  SCIP_PARAMSET* paramset, /**< parameter set */
392  SCIP_SET* set, /**< global SCIP settings */
393  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
394  SCIP_PARAMSETTING paramsetting, /**< parameter settings */
395  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
396  );
397 
398 /** sets separating parameters to
399  * - SCIP_PARAMSETTING_DEFAULT which are the default values of all separating parameters
400  * - SCIP_PARAMSETTING_FAST such that the time spend for separating is decreased
401  * - SCIP_PARAMSETTING_AGGRESSIVE such that the separating is done more aggregative
402  * - SCIP_PARAMSETTING_OFF which turn off all separating
403  */
404 extern
406  SCIP_PARAMSET* paramset, /**< parameter set */
407  SCIP_SET* set, /**< global SCIP settings */
408  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
409  SCIP_PARAMSETTING paramsetting, /**< parameter settings */
410  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
411  );
412 
413 /** returns the array of parameters */
414 extern
416  SCIP_PARAMSET* paramset /**< parameter set */
417  );
418 
419 /** returns the number of parameters in the parameter set */
420 extern
422  SCIP_PARAMSET* paramset /**< parameter set */
423  );
424 
425 /** copies all parameter values of the source parameter set to the corresponding parameters in the target set */
426 extern
428  SCIP_PARAMSET* sourceparamset, /**< source parameter set */
429  SCIP_PARAMSET* targetparamset, /**< target parameter set */
430  SCIP_SET* set, /**< global SCIP settings of target SCIP */
431  SCIP_MESSAGEHDLR* messagehdlr /**< message handler of target SCIP */
432  );
433 
434 /** sets value of SCIP_Bool parameter */
435 extern
437  SCIP_PARAM* param, /**< parameter */
438  SCIP_SET* set, /**< global SCIP settings, or NULL if param change method should not be called */
439  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
440  SCIP_Bool value, /**< new value of the parameter */
441  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
442  );
443 
444 /** sets value of int parameter */
445 extern
447  SCIP_PARAM* param, /**< parameter */
448  SCIP_SET* set, /**< global SCIP settings, or NULL if param change method should not be called */
449  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
450  int value, /**< new value of the parameter */
451  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
452  );
453 
454 /** sets value of SCIP_Longint parameter */
455 extern
457  SCIP_PARAM* param, /**< parameter */
458  SCIP_SET* set, /**< global SCIP settings, or NULL if param change method should not be called */
459  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
460  SCIP_Longint value, /**< new value of the parameter */
461  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
462  );
463 
464 /** sets value of SCIP_Real parameter */
465 extern
467  SCIP_PARAM* param, /**< parameter */
468  SCIP_SET* set, /**< global SCIP settings, or NULL if param change method should not be called */
469  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
470  SCIP_Real value, /**< new value of the parameter */
471  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
472  );
473 
474 /** sets value of char parameter */
475 extern
477  SCIP_PARAM* param, /**< parameter */
478  SCIP_SET* set, /**< global SCIP settings, or NULL if param change method should not be called */
479  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
480  char value, /**< new value of the parameter */
481  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
482  );
483 
484 /** sets value of string parameter */
485 extern
487  SCIP_PARAM* param, /**< parameter */
488  SCIP_SET* set, /**< global SCIP settings, or NULL if param change method should not be called */
489  SCIP_MESSAGEHDLR* messagehdlr, /**< message handler */
490  const char* value, /**< new value of the parameter */
491  SCIP_Bool quiet /**< should the parameter be set quiet (no output) */
492  );
493 
494 /** sets default value of SCIP_Bool parameter */
495 extern
497  SCIP_PARAM* param, /**< parameter */
498  SCIP_Bool defaultvalue /**< new default value */
499  );
500 
501 /** sets default value of int parameter */
503  SCIP_PARAM* param, /**< parameter */
504  int defaultvalue /**< new default value */
505  );
506 
507 /** sets the parameter to its default setting */
508 extern
510  SCIP_PARAM* param, /**< parameter */
511  SCIP_SET* set, /**< global SCIP settings */
512  SCIP_MESSAGEHDLR* messagehdlr /**< message handler */
513  );
514 
515 #ifdef __cplusplus
516 }
517 #endif
518 
519 #endif
520