小编Leg*_*ggy的帖子

在prolog中,为什么不添加"edge(X,Y): - edge(Y,X)".单独工作将有向图定义转换为无向图

我正在学习Prolog,我正在复习讲义,所有笔记都说:

给定有向图的以下定义:

path(X, Y) :- edge(X, Y).
path(X, Y) :- edge(X, Z), path(Z, Y).
Run Code Online (Sandbox Code Playgroud)

如果我们想让它成为一个无向图,edge(X, Y) :- edge(Y, X).单独定义 不起作用,我无法弄清楚为什么.如果Y到X有边,则X到Y有一条边.似乎对我有意义.

这些说明并没有真正说明原因,但它确实定义了正确的解决方案:

edge1(X, Y) :- edge(X, Y).
edge1(X, Y) :- edge(Y, X). 
Run Code Online (Sandbox Code Playgroud)

我们已经拥有的东西.

谁能解释一下这个,请和谢谢?<3

prolog transitive-closure failure-slice

5
推荐指数
2
解决办法
223
查看次数

什么是C中的优秀程序,可以展示不同Linux调度程序(noop,CFS,截止日期)的优缺点?

我试图找到一种方法来演示不同的调度程序如何影响程序的运行时.到目前为止,我只在Linux上使用时间的功能,试图看到使用空操作,CFS和期限调度衡量的差异,但我没有任何运气.对于测试程序,我只写了一堆基本上循环和计算数字的C程序.

我想也许如果我开始一个进程计数到更高的数字,然后开始第二个进程,计数不高; 使用截止日期调度程序,第二个进程可以显着更快地完成,因为它是一个资源密集度较低的工作.但是,我没有看到调度程序之间存在任何差异.我想知道我对调度程序的理解是否有点缺陷?有没有更合适的程序类型我可以尝试制作一些这些概念?

任何人都可以给我一些提示,建议或类似的东西吗?

c linux operating-system schedule

5
推荐指数
1
解决办法
223
查看次数