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];
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;
31  WriteTour(OutputTourFileName, GTour, Cost);
32  }
33  if (TourFileName && (Optimum == MINUS_INFINITY || Cost < Optimum)) {
34  TraceLevel = 1;
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 }
int Dimension
Definition: LKH.h:190
void ReadProblem(void)
Definition: ReadProblem.c:230
int GTSPSets
Definition: LKH.h:209
void printff(char *fmt,...)
Definition: printff.c:10
GainType PostOptimize(int *GTour, GainType Cost)
Definition: PostOptimize.c:29
#define MINUS_INFINITY
Definition: GainType.h:21
GainType Optimum
Definition: LKH.h:241
char * OutputTourFileName
Definition: LKH.h:284
Definition: LKH.h:41
static double GetTimeUsage(int who)
Definition: GLKHmain.c:46
int main(int argc, char *argv[])
Definition: GLKHmain.c:14
void ReadParameters(void)
int TraceLevel
Definition: LKH.h:274
char * TourFileName
Definition: LKH.h:284
GainType SolveGTSP(int *GTour)
Definition: SolveGTSP.c:28
char * ParameterFileName
Definition: LKH.h:284
int ProblemType
Definition: LKH.h:290
void WriteTour(char *FileName, int *Tour, GainType Cost)
Definition: WriteTour.c:16
#define GainFormat
Definition: GainType.h:22
long long GainType
Definition: GainType.h:13


glkh_solver
Author(s): Francisco Suarez-Ruiz
autogenerated on Mon Jun 10 2019 13:50:26