クラス HybsGeneticAlgorithm


  • public class HybsGeneticAlgorithm
    extends java.lang.Object
    apache.commons.mathを利用した遺伝的アルゴリズム実行クラスです。 0/1ではなくリスト形式の染色体をある程度手軽に利用できるようにしています。 利用する場合は上記パッケージをjava\jre\lib\ext等に配置してください。 交叉率等はsetterで与えられるようにしています。 スケジューリング等を考慮して、交叉方法はOrderedCrossover(順序交叉)としています。 選択方式はトーナメントです。突然変異は遺伝子ランダム入れ替えです。 染色体として与えるものはhybsGAObjectインタフェイスを継承したクラスです。 AbstractListChromosomeを継承したAbstracthybsChromosomeを利用して染色体を作成します。 mainメソッドではサンプルとして、巡回セールスマン問題を行います。
    • コンストラクタの詳細

      • HybsGeneticAlgorithm

        public HybsGeneticAlgorithm()
    • メソッドの詳細

      • 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​(java.lang.String cc)
        利用する染色体クラスを指定します。 初期値はorg.opengion.fukurou.math.HybsScheduleChromosome
        パラメータ:
        cc - 染色体のクラス名
        戻り値:
        クラス自身
      • setOptionData

        public HybsGeneticAlgorithm setOptionData​(java.lang.Object obj)
        染色体クラスにオプションをセットします。
        パラメータ:
        obj - オプションデータ
        戻り値:
        クラス自身
      • main

        public static void main​(java.lang.String[] args)
        ここからテスト用mainメソッド。
        パラメータ:
        args - ****************************************