hr.fer.zemris.tsp
Class TSPUtil

java.lang.Object
  extended by hr.fer.zemris.tsp.TSPUtil

public class TSPUtil
extends java.lang.Object

Pomoćni razred koji sadrži metode vezane uz TSP.

Author:
marcupic

Field Summary
static java.util.Comparator<TSPSolution> solComparator
          Komparator dvaju rješenja.
 
Constructor Summary
TSPUtil()
           
 
Method Summary
static void evaluate(TSPSolution[] population, City[] cities)
          Pomoćna metoda koja računa dobrotu svih tura u predanom polju.
static void evaluate(TSPSolution sol, City[] cities)
          Metoda za predano rješenje računa njegovu duljinu temeljem predanog polja gradova i indeksa koji se nalaze u samom rješenju.
static void evaluate(TSPSolution sol, double[][] distanceMatrix)
          Metoda za predano rješenje računa njegovu duljinu temeljem predane matrice udaljenosti.
static java.util.List<City> loadCities(java.lang.String fileName)
          Metoda učitava listu gradova iz datoteke.
static void partialSort(TSPSolution[] population, int number)
          Metoda koja služi parcijalnom sortiranju predanog polja rješenja TSP-a.
static void randomInitializeSolution(TSPSolution sol, java.util.Random rand)
          Pomoćna metoda koja stvara nasumični poredak gradova.
static City[] reorderCities(City[] cities, int[] indexes)
          Metoda vraća novo polje gradova ne temelju izvornog polja gradova i predanog redosljeda određenog indeksima.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

solComparator

public static java.util.Comparator<TSPSolution> solComparator
Komparator dvaju rješenja. Rješenje je manje ako je duljina ture manja.

Constructor Detail

TSPUtil

public TSPUtil()
Method Detail

loadCities

public static java.util.List<City> loadCities(java.lang.String fileName)
                                       throws java.io.IOException
Metoda učitava listu gradova iz datoteke. Datoteka je tekstualna. U svakom retku nalazi se x i y koordinata grada razdvojene znakom tab.

Parameters:
fileName - naziv datoteke
Returns:
listu gradova ili null ako dođe do pogreške
Throws:
java.io.IOException - ako se dogodi pogreška u radu s datotekom

partialSort

public static void partialSort(TSPSolution[] population,
                               int number)
Metoda koja služi parcijalnom sortiranju predanog polja rješenja TSP-a. Zadatak metode je na početak polja staviti number najboljih rješenja (to su ona s najmanjom duljinom ture); poredak preostalog dijela polja nije bitan.

Parameters:
population - rješenja koja treba parcijalno sortirati
number - broj najboljih rješenja koja treba staviti na početak polja

evaluate

public static void evaluate(TSPSolution sol,
                            double[][] distanceMatrix)
Metoda za predano rješenje računa njegovu duljinu temeljem predane matrice udaljenosti. U toj matrici, na mjestu [i,j] nalazi se udaljenost od grada i do grada j.

Parameters:
sol - rješenje za koje treba izračunati duljinu ture
distanceMatrix - matrica udaljenosti gradova

evaluate

public static void evaluate(TSPSolution sol,
                            City[] cities)
Metoda za predano rješenje računa njegovu duljinu temeljem predanog polja gradova i indeksa koji se nalaze u samom rješenju.

Parameters:
sol - rješenje
cities - polje gradova

evaluate

public static void evaluate(TSPSolution[] population,
                            City[] cities)
Pomoćna metoda koja računa dobrotu svih tura u predanom polju.

Parameters:
population - polje rješenja
cities - polje gradova

reorderCities

public static City[] reorderCities(City[] cities,
                                   int[] indexes)
Metoda vraća novo polje gradova ne temelju izvornog polja gradova i predanog redosljeda određenog indeksima.

Parameters:
cities - originalno polje gradova
indexes - željeni poredak gradova
Returns:
novo polje složeno prema indeksima

randomInitializeSolution

public static void randomInitializeSolution(TSPSolution sol,
                                            java.util.Random rand)
Pomoćna metoda koja stvara nasumični poredak gradova.

Parameters:
sol - rješenje
rand - generator slučajnih brojeva