graph.cpp is updated and instances for benchmark too

git-svn-id: svn://scm.gforge.inria.fr/svnroot/paradiseo@816 331e1502-861f-0410-8da2-ba01fb791d7f
This commit is contained in:
jboisson 2007-11-26 12:57:40 +00:00
commit ec1d363b78
8 changed files with 22159 additions and 22591 deletions

View file

@ -1,536 +0,0 @@
535
36.49 7.49
57.06 9.51
30.22 48.14
5.15 -3.56
34.59 -106.37
57.12 -2.12
16.45 -99.45
5.36 -0.1
28.56 -13.36
8.59 38.48
12.5 45.02
-34.48 138.38
30.23 -9.33
56.18 12.51
36.4 -4.3
40.38 8.17
35.11 -3.5
41.55 8.48
-37.01 174.47
38.17 -0.34
36.42 3.13
36.11 37.14
35.14 -101.42
31.58 35.59
52.18 4.46
61.1 -149.59
39.57 32.41
51.11 4.28
17.08 -61.47
43.37 13.22
29.38 35.01
59.39 17.55
15.18 38.55
-25.14 -57.31
23.58 32.47
37.54 23.44
33.46 -84.31
12.3 -70.01
24.26 54.28
36.55 30.48
26.16 50.38
40.29 50.01
39.11 -76.4
10.48 -74.52
-16.11 -52.3
10.25 45.01
41.18 2.05
32.22 -64.42
41.56 -72.41
40.39 17.57
44.49 20.19
9.21 34.31
32.06 20.16
52.29 13.24
48.27 -4.25
-19.48 3.45
33.49 35.29
54.39 -6.14
35.48 -101.22
4.24 18.31
13.04 -59.3
60.17 5.13
44.48 -68.5
33.14 44.14
45.4 9.24
33.34 -86.45
52.27 -1.45
42.33 9.29
45.48 -108.37
43.28 -1.32
13.21 -16.4
-3.19 29.19
13.55 100.36
12.38 -8.02
55.44 9.09
44.32 11.18
12.57 77.4
-15.41 34.58
27.13 56.22
-27.25 153.05
44.5 -0.43
4.42 -74.09
50.47 -1.51
19.05 72.52
67.16 14.22
42.22 -71
53.03 8.48
41.08 16.47
46.55 7.3
51.31 -2.35
50.54 4.29
-15.52 -47.55
47.35 7.32
48.1 16.13
47.27 19.15
-34.49 -58.32
42.55 -78.38
44.3 26.06
49.27 2.07
-4.15 15.15
39.15 9.04
30.08 31.24
23.11 113.16
33.33 -7.4
-11.54 22.45
4.49 -52.22
52.13 0.11
-35.19 149.12
10.36 -66.59
22.39 88.27
52.5 -1.19
49.01 2.33
43.33 6.57
45.4 -0.19
39.37 19.55
50.52 7.09
41.59 -87.54
41.48 12.36
9.34 -13.37
41.25 -81.51
3.26 -76.25
42.31 8.48
-28.02 145.37
7.11 79.53
40.04 -83.04
33.22 -7.35
48.07 7.22
44.22 28.29
45.4 -0.19
6.21 2.23
55.37 12.39
-33.58 18.36
37.28 15.04
10.27 -75.31
-26.25 146.14
39 17.05
12.12 -68.57
39.09 -84.2
39.03 -84.2
51.24 -3.12
29.11 -81.03
23.46 90.23
14.45 42.59
32.5 -96.51
33.25 36.31
-6.53 39.12
42.34 18.16
-29.58 30.57
38.51 -77.02
28.34 77.07
39.46 -104.53
32.46 -96.24
26.16 50.1
47.16 5.05
33.52 10.47
14.45 -17.3
4.01 9.43
19.08 30.26
25.16 51.34
49.22 0.1
-8.45 115.1
51.08 13.46
-12.25 130.52
42.14 -83.32
42.13 -83.21
53.26 -6.15
51.17 6.45
25.15 55.2
0.03 32.26
45.32 4.18
55.57 -3.22
51.27 5.23
31.48 -106.16
52.5 -1.19
48.19 6.04
40.07 33
40.09 82.4
40.42 -74.1
50.44 -3.25
-34.49 -58.32
64.49 -147.51
37.01 -7.58
-11.35 27.31
59.54 10.37
41.49 12.15
14.35 -61
33.56 45.8
-4.23 15.26
43.49 11.12
8.37 -13.12
41.26 15.32
50.02 8.34
44.12 12.04
-21.13 27.29
28.27 -13.52
53.29 -1
-19.27 29.52
54.23 18.28
60.12 11.05
24.57 10.1
-22.5 -43.15
55.52 -4.26
45.22 5.2
7.09 41.43
44.25 8.5
57.4 18.18
41.54 2.46
37.11 -3.47
47 15.26
51.09 -0.11
14.34 -90.32
46.14 6.07
-2.09 -79.53
52.28 9.42
53.38 10
60.19 24.58
35.2 25.11
30.2 120.51
22.19 114.12
31.4 6.09
35.33 139.46
21.2 -157.55
29.59 -95.28
38.57 -77.27
43.06 -78.57
38.52 1.22
47.34 -97.27
50.21 30.55
-25.44 -54.28
39.44 -86.17
40.59 28.49
38.17 27.1
21.3 39.12
49.13 -2.12
40.38 -73.46
11.33 43.1
-6.09 106.51
-26.08 28.15
-3.22 36.38
45.28 -73.44
12.03 8.31
34.34 69.12
63.59 -22.37
-1.58 30.08
22.34 120.17
24.54 67.09
-6.18 155.43
17.56 -76.48
50.05 19.47
15.36 32.33
27.42 85.22
3.08 101.33
29.13 47.58
-8.51 13.14
10.36 -66.59
36.04 -115.09
33.56 -118.24
53.52 -1.39
48.58 2.27
0.27 9.25
34.52 33.38
43.11 0
59.49 30.17
36.51 -2.22
51.24 12.25
51.25 12.14
6.1 1.15
40.46 -73.52
33.57 -118.24
50.38 5.27
51.09 -0.11
51.28 -0.27
50.34 3.05
-12.01 -77.07
45.27 9.16
38.46 -9.08
46.13 14.28
35.3 12.37
48.14 14.11
51.28 -0.27
6.35 3.2
27.56 -15.23
-16.3 -68.11
53.21 -2.53
6.1 1.15
51.53 -0.22
-25.55 32.34
-15.2 28.27
4.27 114
49.37 6.12
-17.49 25.49
25.41 32.43
45.44 4.56
13 80.11
40.29 -3.34
31.52 -4.13
53.21 -2.16
-3.04 -60
10.34 -71.44
-4.02 39.36
46.22 15.47
39.18 -94.44
28.32 -81.2
23.36 58.17
44.25 8.5
-37.44 144.54
24.31 39.42
-37.41 144.51
19.26 -99.04
12.07 -86.11
2.01 45.19
25.48 -80.17
20.56 -89.41
45.27 9.16
35.45 10.45
39.07 -94.36
35.52 14.29
4.11 73.32
47.45 7.26
55.33 13.22
54.31 -1.25
14.31 121.01
55.58 37.25
43.35 3.58
-25.55 32.34
-8.58 125.13
43.26 5.13
-20.26 57.41
51.21 1.21
44.53 -93.13
53.52 27.33
50.55 5.47
29.59 -90.16
-26.31 31.19
48.08 11.42
-34.5 -56.02
45.38 8.43
49.05 6.08
-17.45 177.27
40.53 14.18
25.02 -77.28
-1.19 36.56
43.4 7.13
55.02 -1.41
45.56 6.06
12.08 15.02
32.56 129.56
35.09 36.17
13.29 2.1
18.06 -15.57
-13 28.39
58.35 16.15
35.45 140.23
47.09 -1.36
49.3 11.05
52.41 1.17
40.38 -73.46
55.28 10.2
46.26 30.41
26.21 127.46
35.26 -97.46
40.54 9.31
41.07 -95.55
41.14 -8.41
41.59 -87.54
51.5 -8.29
28.26 -81.19
35.38 -0.37
48.43 2.23
34.47 135.27
60.12 11.05
51.12 2.52
44.34 26.06
12.21 -1.31
43.26 -5.5
18.34 -72.17
48.43 2.23
40.05 116.36
-31.56 115.58
4.52 7.02
37.08 -76.3
39.52 -75.15
33.26 -112.01
55.52 -4.26
46.35 0.18
40.3 -80.14
-5.15 39.49
39.33 2.44
38.1 13.06
11.33 104.51
36.49 11.58
-9.27 147.13
10.36 -61.21
9.05 -79.23
50.06 14.16
43.41 10.24
42.26 14.11
16.16 -61.32
9.03 -79.24
43.23 -0.25
45.39 12.12
31.37 -8.03
34.03 -6.45
-8.08 -34.55
38.04 15.39
64.08 -21.57
16.54 96.09
49.19 4.03
36.23 28.07
-29.43 -53.42
-22.5 -43.15
45.13 14.35
44.01 12.37
48.04 -1.44
6.14 -10.22
41.49 12.15
14.1 145.15
-32.55 -60.47
51.57 4.26
24.42 46.44
33.37 73.06
6.3 -58.15
15.29 44.13
13.42 -89.07
32.44 -117.11
-23 -47.08
29.32 -98.28
-17.56 31.06
48.31 -24.8
-33.23 -70.47
42.54 -8.25
33.14 44.14
18.26 -69.4
47.27 -122.18
27 14.27
37.33 126.48
51.34 0.42
-4.4 55.31
37.37 -122.23
31.12 121.2
25.21 55.24
16.45 -22.57
1.21 103.54
37.22 -121.56
43.49 18.2
9.58 -84.16
9.59 -84.12
18.26 -66.01
40.31 22.58
41.58 21.38
40.53 -111.57
36.58 -25.1
52.42 -8.55
42.42 23.24
43.32 16.18
-12.54 -38.2
38.45 -90.22
51.33 0.14
59.39 17.55
48.41 9.13
38.54 16.15
58.53 5.38
55.58 37.25
37.26 -5.54
48.32 7.38
52.22 13.3
-33.56 151.1
29.33 52.36
47.48 13
40.31 17.24
41.19 69.24
28.29 -16.2
38.31 -28.43
43.11 0
28.29 -16.2
14.02 -87.14
52.29 13.24
35.41 51.19
41.2 19.47
32.4 13.09
43.37 1.23
32.01 34.53
22.49 5.27
0.23 6.43
35.43 -5.55
-18.48 47.29
33.56 8.06
-24.42 -53.42
25.04 121.33
37.55 12.29
51.23 -2.43
45.12 7.39
45.5 13.28
45.39 12.12
47.26 0.43
36.18 -95.52
36.51 10.14
52.34 13.18
35.33 139.46
35.54 -83.53
40.62 13.11
-0.08 -78.29
12.41 101.01
13.45 -60.57
44.55 4.58
43.14 27.49
45.3 12.21
-23 -47.08
48.07 16.33
39.29 -0.29
41.42 -4.51
45.24 10.53
38.57 -77.27
52.1 20.58
36.45 -6.04
53.19 -113.35
44.53 -63.31
45.41 -74.02
45.19 -75.4
46.48 -71.24
42.16 -82.58
48.57 -54.34
45.28 -73.44
49.11 -123.1
49.55 -97.14
51.07 -114.01
47.37 -52.45
43.41 -79.38
44.06 15.21
45.45 16.04
41.4 -1.03
-6.13 39.13
47.28 8.33
51.33 0.14
24.58 91.53

