問題タブ [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 に答える
504 参照

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と呼ばれる制約があるので、この一連の値のを定義するものはありますか? そうでない場合、どうすればこれを行うことができますか?

基本的に私が達成することは次のとおりです。

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

java - 配列内の最小変数と最大変数の間の距離を定義する Choco Solver ICF 制約

X1、X2、...、Xn などの Choco ソルバー IntVar 変数の配列があります。ルールを強制する制約を定義する必要があります-最小変数と最大変数の間の距離(絶対差)値は、固定値、たとえば100未満でなければなりません。つまり、 |max(X1,..Xn) - min(X1, ..,Xn)| < 100 .

誰か助けてくれませんか?

0 投票する
0 に答える
85 参照

java - チョココンティニューで中間解決

ときどき、ビルド時間が 5 秒から約 200 秒に跳ね上がります。また、同じデータで同時に約 17 を取得した場合でも、解決策が得られないことがあります。

ソルバーを停止し、解決策があったかどうかを確認し、解決策がある場合は続行し、そうでない場合は制約を変更して再起動することはできますか?

これは私がこれまでに得たものです:

ただし、使用される制限は依然として 1 分であり、最初のソリューションが見つかった後も 3 に増やされません。

それを行う方法はありますか?また、ソルバーを再起動するにはどうすればよいですか?

関連する質問: 解決策が得られた場合、その解決策を復元しましたが、もう少し時間があればより良い解決策が得られると思います。この解決策を出発点としてソルバーを開始できますか?

0 投票する
0 に答える
69 参照

java - IntVar を 2 乗する Choco

ペナルティを含む IntVar 配列があります。これらは、a と b の差に attr[2] を掛けて計算されます。しかし、attr[3] が 1 の場合、attr[2] を掛ける前に差を 2 乗したいと思います。それを行うビューが見つかりませんが、これまでに試したことでは、解決策を見つけるのに時間がかかり、そうするとアサートエラーが発生します。私がやろうとしていることを達成する方法はありますか?

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

choco - Choco-solver: 変数の係数は実数です

Choco Solver で数式をエンコードする方法を探しています。次のような制約をエンコードする方法があることがわかりました。

しかし、私は次のようなものをエンコードしようとしています

ここでx、 とyは int 変数で、係数は実数です。

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

constraints - MiniZinc モデルをチョココードに変換する

私の minizinc モデルは正常に動作していますが、それを Java コードに変換する必要があるため、choco を使用して実行しました。私が今直面している問題は、ミニ亜鉛中華鍋が持つメカニズムがチョコとは異なることです. minizinc で使用した制約を choco で正確に記述しましたが、機能しませんでした。

仮定 :

ミニ亜鉛モデルは:

チョココードは:

  • cl_cap は int の配列です。
  • cl_id[i].getValue()ドメインの下限を取得し、制約が cl_id に適用されないため、常に 0 です。

choco 制約を minizinc と同じように機能させるにはどうすればよいですか?