0

スカラー制約を投稿していますが、解決策が得られたときにその結果を出力できるようにしたいと考えています。だから、どうにかしてIntVarにキャッシュしたいのですが…</p>

古いChoco構文で古い答えを見つけましたが、最新のChocoで機能させることができません:

pb.post(eq(y, pb.scalar(new IntDomainVar(){x1,x2,...,xn}, new int[]{1,1...,1})));

yは単にint定数であり、IntVarではない可能性があるため、私が探しているものとはまったく異なる可能性があります …</p>

とにかく、それを行う方法を知っていますか?今のところ、解が得られたときに値からスカラーを再計算できますが、それらのスカラーの平均に基づいて最小化目標を追加することを計画しています…</p>

スカラーをいくつかの変数に分解することでこれを回避しようとしましたが、今では解決策がありません。

IntVar[][] scalarResults = new IntVar[x][y];
IntVar[] sumsOfScalars = new IntVar[x];
IntVar[] sumsOfScalars = model.intVarArray(x, 0, ub);

for (int i = 0; i < x; i++) {
    for (int j = 0; j < y; j++) {

        scalarResults[i][j] = model.intScaleView(mainValues[i][j], coeffs[j]);
        // Works great.

        model.sum(scalarResults[i], "=", sumsOfScalars[i]).post();
    }
}

私は何を間違っていますか?助けてくれてありがとう!

4

0 に答える 0