View file

@ -1,53 +1,60 @@
52
565 575
25 185
345 750
945 685
845 655
880 660
25 230
525 1000
580 1175
650 1130
1605 620
1220 580
1465 200
1530 5
845 680
725 370
145 665
415 635
510 875
560 365
300 465
520 585
480 415
835 625
975 580
1215 245
1320 315
1250 400
660 180
410 250
420 555
575 665
1150 1160
700 580
685 595
685 610
770 610
795 645
720 635
760 650
475 960
95 260
875 920
700 500
555 815
830 485
1170 65
830 610
605 625
595 360
1340 725
1740 245
NAME: berlin52
TYPE: TSP
COMMENT: 52 locations in Berlin (Groetschel)
DIMENSION: 52
EDGE_WEIGHT_TYPE: EUC_2D
NODE_COORD_SECTION
1 565.0 575.0
2 25.0 185.0
3 345.0 750.0
4 945.0 685.0
5 845.0 655.0
6 880.0 660.0
7 25.0 230.0
8 525.0 1000.0
9 580.0 1175.0
10 650.0 1130.0
11 1605.0 620.0
12 1220.0 580.0
13 1465.0 200.0
14 1530.0 5.0
15 845.0 680.0
16 725.0 370.0
17 145.0 665.0
18 415.0 635.0
19 510.0 875.0
20 560.0 365.0
21 300.0 465.0
22 520.0 585.0
23 480.0 415.0
24 835.0 625.0
25 975.0 580.0
26 1215.0 245.0
27 1320.0 315.0
28 1250.0 400.0
29 660.0 180.0
30 410.0 250.0
31 420.0 555.0
32 575.0 665.0
33 1150.0 1160.0
34 700.0 580.0
35 685.0 595.0
36 685.0 610.0
37 770.0 610.0
38 795.0 645.0
39 720.0 635.0
40 760.0 650.0
41 475.0 960.0
42 95.0 260.0
43 875.0 920.0
44 700.0 500.0
45 555.0 815.0
46 830.0 485.0
47 1170.0 65.0
48 830.0 610.0
49 605.0 625.0
50 595.0 360.0
51 1340.0 725.0
52 1740.0 245.0
EOF

