私はChoco Solverを使用していてint varsの配列が与えられているので、配列内の少なくとも1つのvarが静的値... IntConstraintFactory#count
に似ていますが、次のdocとChoco Solverを使用して、Var配列内の少なくとも1つのVarがXと等しい
何か:
/**
* Let N be the number of variables of the VARIABLES collection assigned to value VALUE;
* Enforce condition N >= LIMIT to hold.
* <p>
*
* @param VALUE an int
* @param VARS a vector of variables
* @param LIMIT a variable
*/
public static Constraint at_least(int VALUE, IntVar[] VARS, IntVar LIMIT) {
return new Constraint("At least", /* help here ? */);
}
はそれが私が効率的にそれを実装することができますどのように存在している場合や、誰かが知っていますか?
ほとんどの最適化プリミティブ(SAT、MIP、CP)のために働く一般的なアプローチの1つに、インジケータ制約が導入されています。次に、利用可能なカーディナリティアプローチの1つを追加します(または、あなたのケースでは単に '' OR''')。 – sascha
CPコミュニティのこの制約の一般的な名前は、GCC(グローバルカーディナリティ制約)です。これはおそらくあなたが答えを見つけるのに役立ちます(私は特にchocoに慣れていません) – tobyodavies