public class HybsGeneticAlgorithm
extends java.lang.Object
apache.commons.mathを利用した遺伝的アルゴリズム実行クラスです。 0/1ではなくリスト形式の染色体をある程度手軽に利用できるようにしています。 利用する場合は上記パッケージをjava\jre\lib\ext等に配置してください。 交叉率等はsetterで与えられるようにしています。 スケジューリング等を考慮して、交叉方法はOrderedCrossover(順序交叉)としています。 選択方式はトーナメントです。突然変異は遺伝子ランダム入れ替えです。 染色体として与えるものはhybsGAObjectインタフェイスを継承したクラスです。 AbstractListChromosomeを継承したAbstracthybsChromosomeを利用して染色体を作成します。 mainメソッドではサンプルとして、巡回セールスマン問題を行います。
コンストラクタと説明 |
---|
HybsGeneticAlgorithm() |
修飾子とタイプ | メソッドと説明 |
---|---|
AbstractHybsGAChromosome |
execute()
計算の実行。
|
static void |
main(java.lang.String[] args)
ここからテスト用mainメソッド。
|
HybsGeneticAlgorithm |
setChromosomeClazz(java.lang.String cc)
利用する染色体クラスを指定します。
|
HybsGeneticAlgorithm |
setCrossoverRate(double cr)
交叉率のセット。
|
HybsGeneticAlgorithm |
setElitismRate(double er)
エリート主義の割合。
|
HybsGeneticAlgorithm |
setGAList(HybsGAObject[] gal)
染色体配列のセット。
|
HybsGeneticAlgorithm |
setMutationRate(double mr)
突然変異率のセット。
|
HybsGeneticAlgorithm |
setOptionData(java.lang.Object obj)
染色体クラスにオプションをセットします。
|
HybsGeneticAlgorithm |
setPopulationSize(int ps)
集団サイズ。
|
HybsGeneticAlgorithm |
setTournamentArity(int ta)
トーナメントサイズ。
|
public AbstractHybsGAChromosome execute()
public HybsGeneticAlgorithm setGAList(HybsGAObject[] gal)
gal
- 染色体とする配列public HybsGeneticAlgorithm setCrossoverRate(double cr)
cr
- 交叉率public HybsGeneticAlgorithm setMutationRate(double mr)
mr
- 突然変異率public HybsGeneticAlgorithm setElitismRate(double er)
er
- エリート主義の率public HybsGeneticAlgorithm setTournamentArity(int ta)
ta
- トーナメントサイズpublic HybsGeneticAlgorithm setPopulationSize(int ps)
ps
- 集団サイズpublic HybsGeneticAlgorithm setChromosomeClazz(java.lang.String cc)
cc
- 染色体のクラス名public HybsGeneticAlgorithm setOptionData(java.lang.Object obj)
obj
- オプションデータpublic static void main(java.lang.String[] args)
args
- ****************************************Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.