布尔表达式简化

Boolean expression simplification

我正在尝试用恰好 39 个输入和大约 5 亿至 8 亿项(如在许多 and/not/or 语句中那样)来简化布尔表达式。

不需要完美的简化,但最好简化一下。

我知道 K-maps , Quine–McCluskey, Espresso 算法。但是我也知道,根据我所阅读的内容,这些机制将花费太长时间来简化这种规模的电路

我需要在 24 小时内尽可能地简化这个表达式。

在 google 搜索之后,我发现很难找到任何资源来尝试简化如此庞大的机器!那里有任何资源或那里的图书馆可以尝试至少在 24 时间段内在某种程度上简化这一点吗?

有点过时的书

中描述了一种贪婪的启发式简化

Robert K. Brayton , Gary D. Hachtel , C. McMullen , Alberto Sangiovanni-Vincentelli Logic Minimization Algorithms for VLSI Synthesis

您可以找到章节 online

Simplify 基于 unate 范式。在分而治之的风格中,它递归地应用 Shannon 的 expansion theorem 将函数拆分为更小的子函数。启发式规则是首先按最二进制的变量进行拆分,即分隔最大数量项的变量。


第二种方法可能是使用图分区工具,如 METIS 将术语拆分为独立(或至少松散相关)的子集。但我不知道这已经成功地用于逻辑综合任务。我最喜欢的搜索引擎是怀疑的,没有 return 任何命中。


基于

中的 Binary Decision Diagrams was published 的更新算法

Olivier Coudert: Doing Two-Level Logic Minimization 100 Times Faster

本文列出了与您手头的任务相似的术语数量非常多的示例。

一种有点相关的简化技术 BDD 清理,如 A Study of Sweeping Algorithms in the Context of Model Checking 中所述。

这是一个重复的问题。有关逻辑优化或布尔表达式简化的资源,请参阅 。