クラス 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
すべての実装されたインタフェース:
Comparable<org.apache.commons.math3.genetics.Chromosome>, org.apache.commons.math3.genetics.Fitness

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

  • メソッドの詳細

    • fitness

      public double fitness()
      適合度計算。
      戻り値:
      適合度計算の結果
    • makeSchedule

      public double makeSchedule(List<HybsGAObject> representation, Map<String,Double> machineList, Map<String,List<String>> taskSchedule)
      HybsGAObjectImplを利用して前からスケジュールを積み上げていきます。
      パラメータ:
      representation - 染色体表現
      machineList - マシンに対する積み上げ工数のリスト。(書き込まれるのでfinalにしない)
      taskSchedule - マシンに対して、前からタスクをセットするリスト。(書き込まれるのでfinalにしない)
      戻り値:
      納期遅れの累計
      変更履歴:
      6.8.2.3 (2017/11/10) Doubleインスタンス作成方法の変更。
    • newFixedLengthChromosome

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

      protected void checkValidity(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