問題タブ [minizinc]

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 投票する
2 に答える
164 参照

minizinc - Minizinc プログラムが、global_cardinality でのアサーションの失敗について不平を言う

ガードナーから取得したパズルから取得した、Minizincでこの問題を解決しようとしていました:

0、...、9 の番号が付けられた 10 個のセルが 10 桁の数字を表し、各セル (i など) がこの数字の中で数字 i が出現する総数を示します。この番号を見つけます。答えは 6210001000 です。

私はそれを解決し、コードは Gecode で正常に動作しています:

Gecode からの出力:

ただし、G12 ソルバーは、global_cardinality で失敗したアサーションについて不満を述べています。

in call 'assert' アサーションに失敗しました: global_cardinality: カバーとカウントには同一のインデックス セットが必要です

確かに、Gecode からの出力が示すように、N は 1..10 で、セルは 0..9 です。だから私の質問は:

  • Gecode が機能する理由 実装が異なるか、プログラムにバグがありますが、幸運でしたか?
  • G12 で動作するようにプログラムを修正したり、堅牢で正しいものにしたりするにはどうすればよいですか?
0 投票する
4 に答える
2528 参照

constraints - MiniZinc 配列の文字列値のインデックス

質問

文字列の MiniZinc 配列が与えられた場合:

... MiniZinc データ ファイルから読み込まれたデータ:

配列内の特定の文字列のインデックスを調べるにはどうすればよいですか? たとえば、その ARMOR は位置 2 にあります。

コンテキスト

ステータスに関するいくつかの制約に関して、アイテムの最適な選択を見つける必要があります。この情報は、次のように宣言された 2D 配列に格納されます。

したがって、たとえば、選択したアイテムから得られる ARMOR の最小量に関する制約を記述するには、ARMOR が内部配列にインデックス 2 を持っていることを知る必要があります。

データ ファイルは外部プログラムによって生成され、統計の数と順序は動的であるため、制約でインデックスをハードコードすることはできません。

1つの解決策(私の場合は機能しません)

MiniZincチュートリアルでは、興味深いトリックを使用して同様のことを実現しています。

残念ながら、MiniZinc データ ファイルでは変数宣言が許可されていないため、このトリックは私の場合には機能しません。

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

minizinc - Minizinc - 溶液の数を数え、最初の 50 を確認用に印刷します

出力ファイルを生成して wc -l output.txt と -1 を 2 で割り、output.txt に -50 を使用する以外に、minizinc 内のソリューションを自動カウントして最初の 50 個のソリューションを出力する簡単な方法はありますか? 私のプログラムは 1 つのシナリオで 12 時間実行され、もう 1 つのシナリオでは 2 日間実行されると予想されます。

また、time minizinc を使用する以外のリソース使用量を生成するバッチ モード (ide ではない) の方法 ...

アドバイスをありがとう

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

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

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

仮定 :

ミニ亜鉛モデルは:

チョココードは:

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

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

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

minizinc - MiniZinc: 満足できない場合に選択ポイントを表示

MiniZinc でプログラムを実行している場合、-s フラグを使用すると、解決策を探す際に検討した選択ポイントの数を確認できます。ただし、条件が満たされない場合、探索された選択ポイントの数は表示されません。

条件が満たされない場合でも、どうすれば選択ポイントを表示できますか?

0 投票する
2 に答える
687 参照

scheduling - MiniZinc - 複数の施設でのタスク スケジューリング - 累積 'var opt error'

私は MiniZinc を初めて使用し、次の CP の定式化の実装に問題があります (問題の完全な定式化については、こちら (4/16 ページ)を参照してください) 。

問題のCP定式化

私の実装は以下のコードのようですが、次のエラーに苦労しています: MiniZinc: type error: no function or predicate with this signature found: 'comulative(array[int] of var opt int,array[int] of var opt int,array[int] of var opt int,int)'.

これは、配列内包表記が var (この場合は variable ) の影響を受けるためですx

cumulativeオプション変数または考えられる回避策を使用して制約を機能させる方法について何か提案はありますか?

よろしくお願いします:-)

単純なデータセット:

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

minizinc - $T 、 [$T] 、 $U は minizinc チュートリアルで何を表しますか

ミニ亜鉛チュートリアルでいくつかのことを理解するのを手伝ってくれる人はいますか:

これは、集合 x と y の交点を返します。明らかに x と y はセットですが、このコンテキストで $T は何を意味するのでしょうか?

セット x と y の結合を返します。私が理解していることから、xは整数のセットであり、yも整数のセットです-しかし、「intのvarセット」とはどういう意味ですか? 「var」とは何ですか?

配列 x のセットの和集合を返します。説明していただけますか:

と: