問題タブ [clp]
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.
mingw - mingw を使用した Windows 8.1 への Symphony のインストール
coin-or symphony を Scilab にリンクしようとしています。私はLinux用にそれをしました。現在、Windows でビルドしようとしています。MS Visual Studio 2010 で試しましたが、静的ライブラリ (*.lib) ファイルしか生成されません。dllファイルを生成したい。mingw を使ってビルドしようとしましたが、Clp で次のエラーが発生しました。最後に表示されるエラー
constraint-programming - 制約ロジック プログラミングの初心者に最適なツール
大学の製造オーダー スケジューリング用のプロトタイプ アプリケーションを作成する必要があります。
私はまだ CLP のトピックに不慣れで、数台のマシン (つまり 5 ~ 10 台) の連続、容量、速度、切り替え時間などのロジックを定義できる簡単なツール/環境/システムを探しています。一部の製造オーダー (そのパラメーターは、おそらく締め切り、利益、遅延ペナルティ) であり、その結果、最適化された順序でそれらが返されます。
私は CLP ツールのトピックに精通していないので、プロトタイプをすばやく作成するための優れたツールを誰かお勧めできますか? 今のところ、ECLiPSe について多くの良い意見を見つけましたが、CLP を使用している人の意見を参考にすることができます。
c# - VS2013 の C# .net から CLP (C++ で記述された線形計画法ソルバー) を呼び出す
VS2013 で C# .net (4.0、4.5) から CLP (C++ で記述された線形計画法ソルバー) を呼び出す必要があります。
C# から C++ lib を呼び出す方法について、いくつかのリンクを検索しました。
可能なオプションを見つけました:
C# ワーパーを使用する
ラッパー クラスを自分で設計します。
http://www.codeproject.com/Articles/19354/Quick-C-CLI-Learn-C-CLI-in-less-than-minutes
https://msdn.microsoft.com/en-us/library/ms235281%28v=vs.120%29.aspx
CLP にはクラスが多すぎるため、クラスごとにラッパー クラスを記述しないようにしています。これにより、非常に多くのエラーが発生する可能性があります。
最初のオプションには英語のドキュメントがなく、エラーがあります。
C# から CLP を呼び出す他の方法はありますか?
ありがとう
prolog - CLP (CHR) の重複しない四角形
長方形の左上隅の座標が変化し、幅/高さが変化する一連の長方形があります。たとえば、固定変数を持つ長方形 A を考えてみましょう。X 座標 (左上隅) に 1、Y に 2、幅に 1、高さに 2 です。ここで、長方形 B にはすべてが固定されていない変数があります。X は 1、Y は [1,2]、幅は 2、高さは [1,2] です。
この情報に基づいて、2 は Y にありえない値であることがわかります。これは、両方の長方形の左上隅が同じになり、重なり合うためです。Y は 1 に固定されます。同じことが高さにも当てはまります。高さが 2 の場合、長方形 B の左下隅が長方形 A と重なるため、1 のみが許可されます。この情報を使用して、伝播によって長方形 B を接地することができました。しかし、私にとっての問題は、考慮すべき長方形がたくさんあり、利用可能なオプションがたくさんあることです。
実装には SWI-Prolog で CHR を使用しています。現在、私はこのようなものを持っています (ここで実装されている重複しない長方形の制約のほんの一部です):
ヘッダーの左側の四角形は四角形 A で、単純化したものは四角形 B です。X 座標が固定されている (数値である) が、Y 座標が固定されていない (リストである) 場合、すべてを削除しようとします。リストからの Y の不可能な値。最良のシナリオでは、要素が 1 つだけ残り、Y も接地できます。2 番目の単純化規則でも同じことを行います。Y の値がわかっているが X の値がわからない場合、X の不可能な値をすべて排除しようとします。
これは、四角形 B の左上隅が四角形 A 内にあるかどうかを確認するための多くのコードです。四角形 A が最初に接地されていると仮定して、既に単純化していますが、これは A の左上隅が A の左上隅であるという事実を考慮していません。代わりに、長方形 B 内にある場合があります。長方形の配置とさまざまなオーバーラップの可能性には非常に多くの組み合わせがあるため、幅と高さの伝播を理解しようとすると、事態はさらに複雑になります。考慮しなければならないすべての可能性を考えると、かなり圧倒されます。
長方形を重ならないように配置するためのアルゴリズムを調べてみましたが、多くの人は既に完全な情報を持っていると思い込んでいます。残念ながら、私はすべての根拠のある値を持っているわけではありません。要点は、自分で伝播を実行することです。戦略的な方法でこれに取り組む方法について誰か提案がありますか?
prolog - dif/2 制約を含む可換性を検証する方法は?
特に (\=)/2 と (\==)/2 のいくつかの非宣言性に対する救済策として、dif/2 制約の周りには多くの誇大宣伝があります。この非宣言性はしばしば非単調性として特徴付けられ、非可換性の例が示されています。
しかし、dif/2 を含むテスト ケースが交換可能かどうかをテストする手段は何でしょうか。これが私がやりたいことのメタ説明です:
可換性テストを行い、両方のバリアントが同じ結果になることを調べたいと思います。
したがって、通常、(==)/2 組み込み述語を使用して、可換性をチェックすることになる場合は、単調性をチェックできます。この述語は、インスタンス化された変数に続くためです。
しかし、制約を生成するケースをテストしている場合、call_with_residue/2 では十分ではなく、制約の等価性も必要です。次の例に示すように、これは難しい場合があります。
続行する方法はありますか?
免責事項、それは罠です。
私は、良い述語と悪い述語を仕様に対して分離できる優れたテスト方法として交換性テストを推奨しません。通常、良い述語と悪い述語の両方が可換性に問題がない可能性があるためです。
dif/2 制約の等価性を調べる手段として可換性テストを使用しています。この等価性は、より伝統的なテスト ケースで検証ポイントとして使用できます。