7.5. カスタムプロパティーの設定
OptaPlanner プロジェクトでは、クラスをインスタンス化し、カスタムプロパティーに明示的に言及するドキュメントを持つソルバー設定要素にカスタムプロパティーを追加できます。
前提条件
- ソルバーがあること。
手順
カスタムプロパティーを追加します。
たとえば、
Easy ScoreCalculator
にキャッシュされる大きな計算があり、1 つのベンチマークでキャッシュサイズを増やす場合は、myCacheSize
プロパティーを追加します。<scoreDirectorFactory> <easyScoreCalculatorClass>...MyEasyScoreCalculator</easyScoreCalculatorClass> <easyScoreCalculatorCustomProperties> <property name="myCacheSize" value="1000"/><!-- Override value --> </easyScoreCalculatorCustomProperties> </scoreDirectorFactory>
カスタムプロパティーごとにパブリックセッターを追加します。これは、
Solver
のビルド時に呼び出されます。public class MyEasyScoreCalculator extends EasyScoreCalculator<MySolution, SimpleScore> { private int myCacheSize = 500; // Default value @SuppressWarnings("unused") public void setMyCacheSize(int myCacheSize) { this.myCacheSize = myCacheSize; } ... }
boolean
、int
、double
、BigDecimal
、String
、enums
など、ほとんどの値型がサポートされています。