You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							141 lines
						
					
					
						
							5.4 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							141 lines
						
					
					
						
							5.4 KiB
						
					
					
				| /* netgen.c */ | |
| 
 | |
| /* This main program generates 50 original NETGEN instances of the | |
|    minimum cost flow problem and writes them in DIMACS format to the | |
|    current directory. */ | |
| 
 | |
| #include <stddef.h> | |
| #include <stdio.h> | |
| #include <stdlib.h> | |
| #include <glpk.h> | |
|  | |
| static int parm[50][15] = | |
| {    {13502460, 101, | |
|       5000, 2500, 2500, 25000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{4281922, 102, | |
|       5000, 2500, 2500, 25000, 1, 100, 2500000, 0, 0, 0, 100, 1, 1000, | |
|    },{44820113, 103, | |
|       5000, 2500, 2500, 25000, 1, 100, 6250000, 0, 0, 0, 100, 1, 1000, | |
|    },{13450451, 104, | |
|       5000, 2500, 2500, 25000, -100, -1, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{14719436, 105, | |
|       5000, 2500, 2500, 25000, 101, 200, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{17365786, 106, | |
|       5000, 2500, 2500, 12500, 1, 100, 125000, 0, 0, 0, 100, 1, 1000, | |
|    },{19540113, 107, | |
|       5000, 2500, 2500, 37500, 1, 100, 375000, 0, 0, 0, 100, 1, 1000, | |
|    },{19560313, 108, | |
|       5000, 2500, 2500, 50000, 1, 100, 500000, 0, 0, 0, 100, 1, 1000, | |
|    },{2403509, 109, | |
|       5000, 2500, 2500, 75000, 1, 100, 750000, 0, 0, 0, 100, 1, 1000, | |
|    },{92480414, 110, | |
|       5000, 2500, 2500, 12500, 1, 100, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{4230140, 111, | |
|       5000, 2500, 2500, 37500, 1, 100, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{10032490, 112, | |
|       5000, 2500, 2500, 50000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{17307474, 113, | |
|       5000, 2500, 2500, 75000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{4925114, 114, | |
|       5000, 500, 4500, 25000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{19842704, 115, | |
|       5000, 1500, 3500, 25000, 1, 100, 250000, 0, 0, 0, 100, 1, 1000, | |
|    },{88392060, 116, | |
|       5000, 2500, 2500, 25000, 1, 100, 250000, 0, 0, 0, 0, 1, 1000, | |
|    },{12904407, 117, | |
|       5000, 2500, 2500, 12500, 1, 100, 125000, 0, 0, 0, 0, 1, 1000, | |
|    },{11811811, 118, | |
|       5000, 2500, 2500, 37500, 1, 100, 375000, 0, 0, 0, 0, 1, 1000, | |
|    },{90023593, 119, | |
|       5000, 2500, 2500, 50000, 1, 100, 500000, 0, 0, 0, 0, 1, 1000, | |
|    },{93028922, 120, | |
|       5000, 2500, 2500, 75000, 1, 100, 750000, 0, 0, 0, 0, 1, 1000, | |
|    },{72707401, 121, | |
|       5000, 50, 50, 25000, 1, 100, 250000, 50, 50, 0, 100, 1, 1000, | |
|    },{93040771, 122, | |
|       5000, 250, 250, 25000, 1, 100, 250000, 250, 250, 0, 100, 1, 1000, | |
|    },{70220611, 123, | |
|       5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{52774811, 124, | |
|       5000, 1000, 1000, 25000, 1, 100, 250000, 1000, 1000, 0, 100, 1, | |
|       1000, | |
|    },{22492311, 125, | |
|       5000, 1500, 1500, 25000, 1, 100, 250000, 1500, 1500, 0, 100, 1, | |
|       1000, | |
|    },{35269337, 126, | |
|       5000, 500, 500, 12500, 1, 100, 125000, 500, 500, 0, 100, 1, 1000, | |
|    },{30140502, 127, | |
|       5000, 500, 500, 37500, 1, 100, 375000, 500, 500, 0, 100, 1, 1000, | |
|    },{49205455, 128, | |
|       5000, 500, 500, 50000, 1, 100, 500000, 500, 500, 0, 100, 1, 1000, | |
|    },{42958341, 129, | |
|       5000, 500, 500, 75000, 1, 100, 750000, 500, 500, 0, 100, 1, 1000, | |
|    },{25440925, 130, | |
|       5000, 500, 500, 12500, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{75294924, 131, | |
|       5000, 500, 500, 37500, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{4463965, 132, | |
|       5000, 500, 500, 50000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{13390427, 133, | |
|       5000, 500, 500, 75000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{95250971, 134, | |
|       1000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{54830522, 135, | |
|       2500, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{520593, 136, | |
|       7500, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{52900925, 137, | |
|       10000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{22603395, 138, | |
|       5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 50, | |
|    },{55253099, 139, | |
|       5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 250, | |
|    },{75357001, 140, | |
|       5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 500, | |
|    },{10072459, 141, | |
|       5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 2500, | |
|    },{55728492, 142, | |
|       5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 100, 1, 5000, | |
|    },{593043, 143, | |
|       5000, 500, 500, 25000, 1, 100, 250000, 500, 500, 0, 0, 1, 1000, | |
|    },{94236572, 144, | |
|       5000, 500, 500, 25000, 1, 10, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{94882955, 145, | |
|       5000, 500, 500, 25000, 1, 1000, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{48489922, 146, | |
|       5000, 500, 500, 25000, 1, 10000, 250000, 500, 500, 0, 100, 1, | |
|       1000, | |
|    },{75578374, 147, | |
|       5000, 500, 500, 25000, -100, -1, 250000, 500, 500, 0, 100, 1, | |
|       1000, | |
|    },{44821152, 148, | |
|       5000, 500, 500, 25000, -50, 49, 250000, 500, 500, 0, 100, 1, 1000, | |
|    },{45224103, 149, | |
|       5000, 500, 500, 25000, 101, 200, 250000, 500, 500, 0, 100, 1, | |
|       1000, | |
|    },{63491741, 150, | |
|       5000, 500, 500, 25000, 1001, 1100, 250000, 500, 500, 0, 100, 1, | |
|       1000, | |
|    } | |
| }; | |
| 
 | |
| typedef struct { double rhs; } v_data; | |
| typedef struct { double cap, cost; } a_data; | |
| 
 | |
| int main(void) | |
| {     glp_graph *G; | |
|       int k; | |
|       char fname[100+1]; | |
|       G = glp_create_graph(sizeof(v_data), sizeof(a_data)); | |
|       for (k = 1; k <= 50; k++) | |
|       {  sprintf(fname, "netgn%03d.min", parm[k-1][1]); | |
|          glp_netgen(G, offsetof(v_data, rhs), offsetof(a_data, cap), | |
|             offsetof(a_data, cost), &parm[k-1][-1]); | |
|          glp_write_mincost(G, offsetof(v_data, rhs), -1, | |
|             offsetof(a_data, cap), offsetof(a_data, cost), fname); | |
|       } | |
|       glp_delete_graph(G); | |
|       return 0; | |
| } | |
| 
 | |
| /* eof */
 |