Scippy

SCIP

Solving Constraint Integer Programs

scip::ObjBenderscut Class Referenceabstract

Detailed Description

C++ wrapper for Benders' decomposition cut.

This class defines the interface for the Benders' decomposition cuts implemented in C++. Note that there is a pure virtual function (this must be implemented). This function is: benderscut_exec().

Definition at line 56 of file objbenderscut.h.

C++ wrapper for Benders' decomposition cut. More...

#include <objbenderscut.h>

Public Member Functions

 ObjBenderscut (SCIP *scip, const char *name, const char *desc, int priority, SCIP_Bool islpcut)
 
 ObjBenderscut (const ObjBenderscut &o)
 
 ObjBenderscut (ObjBenderscut &&o)
 
virtual ~ObjBenderscut ()
 
ObjBenderscutoperator= (const ObjBenderscut &o)=delete
 
ObjBenderscutoperator= (ObjBenderscut &&o)=delete
 
virtual SCIP_DECL_BENDERSCUTCOPY (scip_copy)
 
virtual SCIP_DECL_BENDERSCUTFREE (scip_free)
 
virtual SCIP_DECL_BENDERSCUTINIT (scip_init)
 
virtual SCIP_DECL_BENDERSCUTEXIT (scip_exit)
 
virtual SCIP_DECL_BENDERSCUTINITSOL (scip_initsol)
 
virtual SCIP_DECL_BENDERSCUTEXITSOL (scip_exitsol)
 
virtual SCIP_DECL_BENDERSCUTEXEC (scip_exec)=0
 
- Public Member Functions inherited from scip::ObjCloneable
virtual ~ObjCloneable ()
 
ObjCloneableoperator= (const ObjCloneable &o)=delete
 
ObjCloneableoperator= (ObjCloneable &&o)=delete
 
virtual SCIP_DECL_OBJCLONEABLECLONE (ObjCloneable *clone)
 
virtual SCIP_DECL_OBJCLONEABLEISCLONEABLE (iscloneable)
 

Data Fields

SCIPscip_
 
char * scip_name_
 
char * scip_desc_
 
const int scip_priority_
 
const SCIP_Bool scip_islpcut_
 

Constructor & Destructor Documentation

◆ ObjBenderscut() [1/3]

scip::ObjBenderscut::ObjBenderscut ( SCIP scip,
const char *  name,
const char *  desc,
int  priority,
SCIP_Bool  islpcut 
)
inline

default constructor

Parameters
scipSCIP data structure
namename of Benders' decomposition
descdescription of Benders' decomposition
prioritypriority of the Benders' decomposition
islpcutis the cut generated from the LP relaxation

Definition at line 77 of file objbenderscut.h.

References SCIP_CALL_ABORT, and SCIPduplicateMemoryArray.

◆ ObjBenderscut() [2/3]

scip::ObjBenderscut::ObjBenderscut ( const ObjBenderscut o)
inline

copy constructor

Definition at line 96 of file objbenderscut.h.

◆ ObjBenderscut() [3/3]

scip::ObjBenderscut::ObjBenderscut ( ObjBenderscut &&  o)
inline

move constructor

Definition at line 102 of file objbenderscut.h.

◆ ~ObjBenderscut()

virtual scip::ObjBenderscut::~ObjBenderscut ( )
inlinevirtual

destructor

Definition at line 110 of file objbenderscut.h.

References operator=(), and SCIPfreeMemoryArray.

Member Function Documentation

◆ operator=() [1/2]

ObjBenderscut& scip::ObjBenderscut::operator= ( const ObjBenderscut o)
delete

assignment of polymorphic classes causes slicing and is therefore disabled.

Referenced by ~ObjBenderscut().

◆ operator=() [2/2]

ObjBenderscut& scip::ObjBenderscut::operator= ( ObjBenderscut &&  o)
delete

assignment of polymorphic classes causes slicing and is therefore disabled.

◆ SCIP_DECL_BENDERSCUTCOPY()

virtual scip::ObjBenderscut::SCIP_DECL_BENDERSCUTCOPY ( scip_copy  )
inlinevirtual

copy method for compression plugins (called when SCIP copies plugins)

See also
SCIP_DECL_BENDERSCUTCOPY(x) in type_benders.h

