SampleTsp.java
/**
* @(#)SampleTsp.java
* Copyright (C) 2008-2011 delhezi.com
*
* This class is released under the:
* GNU Lesser General Public License (LGPL) version 3 or later.
* http://www.gnu.org/copyleft/lesser.html
*/
package com.delhezi.ga.initialize.data;
import com.delhezi.ga.Chromosome;
import com.delhezi.ga.ChromosomeProperties;
import com.delhezi.ga.genes.Point;
import java.util.LinkedList;
/**
*
* @author Wojciech.Wolszczak
*/
public class SampleTsp {
/**
* Populacja o zmiennej liczebności.
* @param populationSize Wielkość populacji
* @param maxPopulationSize Maksymalna wielkość populacji
* @param chromosomeProperties Właściwości chromosomu
* @return Lista chromosomów
*/
public static LinkedList<Chromosome> newChromosomes(int populationSize,
int maxPopulationSize,
ChromosomeProperties chromosomeProperties){
LinkedList<Chromosome> chromosomes = new LinkedList<Chromosome>();
return setChromosomes(chromosomes, populationSize, chromosomeProperties);
}
/**
* Populacja o stałej liczebności.
* @param populationSize Wielkość populacji
* @param chromosomeProperties Właściwości chromosomu
* @return Lista chromosomów
*/
public static LinkedList<Chromosome> newChromosomes(int populationSize,
ChromosomeProperties chromosomeProperties){
LinkedList<Chromosome> chromosomes = new LinkedList<Chromosome>();
return setChromosomes(chromosomes, populationSize, chromosomeProperties);
}
private static LinkedList<Chromosome> setChromosomes(LinkedList<Chromosome> chromosomes,
int populationSize, ChromosomeProperties chromosomeProperties){
Point[] chromosome_tmp;
int chromosomeSize = 60; //STAŁA ILOŚĆ MIAST, ALE MOŻNA ZMIENIĆ
chromosome_tmp = new Point[chromosomeSize];
for (int i = 0; i < chromosomeSize; i++)
chromosome_tmp[i] = new Point((int) (Math.random() * 200),
(int) (Math.random() * 200));
Point[] chromosome_i;
for (int i = 0; i < populationSize; i++) {
//Przemieszaj geny.
com.delhezi.ga.utility.ShuffleList.shuffle(chromosome_tmp);
chromosome_i = new Point[chromosomeSize];
System.arraycopy(chromosome_tmp, 0, chromosome_i, 0,chromosome_tmp.length);
chromosomes.add(new Chromosome(chromosome_i, chromosomeProperties));
}
return chromosomes;
}
}