【发布时间】:2013-02-14 03:13:19
【问题描述】:
这就是问题所在。
如果我们有两个语句
p=>q 和q=>r,也暗示p=>r。
给定一组语句,我需要找出给定语句是true 还是false,或者不能从给定语句中得出结论。
示例:
给定语句p=>q, p=>r, q=>s
如果输入是
p=>s,我应该得到输出true如果输入是
p=>t,我应该得到输出Cannot be concluded如果输入是
p=> ~p,我应该得到输出false
我的问题是实现这一点的最佳数据结构是什么以及使用什么算法。
谢谢。
【问题讨论】:
-
您只是担心原子事物之间的“隐含”运算符吗?或者你能不能有更多奇特的东西,比如
~p or ~s and r? -
你的问题有一个漏洞。您缺少某种我们无法猜测的 input 。 p=>q , q=>r 将暗示 p=>r 假设您的代数系统是传递的。仍然要使暗示为真(在正常命题逻辑中),我们需要某些输入。类似
p was true and q was false, what is p=>q ?的东西。所以请清楚地解释你的问题。 -
p=>q 表示如果 p 为真,则 q 为真。
-
@Deamonpog 这个问题并没有真正的漏洞。它要求一个程序来决定一个句子是否可以在给定理论(公理集)的情况下被正式证明。见en.wikipedia.org/wiki/…
-
@Anil YACAS 实现了这一点,因此您可以查看他们的灵感来源:yacas.sourceforge.net/refchapter14.html。 (如果您为此找到了一个高效算法,您将获得博士学位并被邀请参加世界各地的会议。命题逻辑的可判定性是 co-NP 完成的:en.wikipedia.org/wiki/…)