rev |
line source |
alpar@9
|
1 /* netgen.c */
|
alpar@9
|
2
|
alpar@9
|
3 /* This main program generates 50 original NETGEN instances of the
|
alpar@9
|
4 minimum cost flow problem and writes them in DIMACS format to the
|
alpar@9
|
5 current directory. */
|
alpar@9
|
6
|
alpar@9
|
7 #include <stddef.h>
|
alpar@9
|
8 #include <stdio.h>
|
alpar@9
|
9 #include <stdlib.h>
|
alpar@9
|
10 #include <glpk.h>
|
alpar@9
|
11
|
alpar@9
|
12 static int parm[50][15] =
|
alpar@9
|
13 { {13502460, 101,
|
alpar@9
|
14 5000, 2500, 2500, 25000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
15 },{4281922, 102,
|
alpar@9
|
16 5000, 2500, 2500, 25000, 1, 100, 2500000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
17 },{44820113, 103,
|
alpar@9
|
18 5000, 2500, 2500, 25000, 1, 100, 6250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
19 },{13450451, 104,
|
alpar@9
|
20 5000, 2500, 2500, 25000, -100, -1, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
21 },{14719436, 105,
|
alpar@9
|
22 5000, 2500, 2500, 25000, 101, 200, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
23 },{17365786, 106,
|
alpar@9
|
24 5000, 2500, 2500, 12500, 1, 100, 125000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
25 },{19540113, 107,
|
alpar@9
|
26 5000, 2500, 2500, 37500, 1, 100, 375000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
27 },{19560313, 108,
|
alpar@9
|
28 5000, 2500, 2500, 50000, 1, 100, 500000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
29 },{2403509, 109,
|
alpar@9
|
30 5000, 2500, 2500, 75000, 1, 100, 750000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
31 },{92480414, 110,
|
alpar@9
|
32 5000, 2500, 2500, 12500, 1, 100, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
33 },{4230140, 111,
|
alpar@9
|
34 5000, 2500, 2500, 37500, 1, 100, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
35 },{10032490, 112,
|
alpar@9
|
36 5000, 2500, 2500, 50000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
37 },{17307474, 113,
|
alpar@9
|
38 5000, 2500, 2500, 75000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
39 },{4925114, 114,
|
alpar@9
|
40 5000, 500, 4500, 25000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
41 },{19842704, 115,
|
alpar@9
|
42 5000, 1500, 3500, 25000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000,
|
alpar@9
|
43 },{88392060, 116,
|
alpar@9
|
44 5000, 2500, 2500, 25000, 1, 100, 250000, 0, 0, 0, 0, 1, 1000,
|
alpar@9
|
45 },{12904407, 117,
|
alpar@9
|
46 5000, 2500, 2500, 12500, 1, 100, 125000, 0, 0, 0, 0, 1, 1000,
|
alpar@9
|
47 },{11811811, 118,
|
alpar@9
|
48 5000, 2500, 2500, 37500, 1, 100, 375000, 0, 0, 0, 0, 1, 1000,
|
alpar@9
|
49 },{90023593, 119,
|
alpar@9
|
50 5000, 2500, 2500, 50000, 1, 100, 500000, 0, 0, 0, 0, 1, 1000,
|
alpar@9
|
51 },{93028922, 120,
|
alpar@9
|
52 5000, 2500, 2500, 75000, 1, 100, 750000, 0, 0, 0, 0, 1, 1000,
|
alpar@9
|
53 },{72707401, 121,
|
alpar@9
|
54 5000, 50, 50, 25000, 1, 100, 250000, 50, 50, 0, 100, 1, 1000,
|
alpar@9
|
55 },{93040771, 122,
|
alpar@9
|
56 5000, 250, 250, 25000, 1, 100, 250000, 250, 250, 0, 100, 1, 1000,
|
alpar@9
|
57 },{70220611, 123,
|
alpar@9
|
58 5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
59 },{52774811, 124,
|
alpar@9
|
60 5000, 1000, 1000, 25000, 1, 100, 250000, 1000, 1000, 0, 100, 1,
|
alpar@9
|
61 1000,
|
alpar@9
|
62 },{22492311, 125,
|
alpar@9
|
63 5000, 1500, 1500, 25000, 1, 100, 250000, 1500, 1500, 0, 100, 1,
|
alpar@9
|
64 1000,
|
alpar@9
|
65 },{35269337, 126,
|
alpar@9
|
66 5000, 500, 500, 12500, 1, 100, 125000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
67 },{30140502, 127,
|
alpar@9
|
68 5000, 500, 500, 37500, 1, 100, 375000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
69 },{49205455, 128,
|
alpar@9
|
70 5000, 500, 500, 50000, 1, 100, 500000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
71 },{42958341, 129,
|
alpar@9
|
72 5000, 500, 500, 75000, 1, 100, 750000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
73 },{25440925, 130,
|
alpar@9
|
74 5000, 500, 500, 12500, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
75 },{75294924, 131,
|
alpar@9
|
76 5000, 500, 500, 37500, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
77 },{4463965, 132,
|
alpar@9
|
78 5000, 500, 500, 50000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
79 },{13390427, 133,
|
alpar@9
|
80 5000, 500, 500, 75000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
81 },{95250971, 134,
|
alpar@9
|
82 1000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
83 },{54830522, 135,
|
alpar@9
|
84 2500, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
85 },{520593, 136,
|
alpar@9
|
86 7500, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
87 },{52900925, 137,
|
alpar@9
|
88 10000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
89 },{22603395, 138,
|
alpar@9
|
90 5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 50,
|
alpar@9
|
91 },{55253099, 139,
|
alpar@9
|
92 5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 250,
|
alpar@9
|
93 },{75357001, 140,
|
alpar@9
|
94 5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 500,
|
alpar@9
|
95 },{10072459, 141,
|
alpar@9
|
96 5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 2500,
|
alpar@9
|
97 },{55728492, 142,
|
alpar@9
|
98 5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 5000,
|
alpar@9
|
99 },{593043, 143,
|
alpar@9
|
100 5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 0, 1, 1000,
|
alpar@9
|
101 },{94236572, 144,
|
alpar@9
|
102 5000, 500, 500, 25000, 1, 10, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
103 },{94882955, 145,
|
alpar@9
|
104 5000, 500, 500, 25000, 1, 1000, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
105 },{48489922, 146,
|
alpar@9
|
106 5000, 500, 500, 25000, 1, 10000, 250000, 500, 500, 0, 100, 1,
|
alpar@9
|
107 1000,
|
alpar@9
|
108 },{75578374, 147,
|
alpar@9
|
109 5000, 500, 500, 25000, -100, -1, 250000, 500, 500, 0, 100, 1,
|
alpar@9
|
110 1000,
|
alpar@9
|
111 },{44821152, 148,
|
alpar@9
|
112 5000, 500, 500, 25000, -50, 49, 250000, 500, 500, 0, 100, 1, 1000,
|
alpar@9
|
113 },{45224103, 149,
|
alpar@9
|
114 5000, 500, 500, 25000, 101, 200, 250000, 500, 500, 0, 100, 1,
|
alpar@9
|
115 1000,
|
alpar@9
|
116 },{63491741, 150,
|
alpar@9
|
117 5000, 500, 500, 25000, 1001, 1100, 250000, 500, 500, 0, 100, 1,
|
alpar@9
|
118 1000,
|
alpar@9
|
119 }
|
alpar@9
|
120 };
|
alpar@9
|
121
|
alpar@9
|
122 typedef struct { double rhs; } v_data;
|
alpar@9
|
123 typedef struct { double cap, cost; } a_data;
|
alpar@9
|
124
|
alpar@9
|
125 int main(void)
|
alpar@9
|
126 { glp_graph *G;
|
alpar@9
|
127 int k;
|
alpar@9
|
128 char fname[100+1];
|
alpar@9
|
129 G = glp_create_graph(sizeof(v_data), sizeof(a_data));
|
alpar@9
|
130 for (k = 1; k <= 50; k++)
|
alpar@9
|
131 { sprintf(fname, "netgn%03d.min", parm[k-1][1]);
|
alpar@9
|
132 glp_netgen(G, offsetof(v_data, rhs), offsetof(a_data, cap),
|
alpar@9
|
133 offsetof(a_data, cost), &parm[k-1][-1]);
|
alpar@9
|
134 glp_write_mincost(G, offsetof(v_data, rhs), -1,
|
alpar@9
|
135 offsetof(a_data, cap), offsetof(a_data, cost), fname);
|
alpar@9
|
136 }
|
alpar@9
|
137 glp_delete_graph(G);
|
alpar@9
|
138 return 0;
|
alpar@9
|
139 }
|
alpar@9
|
140
|
alpar@9
|
141 /* eof */
|