org.opengion.penguin.math.ga

## クラス HybsGeneticAlgorithm

- java.lang.Object
- - org.opengion.penguin.math.ga.HybsGeneticAlgorithm

-     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)` トーナメントサイズ。

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### HybsGeneticAlgorithm

          public HybsGeneticAlgorithm()

  - ### メソッドの詳細

    - #### 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(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` - ****************************************

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.