三个值变量,max,min,actual

时间:2009-03-25 04:08:50

标签: language-features expert-system

很久以前,我开发了使用Egeria作为专家系统语言的系统。它有一个非常有用的功能,其中变量有三个值,min,max和current。以这种方式,可以计算部分已知值的概率,结果最终作为范围。我不记得语法,但它是这样的: -

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


A * B = {2, 20, 16}

我的问题是,这个方法叫做什么,并且当前的语言是否实现了它?

4 个答案:

答案 0 :(得分:3)

听起来,作为一种“方法”,它可能是fuzzy logic的一种。特别是当你描述它被概率使用时。

答案 1 :(得分:3)

您描述的多值变量可用于基于约束的编程。最近的一篇论文见Radul和Sussman,"The Art of the Propagator"

先生。 Radul上周在ILC 2009上发表演讲。他举了一个(人们可能会考虑的)多值变量的例子,这些变量代表了对“真理”的概率近似。 (我提前为任何虚假陈述道歉,我没有笔记。)

考虑一个必须协调来自两个热传感器的读数的系统。进一步假设每个传感器的读数都有一定程度的不确定性:传感器A表示温度在A1和A2之间,传感器B表示温度在B1和B2之间。系统是否应该尝试计算温度?也许“真相”可以用读数重叠的范围表示。

答案 2 :(得分:1)

关于Yacc的原始论文的附录C(发表于UNIX程序员手册第7版的第2卷;该论文的日期为1978-07-31)描述了一个“执行浮点间隔算术的桌面计算器”。它使用符号'(min,max)'的间隔并实现基于范围的算法。你所描述的是对“当前”值的扩展。

答案 3 :(得分:0)

大多数面向对象的语言都可以使用类来轻松地完成此任务。

特别是在C ++中,很容易制作一个模板化的类,例如为任何基本类型处理这个。

但我不知道任何支持此语言的语言是核心语言的一部分。