type definitions for propagators
Definition in file type_prop.h.
#include "scip/def.h"
#include "scip/type_retcode.h"
#include "scip/type_result.h"
#include "scip/type_scip.h"
#include "scip/type_timing.h"
Go to the source code of this file.
Macros | |
#define | SCIP_DECL_PROPCOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
#define | SCIP_DECL_PROPFREE(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
#define | SCIP_DECL_PROPINIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
#define | SCIP_DECL_PROPEXIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
#define | SCIP_DECL_PROPINITPRE(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
#define | SCIP_DECL_PROPEXITPRE(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
#define | SCIP_DECL_PROPINITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
#define | SCIP_DECL_PROPEXITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_Bool restart) |
#define | SCIP_DECL_PROPPRESOL(x) |
#define | SCIP_DECL_PROPEXEC(x) SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_PROPTIMING proptiming, SCIP_RESULT* result) |
#define | SCIP_DECL_PROPRESPROP(x) |
Typedefs | |
typedef struct SCIP_Prop | SCIP_PROP |
typedef struct SCIP_PropData | SCIP_PROPDATA |
#define SCIP_DECL_PROPCOPY | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
copy method for propagator plugins (called when SCIP copies plugins)
input:
Definition at line 47 of file type_prop.h.
#define SCIP_DECL_PROPFREE | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
destructor of propagator to free user data (called when SCIP is exiting)
input:
Definition at line 55 of file type_prop.h.
#define SCIP_DECL_PROPINIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
initialization method of propagator (called after problem was transformed)
input:
Definition at line 63 of file type_prop.h.
#define SCIP_DECL_PROPEXIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
deinitialization method of propagator (called before transformed problem is freed)
input:
Definition at line 71 of file type_prop.h.
#define SCIP_DECL_PROPINITPRE | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
presolving initialization method of propagator (called when presolving is about to begin)
This method is called when the presolving process is about to begin, even if presolving is turned off. The propagator may use this call to initialize its presolving data, before the presolving process begins.
Necessary modifications that have to be performed even if presolving is turned off should be done here or in the presolving deinitialization call (SCIP_DECL_PROPEXITPRE()).
input:
Definition at line 85 of file type_prop.h.
#define SCIP_DECL_PROPEXITPRE | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
presolving deinitialization method of propagator (called after presolving has been finished)
This method is called after the presolving has been finished, even if presolving is turned off. The propagator may use this call e.g. to clean up its presolving data.
Besides necessary modifications and clean up, no time consuming operations should be performed, especially if the problem has already been solved. Use the method SCIPgetStatus(), which in this case returns SCIP_STATUS_OPTIMAL, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_UNBOUNDED, or SCIP_STATUS_INFORUNBD.
input:
Definition at line 100 of file type_prop.h.
#define SCIP_DECL_PROPINITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop) |
solving process initialization method of propagator (called when branch and bound process is about to begin)
This method is called when the presolving was finished and the branch and bound process is about to begin. The propagator may use this call to initialize its branch and bound specific data.
Besides necessary modifications and clean up, no time consuming operations should be performed, especially if the problem has already been solved. Use the method SCIPgetStatus(), which in this case returns SCIP_STATUS_OPTIMAL, SCIP_STATUS_INFEASIBLE, SCIP_STATUS_UNBOUNDED, or SCIP_STATUS_INFORUNBD.
input:
Definition at line 115 of file type_prop.h.
#define SCIP_DECL_PROPEXITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_Bool restart) |
solving process deinitialization method of propagator (called before branch and bound process data is freed)
This method is called before the branch and bound process is freed. The propagator should use this call to clean up its branch and bound data.
input:
Definition at line 127 of file type_prop.h.
#define SCIP_DECL_PROPPRESOL | ( | x | ) |
presolving method of propagator
The presolver should go through the variables and constraints and tighten the domains or constraints. Each tightening should increase the given total numbers of changes.
input:
input/output:
output:
possible return values for *result:
Definition at line 179 of file type_prop.h.
#define SCIP_DECL_PROPEXEC | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_PROP* prop, SCIP_PROPTIMING proptiming, SCIP_RESULT* result) |
execution method of propagator
Searches for domain propagations. The method is called in the node processing loop.
input:
possible return values for *result:
Definition at line 203 of file type_prop.h.
#define SCIP_DECL_PROPRESPROP | ( | x | ) |
propagation conflict resolving method of propagator
This method is called during conflict analysis. If the propagator wants to support conflict analysis, it should call SCIPinferVarLbProp() or SCIPinferVarUbProp() in domain propagation instead of SCIPchgVarLb() or SCIPchgVarUb() in order to deduce bound changes on variables. In the SCIPinferVarLbProp() and SCIPinferVarUbProp() calls, the propagator provides a pointer to itself and an integer value "inferinfo" that can be arbitrarily chosen. The propagation conflict resolving method can then be implemented, to provide a "reasons" for the bound changes, i.e. the bounds of variables at the time of the propagation, that forced the propagator to set the conflict variable's bound to its current value. It can use the "inferinfo" tag to identify its own propagation rule and thus identify the "reason" bounds. The bounds that form the reason of the assignment must then be provided by calls to SCIPaddConflictLb(), SCIPaddConflictUb(), SCIPaddConflictBd(), SCIPaddConflictRelaxedLb(), SCIPaddConflictRelaxedUb(), SCIPaddConflictRelaxedBd(), and/or SCIPaddConflictBinvar() in the propagation conflict resolving method.
See the description of the propagation conflict resolving method of constraint handlers for further details.
input:
output:
possible return values for *result:
Definition at line 244 of file type_prop.h.
propagator
Definition at line 37 of file type_prop.h.
typedef struct SCIP_PropData SCIP_PROPDATA |
locally defined propagator data
Definition at line 38 of file type_prop.h.