問題タブ [choco]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
147 参照

constraint-programming - 制約で IntVar[] 配列のインデックスとして IntVar を使用する

Choco Solver を使用して、制約内の別の IntVar 配列のインデックスとして IntVar の値を使用したいと考えています。

i 番目のタスクに続く次のタスクを含む IntVar があり、タスクに割り当てられた人を含む別の IntVar があります。私の制約は、タスク割り当ての連続性を確保することです。

これは私がすでに試したことですが、失敗しました:

0 投票する
1 に答える
118 参照

java - choco ソルバー モデルを再利用して、ソリューションをさらに制約する

choco ソルバー ライブラリを使用して一連のパズルを生成しています。ソルバーを実行し、解がいくつあるかを確認し、複数ある場合は制約を追加する必要があります。これを繰り返すと、独自の解決策を持つ一連の制約 (手がかり) が得られます。

ただし、 model.getSolver(findAllSolutions()) を実行すると、追加のチェックはゼロのソリューションを返します。

どうにかしてモデル ソルバーをリセットする必要があると思いますが、これを達成する方法が見つかりません。必要に応じて、新しいモデルを生成したり、既存の制約を再作成したりしたくありません。

元のコードには 110 の IntVar と膨大な数の制約がありますが、私ははるかに小さな例を作成しました。

注: 実際のアプリケーションでは、高速化のために model.getSolver().findAllSolutions(new SolutionCounter(model,2)) を使用していますが、ここではその手順を省略しています。