2016-08-22 12 views
0

Optaplanner エクササイズで、ポートフォリオ最適化で下限制約を追加したいと考えています。Optaplannerエクササイズでポートフォリオ最適化に下限制約を追加したい

Optaplannerのポートフォリオ最適化では、セクターの制約を制御して比率制限を制御し、上限値として指定できる上限値のみを制御できます。

私は、「下限を数量最小として追加し、ハード量を数量と同じように最小に変更しました。しかし、私はそれを適用できませんでした。

とにかく、Optaplannerのポートフォリオ最適化に下限の制約を追加する方法はありますか?

Plz私を助けてください!それは地域ごとに、たとえばなら

+0

私の貧しい英語のスキルには申し訳ありません。 – hjsg1010

答えて

0

、ちょうどRegionquantityMillisMinimumフィールドを追加:あなたは深刻な何のためにポートフォリオの最適化を使用してい

// New rule 
rule "Region quantity minimum" 
    when 
     $region : Region($quantityMillisMinimum : quantityMillisMinimum) 
     accumulate(
      AssetClassAllocation(region == $region, quantityMillis != null, $quantityMillis : quantityMillis); 
      $quantityMillisTotal : sum($quantityMillis); 
      $quantityMillisTotal < $quantityMillisMinimum 
     ) 
    then 
     scoreHolder.addHardConstraintMatch(kcontext, 
       $quantityMillisTotal - $quantityMillisMinimum); 
end 

public class Region extends AbstractPersistable { 

    private String name; 
    private Long quantityMillisMaximum; // In milli's (so multiplied by 1000) 

    // New field 
    private Long quantityMillisMinimum; // In milli's (so multiplied by 1000) 
} 

とスコアルールがハード制約を追加します? :)

+0

答えのためのThx、Geoffrey。あなたのQ&Aはgoogle +とyoutubeビデオで見ました。 ところで、私はセクタに下限制約を追加しようとしており、以下のコードで編集しようとしています。 //セクタ数量最小 Map <セクタ、ロング>セクタ数:整数。 long available = sector.getQuantityMillisMinimum() - sectorQuantityTotalMap.get(sector); (セクター・セクター:solution.getSectorList()) if(available> 0){ hardScore + = available; } } しかし、それは動作しません:( 結果の比率が制限を下回って – hjsg1010

+0

コメントのコードを認識しにくいのは残念です – hjsg1010

+0

ああ!私は編集.drlファイルで解決しました! – hjsg1010

関連する問題