pga
Class GAPopulation

java.lang.Object
  |
  +--pga.GAPopulation

public class GAPopulation
extends java.lang.Object

Trida pro uchovani populace reseni v genetickem algoritmu.

Prvky populace musi mit jako predka tridu GAGenome.

Uchovava populaci, umoznuje operace s jejimi prvky.

See Also:
GAGenome

Field Summary
protected  int badIndex
          Index vybraneho reseni, ktere bude nahrazeno
protected  int generation
          Generace, ve ktere se populace nachazi
protected  GAGenome[] genomes
          Pole reseni - usporadano od nejlepsiho k nejhorsimu.
protected  int parentIndex
          Index posledniho vybraneho rodice
protected  int replaced
          Pocet genomu nahrazenych v jedne generaci
protected  GAGenome sample
          Jedno reseni, ze ktereho se klonuji nove prvky.
protected  int size
          velikost populace
protected  GAStatistics stats
          Statistiky o vyvoji populace
 
Constructor Summary
GAPopulation(GAPopulation pop)
          Vyvori novou populaci o zadanem poctu reseni dle prikladu.
GAPopulation(int size, GAGenome sample)
          Vyvori novou populaci o zadanem poctu reseni dle prikladu.
 
Method Summary
protected  void exchange(int a, int b)
          Vymeni dve reseni dle indexu.
 int getBad()
          Vrati reseni, ktere lze nahradit.
 GAGenome getBestGenome()
          Vrati nejlepsi reseni v populaci.
 int getBestGenomeFitness()
          Vrati ohodnoceni nejlepsiho reseni v populaci.
 GAGenome getBSF()
          Vrati nejlepsi reseni dosazene v prubehu vyvoje populace
 int getBSFFitness()
          Vrati ohodnoceni nejlepsiho reseni dosazeneho v prubehu vyvoje populace
 GAGenome getGenome(int index)
          Vrati genom na danem indexu.
 int getGenomeIndex(GAGenome gen)
          Vrati prvni index daneho reseni.
 GAGenome getParent(int parentRate)
          Vrati rodice dle zadane parentRate.
 int getSize()
          Vrati velikost populace
 int lastParentIndex()
          Vrati index posledniho vybraneho rodice.
 void makeRandom()
          Vytvori novou nahodnou populaci.
 void newGeneration()
          Signalizuje populaci, ze zacina nova generace
 void replace(GAGenome gen)
          Nahradi nevhodne reseni zadanym resenim.
 void resize(int newSize)
          Zmeni velikost populace.
protected  void sort()
          Seradi populaci dle kvality.
 java.lang.String toStringGenAt(int index)
          Vrati textovou reprezentaci reseni s danym indexem.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

size

protected int size
velikost populace

genomes

protected GAGenome[] genomes
Pole reseni - usporadano od nejlepsiho k nejhorsimu.
See Also:
GAGenome.getFitness()

sample

protected GAGenome sample
Jedno reseni, ze ktereho se klonuji nove prvky.

stats

protected GAStatistics stats
Statistiky o vyvoji populace

badIndex

protected int badIndex
Index vybraneho reseni, ktere bude nahrazeno

parentIndex

protected int parentIndex
Index posledniho vybraneho rodice

generation

protected int generation
Generace, ve ktere se populace nachazi

replaced

protected int replaced
Pocet genomu nahrazenych v jedne generaci
Constructor Detail

GAPopulation

public GAPopulation(int size,
                    GAGenome sample)
Vyvori novou populaci o zadanem poctu reseni dle prikladu.
Parameters:
aSize - velikost populace
sample - objekt reseni, dle ktereho se vytvori populace

GAPopulation

public GAPopulation(GAPopulation pop)
Vyvori novou populaci o zadanem poctu reseni dle prikladu.
Parameters:
pop - vzor populace, podle ktere se vytvori nova (ale ne stejna)
Method Detail

makeRandom

public void makeRandom()
Vytvori novou nahodnou populaci.

exchange

protected void exchange(int a,
                        int b)
Vymeni dve reseni dle indexu.

sort

protected void sort()
Seradi populaci dle kvality.
See Also:
GAGenome.getFitness()

resize

public void resize(int newSize)
Zmeni velikost populace.

Nova reseni se inicializuji na nahodnou hodnotu, prebyvajici reseni se vyhodi.

Parameters:
newSize - nova velikost populace

getSize

public int getSize()
Vrati velikost populace

getGenome

public GAGenome getGenome(int index)
Vrati genom na danem indexu.

newGeneration

public void newGeneration()
Signalizuje populaci, ze zacina nova generace

getBestGenome

public GAGenome getBestGenome()
Vrati nejlepsi reseni v populaci.
See Also:
getBestGenomeFitness()

getBestGenomeFitness

public int getBestGenomeFitness()
Vrati ohodnoceni nejlepsiho reseni v populaci.
See Also:
GAGenome.getFitness()

getBSF

public GAGenome getBSF()
Vrati nejlepsi reseni dosazene v prubehu vyvoje populace

getBSFFitness

public int getBSFFitness()
Vrati ohodnoceni nejlepsiho reseni dosazeneho v prubehu vyvoje populace

toStringGenAt

public java.lang.String toStringGenAt(int index)
Vrati textovou reprezentaci reseni s danym indexem.
Parameters:
index - pozadovaneho reseni
See Also:
Object.toString()

getParent

public GAGenome getParent(int parentRate)
Vrati rodice dle zadane parentRate.

Parameters:
parentRate - procento horni casti populace, ze ktere se rodic vybere

lastParentIndex

public int lastParentIndex()
Vrati index posledniho vybraneho rodice.
See Also:
getParent(int aparentRate)

getBad

public int getBad()
Vrati reseni, ktere lze nahradit. Toto reseni se zapamatuje pro replace(Solution S).
See Also:
replace(GAGenome gen)

replace

public void replace(GAGenome gen)
Nahradi nevhodne reseni zadanym resenim. Vyhozene reseni je dano poslednim volanim getBad().
See Also:
getBad()

getGenomeIndex

public int getGenomeIndex(GAGenome gen)
Vrati prvni index daneho reseni.

Porovnava se objekt (ukazatel), ne slozky objektu!

Parameters:
gen - pozadovane reseni
Returns:
index reseni gen