Fortgeschrittenenpraktikum
pricer.h
1 #include <objscip/objscip.h>
2 #include "graph.h"
3 
4 using namespace scip;
5 
11 class SegmentPricer : public ObjPricer
12 {
13 public:
18  SCIP* scip,
19  Graph& g_,
20  std::vector<Graph::vertex_descriptor> master_nodes,
21  std::vector<SCIP_CONS*> partitioning_cons,
22  SCIP_CONS* num_segments_cons
23  );
24 
29  SCIP_DECL_PRICERINIT(scip_init);
30 
34  SCIP_RETCODE setupVars(SCIP* scip_pricer, Graph::vertex_descriptor t);
35 
44  virtual SCIP_DECL_PRICERREDCOST(scip_redcost);
45 
46  std::pair<SCIP_Real, std::vector<Graph::vertex_descriptor>> heuristic(
47  SCIP* scip,
48  Graph::vertex_descriptor master_node,
49  SCIP_Real lambda
50  );
51 
55  SCIP_RETCODE addPartitionVarFromPricerSCIP(SCIP* scip, SCIP* scip_pricer, SCIP_SOL* sol, Graph::vertex_descriptor t);
56 
61  SCIP_RETCODE addPartitionVar(SCIP* scip, Graph::vertex_descriptor master_node, std::vector<Graph::vertex_descriptor> superpixels);
62 
63 private:
64  Graph& g;
65  std::vector<Graph::vertex_descriptor> master_nodes;
66  std::vector<SCIP_CONS*> partitioning_cons;
67  SCIP_CONS* num_segments_cons;
68 
69  // pricing problem data
70  std::vector<SCIP*> scip_pricers; // k instances (one for each t in T)
71  int _bigM;
72  int _n;
73 
77  class PricerData : public ObjProbData
78  {
79  public:
80  PricerData() : ObjProbData()
81  {}
82 
83  std::vector<SCIP_VAR*> x;
84  };
85 };
Class representing pricing problem After each iteration of the master problem, the scip_redcost metho...
Definition: pricer.h:11
std::vector< SCIP_VAR * > x
variables for each superpixel
Definition: pricer.h:83
Problem data class for the pricing problem.
Definition: pricer.h:77