2017-10-05 12 views
0

私はカスタムの建設ヒューリスティックフェーズを作成しようとしています。フェーズコンフィグレーションがAbstractPhaseConfigを拡張しているため、XStreamはそれをphaseConfigListに追加する必要がありません。クラスを独自のクラス変数に割り当てようとしています。 LocalSearchPhaseConfigは完全に機能します。phaseConfigListにカスタムフェーズが追加されていません

XML

<solver> 
    <customConstructionHeuristic></customConstructionHeuristic> 
    <localSearch></localSearch> 
</solver> 

Optaplanner

@XStreamAlias("localSearch") 
public class LocalSearchPhaseConfig extends PhaseConfig<LocalSearchPhaseConfig> { 
} 

答えて

0

から私のクラス

@XStreamAlias("customConstructionHeuristic") 
public class CustomConstructionHeuristicPhaseConfig extends PhaseConfig<CustomConstructionHeuristicPhaseConfig> { 
    @Override 
    public ConstructionHeuristicPhase buildPhase(int phaseIndex, HeuristicConfigPolicy solverConfigPolicy, BestSolutionRecaller 
      bestSolutionRecaller, Termination solverTermination) { 
     return null; 
} 

}

ローカル検索フェーズクラスあなたはビジネスが集中している場合:

代わりにカスタムフェイズを使用してください。 AbstractPhaseConfigかもしれないを拡張し、新しいバージョンにアップグレードする際にトラブルにあなたを得ることはありません

<customPhase> 
    <customPhaseCommandClass>org.optaplanner.examples.machinereassignment.solver.solution.initializer.ToOriginalMachineSolutionInitializer</customPhaseCommandClass> 
    </customPhase> 
    <localSearch/> 

あなたは学術ならが集中:

をはい、それをハック。それは良い。後で戻ってそれを貢献考えてみましょう:)あなたCustomConstructionHeuristicPhaseConfigクラスはXStreamのによって認識されるので、これを呼び出します。正しい方向に私を指しているため

XStreamXmlSolverFactory.addXStreamAnnotations(CustomConstructionHeuristicPhaseConfig.class); 
+0

おかげで、私は間違いなく見ていきます。 特に、私がしたいことは、現在の建設ヒューリスティックにカスタム値セレクタを挿入することです。それを行う簡単な方法はありますか? – designatedDragoon

関連する問題