计算机功能必须满足哪些要求才能被视为“单调”?

Posted

技术标签:

【中文标题】计算机功能必须满足哪些要求才能被视为“单调”?【英文标题】:What are the requirements a computer function must meet to be considered "monotonic"? 【发布时间】:2017-09-04 23:52:44 【问题描述】:

计算机函数/过程/谓词必须满足哪些要求才能被视为“单调”?

Let A be some thing ,
Let B be some thing ,
Let R be a monotonic relationship between A and B ,
Let R_ be a non-monotonic relationship between A and B ,
Let R become false if R_ is true ,
Let R_ become true if R is false ,
Let C be a constraint in consideration of R ,
Let C become false if R_ is true ,
Let D be the collection of constraints C (upon relationship R) .

**What is D ?**

我查阅了一些文献,例如***文章“monotonic function”。 我最感兴趣的是一套实用的标准,我可以在什么时候应用 务实地参与计算机编程。 在创建和设计我的函数时,我应该遵循哪些提示和最佳实践,以使它们更有可能是“单调的”?

【问题讨论】:

有趣的是,我有“haskell”作为标签,但它被删除了,也许是这样的考虑,因为这对 Haskell 程序员没有兴趣? 也许这个问题更适合softwareengineering.stackexchange.com ? 这里的上下文是什么?所有这些“让”从哪里来?除非您对AB 中的/类型的项目进行排序,否则“单调”和“非单调”实际上没有意义。因此,至少,如果没有这些信息,这个问题就无法以特定的方式回答。另外,除非我弄错了,否则听起来您认为单调函数比非单调函数“更好”,这是不正确的。这只是某些函数具有(而有些则没有)的某种数学属性。 哦,这听起来可能是非常特定于逻辑编程的,因为它被标记为“序言”。顺便说一句,如果是这种情况,那将是删除 haskell 标签的一个很好的理由……我对逻辑编程知之甚少,但我可以想象可能存在一种特定的单调性那里很重要(除非我完全错过了你所要求的标记)。 【参考方案1】:

逻辑编程逻辑中,分类“单调”几乎总是指monotonicity of entailment

例如在经典的一阶逻辑中会遇到这个基本属性:当您能够从一组子句中推导出一个结果时,您可以在您 扩展子句集。相反,删除一个子句不会产生以前不是的后果。

在 Prolog 的 子集中,从声明的角度来看,此属性成立。因此,我们有时将其称为 Prolog 的纯单调子集,因为杂质与破坏单调性的构造并不完全一致。

蕴涵的单调性是推理逻辑程序的几种方法的基础,有时甚至是必要条件,尤其是声明性调试

请注意,Prolog 有多种语言结构可以阻止这种推理。例如,考虑以下 Prolog 程序:

F A)。 f(b)。 f(c)。

还有以下查询:

?- setof(., f(X), [_,_])。 错误。

现在我删除程序中的一个事实,我用删除线文本表示:

f(a) :- . f(b)。 f(c)。

如果 Prolog 程序是单调的,那么 以前 失败的每个查询现在肯定会更加失败,因为我已经删除了以前就是这样。

但是,我们现在有:

?- setof(X, f(X), [_,_])。 是的。

所以,setof/3 是一个违反单调性的谓词示例!

【讨论】:

一个非常好的答案!非常感谢,@mat。不幸的是,“接受这个答案”复选标记按钮功能失调,dkw。我质疑以这种方式使用setof 来证明你的观点。你的例子等价于 ``` (setof(X,f(X),Y)) , Y = [,] .``` ,我相信是 = 因此不是 setof 导致违反单调性。 在上面的例子中,“a”、“b”、“c”是其他函数的名称吗?它们是裸词,所以我认为它们是关键字或函数名称? @Kintalken:如果您在cmets中遇到格式问题,请第二次写评论,然后删除前面的格式错误。 同样的setof/3 不会违反单调性,只要一个只使用带有匿名变量的部分列表,例如setof(X, f(X), [_,_|_]) ...后续问题随后被 "brad" 删除。不知道如何促进关于 *** 的讨论。似乎定位为某种美式服务业。作为向世人暴露你愚蠢的交换,仆人会为你回答你的问题。作为回报,仆人必须通过提供答案来证明他们是大师,并受益于他们通过成为世界专家而获得的巨大感觉,并获得一些闪亮的***金星。绝对禁止:“切向”。即“离题”。

以上是关于计算机功能必须满足哪些要求才能被视为“单调”?的主要内容,如果未能解决你的问题,请参考以下文章

云计算的基本原理是什么?核心技术有哪些?

大数据平台是什么?有哪些功能?如何搭建大数据平台?

TestFlight 必须满足哪些条件才能向服务器发送活动?

我的系统包含了GPL软件,就必须开源吗?

电脑软件怎么分类,大概有几类?

操作系统的结构都有哪些