|
@@ -38,7 +38,7 @@ unsigned tabuStopTime = 60;
|
38
|
38
|
// Domyslna liczba watkow tabu search
|
39
|
39
|
unsigned tabuThreadsNumber = 2;
|
40
|
40
|
|
41
|
|
-void parseTSPLIB_FULL_MATRIX(const char *filename)
|
|
41
|
+void parseTSPLIB_FULL_MATRIX(const char *filename, Graph **graph)
|
42
|
42
|
{
|
43
|
43
|
// Jan Potocki 2017
|
44
|
44
|
string fileInput;
|
|
@@ -61,13 +61,13 @@ void parseTSPLIB_FULL_MATRIX(const char *filename)
|
61
|
61
|
salesmanDataFile >> fileInput;
|
62
|
62
|
if(fileInput == "FULL_MATRIX")
|
63
|
63
|
{
|
64
|
|
- if(graph != NULL)
|
65
|
|
- delete graph;
|
|
64
|
+ if(*graph != NULL)
|
|
65
|
+ delete *graph;
|
66
|
66
|
|
67
|
67
|
if(useListGraph)
|
68
|
|
- graph = new ListGraph(vertex);
|
|
68
|
+ *graph = new ListGraph(vertex);
|
69
|
69
|
else
|
70
|
|
- graph = new ArrayGraph(vertex);
|
|
70
|
+ *graph = new ArrayGraph(vertex);
|
71
|
71
|
|
72
|
72
|
do
|
73
|
73
|
salesmanDataFile >> fileInput;
|
|
@@ -81,7 +81,7 @@ void parseTSPLIB_FULL_MATRIX(const char *filename)
|
81
|
81
|
int weight = stoi(fileInput);
|
82
|
82
|
|
83
|
83
|
if(i != j)
|
84
|
|
- graph->addEdge(i, j, weight);
|
|
84
|
+ (*graph)->addEdge(i, j, weight);
|
85
|
85
|
}
|
86
|
86
|
}
|
87
|
87
|
|
|
@@ -103,7 +103,7 @@ void parseTSPLIB_FULL_MATRIX(const char *filename)
|
103
|
103
|
}
|
104
|
104
|
}
|
105
|
105
|
|
106
|
|
-void parseTSPLIB_EUC_2D(const char *filename)
|
|
106
|
+void parseTSPLIB_EUC_2D(const char *filename, Graph **graph)
|
107
|
107
|
{
|
108
|
108
|
// Jan Potocki 2017
|
109
|
109
|
string fileInput;
|
|
@@ -128,12 +128,12 @@ void parseTSPLIB_EUC_2D(const char *filename)
|
128
|
128
|
if(fileInput == "EUC_2D")
|
129
|
129
|
{
|
130
|
130
|
if(*graph != NULL)
|
131
|
|
- delete graph;
|
|
131
|
+ delete *graph;
|
132
|
132
|
|
133
|
133
|
if(useListGraph)
|
134
|
|
- graph = new ListGraph(vertex);
|
|
134
|
+ *graph = new ListGraph(vertex);
|
135
|
135
|
else
|
136
|
|
- graph = new ArrayGraph(vertex);
|
|
136
|
+ *graph = new ArrayGraph(vertex);
|
137
|
137
|
|
138
|
138
|
do
|
139
|
139
|
salesmanDataFile >> fileInput;
|
|
@@ -162,7 +162,7 @@ void parseTSPLIB_EUC_2D(const char *filename)
|
162
|
162
|
float yDiff = yCoord.at(i) - yCoord.at(j);
|
163
|
163
|
int weight = nearbyint(sqrt(xDiff * xDiff + yDiff * yDiff));
|
164
|
164
|
|
165
|
|
- graph->addEdge(i, j, weight);
|
|
165
|
+ (*graph)->addEdge(i, j, weight);
|
166
|
166
|
}
|
167
|
167
|
}
|
168
|
168
|
}
|
|
@@ -219,12 +219,12 @@ int main(int argc, char *argv[])
|
219
|
219
|
else if(strcmp(argv[i], "-fmatrix") == 0)
|
220
|
220
|
{
|
221
|
221
|
i++;
|
222
|
|
- parseTSPLIB_FULL_MATRIX(argv[i], graph);
|
|
222
|
+ parseTSPLIB_FULL_MATRIX(argv[i], &graph);
|
223
|
223
|
}
|
224
|
224
|
else if(strcmp(argv[i], "-feuc2d") == 0)
|
225
|
225
|
{
|
226
|
226
|
i++;
|
227
|
|
- parseTSPLIB_EUC_2D(argv[i], graph);
|
|
227
|
+ parseTSPLIB_EUC_2D(argv[i], &graph);
|
228
|
228
|
}
|
229
|
229
|
else if(strcmp(argv[i], "-h") == 0)
|
230
|
230
|
{
|
|
@@ -597,7 +597,7 @@ int main(int argc, char *argv[])
|
597
|
597
|
cout << "Podaj nazwe pliku: ";
|
598
|
598
|
cin >> filename;
|
599
|
599
|
|
600
|
|
- parseTSPLIB_FULL_MATRIX(filename.c_str(), graph);
|
|
600
|
+ parseTSPLIB_FULL_MATRIX(filename.c_str(), &graph);
|
601
|
601
|
}
|
602
|
602
|
break;
|
603
|
603
|
case 9:
|
|
@@ -608,7 +608,7 @@ int main(int argc, char *argv[])
|
608
|
608
|
cout << "Podaj nazwe pliku: ";
|
609
|
609
|
cin >> filename;
|
610
|
610
|
|
611
|
|
- parseTSPLIB_EUC_2D(filename.c_str(), graph);
|
|
611
|
+ parseTSPLIB_EUC_2D(filename.c_str(), &graph);
|
612
|
612
|
}
|
613
|
613
|
break;
|
614
|
614
|
case 0:
|