Algorithm 命题逻辑——减少运算次数
简言之,我想知道,给定两个命题公式,是否有一种标准方法可以找到与这两个公式输出相同的最短运算序列。例如,如果我们有以下公式: 及 我们可以通过引入一个新的命题来减少操作的数量: 然后Algorithm 命题逻辑——减少运算次数,algorithm,optimization,boolean,logic,Algorithm,Optimization,Boolean,Logic,简言之,我想知道,给定两个命题公式,是否有一种标准方法可以找到与这两个公式输出相同的最短运算序列。例如,如果我们有以下公式: 及 我们可以通过引入一个新的命题来减少操作的数量: 然后Q变成: 这将操作数(一元和二进制)从19减少到14。Q的新逻辑电路为: 理想情况下,我希望只有否定和析取。有没有一种算法可以把任何命题转换成我理想的简化命题?有没有一种算法可以引入上述新命题?是的,有一种标准的逻辑方程简化方法 这是使用 这是 背后的想法是将逻辑/电路真值表编码为矩形矩阵 这是本书中3
Q
变成:
这将操作数(一元和二进制)从19
减少到14
。Q
的新逻辑电路为:
理想情况下,我希望只有否定和析取。有没有一种算法可以把任何命题转换成我理想的简化命题?有没有一种算法可以引入上述新命题?是的,有一种标准的逻辑方程简化方法
- 这是使用
- 这是
- 背后的想法是将逻辑/电路真值表编码为矩形矩阵
- 这是本书中3幅卡诺图的示例
- 一个映射表示单个输出
- 每个都代表其自身的逻辑电路/方程
- 如您所见,set1和set2是相同的
表示输出=1X
- 空白表示输出=0
- 边是所有输入组合的二进制编码
- 是通过从地图中提取方程来完成的
- 因此,找到覆盖所有X或空间的最小面积数
- 哪一个取决于所使用的逻辑,还是哪一个更容易选择
- 例如,仅当a和b都处于活动状态时,set1才处于活动状态
- 所以:
set1=a.b
- set3可以这样提取:
通过选择xset3=a+b
通过选择空格set3=!(!a)。(!b))
和
或+
代码>非
- 选择可以重叠边框
Logic Friday 1
中
为您的函数输入Q:
输入:
Q:=(A&((B&C)+(B'&C'))+(A'&((B&C)+(B'&C')))
最小化:
Q:=ABC+ABC+ABC+ABC+ABC
在“映射到门”操作后的输出:
注意:最近的一个合成套件是Clifford Wolf的。我想你可能会更幸运地在其他SE站点之一(可能)得到答案。有趣的问题,用德摩根定律,否定一切conjunctions@AidanKane是的,我不知道该把它贴在哪一个上面。我想我会同时做这两件事,然后看看哪一件先给出答案。我在这里很喜欢它,这样我就可以看到人们的想法。检查一个电路是否总是返回“false”被称为“circuit SAT”,这是一个典型的NP难问题。