三個の値変数、MAX、MIN、実際の
-
22-08-2019 - |
質問
長いしばらく前に私はエゲリアにエキスパートシステムの言語を使用してシステムを開発しました。これは、変数が3つの値、最小値、最大値と現在を持っていた、本当に便利な機能を持っていました。このように、部分的に知られている値の確率は、結果が範囲として終わると、計算ができます。私は、構文を覚えていないことができますが、それはこのようなものだった: -
A.Min = 1;
A.Max = 5;
A.Current= 4;
B.Min = 2;
B.Max = 4;
B.Current= 4;
A * B = {2, 20, 16}
私の質問は、この、このアプローチは何と呼ばれており、任意の現在の言語は、それを実装していますか?
解決
あなたが記述のもののような多値変数は、制約ベースのプログラミングで使用することができます。最近の論文についてRadulとサスマン、Propagator">のを。
氏。 Radulは先週ILC 2009で発表しました。彼は「真実」に確率的近似を表す(1が考えるかもしれないもの)、多値変数の例を挙げました。 (私はノートを持っていない、いかなる虚偽表示のために事前に謝罪。)
2つの熱センサからの測定値を調整しなければならないシステムを考えます。各センサの測定値がある程度の不確実性が付属していることをさらに仮定:センサーAは、一時はA1とA2の間であると言い、センサBは、一時はB1とB2との間にあると言います。システムは、温度を計算するための試みに失敗するべきか?おそらく「真実」は測定値が重複範囲の用語で表現することができる。
他のヒント
これは、「アプローチ」として、それはファジーロジック。特に、あなたはそれが確率的に使用されている記述するときます。
付録C(バージョン7 UNIXプログラミングマニュアルの第2巻に掲載され、紙は1978年7月31日日付である)は「点区間演算を浮動ない電卓」を記載しました。それは表記「(最小、最大)」と実装範囲ベースの演算と間隔を使用します。あなたが記述することはあまりにも「現在の」の値を持つことの延長である。
ほとんどのオブジェクト指向言語では、クラスを使用してかなり簡単にこれを行うことができます。
C ++では、具体的には、それは例えば、任意の基本型のためにあなたのためにこれを取り扱うテンプレートクラスを作ることは非常に容易であろう。
私はしかし、コア言語の一部としてこれをサポートする任意の言語を知っていません。