Main Page
Namespaces
Classes
Files
File List
File Members
src
GLKHmain.c
Go to the documentation of this file.
1
#include "
LKH.h
"
2
#include <unistd.h>
3
#include <sys/time.h>
4
#include <sys/resource.h>
5
6
GainType
SolveGTSP
(
int
*GTour);
7
GainType
PostOptimize
(
int
*GTour,
GainType
Cost);
8
static
double
GetTimeUsage
(
int
who);
9
10
/*
11
* This file contains the main function of the GLKH program.
12
*/
13
14
int
main
(
int
argc,
char
*argv[])
15
{
16
int
*GTour;
17
GainType
Cost;
18
19
/* Read the specification of the problem */
20
if
(argc >= 2)
21
ParameterFileName
= argv[1];
22
ReadParameters
();
23
ReadProblem
();
24
25
assert(GTour = (
int
*) malloc((
GTSPSets
+ 1) *
sizeof
(
int
)));
26
Cost =
SolveGTSP
(GTour);
27
Cost =
PostOptimize
(GTour, Cost);
28
if
(
OutputTourFileName
) {
29
TraceLevel
= 1;
30
Dimension
=
ProblemType
!=
ATSP
?
GTSPSets
: 2 *
GTSPSets
;
31
WriteTour
(
OutputTourFileName
, GTour, Cost);
32
}
33
if
(
TourFileName
&& (
Optimum
==
MINUS_INFINITY
|| Cost <
Optimum
)) {
34
TraceLevel
= 1;
35
Dimension
=
ProblemType
!=
ATSP
?
GTSPSets
: 2 *
GTSPSets
;
36
WriteTour
(
TourFileName
, GTour, Cost);
37
}
38
printff
(
"Value = "
GainFormat
, Cost);
39
if
(
Optimum
!=
MINUS_INFINITY
&&
Optimum
!= 0)
40
printff
(
", Error = %0.2f%%"
, 100.0 * (Cost -
Optimum
) /
Optimum
);
41
printff
(
", Time = %0.1f sec.\n\n"
,
42
GetTimeUsage
(RUSAGE_SELF) +
GetTimeUsage
(RUSAGE_CHILDREN));
43
return
0;
44
}
45
46
static
double
GetTimeUsage
(
int
who)
47
{
48
struct
rusage ru;
49
getrusage(who, &ru);
50
return
ru.ru_utime.tv_sec + ru.ru_utime.tv_usec / 1000000.0;
51
}
Dimension
int Dimension
Definition:
LKH.h:190
ReadProblem
void ReadProblem(void)
Definition:
ReadProblem.c:230
GTSPSets
int GTSPSets
Definition:
LKH.h:209
printff
void printff(char *fmt,...)
Definition:
printff.c:10
PostOptimize
GainType PostOptimize(int *GTour, GainType Cost)
Definition:
PostOptimize.c:29
MINUS_INFINITY
#define MINUS_INFINITY
Definition:
GainType.h:21
Optimum
GainType Optimum
Definition:
LKH.h:241
OutputTourFileName
char * OutputTourFileName
Definition:
LKH.h:284
ATSP
Definition:
LKH.h:41
GetTimeUsage
static double GetTimeUsage(int who)
Definition:
GLKHmain.c:46
main
int main(int argc, char *argv[])
Definition:
GLKHmain.c:14
ReadParameters
void ReadParameters(void)
Definition:
ReadParameters.c:354
TraceLevel
int TraceLevel
Definition:
LKH.h:274
LKH.h
TourFileName
char * TourFileName
Definition:
LKH.h:284
SolveGTSP
GainType SolveGTSP(int *GTour)
Definition:
SolveGTSP.c:28
ParameterFileName
char * ParameterFileName
Definition:
LKH.h:284
ProblemType
int ProblemType
Definition:
LKH.h:290
WriteTour
void WriteTour(char *FileName, int *Tour, GainType Cost)
Definition:
WriteTour.c:16
GainFormat
#define GainFormat
Definition:
GainType.h:22
GainType
long long GainType
Definition:
GainType.h:13
glkh_solver
Author(s): Francisco Suarez-Ruiz
autogenerated on Mon Jun 10 2019 13:50:26