-1

我正在编写一个处理一些布尔代数的工具。它基本上是一个基于包含状态名称、条件和转换信息的用户定义文件创建状态机的工具。发生状态转换的方法基本上是查看布尔逻辑表。例如,在以下情况下从 State1 转换到 State2:

(A & B) | (C & ~D) | (E)

我已经实现了这一切,但现在我需要添加一些功能来做一些有趣的事情,比如反转整个 shebang:

~((A & B) | (C & ~D) | (E)) = (via DeMorgan) (~A & ~C & ~E) | (~A & D & ~E) | (~B & ~C & ~E) | (~B & D & ~E)

结果必须是析取范式

基本上,我不想自己写这个,我希望有一个图书馆知道如何处理这样的事情。我遇到过 SymPy,但我不确定是否有布尔代数模块。

我的应用程序是用 C 编写的(可能不应该),但任何事情都会有所帮助。

4

2 回答 2

1

我没有合并代码,而是找到了一些可以免费使用的很棒的应用程序(通过加州大学)。一个名为Logic Friday的工具为其他一些应用程序提供了一个不错的前端:misii 和 espresso(包含在安装中),它们执行符号布尔代数。

没有一个很好的命令行界面,但你可以传递文件来完成这项工作。这执行了我正在寻找的最小化。

于 2011-09-29T18:04:27.050 回答
0

你可以试试这个开源项目,虽然它不是一个库,你可以复制布尔代数类添加到你的项目中

于 2015-09-18T11:11:48.973 回答