Skip to content
This repository
  • 1 commit
  • 5 files changed
  • 0 comments
  • 1 contributor
2  include/tsp.h
@@ -61,7 +61,7 @@ tour_t* roulette_select(tour_t tours[], int num_tours); // selects a random tour
61 61
 
62 62
 void terminate_program(int ecode);
63 63
 
64  
-void populate_tours(int N, int mpi_rank, tour_t** arr_tours);
  64
+void populate_tours(int N, int mpi_rank, tour_t** arr_tours, tour_t* arr_cities);
65 65
 
66 66
 void MPI_init(char *mpi_flag, int *mpi_rank, int *mpi_procs);
67 67
 
1  src/fitness.c
@@ -100,6 +100,7 @@ tour_t* create_tour_nn(city_t* city, int num_cities, tour_t* cities) {
100 100
 	// Iterate through the cities, adding new ones and marking them off.
101 101
 	for (i=1;i<num_cities;i++) {
102 102
 		next_city = find_nearest_neighbor(next_city,num_cities,cities,cities_visited);
  103
+		printf("--> %i ",*next_city);
103 104
 		tour->city[i]=next_city;
104 105
 		cities_visited[ next_city->id ]=1;
105 106
 	}
52  src/main.c
@@ -27,6 +27,9 @@ void terminate_program(int ecode) {
27 27
 		printf("AB cycles structure gone...");
28 28
 		printf("done!\n");
29 29
 
  30
+		//free tours
  31
+		free(Tours);
  32
+
30 33
 		// done (just used to make sure that the program ran to completion)
31 34
 		printf("Program ran to completion (done).\n");
32 35
 	}
@@ -35,40 +38,16 @@ void terminate_program(int ecode) {
35 38
 	exit(ecode);
36 39
 }
37 40
 
38  
-void populate_tours(int N, int mpi_rank, tour_t** arr_tours) {
  41
+void populate_tours(int N, int mpi_rank, tour_t** arr_tours, tour_t* arr_cities) {
39 42
 	int i;
40  
-	tour_t* tourA, *tourB;
41  
-	tour_t* tstar;
42  
-	tourA = malloc(sizeof(*tourA));
43  
-	tourB = malloc(sizeof(*tourB));
44  
-	Tours = malloc(sizeof(*Tours) * N);
  43
+	printf("N-->%i\n",N);
45 44
 
46  
-	tourA->size = Cities->size;
47  
-	for (i=0; i < N; i++)
48  
-	{
49  
-		tourA->city[i] = Cities->city[(i*2)%N];
  45
+	for (i=0;i<N;i++) {
  46
+		printf("-- %i ",i);
  47
+		arr_tours[i] = create_tour_nn(arr_cities->city[i], N, arr_cities);
  48
+		printf("\n");
  49
+		print_tour(arr_tours[i]);
50 50
 	}
51  
-	tstar = create_tour_nn(Cities->city[0], Cities->size, Cities);
52  
-	tourB = tstar;
53  
-	// now, find fitness of the tours.
54  
-	set_tour_fitness(tourA,N);
55  
-	set_tour_fitness(tourB,N);
56  
-	DPRINTF("fitness of A,B is %f,%f.\n", tourA->fitness, tourB->fitness);
57  
-	// output the two tours
58  
-	printf("TourA: [%i]", tourA->city[0]->id);
59  
-	for (i=1; i < N; i++)
60  
-		printf(", [%i]", tourA->city[i]->id);
61  
-	printf("\nTourB: [%i]", tourB->city[0]->id);
62  
-	for (i=1; i < N; i++)
63  
-		printf(", [%i]", tourB->city[i]->id);
64  
-	printf("\n");
65  
-
66  
-	// now, testing print tour function for A and B.
67  
-	print_tour(tourA);
68  
-	print_tour(tourB);
69  
-
70  
-	Tours[0]=tourA;
71  
-	Tours[1]=tourB;
72 51
 }
73 52
 
74 53
 void MPI_init(char *mpi_flag, int *mpi_rank, int *mpi_procs) {
@@ -118,7 +97,9 @@ void run_genalg(int N, char *lcv) {
118 97
 	// Select parents for child creation (roulette wheel)
119 98
 
120 99
 	// Create children
  100
+	printf("enter eax\n");
121 101
 	perform_eax(N);
  102
+	printf("exit eax\n");
122 103
 
123 104
 	// Update sorted population array
124 105
 
@@ -332,9 +313,13 @@ int main(int argc, char** argv)
332 313
 	load_cities(mpi_rank,citiesFile,Cities);
333 314
 	// process the cities
334 315
 	int N = Cities->size;
  316
+	// allocate memory for Tours
  317
+	Tours = malloc( sizeof(tour_t*) * MAX_POPULATION );
335 318
 
336 319
 	// construct the distance table (on all processes)
  320
+	printf("Enter dist table\n");
337 321
 	construct_distTable(Cities,N);
  322
+	printf("Exit dist table\n");
338 323
 
339 324
 	// output the city information to the console
340 325
 	DPRINTF("\nNum Cities: %04i\n", Cities->size);
@@ -345,7 +330,9 @@ int main(int argc, char** argv)
345 330
 	}
346 331
 
347 332
 	// populate tours (on all processes)
348  
-	populate_tours(N,mpi_rank,Tours);
  333
+	populate_tours(N,mpi_rank,Tours,Cities);
  334
+	print_tour(Tours[0]);
  335
+	print_tour(Tours[1]);
349 336
 	//----------------------------------------------------
350 337
 
351 338
 
@@ -353,6 +340,7 @@ int main(int argc, char** argv)
353 340
 	// Run Genetic Algorithm (Enter "The Islands")
354 341
 	//####################################################
355 342
 	while (lcv) {
  343
+		printf("Loop . . .\n");
356 344
 		if (mpi_rank==0 && mpi_flag==1) {
357 345
 			// if you are the master AND mpi is on, start listening
358 346
 			master_listener();
BIN  tsp
Binary file not shown
335  tsp.out
... ...
@@ -0,0 +1,335 @@
  1
+Picked a random seed (1351724931).
  2
+Loading cities...done! (loaded 5 cities from the file)
  3
+Enter dist table
  4
+
  5
+(1,0)->4.472136	
  6
+(2,0)->3.000000	(2,1)->4.123106	
  7
+(3,0)->2.236068	(3,1)->3.605551	(3,2)->4.472136	
  8
+(4,0)->6.082763	(4,1)->8.544003	(4,2)->9.055386	(4,3)->5.099020	
  9
+Exit dist table
  10
+
  11
+Num Cities: 0005
  12
+---------------------------
  13
+City[0000] at 0001, 0004   [id: 0000]
  14
+City[0001] at 0005, 0002   [id: 0001]
  15
+City[0002] at 0001, 0001   [id: 0002]
  16
+City[0003] at 0003, 0005   [id: 0003]
  17
+City[0004] at 0002, 0010   [id: 0004]
  18
+N-->5
  19
+-- 0 --> 3 --> 5 --> 1 --> 2 
  20
+Tour: [0], [3], [1], [2], [4]
  21
+-- 1 --> 3 --> 1 --> 1 --> 2 
  22
+Tour: [1], [3], [0], [2], [4]
  23
+-- 2 --> 1 --> 3 --> 5 --> 2 
  24
+Tour: [2], [0], [3], [1], [4]
  25
+-- 3 --> 1 --> 1 --> 5 --> 2 
  26
+Tour: [3], [0], [2], [1], [4]
  27
+-- 4 --> 3 --> 1 --> 1 --> 5 
  28
+Tour: [4], [3], [0], [2], [1]
  29
+Tour: [0], [3], [1], [2], [4]
  30
+Tour: [1], [3], [0], [2], [4]
  31
+Loop . . .
  32
+enter eax
  33
+
  34
+Merging A with B...
  35
+creating empty graph (of size 5)...done!
  36
+populating the graph (merging the edges)...Special cases...done!
  37
+done!
  38
+
  39
+Graph R contains: 
  40
+0000 [id:0000] -> edges: [0003:t1], [0002:t1], [0004:t0], [0003:t0]
  41
+0001 [id:0001] -> edges: [0003:t0], [0002:t0], [0004:t1], [0003:t1]
  42
+0002 [id:0002] -> edges: [0001:t0], [0004:t0], [0000:t1], [0004:t1]
  43
+0003 [id:0003] -> edges: [0000:t0], [0001:t0], [0001:t1], [0000:t1]
  44
+0004 [id:0004] -> edges: [0002:t0], [0000:t0], [0002:t1], [0001:t1]
  45
+Allocating cycles...done!
  46
+Generating AB Cycles....Generating AB Cycle, edges left: 10[...
  47
+Choosing a random vertex...
  48
+first pick: [2]->s:4
  49
+v2:2...
  50
+next cycle #0...
  51
+Initializing cycle...
  52
+entering cycle loop...
  53
+Adding edge to cycle...
  54
+v2i: 0, c[0]: 0, c[1]: 1
  55
+v1e0: 1, v1e1: 4, v1e2: 0, v1e3: 4
  56
+next iteration...v1:2, v2:1
  57
+removing edge(v[2]->v[1]t0 from graph...
  58
+removing edge(v[1]->v[2]t0 from graph...
  59
+Adding edge to cycle...
  60
+v2i: 2, c[0]: 1, c[1]: 2
  61
+v1e0: 3, v1e1: 3, v1e2: 4, v1e3: 2
  62
+next iteration...v1:1, v2:4
  63
+removing edge(v[1]->v[4]t1 from graph...
  64
+removing edge(v[4]->v[1]t1 from graph...
  65
+Adding edge to cycle...
  66
+v2i: 1, c[0]: 0, c[1]: 1
  67
+v1e0: 2, v1e1: 0, v1e2: 2, v1e3: 1
  68
+next iteration...v1:4, v2:0
  69
+removing edge(v[4]->v[0]t0 from graph...
  70
+removing edge(v[0]->v[4]t0 from graph...
  71
+Adding edge to cycle...
  72
+v2i: 0, c[0]: 0, c[1]: 1
  73
+v1e0: 3, v1e1: 2, v1e2: 3, v1e3: 4
  74
+next iteration...v1:0, v2:3
  75
+removing edge(v[0]->v[3]t1 from graph...
  76
+removing edge(v[3]->v[0]t1 from graph...
  77
+Adding edge to cycle...
  78
+v2i: 1, c[0]: 0, c[1]: 1
  79
+v1e0: 0, v1e1: 1, v1e2: 1, v1e3: 0
  80
+next iteration...v1:3, v2:1
  81
+removing edge(v[3]->v[1]t0 from graph...
  82
+removing edge(v[1]->v[3]t0 from graph...
  83
+Adding edge to cycle...
  84
+v2i: 0, c[0]: 0, c[1]: -1
  85
+v1e0: 3, v1e1: 3, v1e2: 4, v1e3: 2
  86
+next iteration...v1:1, v2:3
  87
+removing edge(v[1]->v[3]t1 from graph...
  88
+removing edge(v[3]->v[1]t1 from graph...
  89
+ITERATIONS : 3, 1, 0, 4, 2, 
  90
+Ab cycle generated: ->[2]->[1]->[4]->[0]->[3]->[1]
  91
+Cycle with tail generated, removing tail...
  92
+Ab cycle reversed: ->[1]->[3]->[0]->[4]->[1]->[2]
  93
+v0,v1,v2: 3,1,2
  94
+curCycle->city[5]->id = 2
  95
+Restoring edge: 2->1
  96
+restoring edge(v[2]->v[1]t0 to graph...
  97
+restoring edge(v[1]->v[2]t0 to graph...
  98
+curCycle->city[4]->id = 1
  99
+Restoring edge: 1->4
  100
+restoring edge(v[1]->v[4]t1 to graph...
  101
+restoring edge(v[4]->v[1]t1 to graph...
  102
+curCycle->city[3]->id = 4
  103
+Restoring edge: 4->0
  104
+restoring edge(v[4]->v[0]t0 to graph...
  105
+restoring edge(v[0]->v[4]t0 to graph...
  106
+curCycle->city[2]->id = 0
  107
+Restoring edge: 0->3
  108
+restoring edge(v[0]->v[3]t1 to graph...
  109
+restoring edge(v[3]->v[0]t1 to graph...
  110
+Ab cycle as fixed: ->[1]->[3]
  111
+next AB Cycle (back to top of outer while)
  112
+
  113
+Graph R contains 5 nodes: 
  114
+0000 [id:0000] -> 4 edges: [0003:t0], [0002:t1], [0004:t0], [0003:t1]
  115
+0001 [id:0001] -> 2 edges: [0002:t0], [0004:t1]
  116
+0002 [id:0002] -> 4 edges: [0004:t1], [0004:t0], [0000:t1], [0001:t0]
  117
+0003 [id:0003] -> 2 edges: [0000:t0], [0000:t1]
  118
+0004 [id:0004] -> 4 edges: [0002:t0], [0002:t1], [0001:t1], [0000:t0]
  119
+Generating AB Cycle, edges left: 8[...
  120
+Choosing a random vertex...
  121
+first pick: [3]->s:2
  122
+v2:3...
  123
+next cycle #1...
  124
+Initializing cycle...
  125
+entering cycle loop...
  126
+Adding edge to cycle...
  127
+v2i: 0, c[0]: 0, c[1]: -1
  128
+v1e0: 0, v1e1: 0, v1e2: 1, v1e3: 1
  129
+next iteration...v1:3, v2:0
  130
+removing edge(v[3]->v[0]t0 from graph...
  131
+removing edge(v[0]->v[3]t0 from graph...
  132
+Adding edge to cycle...
  133
+v2i: 1, c[0]: 0, c[1]: 1
  134
+v1e0: 3, v1e1: 2, v1e2: 4, v1e3: 3
  135
+next iteration...v1:0, v2:2
  136
+removing edge(v[0]->v[2]t1 from graph...
  137
+removing edge(v[2]->v[0]t1 from graph...
  138
+Adding edge to cycle...
  139
+v2i: 2, c[0]: 1, c[1]: 2
  140
+v1e0: 4, v1e1: 4, v1e2: 1, v1e3: 0
  141
+next iteration...v1:2, v2:1
  142
+removing edge(v[2]->v[1]t0 from graph...
  143
+removing edge(v[1]->v[2]t0 from graph...
  144
+Adding edge to cycle...
  145
+v2i: 0, c[0]: 0, c[1]: -1
  146
+v1e0: 4, v1e1: 2, v1e2: 3, v1e3: 3
  147
+next iteration...v1:1, v2:4
  148
+removing edge(v[1]->v[4]t1 from graph...
  149
+removing edge(v[4]->v[1]t1 from graph...
  150
+Adding edge to cycle...
  151
+v2i: 0, c[0]: 0, c[1]: 2
  152
+v1e0: 2, v1e1: 2, v1e2: 0, v1e3: 1
  153
+next iteration...v1:4, v2:2
  154
+removing edge(v[4]->v[2]t0 from graph...
  155
+removing edge(v[2]->v[4]t0 from graph...
  156
+Adding edge to cycle...
  157
+v2i: 0, c[0]: 0, c[1]: -1
  158
+v1e0: 4, v1e1: 4, v1e2: 1, v1e3: 0
  159
+next iteration...v1:2, v2:4
  160
+removing edge(v[2]->v[4]t1 from graph...
  161
+removing edge(v[4]->v[2]t1 from graph...
  162
+ITERATIONS : 1, 3, 2, 0, 4, 
  163
+Ab cycle generated: ->[3]->[0]->[2]->[1]->[4]->[2]
  164
+Cycle with tail generated, removing tail...
  165
+Ab cycle reversed: ->[2]->[4]->[1]->[2]->[0]->[3]
  166
+v0,v1,v2: 4,2,3
  167
+curCycle->city[5]->id = 3
  168
+Restoring edge: 3->0
  169
+restoring edge(v[3]->v[0]t0 to graph...
  170
+restoring edge(v[0]->v[3]t0 to graph...
  171
+curCycle->city[4]->id = 0
  172
+Restoring edge: 0->2
  173
+restoring edge(v[0]->v[2]t1 to graph...
  174
+restoring edge(v[2]->v[0]t1 to graph...
  175
+curCycle->city[3]->id = 2
  176
+Restoring edge: 2->1
  177
+restoring edge(v[2]->v[1]t0 to graph...
  178
+restoring edge(v[1]->v[2]t0 to graph...
  179
+curCycle->city[2]->id = 1
  180
+Restoring edge: 1->4
  181
+restoring edge(v[1]->v[4]t1 to graph...
  182
+restoring edge(v[4]->v[1]t1 to graph...
  183
+Ab cycle as fixed: ->[2]->[4]
  184
+next AB Cycle (back to top of outer while)
  185
+
  186
+Graph R contains 5 nodes: 
  187
+0000 [id:0000] -> 4 edges: [0003:t1], [0004:t0], [0003:t0], [0002:t1]
  188
+0001 [id:0001] -> 2 edges: [0002:t0], [0004:t1]
  189
+0002 [id:0002] -> 2 edges: [0000:t1], [0001:t0]
  190
+0003 [id:0003] -> 2 edges: [0000:t1], [0000:t0]
  191
+0004 [id:0004] -> 2 edges: [0000:t0], [0001:t1]
  192
+Generating AB Cycle, edges left: 6[...
  193
+Choosing a random vertex...
  194
+first pick: [2]->s:2
  195
+v2:2...
  196
+next cycle #2...
  197
+Initializing cycle...
  198
+entering cycle loop...
  199
+Adding edge to cycle...
  200
+v2i: 1, c[0]: 1, c[1]: -1
  201
+v1e0: 0, v1e1: 1, v1e2: 4, v1e3: 4
  202
+next iteration...v1:2, v2:1
  203
+removing edge(v[2]->v[1]t0 from graph...
  204
+removing edge(v[1]->v[2]t0 from graph...
  205
+Adding edge to cycle...
  206
+v2i: 0, c[0]: 0, c[1]: -1
  207
+v1e0: 4, v1e1: 2, v1e2: 3, v1e3: 3
  208
+next iteration...v1:1, v2:4
  209
+removing edge(v[1]->v[4]t1 from graph...
  210
+removing edge(v[4]->v[1]t1 from graph...
  211
+Adding edge to cycle...
  212
+v2i: 0, c[0]: 0, c[1]: -1
  213
+v1e0: 0, v1e1: 1, v1e2: 2, v1e3: 2
  214
+next iteration...v1:4, v2:0
  215
+removing edge(v[4]->v[0]t0 from graph...
  216
+removing edge(v[0]->v[4]t0 from graph...
  217
+Adding edge to cycle...
  218
+v2i: 1, c[0]: 0, c[1]: 1
  219
+v1e0: 3, v1e1: 2, v1e2: 3, v1e3: 4
  220
+next iteration...v1:0, v2:2
  221
+removing edge(v[0]->v[2]t1 from graph...
  222
+removing edge(v[2]->v[0]t1 from graph...
  223
+ITERATIONS : 3, 1, 0, 0, 2, 
  224
+Ab cycle generated: ->[2]->[1]->[4]->[0]
  225
+No fixing necessary (no 'tail' on cycle)
  226
+.next AB Cycle (back to top of outer while)
  227
+
  228
+Graph R contains 5 nodes: 
  229
+0000 [id:0000] -> 2 edges: [0003:t1], [0003:t0]
  230
+0001 [id:0001] -> 0 edges: 
  231
+0002 [id:0002] -> 0 edges: 
  232
+0003 [id:0003] -> 2 edges: [0000:t1], [0000:t0]
  233
+0004 [id:0004] -> 0 edges: 
  234
+Generating AB Cycle, edges left: 2[...
  235
+Choosing a random vertex...
  236
+first pick: [4]->s:0
  237
+v2:0...
  238
+next cycle #3...
  239
+Initializing cycle...
  240
+entering cycle loop...
  241
+Adding edge to cycle...
  242
+v2i: 1, c[0]: 1, c[1]: -1
  243
+v1e0: 3, v1e1: 3, v1e2: 2, v1e3: 4
  244
+next iteration...v1:0, v2:3
  245
+removing edge(v[0]->v[3]t0 from graph...
  246
+removing edge(v[3]->v[0]t0 from graph...
  247
+Adding edge to cycle...
  248
+v2i: 0, c[0]: 0, c[1]: -1
  249
+v1e0: 0, v1e1: 0, v1e2: 1, v1e3: 1
  250
+next iteration...v1:3, v2:0
  251
+removing edge(v[3]->v[0]t1 from graph...
  252
+removing edge(v[0]->v[3]t1 from graph...
  253
+ITERATIONS : 0, 0, 0, 1, 0, 
  254
+Ab cycle generated: ->[0]->[3]
  255
+No fixing necessary (no 'tail' on cycle)
  256
+.next AB Cycle (back to top of outer while)
  257
+
  258
+Graph R contains 5 nodes: 
  259
+0000 [id:0000] -> 0 edges: 
  260
+0001 [id:0001] -> 0 edges: 
  261
+0002 [id:0002] -> 0 edges: 
  262
+0003 [id:0003] -> 0 edges: 
  263
+0004 [id:0004] -> 0 edges: 
  264
+done!
  265
+Printing all 4 cycles...
  266
+Cycle[0]: [1], [3], [1]
  267
+Cycle[1]: [2], [4], [2]
  268
+Cycle[2]: [2], [1], [4], [0], [2]
  269
+Cycle[3]: [0], [3], [0]
  270
+(r:0.000000)removing Cycle[0]: [1], [3], [1]
  271
+(r:0.000000)removing Cycle[0]: [0], [3], [0]
  272
+(r:0.809411)allowing Cycle[0]: [2], [1], [4], [0], [2]
  273
+(r:0.000000)removing Cycle[1]: [2], [4], [2]
  274
+Printing all 1 cycles in the E-set...
  275
+Cycle[0]: [2], [1], [4], [0], [2]
  276
+
  277
+creating empty graph (of size 5)...done!
  278
+populating the graph (merging the edges)...Special cases...done!
  279
+
  280
+Intermediate Tour T contains: 
  281
+0000 [id:0000] -> edges: [0004:t0], [0003:t0]
  282
+0001 [id:0001] -> edges: [0003:t0], [0002:t0]
  283
+0002 [id:0002] -> edges: [0001:t0], [0004:t0]
  284
+0003 [id:0003] -> edges: [0000:t0], [0001:t0]
  285
+0004 [id:0004] -> edges: [0002:t0], [0000:t0]
  286
+allocating edges array...
  287
+Applying the E-set.
  288
+removing edge(v[2]->v[1]t0 from graph...
  289
+removing edge(v[1]->v[2]t0 from graph (final edge v2)...
  290
+adding edge to v2->(1)...
  291
+adding edge to v1->(4)...
  292
+removing edge(v[4]->v[0]t0 from graph...
  293
+removing edge(v[0]->v[4]t0 from graph...
  294
+adding edge to v2->(0)...
  295
+adding edge to v1->(2)...
  296
+
  297
+INTERMEDIATE TOUR AFTER APPLYING E-SET:
  298
+Intermediate Tour T contains: 
  299
+0000 [id:0000] -> edges: [0003:t0], [0002:t0]
  300
+0001 [id:0001] -> edges: [0003:t0], [0004:t0]
  301
+0002 [id:0002] -> edges: [0004:t0], [0000:t0]
  302
+0003 [id:0003] -> edges: [0000:t0], [0001:t0]
  303
+0004 [id:0004] -> edges: [0002:t0], [0001:t0]
  304
+tracking disjoint cycles...
  305
+grabbing first unvisited node: 0
  306
+next node : 3
  307
+p1<p2 inside lookup_distance: distTable[(3*(3-1)/2)+0==3]=2.236068
  308
+(no inline):initialized edge = {0 -> 3 : i1 : c2.236068}
  309
+next node : 1
  310
+p1>p2 inside lookup_distance: distTable[(3*(3-1)/2)+1==4]=3.605551
  311
+(no inline):initialized edge = {3 -> 1 : i1 : c3.605551}
  312
+next node : 4
  313
+p1<p2 inside lookup_distance: distTable[(4*(4-1)/2)+1==7]=8.544003
  314
+(no inline):initialized edge = {1 -> 4 : i1 : c8.544003}
  315
+next node : 2
  316
+p1>p2 inside lookup_distance: distTable[(4*(4-1)/2)+2==8]=9.055386
  317
+(no inline):initialized edge = {4 -> 2 : i1 : c9.055386}
  318
+next node : 0
  319
+p1>p2 inside lookup_distance: distTable[(2*(2-1)/2)+0==1]=3.000000
  320
+(no inline):initialized edge = {2 -> 0 : i1 : c3.000000}
  321
+Checking visited array.
  322
+there were 1 disjoint cycles.
  323
+
  324
+Intermediate Tour T contains: 
  325
+0000 [id:0000] -> edges: [0003:t0], [0002:t0]
  326
+0001 [id:0001] -> edges: [0003:t0], [0004:t0]
  327
+0002 [id:0002] -> edges: [0004:t0], [0000:t0]
  328
+0003 [id:0003] -> edges: [0000:t0], [0001:t0]
  329
+0004 [id:0004] -> edges: [0002:t0], [0001:t0]
  330
+Printing all 5 edges in the graph: 
  331
+Edge[0] = {0 -> 3 : i1 : c2.236068}
  332
+Edge[1] = {3 -> 1 : i1 : c3.605551}
  333
+Edge[2] = {1 -> 4 : i1 : c8.544003}
  334
+Edge[3] = {4 -> 2 : i1 : c9.055386}
  335
+E

No commit comments for this range

Something went wrong with that request. Please try again.