Definition at line 128 of file objbenderscut.h.

References SCIP_OKAY.

◆ SCIP_DECL_BENDERSCUTFREE()

virtual scip::ObjBenderscut::SCIP_DECL_BENDERSCUTFREE ( scip_free  )
inlinevirtual

destructor of Benders' decomposition cuts to free user data (called when SCIP is exiting)

See also
SCIP_DECL_BENDERSCUTFREE(x) in type_benders.h

Definition at line 137 of file objbenderscut.h.

References SCIP_OKAY.

◆ SCIP_DECL_BENDERSCUTINIT()

virtual scip::ObjBenderscut::SCIP_DECL_BENDERSCUTINIT ( scip_init  )
inlinevirtual

initialization method of Benders' decomposition cuts (called after problem was transformed)

See also
SCIP_DECL_BENDERSCUTINIT(x) in type_benders.h

Definition at line 146 of file objbenderscut.h.

References SCIP_OKAY.

◆ SCIP_DECL_BENDERSCUTEXIT()

virtual scip::ObjBenderscut::SCIP_DECL_BENDERSCUTEXIT ( scip_exit  )
inlinevirtual

deinitialization method of Benders' decomposition cuts (called before transformed problem is freed)

See also
SCIP_DECL_BENDERSCUTEXIT(x) in type_benders.h

Definition at line 155 of file objbenderscut.h.

References SCIP_OKAY.

◆ SCIP_DECL_BENDERSCUTINITSOL()

virtual scip::ObjBenderscut::SCIP_DECL_BENDERSCUTINITSOL ( scip_initsol  )
inlinevirtual

solving process initialization method of Benders' decomposition cuts (called when branch and bound process is about to begin)

See also
SCIP_DECL_BENDERSCUTINITSOL(x) in type_benders.h

Definition at line 164 of file objbenderscut.h.

References SCIP_OKAY.

◆ SCIP_DECL_BENDERSCUTEXITSOL()

virtual scip::ObjBenderscut::SCIP_DECL_BENDERSCUTEXITSOL ( scip_exitsol  )
inlinevirtual

solving process deinitialization method of Benders' decomposition cuts (called before branch and bound process data is freed)

This method is called before the branch and bound process is freed. The Benders' decomposition cuts should use this call to clean up its branch and bound data.

See also
SCIP_DECL_BENDERSCUTEXITSOL(x) in type_benders.h

Definition at line 176 of file objbenderscut.h.

References SCIP_Bool, SCIP_DECL_BENDERSCUTEXEC(), SCIP_OKAY, SCIPfindObjBenderscut(), SCIPgetObjBenderscut(), and SCIPincludeObjBenderscut().

◆ SCIP_DECL_BENDERSCUTEXEC()

virtual scip::ObjBenderscut::SCIP_DECL_BENDERSCUTEXEC ( scip_exec  )
pure virtual

execution method of Benders' decomposition cuts technique

See also
SCIP_DECL_BENDERSCUTEXEC(x) in type_benders.h

Referenced by SCIP_DECL_BENDERSCUTEXITSOL().

Field Documentation

◆ scip_

SCIP* scip::ObjBenderscut::scip_

SCIP data structure

Definition at line 62 of file objbenderscut.h.

Referenced by SCIPincludeObjBenderscut().

◆ scip_name_

char* scip::ObjBenderscut::scip_name_

name of the Benders' decomposition cut

Definition at line 65 of file objbenderscut.h.

Referenced by SCIPincludeObjBenderscut().

◆ scip_desc_

char* scip::ObjBenderscut::scip_desc_

description of the Benders' decomposition cut

Definition at line 68 of file objbenderscut.h.

Referenced by SCIPincludeObjBenderscut().

◆ scip_priority_

const int scip::ObjBenderscut::scip_priority_

the priority of the Benders' decomposition cut

Definition at line 71 of file objbenderscut.h.

Referenced by SCIPincludeObjBenderscut().

◆ scip_islpcut_

const SCIP_Bool scip::ObjBenderscut::scip_islpcut_

is the Benders' decomposition cut generated from the LP relaxation of the subproblem

Definition at line 74 of file objbenderscut.h.

Referenced by SCIPincludeObjBenderscut().