计算机功能必须满足哪些要求才能被视为“单调”?
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 ? 这里的上下文是什么?所有这些“让”从哪里来?除非您对A
和B
中的/类型的项目进行排序,否则“单调”和“非单调”实际上没有意义。因此,至少,如果没有这些信息,这个问题就无法以特定的方式回答。另外,除非我弄错了,否则听起来您认为单调函数比非单调函数“更好”,这是不正确的。这只是某些函数具有(而有些则没有)的某种数学属性。
哦,这听起来可能是非常特定于逻辑编程的,因为它被标记为“序言”。顺便说一句,如果是这种情况,那将是删除 haskell
标签的一个很好的理由……我对逻辑编程知之甚少,但我可以想象可能存在一种特定的单调性那里很重要(除非我完全错过了你所要求的标记)。
【参考方案1】:
在逻辑编程和逻辑中,分类“单调”几乎总是指monotonicity of entailment。
例如在经典的一阶逻辑中会遇到这个基本属性:当您能够从一组子句中推导出一个结果时,您可以也在您 扩展子句集。相反,删除一个子句不会产生以前不是的后果。
在 Prolog 的 纯 子集中,从声明的角度来看,此属性也成立。因此,我们有时将其称为 Prolog 的纯单调子集,因为杂质与破坏单调性的构造并不完全一致。
蕴涵的单调性是推理逻辑程序的几种方法的基础,有时甚至是必要条件,尤其是声明性调试。
请注意,Prolog 有多种语言结构可以阻止这种推理。例如,考虑以下 Prolog 程序:
F A)。 f(b)。 f(c)。还有以下查询:
?- setof(., f(X), [_,_])。 错误。现在我删除程序中的一个事实,我用删除线文本表示:
如果 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" 删除。不知道如何促进关于 *** 的讨论。似乎定位为某种美式服务业。作为向世人暴露你愚蠢的交换,仆人会为你回答你的问题。作为回报,仆人必须通过提供答案来证明他们是大师,并受益于他们通过成为世界专家而获得的巨大感觉,并获得一些闪亮的***金星。绝对禁止:“切向”。即“离题”。以上是关于计算机功能必须满足哪些要求才能被视为“单调”?的主要内容,如果未能解决你的问题,请参考以下文章