Fortgeschrittenenpraktikum
connectivity_cons.h
1 #include <objscip/objscip.h>
2 #include "graph.h"
3 
4 using namespace scip;
5 
14 class ConnectivityCons : public ObjConshdlr
15 {
16 public:
21  SCIP* scip,
22  Graph& g_,
23  std::vector<Graph::vertex_descriptor>& master_nodes_,
24  Graph::vertex_descriptor master_node_,
25  std::vector<SCIP_VAR*>& superpixel_vars_
26  );
27 
31  virtual SCIP_DECL_CONSTRANS(scip_trans);
32 
36  SCIP_DECL_CONSSEPALP(scip_sepalp);
37 
41  SCIP_DECL_CONSSEPASOL(scip_sepasol);
42 
46  virtual SCIP_DECL_CONSENFOLP(scip_enfolp);
47 
51  virtual SCIP_DECL_CONSENFOPS(scip_enfops);
52 
56  virtual SCIP_DECL_CONSCHECK(scip_check);
57 
61  virtual SCIP_DECL_CONSLOCK(scip_lock);
62 
63 private:
68  size_t findComponents(
69  SCIP* scip,
70  SCIP_SOL* sol,
71  Graph& subgraph,
72  std::vector<int>& component
73  );
74 
81  SCIP_RETCODE sepaConnectivity(
82  SCIP* scip,
83  SCIP_CONSHDLR* conshdlr,
84  SCIP_SOL* sol,
85  SCIP_RESULT* result
86  );
87 
88  Graph& g;
89  std::vector<Graph::vertex_descriptor>& master_nodes;
90  Graph::vertex_descriptor master_node;
91  std::vector<SCIP_VAR*>& superpixel_vars;
92 };
93 
97 SCIP_RETCODE SCIPcreateConsConnectivity(
98  SCIP* scip,
99  SCIP_CONS** cons,
100  const char* name,
101  SCIP_Bool initial,
102  SCIP_Bool separate,
103  SCIP_Bool enforce,
104  SCIP_Bool check,
105  SCIP_Bool propagate,
106  SCIP_Bool local,
107  SCIP_Bool modifiable,
108  SCIP_Bool dynamic,
109  SCIP_Bool removable
110 );
Class for representing connectivity constraints This class uses cutting planes to make disconnected s...
Definition: connectivity_cons.h:14