問題タブ [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.
java - Choco (CSP) で製品を定義する方法
この投稿で説明するように、テニスのスケジューリング問題をモデル化しようとしています。問題を説明する方程式で答えを得られたのは幸運でした。これにより、Choco でそれを実装することができました。それは十分に機能しているようです。
だから私が説明しようとしているのは、前の投稿の回答の実装の製品についてです。
基本的に、次のように 2 つの 3 次元マトリックスと 1 つの 2 次元マトリックスを持つことになります。
このアプローチでは、スケジュール マトリックスをゲーム開始マトリックスにマップする制約は次のようになります。
これは、times
制約トリックを使用して と をマッピングx[p][c][t]
しx[p][c][t + 1]
ますg[p][c][t]
。
ただし、その定義では、各試合には 2 つのタイムスロットの固定期間があると見なされます。期間が可変になるように変更したい。
しかし、一致期間を可変にしたい場合はx
、 で値を定義するためにで 2 つ以上の値をマップする必要がありますg
。たとえば、試合時間が 3 スロットの場合、するmap g[p][c][t]
必要がありますが、現在行われている方法で、または同様の方法でそれx[p][c][t] * x[p][c][t + 1] * x[p][c][t + 2]
を行うことはできません。times
sum
だから私の質問は、一連の値の合計が値に等しいことを保証できるChocoと呼ばれる制約があるので、この一連の値の積を定義するものはありますか? そうでない場合、どうすればこれを行うことができますか?
基本的に私が達成することは次のとおりです。
java - 配列内の最小変数と最大変数の間の距離を定義する Choco Solver ICF 制約
X1、X2、...、Xn などの Choco ソルバー IntVar 変数の配列があります。ルールを強制する制約を定義する必要があります-最小変数と最大変数の間の距離(絶対差)値は、固定値、たとえば100未満でなければなりません。つまり、 |max(X1,..Xn) - min(X1, ..,Xn)| < 100 .
誰か助けてくれませんか?
java - チョココンティニューで中間解決
ときどき、ビルド時間が 5 秒から約 200 秒に跳ね上がります。また、同じデータで同時に約 17 を取得した場合でも、解決策が得られないことがあります。
ソルバーを停止し、解決策があったかどうかを確認し、解決策がある場合は続行し、そうでない場合は制約を変更して再起動することはできますか?
これは私がこれまでに得たものです:
ただし、使用される制限は依然として 1 分であり、最初のソリューションが見つかった後も 3 に増やされません。
それを行う方法はありますか?また、ソルバーを再起動するにはどうすればよいですか?
関連する質問: 解決策が得られた場合、その解決策を復元しましたが、もう少し時間があればより良い解決策が得られると思います。この解決策を出発点としてソルバーを開始できますか?
java - IntVar を 2 乗する Choco
ペナルティを含む IntVar 配列があります。これらは、a と b の差に attr[2] を掛けて計算されます。しかし、attr[3] が 1 の場合、attr[2] を掛ける前に差を 2 乗したいと思います。それを行うビューが見つかりませんが、これまでに試したことでは、解決策を見つけるのに時間がかかり、そうするとアサートエラーが発生します。私がやろうとしていることを達成する方法はありますか?
choco - Choco-solver: 変数の係数は実数です
Choco Solver で数式をエンコードする方法を探しています。次のような制約をエンコードする方法があることがわかりました。
しかし、私は次のようなものをエンコードしようとしています
ここでx
、 とy
は int 変数で、係数は実数です。
constraints - MiniZinc モデルをチョココードに変換する
私の minizinc モデルは正常に動作していますが、それを Java コードに変換する必要があるため、choco を使用して実行しました。私が今直面している問題は、ミニ亜鉛中華鍋が持つメカニズムがチョコとは異なることです. minizinc で使用した制約を choco で正確に記述しましたが、機能しませんでした。
仮定 :
ミニ亜鉛モデルは:
チョココードは:
- cl_cap は int の配列です。
cl_id[i].getValue()
ドメインの下限を取得し、制約が cl_id に適用されないため、常に 0 です。
choco 制約を minizinc と同じように機能させるにはどうすればよいですか?