type definitions for conflict analysis
This file defines the interface for conflict handler implemented in C.
Definition in file type_conflict.h.
#include "scip/def.h"
#include "scip/type_retcode.h"
#include "scip/type_result.h"
#include "scip/type_var.h"
Go to the source code of this file.
Macros | |
#define | SCIP_DECL_CONFLICTCOPY(x) SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
#define | SCIP_DECL_CONFLICTFREE(x) SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
#define | SCIP_DECL_CONFLICTINIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
#define | SCIP_DECL_CONFLICTEXIT(x) SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
#define | SCIP_DECL_CONFLICTINITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
#define | SCIP_DECL_CONFLICTEXITSOL(x) SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
#define | SCIP_DECL_CONFLICTEXEC(x) |
Typedefs | |
typedef struct SCIP_Conflicthdlr | SCIP_CONFLICTHDLR |
typedef struct SCIP_ConflicthdlrData | SCIP_CONFLICTHDLRDATA |
typedef struct SCIP_ConflictSet | SCIP_CONFLICTSET |
typedef struct SCIP_LPBdChgs | SCIP_LPBDCHGS |
typedef struct SCIP_Conflict | SCIP_CONFLICT |
typedef enum SCIP_ConflictType | SCIP_CONFTYPE |
Enumerations | |
enum | SCIP_ConflictType { SCIP_CONFTYPE_UNKNOWN = 0, SCIP_CONFTYPE_PROPAGATION = 1, SCIP_CONFTYPE_INFEASLP = 2, SCIP_CONFTYPE_BNDEXCEEDING = 3 } |
#define SCIP_DECL_CONFLICTCOPY | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
copy method for conflict handler plugins (called when SCIP copies plugins)
input:
Definition at line 61 of file type_conflict.h.
#define SCIP_DECL_CONFLICTFREE | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
destructor of conflict handler to free conflict handler data (called when SCIP is exiting)
input:
Definition at line 69 of file type_conflict.h.
#define SCIP_DECL_CONFLICTINIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
initialization method of conflict handler (called after problem was transformed)
input:
Definition at line 77 of file type_conflict.h.
#define SCIP_DECL_CONFLICTEXIT | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
deinitialization method of conflict handler (called before transformed problem is freed)
input:
Definition at line 85 of file type_conflict.h.
#define SCIP_DECL_CONFLICTINITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
solving process initialization method of conflict handler (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 conflict handler may use this call to initialize its branch and bound specific data.
input:
Definition at line 96 of file type_conflict.h.
#define SCIP_DECL_CONFLICTEXITSOL | ( | x | ) | SCIP_RETCODE x (SCIP* scip, SCIP_CONFLICTHDLR* conflicthdlr) |
solving process deinitialization method of conflict handler (called before branch and bound process data is freed)
This method is called before the branch and bound process is freed. The conflict handler should use this call to clean up its branch and bound data.
input:
Definition at line 107 of file type_conflict.h.
#define SCIP_DECL_CONFLICTEXEC | ( | x | ) |
conflict processing method of conflict handler (called when conflict was found)
This method is called, when the conflict analysis found a conflict on variable bounds. The conflict handler may update its data accordingly and create a constraint out of the conflict set. If the parameter "resolved" is set, the conflict handler should not create a constraint, because a different conflict handler with higher priority already created a constraint. The bounds in the conflict set lead to a conflict (i.e. an infeasibility) when all enforced at the same time. Thus, a feasible conflict constraint must demand that at least one of the variables in the conflict set violates its corresponding bound, i.e., fulfills the negation of the bound change in the conflict set. For continuous variables, the negation has to be defined in a relaxed way: if, e.g., the bound in the conflict set is "x <= u", the negation to be used has to be "x >= u", and not "x > u". The given "bdchginfos" array representing the conflict set is only a reference to an internal buffer, that may be modified at any time by SCIP. The user must copy the needed information from the "bdchginfos" array to own data structures, if (s)he wants to use the information later. (S)he should not keep a pointer to the array or pointers to the single bdchginfos in the array, because these may get invalid afterwards.
input:
possible return values for *result:
Definition at line 147 of file type_conflict.h.
typedef struct SCIP_Conflicthdlr SCIP_CONFLICTHDLR |
conflict handler to process conflict sets
Definition at line 39 of file type_conflict.h.
typedef struct SCIP_ConflicthdlrData SCIP_CONFLICTHDLRDATA |
conflict handler data
Definition at line 40 of file type_conflict.h.
typedef struct SCIP_ConflictSet SCIP_CONFLICTSET |
set of conflicting bound changes
Definition at line 41 of file type_conflict.h.
typedef struct SCIP_LPBdChgs SCIP_LPBDCHGS |
set of LP bound changes
Definition at line 42 of file type_conflict.h.
typedef struct SCIP_Conflict SCIP_CONFLICT |
conflict analysis data structure
Definition at line 43 of file type_conflict.h.
typedef enum SCIP_ConflictType SCIP_CONFTYPE |
Definition at line 53 of file type_conflict.h.
enum SCIP_ConflictType |
types of conflicts
Definition at line 46 of file type_conflict.h.