View file

@ -1,102 +1,108 @@
101
41 49
35 17
55 45
55 20
15 30
25 30
20 50
10 43
55 60
30 60
20 65
50 35
30 25
15 10
30 5
10 20
5 30
20 40
15 60
45 65
45 20
45 10
55 5
65 35
65 20
45 30
35 40
41 37
64 42
40 60
31 52
35 69
53 52
65 55
63 65
2 60
20 20
5 5
60 12
40 25
42 7
24 12
23 3
11 14
6 38
2 48
8 56
13 52
6 68
47 47
49 58
27 43
37 31
57 29
63 23
53 12
32 12
36 26
21 24
17 34
12 24
24 58
27 69
15 77
62 77
49 73
67 5
56 39
37 47
37 56
57 68
47 16
44 17
46 13
49 11
49 42
53 43
61 52
57 48
56 37
55 54
15 47
14 37
11 31
16 22
4 18
28 18
26 52
26 35
31 67
15 19
22 22
18 24
26 27
25 24
22 27
25 21
19 21
20 26
18 18
35 35
NAME: eil101
TYPE: TSP
COMMENT: 101-city problem (Christofides/Eilon)
DIMENSION: 101
EDGE_WEIGHT_TYPE: EUC_2D
NODE_COORD_SECTION
1 41 49
2 35 17
3 55 45
4 55 20
5 15 30
6 25 30
7 20 50
8 10 43
9 55 60
10 30 60
11 20 65
12 50 35
13 30 25
14 15 10
15 30 5
16 10 20
17 5 30
18 20 40
19 15 60
20 45 65
21 45 20
22 45 10
23 55 5
24 65 35
25 65 20
26 45 30
27 35 40
28 41 37
29 64 42
30 40 60
31 31 52
32 35 69
33 53 52
34 65 55
35 63 65
36 2 60
37 20 20
38 5 5
39 60 12
40 40 25
41 42 7
42 24 12
43 23 3
44 11 14
45 6 38
46 2 48
47 8 56
48 13 52
49 6 68
50 47 47
51 49 58
52 27 43
53 37 31
54 57 29
55 63 23
56 53 12
57 32 12
58 36 26
59 21 24
60 17 34
61 12 24
62 24 58
63 27 69
64 15 77
65 62 77
66 49 73
67 67 5
68 56 39
69 37 47
70 37 56
71 57 68
72 47 16
73 44 17
74 46 13
75 49 11
76 49 42
77 53 43
78 61 52
79 57 48
80 56 37
81 55 54
82 15 47
83 14 37
84 11 31
85 16 22
86 4 18
87 28 18
88 26 52
89 26 35
90 31 67
91 15 19
92 22 22
93 18 24
94 26 27
95 25 24
96 22 27
97 25 21
98 19 21
99 20 26
100 18 18
101 35 35
EOF

