Dip  0.92.4
cnrp_cp.h
Go to the documentation of this file.
1 /*===========================================================================*/
2 /* */
3 /* This file is part of a demonstration application for use with the */
4 /* SYMPHONY Branch, Cut, and Price Library. This application is a solver for */
5 /* Capacitated Network Routing Problems. */
6 /* */
7 /* (c) Copyright 2000-2013 Ted Ralphs. All Rights Reserved. */
8 /* */
9 /* This application was developed by Ted Ralphs (ted@lehigh.edu) */
10 /* */
11 /* This software is licensed under the Eclipse Public License. Please see */
12 /* accompanying file for terms. */
13 /* */
14 /*===========================================================================*/
15 
16 #ifndef _CUT_POOL_USER_H
17 #define _CUT_POOL_USER_H
18 
19 /* SYMPHONY include files */
20 #include "sym_proto.h"
21 
22 /* CNRP include files */
23 #include "cnrp_cp_params.h"
24 
25 
26 typedef struct CNRP_SPEC_CP{
28  int vertnum; /*number of vertices in the problem*/
29  int edgenum; /*number of edges in the problem*/
30  double capacity;
31  double *demand;
32  int *edges; /*a list of the edges (by index pairs)*/
33  struct POOL_NET *n;
35 
36 /*--------------------------------------------------------------------------*
37  * The next three data structuires are used in the construction of the
38  * solution graph which we use to check the violation of certain cuts
39  *--------------------------------------------------------------------------*/
40 
41 typedef struct POOL_NET{
42  struct POOL_NODE *verts;
43  struct POOL_EDGE *adjlist;
44  int vertnum;
45  int edgenum;
46 }pool_net;
47 
48 typedef struct POOL_NODE{
49  struct POOL_EDGE *first;
50 }pool_node;
51 
52 typedef struct POOL_EDGE{
53  struct POOL_EDGE *next;
54  int other_end;
55  double weight;
56 }pool_edge;
57 
58 pool_net *create_pool_net PROTO((cnrp_spec_cp *vcp, int varnum, int *indices,
59  double *values));
60 void free_pool_net PROTO((cnrp_spec_cp *vcp));
61 
62 
63 #endif
int edgenum
Definition: cnrp_cp.h:45
struct POOL_EDGE pool_edge
double weight
Definition: cnrp_cp.h:55
#define PROTO(x)
Definition: sym_proto.h:27
int * edges
Definition: cnrp_cp.h:32
struct POOL_NODE * verts
Definition: cnrp_cp.h:42
struct POOL_EDGE * next
Definition: cnrp_cp.h:53
struct POOL_NET pool_net
struct POOL_NODE pool_node
double capacity
Definition: cnrp_cp.h:30
double * demand
Definition: cnrp_cp.h:31
int edgenum
Definition: cnrp_cp.h:29
struct CNRP_SPEC_CP cnrp_spec_cp
int other_end
Definition: cnrp_cp.h:54
int vertnum
Definition: cnrp_cp.h:28
struct POOL_NET * n
Definition: cnrp_cp.h:33
cnrp_cp_params par
Definition: cnrp_cp.h:27
struct POOL_EDGE * first
Definition: cnrp_cp.h:49
struct POOL_EDGE * adjlist
Definition: cnrp_cp.h:43
int vertnum
Definition: cnrp_cp.h:44