我想在Optaplanner练习中添加投资组合优化中的下限约束

时间:2016-08-22 06:08:22

标签: optimization optaplanner portfolio

我想在Optaplanner中添加投资组合优化中的下限约束 锻炼。

在Optaplanner的投资组合优化中,我们可以通过控制行业约束来控制比率限制,并且只能控制作为数量最大值给出的上限值。

我已尝试'将下限添加为数量最小值,并按数量最小值更改Hardscore,与数量最大值相同。但是,我没有应用它。

无论如何,有没有更好的方法在Optaplanner的投资组合优化中添加下限约束?

Plz帮助我!

1 个答案:

答案 0 :(得分:0)

如果是例如每个地区,只需在quantityMillisMinimum上添加Region字段:

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)
}

和添加硬约束的分数规则:

// 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

您是否正在使用投资组合优化来解决任何问题? :)