gpt4 book ai didi

prolog - 计算机功能必须满足哪些要求才能被视为 "monotonic"?

转载 作者:行者123 更新时间:2023-12-01 00:33:02 27 4
gpt4 key购买 nike

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

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”。
我对一套实用的标准最感兴趣,我可以在以下情况下应用
实际参与计算机编程。
在创建和设计我的函数时,我应该遵循哪些提示和最佳实践,以便它们更可能是“单调的”?

最佳答案

逻辑编程 ,而且在逻辑上,分类“单调”几乎总是指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是一个违反单调性的谓词示例!

关于prolog - 计算机功能必须满足哪些要求才能被视为 "monotonic"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314658/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com