Este diretorio contem uma impelementacao da heuristica Farthest Insertion 
para encontrar um tour no problema do tsp simetrico euclideano

os arquivos sao

=> fi/TourEval.hs

  implementacao da heuristica

=> fi/TourEVal.error.hs

  implementacao com erro e com 'trace' para debug

=> tour.eval/toureval.hs

  implementacao do programa principal

=> tour.eval/tourlen.hs

 programa para avaliar peso do tour completo

=> point.io/Point.hs

 modulo que define estrutura Point e I/O associado


=> test.data

  arquivos de dados para teste
  os arquivos '*pl' sao scripts em Perl
  os arquivos *.opt.tsp.gz' contem o tour otimo para o respctivo problema

  Os seguintes arquivos originais do TSPLIB tem as seguintes anomalias
           a280 -> repete o ponto (80,25)
           bays29, bayg29: estao em formato diferente (o formato esta' corrigido
no presente diretorio)


=> Makefile

 use

  -> make brute.fi

   constroi programa 'brute.fi'
   teste com linha
   
   gzip -dc test.data/a280.tsp.gz | test.data/frtsplib.pl | ./brute.fi 

 -> make prof.fi

  gera programa 'prof.fi'

  o mesmo programa, mas com geracao de profile
  use com a linha

gzip -dc test.data/a280.tsp.gz | test.data/frtsplib.pl | ./prof.fi +RTS -p
 

-> make error.fi

  gera program com erro e cheio de msgs de trace
  use com

gzip -dc test.data/a280.tsp.gz | test.data/frtsplib.pl | ./error.fi


A linha de output produzida pelo programa:

   Fail: fi/TourEval.error.hs:117: Assertion failed


indica erro na linha 117 do respectivo fonte


