【发布时间】:2013-04-12 03:03:45
【问题描述】:
这是一个任务。我必须将一组语句转换为 CNF 并实现它们。我知道我需要先将前缀符号中的输入转换为中缀,然后重复应用德摩根定律。但是,将其转换为中缀表示法后,我不知道如何继续执行。
- 我必须将其转换为中缀还是有更好的流程来做到这一点?
- 我一直在阅读 Python here 中实现的 BDD。我正在用 Java 编码,我想自己做,而不使用任何外部库。关于实现算法的任何指针?我是否朝着正确的方向将其转换为中缀?
谢谢!
【问题讨论】:
-
常规 CNF 还是 3-CNF?
-
只是 CNF。另外,我需要从知识库(输入)执行一阶解析。
-
输入是什么样的?它是你需要解析的又大又丑的字符串,还是为你预先解析了它?
-
样本输入:(=> W H) (=> C H) (NOT H) (OR (AND A B) (AND A C)) ( A D) 但其他样本涉及更多变量和许多更多层次的嵌套。