クラス HybsScheduleChromosome

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

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

      すべてのメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      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.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にしない)
        戻り値:
        納期遅れの累計
        変更履歴:
        6.8.2.3 (2017/11/10) Doubleインスタンス作成方法の変更。
      • 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