如何为CNF实现Implication Free,NNF,DISTR功能?

时间:2016-11-09 16:52:15

标签: c string algorithm logic

算法1:IMPL FREE(φ)

输入:φ:逻辑公式
输出:φ':φ'中的所有含义(Ô⇒)被删除,φ'≡φ

switch φ do case φ is a literal: do return φ; case φ is ¬φ1: do return ¬IMPL FREE(φ1); case φ is φ1 ∧ φ2: do return IMPL FREE(φ1) ∧ IMPL FREE(φ2); case φ is φ1 ∨ φ2: do return IMPL FREE(φ1) ∨ IMPL FREE(φ2); case φ is φ1 Ô⇒ φ2: do return IMPL FREE(¬φ1 ∨ φ2); otherwise do assert(0);

算法2:NNF(φ)

输入:φ:无意义的逻辑公式(=>)
输出:φ':只有φ'中的命题原子被否定,φ'≡φ

switch φ do case φ is a literal: do return φ; case φ is ¬¬φ1: do return NNF(φ1); case φ is φ1 ∧ φ2: do return NNF(φ1) ∧ NNF(φ2); case φ is φ1 ∨ φ2: do return NNF(φ1) ∨ NNF(φ2); case φ is ¬(φ1 ∧ φ2): do return NNF(¬φ1 ∨ ¬φ2); case φ is ¬(φ1 ∨ φ2): do return NNF(¬φ1 ∧ ¬φ2); otherwise do assert(0);

如何在C中实现这些? 我一直努力但无法编码 请帮忙。

0 个答案:

没有答案