3

ずっと前に、私はエキスパート システム言語である Egeria を使用してシステムを開発しました。変数に最小値、最大値、現在値の 3 つの値があるという非常に便利な機能がありました。このようにして、部分的に既知の値の確率が計算され、結果は範囲として終了します。構文は覚えていませんが、次のようなものでした:-

A.Min = 1;
A.Max = 5;
A.Current= 4;
B.Min = 2;
B.Max = 4;
B.Current= 4;


A * B = {2, 20, 16}

私の質問はこれです、このアプローチは何と呼ばれ、現在の言語はそれを実装していますか?

4

4 に答える 4

3

あなたが説明したような多値変数は、制約ベースのプログラミングで使用できます。最近の論文については、Radul と Sussman の「The Art of the Propagator」を参照してください。

Radul 氏は先週の ILC 2009 でプレゼンテーションを行いました。彼は、「真実」への確率論的近似を表す多値変数 (と考えられるもの) の例を挙げました。(メモがありませんので、誤解を招く表現があったことをあらかじめお詫びします。)

2 つの温度センサーからの読み取り値を調整する必要があるシステムを考えてみましょう。さらに、各センサーの読み取り値にはある程度の不確実性があると仮定します。センサー A は温度が A1 と A2 の間であると言い、センサー B は温度が B1 と B2 の間であると言いました。システムが温度を計算しようとして失敗する必要がありますか? 読み取り値が重なる範囲で「真実」を表現できるのではないでしょうか。

于 2009-03-31T05:56:37.347 に答える
1

Yacc に関する元の論文 (バージョン 7 の UNIX Programmer's Manual の Volume 2 で発行されたもので、論文の日付は 1978 年 7 月 31 日) の付録 C では、「浮動小数点間隔演算を行う卓上計算機」について説明されています。'( min, max )' という表記で間隔を使用し、範囲ベースの演算を実装しました。あなたが説明しているのは、「現在の」値も拡張したものです。

于 2009-03-31T06:38:31.443 に答える
0

ほとんどのオブジェクト指向言語は、クラスを使用してこれをかなり簡単に行うことができます。

特に C++ では、たとえば任意の基本型について、これを処理するテンプレート化されたクラスを作成するのは非常に簡単です。

ただし、これをコア言語の一部としてサポートしている言語は知りません。

于 2009-03-25T04:11:39.737 に答える