lemon-project-template-glpk

view deps/glpk/examples/netgen.c @ 11:4fc6ad2fb8a6

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