Menu Close
Settings Close

Language and Page Formatting Options

8.7. 乱数ジェネレーターの設定

多くのヒューリスティックおよびメタヒューリスティックは、移動の選択、スコアの結びつきの解決、確率ベースの移動の受け入れなどを疑似乱数ジェネレーターに依存しています。解決中に、同じランダムインスタンスが再利用され、再現性、パフォーマンス、およびランダム値の均一な分布が向上します。

ランダムシードは、疑似乱数ジェネレータを初期化するために使用される番号です。

手順

  1. オプション:ランダムインスタンスのランダムシードを変更するには、 randomSeedを指定します。

    <solver xmlns="https://www.optaplanner.org/xsd/solver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.optaplanner.org/xsd/solver https://www.optaplanner.org/xsd/solver/solver.xsd">
      <randomSeed>0</randomSeed>
      ...
    </solver>
  2. オプション:疑似乱数ジェネレーターの実装を変更するには、以下のソルバー構成ファイルにリストされているrandomTypeプロパティの値を指定します。ここで、<RANDOM_NUMBER_GENERATOR>は疑似乱数ジェネレーターです。

    <solver xmlns="https://www.optaplanner.org/xsd/solver" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.optaplanner.org/xsd/solver https://www.optaplanner.org/xsd/solver/solver.xsd">
      <randomType><RANDOM_NUMBER_GENERATOR></randomType>
      ...
    </solver>

    次の疑似乱数ジェネレータがサポートされています。

    • JDK (デフォルト): 標準の乱数ジェネレーターの実装(java.util.Random)
    • MERSENNE_TWISTER:コモンズ数学によって乱数ジェネレータの実装
    • WELL512A, WELL1024A, WELL19937A, WELL19937C, WELL44497AWELL44497B: Commons Mathによる乱数ジェネレータの実装

ほとんどのユースケースでは、 randomTypeプロパティの値は、複数のデータセットでの最良のソリューションの平均品質に大きな影響を与えません。