File diff suppressed because it is too large Load diff

View file

@ -1,35 +0,0 @@
NAME : eil101
COMMENT : 101-city problem (Christofides/Eilon)
TYPE : TSP
DIMENSION : 101
EDGE_WEIGHT_TYPE : EUC_2D
NAME: ali535
TYPE: TSP
COMMENT: 535 Airports around the globe (Padberg/Rinaldi)
DIMENSION: 535
EDGE_WEIGHT_TYPE: GEO
DISPLAY_DATA_TYPE: COORD_DISPLAY
NAME : pr2392
COMMENT : 2392-city problem (Padberg/Rinaldi)
TYPE : TSP
DIMENSION : 2392
EDGE_WEIGHT_TYPE : EUC_2D
NAME : rl5915
COMMENT : 5915-city TSP (Reinelt)
TYPE : TSP
DIMENSION : 5915
EDGE_WEIGHT_TYPE : EUC_2D
NAME : usa13509
COMMENT : Cities with population at least 500 in the continental US.
COMMENT : Contributed by David Applegate and Andre Rohe, based on the
COMMENT : data set "US.lat-long" from the ftp site ftp.cs.toronto.edu.
COMMENT : The file US.lat-long.Z can be found in the directory /doc/geography.
TYPE : TSP
DIMENSION : 13509
EDGE_WEIGHT_TYPE : EUC_2D

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,9 +1,9 @@
/*
/*
* <graph.cpp>
* Copyright (C) DOLPHIN Project-Team, INRIA Futurs, 2006-2007
* (C) OPAC Team, LIFL, 2002-2007
*
* Sébastien Cahon, Thomas Legrand
* Sébastien Cahon, Jean-Charles Boisson
*
* This software is governed by the CeCILL license under French law and
* abiding by the rules of distribution of free software. You can use,
@ -40,65 +40,170 @@
#include "graph.h"
namespace Graph {
namespace Graph
{
static std :: vector <std :: pair <double, double> > vectCoord ; // Coordinates
static std :: vector <std :: vector <unsigned> > dist ; // Distances Mat.
unsigned size () {
static std :: vector <std :: vector <unsigned int> > dist ; // Distances Mat.
unsigned size ()
{
return dist.size () ;
}
void computeDistances () {
void computeDistances ()
{
// Dim.
unsigned numCities = vectCoord.size () ;
unsigned int numCities = vectCoord.size () ;
dist.resize (numCities) ;
for (unsigned i = 0 ; i < dist.size () ; i ++)
dist [i].resize (numCities) ;
for (unsigned int i = 0 ; i < dist.size () ; i ++)
{
dist [i].resize (numCities) ;
}
// Computations.
for (unsigned i = 0 ; i < dist.size () ; i ++)
for (unsigned j = i + 1 ; j < dist.size () ; j ++) {
double distX = vectCoord [i].first - vectCoord [j].first ;
double distY = vectCoord [i].second - vectCoord [j].second ;
dist [i] [j] = dist [j] [i] = (unsigned) (sqrt ((float) (distX * distX + distY * distY)) + 0.5) ;
for (unsigned int i = 0 ; i < dist.size () ; i ++)
{
for (unsigned int j = i + 1 ; j < dist.size () ; j ++)
{
double distX = (double)(vectCoord [i].first - vectCoord [j].first) ;
double distY = (double)(vectCoord [i].second - vectCoord [j].second) ;
dist [i] [j] = dist [j] [i] = (unsigned) (sqrt ((float) (distX * distX + distY * distY)) + 0.5) ;
}
}
}
void load (const char * __fileName) {
std :: ifstream f (__fileName) ;
std :: cout << ">> Loading [" << __fileName << "]" << std :: endl ;
if (f) {
unsigned num_vert ;
f >> num_vert ;
vectCoord.resize (num_vert) ;
void load (const char * __fileName)
{
unsigned int i, dimension;
for (unsigned i = 0 ; i < num_vert ; i ++)
f >> vectCoord [i].first >> vectCoord [i].second ;
f.close () ;
computeDistances () ;
}
else {
std :: cout << __fileName << " doesn't exist !!!" << std :: endl ;
// Bye !!!
exit (1) ;
}
std::string string_read, buffer;
std :: ifstream file (__fileName) ;
std :: cout << ">> Loading [" << __fileName << "]" << std :: endl ;
if (file)
{
// Read NAME:
file >> string_read;
if (string_read.compare("NAME:")!=0)
{
std::cout << "ERROR: \'NAME:\' espected, \'" << string_read << "\' found" << std::endl;
exit(1);
}
// Read instance name
file >> string_read;
std::cout << "\t Instance Name = " << string_read << std::endl;
// Read TYPE:
file >> string_read;
if (string_read.compare("TYPE:")!=0)
{
std::cout << "ERROR: \'TYPE:\' espected, \'" << string_read << "\' found" << std::endl;
exit(1);
}
// Read instance type;
file >> string_read;
std::cout << "\t Instance type = " << string_read << std::endl;
if (string_read.compare("TSP")!=0)
{
std::cout << "ERROR: only TSP type instance can be loaded" << std::endl;
exit(1);
}
// Read COMMENT:
file >> string_read;
if (string_read.compare("COMMENT:")!=0)
{
std::cout << "ERROR: \'COMMENT:\' espected, \'" << string_read << "\' found" << std::endl;
exit(1);
}
// Read comments
std::cout << "\t Instance comments = ";
file >> string_read;
buffer = string_read+"_first";
while((string_read.compare("DIMENSION:")!=0) && (string_read.compare(buffer)!=0))
{
if(string_read.compare("COMMENT:")!=0)
{
std::cout << string_read << " ";
}
else
{
std::cout << std::endl << "\t ";
}
buffer = string_read;
file >> string_read;
}
std::cout << std::endl;
// Read dimension;
file >> dimension ;
std::cout << "\t Instance dimension = " << dimension << std::endl;
vectCoord.resize (dimension) ;
// Read EDGE_WEIGHT_TYPE
file >> string_read;
if (string_read.compare("EDGE_WEIGHT_TYPE:")!=0)
{
std::cout << "ERROR: \'EDGE_WEIGHT_TYPE:\' espected, \'" << string_read << "\' found" << std::endl;
exit(1);
}
// Read edge weight type
file >> string_read;
std::cout << "\t Instance edge weight type = " << string_read << std::endl;
if (string_read.compare("EUC_2D")!=0)
{
std::cout << "ERROR: only EUC_2D edge weight type instance can be loaded" << std::endl;
exit(1);
}
// Read NODE_COORD_SECTION
file >> string_read;
if (string_read.compare("NODE_COORD_SECTION")!=0)
{
std::cout << "ERROR: \'NODE_COORD_SECTION\' espected, \'" << string_read << "\' found" << std::endl;
exit(1);
}
// Read coordonates.
for(i=0;i<dimension;i++)
{
// Read index
file >> string_read;
//Read Coordinate
file >> vectCoord [i].first >> vectCoord [i].second ;
}
// Read EOF
file >> string_read;
if(string_read.compare("EOF")!=0)
{
std::cout << "ERROR: \'EOF\' espected, \'" << string_read << "\' found" << std::endl;
exit(1);
}
std::cout << std::endl;
file.close () ;
computeDistances () ;
}
else
{
std :: cout << __fileName << " does not exist !!!" << std :: endl ;
// Bye !!!
exit (1) ;
}
}
float distance (unsigned __from, unsigned __to) {
return dist [__from] [__to] ;
float distance (unsigned int __from, unsigned int __to)
{
return (float)(dist [__from] [__to]) ;
}
}