- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
以这个程序为例。它使用延迟的目标
room(green).
room(blue).
room(red).
room(white).
location(jimmy,red).
location(ricky,blue).
location(cindy,green).
% "Is a certain room unoccupied?"
not_occupied(Room) :-
nonvar(Room),
assertion(room(Room)),
\+ location(_Person,Room).
% If no specific "Room" has been given, the negated goal is
% delayed until the "Room" has been instantiated.
not_occupied(Room) :-
var(Room),
!,
when(
ground(Room),
(\+ location(_Person,Room))
).
如果我现在问
?- not_occupied(R).
然后 Prolog 成功并输出一个残差目标
?- not_occupied(R).
when(ground(R),\+location(_7676,R)).
实际上,它并没有真正成功。它乐观地成功(因为为了不停止计算,它必须成功)但实际的逻辑成功取决于剩余目标的实际成功。
true+
将表示“在剩余目标成功的条件下成功”。这实际上似乎是有必要的:
do :- not_occupied(_).
调用它甚至根本不会打印出任何剩余目标:
?- do.
true.
目标成功了吗?不是真的,它仍然处于逻辑边缘,但顶层甚至没有告诉我。另一方面,没有办法向程序提供更多信息来解决剩余目标。但是因为计算运行到终点而默认为“成功”感觉是错误的。
最佳答案
首先是一些术语问题。我们从顶层得到的是一个答案。说:
?- length(Xs, 0).
Xs = [].
在这里,答案是
的形式。答案替换 它描述了一个单一的解决方案。
?- length(Xs, 1).
Xs = [_A].
同样,这是一个答案替换,但这次它描述了无限多的解决方案。
?- freeze(X, false).
freeze(X,false). % no solution
?- freeze(X, ( X = 1 ; X = 2 ) ).
freeze(X,(X=1;X=2)). % two solutions
一些实现提供
frozen(Var, Goal)
只获得与
Var
相关的目标.在这种情况下,内置的
call_residue(Goal_0, Residuum)
被构思出来。最初,在 SICStus 0.7 中,它是为延迟目标定义的,剩余的定义非常明确。然而,一旦我们将我们的语言扩展到 clpfd,事情就变得不那么清楚了。这是 SICStus 3.12.5:
| ?- X in 1..3, call_residue(X in 2..4, Residuum).
Residuum = [[X]-(X in 2..3),
X in 1..3 ?
现在的残渣应该是
X in 2..3
或
X in \{1}
?事情可能变得相当复杂(阅读: buggy )。此外,撤消绑定(bind)是一项艰巨的任务。或实现首先创建整个目标的副本,然后保留约束。
call_residue/2
通过两个新的内置插件。
call_residue_vars(Goal_0, Vars)
统一
Vars
与在
Goal_0
中创建的延迟目标或约束相关的变量.请注意,当某些受约束的变量存在于
Goal_0
之前,这个概念并不那么精确。并出现在
Goal_0
.但主要的一点是,这个内置的实现起来相对便宜。它不复制
Goal_0
或其任何子项。
copy_term(Term, Copy, G_0s)
可用于通过调用
maplist(call, G_0s)
重建附加的约束(在 SWI,Scryer 中)或
call(G_0)
(在 SICStus)。在 SWI (clpfd) 和 Scryer (clpz) 的实现中,
V in inf..sup
形式的一些冗余约束被投影省略。但投影确实是另一个问题。
关于prolog - Prolog中处理 "residual goals"的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66466729/
我正在尝试为 CNN 实现一个残差层(使用 caffe 和 python)。这是残差学习的简单框图: 这是我写的代码: def res(self,bottom,args): 'residual
以这个程序为例。它使用延迟的目标 room(green). room(blue). room(red). room(white). location(jimmy,red). location(rick
使用scatterplot3d在 R 中,我试图从观察到回归平面绘制红线: wh 0 s3d$points3d(x[wh], z[wh], y[wh], pch = 19) 残差 # scatter
我有 2 张图片: IMG_1: IMG_1_PRESSED: 我默认显示 IMG_1,但是当我点击它时,图像应该变为 IMG_1_PRESSED。 这是按钮本身的代码 fragment ,其中 be
我正在尝试在我编写的这段 GMRES 代码中实现 ILU 预调节器(为了求解线性系统 Ax = b。我正在尝试使用一个简单的 25x25 维三对角 SPD 矩阵。如你所见,我我用 spilu 方法计算
你能告诉我 返回了什么吗? glm$残差和 残留物(glm)其中 glm 是一个准泊松对象。例如我将如何使用 glm$y 和 glm$linear.predictors 创建它们。 glm$残差
我是 python 新手,我想使用 scipy.optimize 执行非线性回归。 我遵循了 scipy 文档的介绍,这是我的代码的一部分。 我已经将 S_ADV、波动率和 POV 组织为几个 num
fit panel.smooth function (x, y, col = par("col"), bg = NA, pch = par("pch"), cex = 1, col.smoo
我在 pytorch 中为 ResNet 定义了一个残差 block ,您可以在其中输入您想要的卷积层数量,不一定是两个。这是通过名为 nc(Convs 的数量)的参数完成的。第一层得到 ni 作为输
我有以下数据: array([[33, 250, 196, 136, 32], [55, 293, 190, 71, 13]]) 我可以从 stats.chi2_contingency
我在我的 nativescript javascript 应用程序中使用 firebase 身份验证、消息传递和实时数据库。我可以在具有调试和发布版本的 iOS 模拟器和设备上构建和运行得很好,'虽然
作为数值方法研究的一部分,我正在编写一个函数来解决流值问题。这是该程序的“核心”,但它出现了一些奇怪的错误,这很奇怪,因为我在其他程序中使用了相同的代码段而没有出现任何错误。 void solve_
我在创建内容模型时遇到问题,在节点浏览器中,它在剩余项下显示为“true”,在属性类型下显示为空字段,在值类型下显示为“{ http://www.alfresco.org/model/cms/1.0/
我正在尝试按照本教程进行操作: https://github.com/Microsoft/CNTK/wiki/Hands-On-Labs-Image-Recognition我现在正处于 Frank 所
是否有可能沿着数字列对 data.table 进行排序,同时将特殊行(剩余类别)放在最后(基于另一列的标签)? DT <- data.table (a =c("a", "sd", "set", "c"
我是一名优秀的程序员,十分优秀!