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