lemon-project-template-glpk

annotate 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
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 */