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