三值变量,最大值、最小值、实际值
Posted
技术标签:
【中文标题】三值变量,最大值、最小值、实际值【英文标题】:Three value variables, max, min, actual 【发布时间】:2010-10-15 09:02:31 【问题描述】:很久以前,我使用 Egeria 一种专家系统语言开发系统。它有一个非常有用的功能,其中变量具有三个值,最小值、最大值和电流。通过这种方式,可以计算出部分已知值的概率,结果以一个范围结束。我不记得语法,但它是这样的:-
A.Min = 1;
A.Max = 5;
A.Current= 4;
B.Min = 2;
B.Max = 4;
B.Current= 4;
A * B = 2, 20, 16
我的问题是,这种方法叫什么,目前有任何语言实现它吗?
【问题讨论】:
【参考方案1】:像您描述的那样的多值变量可以用于基于约束的编程。对于最近的一篇论文,请参阅 Radul 和 Sussman,"The Art of the Propagator"。
先生。 Radul 上周在 ILC 2009 上发表演讲。他举了一个(人们可能会考虑的)多值变量的例子,这些变量代表了“真相”的概率近似。 (对于任何不实陈述,我提前道歉,我没有笔记。)
考虑一个必须协调来自两个热传感器的读数的系统。进一步假设每个传感器的读数都带有某种程度的不确定性:传感器 A 表示温度介于 A1 和 A2 之间,传感器 B 表示温度介于 B1 和 B2 之间。系统是否应该在尝试计算温度时失败?也许“真相”可以用读数重叠的范围来表达。
【讨论】:
【参考方案2】:听起来,作为一种“方法”,它可能是fuzzy logic 的一种。尤其是当你描述它被概率使用时。
【讨论】:
【参考方案3】:关于 Yacc 的原始论文的附录 C(发表于版本 7 的 UNIX 程序员手册的第 2 卷;该论文的日期为 1978-07-31)描述了一个“进行浮点区间运算的桌面计算器”。它使用带有符号 '( min, max )' 的区间并实现了基于范围的算术。您所描述的也是“当前”值的扩展。
【讨论】:
【参考方案4】:大多数面向对象的语言都可以使用类轻松地做到这一点。
尤其是在 C++ 中,很容易创建一个模板类来为您处理任何基本类型,例如。
不过,我不知道有任何语言支持此作为核心语言的一部分。
【讨论】:
我意识到我可以编写代码,但我喜欢尽可能将其作为核心内置,它是许多其他功能的非常有用的基础。如果语言中没有它,我也必须重新实现所有这些额外的功能。以上是关于三值变量,最大值、最小值、实际值的主要内容,如果未能解决你的问题,请参考以下文章
创建一个新变量,它是python中另一个变量的每周最小值/最大值