2

CLP(FD) を使用すると、ユーザーは任意の整数変数ごとに定義域を設定できるため、方程式を解くことができます。
ここまでは順調ですね。

ただし、CLP(R) や同様の言語 (単純な推論しかできない) では同じことはできません。その理由を理解するのは難しくありません。数値の小数部には、実装上の制限によって、ほぼ無限の領域が存在する可能性があります。これは、整数のように浮動小数点数を扱うソルバーを実際に使用するには探索空間が大きすぎることを意味します。したがって、CLP(R) でジェネレーターを記述し、数値でインスタンス化された変数を取得するために必要な場所に制約ガードを設定するのはユーザー タスクです (単純な推論が不可能な場合)。

ここで私の質問: 実数を超える CLP(FD) のような言語はありますか? 数値の丸め、検索、増分近似を使用して実装できると思います。

4

2 に答える 2

0

あなたの質問に対する答えはイエスです。浮動小数点数専用の制約ベースのソルバーがあります。ソルバーのリストはありませんが、ibex http://www.ibex-lib.orgがフロートを使用できるライブラリであることは知っています。Real-Theory ( http://smtlib.cs.uiowa.edu/solvers.shtml )を実装する SMT-Solvers も参照してください。

于 2014-07-11T14:57:38.840 に答える