org.opengion.penguin.math.ga

## クラス HybsScheduleChromosome

- java.lang.Object
- - org.apache.commons.math3.genetics.Chromosome
  - - org.apache.commons.math3.genetics.AbstractListChromosome<HybsGAObject>
    - - org.opengion.penguin.math.ga.AbstractHybsGAChromosome
      - - org.opengion.penguin.math.ga.HybsScheduleChromosome

- すべての実装されたインタフェース:
    java.lang.Comparable<org.apache.commons.math3.genetics.Chromosome>, org.apache.commons.math3.genetics.Fitness

      public class HybsScheduleChromosome
      extends AbstractHybsGAChromosome

  AbstractHybsGAChromosomeのサンプル実装クラスです。 HybsGAObjectImplを利用しています。 属性値配列(文字列)にタスクの割当先（機械や人）候補 属性値（実数）にこのタスクにかかる時間 属性値配列（実数）[0]にこのタスクの納期（開始からの経過時間） を持たせているという想定です。 このクラスでは次のようにスケジュールを決めます。 １．候補のうち、一番タスクが積まれていないものに前から積む ２．同じであればリストの先頭の方に割り当てられる ３．納期オーバーの場合は評価関数の値が小さくなるようにする

- - ### フィールドのサマリー

    - ### クラスから継承されたフィールド org.opengion.penguin.math.ga.AbstractHybsGAChromosome

      `optionData`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `HybsScheduleChromosome()` コンストラクタ。
    `HybsScheduleChromosome(java.util.List<HybsGAObject> representation)` コンストラクタ。

  - ### メソッドのサマリー

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected void` | `checkValidity(java.util.List<HybsGAObject> repr)` 染色体表現のチェック。
    `double` | `fitness()` 適合度計算。
    `double` | `makeSchedule(java.util.List<HybsGAObject> representation, java.util.Map<java.lang.String,java.lang.Double> machineList, java.util.Map<java.lang.String,java.util.List<java.lang.String>> taskSchedule)` HybsGAObjectImplを利用して前からスケジュールを積み上げていきます。
    `AbstractHybsGAChromosome` | `newFixedLengthChromosome(java.util.List<HybsGAObject> repr)` 自身のクラスを新たに作成するメソッド。

    - ### クラスから継承されたメソッド org.opengion.penguin.math.ga.AbstractHybsGAChromosome

      `clone, clone, getThisRepresentation, setOptionData`

    - ### クラスから継承されたメソッド org.apache.commons.math3.genetics.AbstractListChromosome

      `getLength, getRepresentation, toString`

    - ### クラスから継承されたメソッド org.apache.commons.math3.genetics.Chromosome

      `compareTo, findSameChromosome, getFitness, isSame, searchForFitnessUpdate`

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

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

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

    - #### HybsScheduleChromosome

          public HybsScheduleChromosome()

      コンストラクタ。

    - #### HybsScheduleChromosome

          public HybsScheduleChromosome(java.util.List<HybsGAObject> representation)

      コンストラクタ。
      パラメータ:
        `representation` - 染色体表現

  - ### メソッドの詳細

    - #### fitness

          public double fitness()

      適合度計算。
      戻り値:
        適合度計算の結果

    - #### makeSchedule

          public double makeSchedule(java.util.List<HybsGAObject> representation,
                            java.util.Map<java.lang.String,java.lang.Double> machineList,
                            java.util.Map<java.lang.String,java.util.List<java.lang.String>> taskSchedule)

      HybsGAObjectImplを利用して前からスケジュールを積み上げていきます。
      パラメータ:
        `representation` - 染色体表現
        `machineList` - マシンに対する積み上げ工数のリスト。(書き込まれるのでfinalにしない）
        `taskSchedule` - マシンに対して、前からタスクをセットするリスト。(書き込まれるのでfinalにしない）
      戻り値:
        納期遅れの累計

    - #### newFixedLengthChromosome

          public AbstractHybsGAChromosome newFixedLengthChromosome(java.util.List<HybsGAObject> repr)

      自身のクラスを新たに作成するメソッド。 ここではオプションデータはクローンせずに参照で渡しています。 (計算では利用していません）
      定義:
        `newFixedLengthChromosome` クラス内 `AbstractHybsGAChromosome`
      パラメータ:
        `repr` - 染色体表現
      戻り値:
        作成された自分自身のクラス

    - #### checkValidity

          protected void checkValidity(java.util.List<HybsGAObject> repr)
                                throws org.apache.commons.math3.genetics.InvalidRepresentationException

      染色体表現のチェック。
      定義:
        `checkValidity` クラス内 `org.apache.commons.math3.genetics.AbstractListChromosome<HybsGAObject>`
      パラメータ:
        `repr` - HybsGAObjectのリスト
      例外:
        `org.apache.commons.math3.genetics.InvalidRepresentationException`

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