我希望能得到一些帮助来寻找专门解决 K-map 最优性的文献。
例如,我了解如何在 SOP(乘积和)表达式和 K-map 之间进行映射,以及为什么通常您会期望 K-map 优化表达式更简单,因为找到了 1 的最大分组相当于在简单的 SOP 表达式中查找一些冗余。
我隐约看到 K-map 方法可能不会产生最佳解决方案,因为我们实际上所做的唯一一件事似乎是利用布尔代数的分配和恒等 (A + A' = 1) 属性。但我真的不明白我们没有使用 K-map 执行哪些代数运算,这可能使我们能够达到更优化的解决方案。
结果是我不知道如何开始证明 K-map 并不总是最优的。
我试图阅读:this ,但在那篇论文中,它只是引用了寻找最佳布尔表达式的问题是在 NP 中,我认为作者只是含蓄地说 K-map 不可能是最佳的,因为作为一种算法它们不是在 NP 时间内运行。
为什么 K-map 不是最优的,而且不仅仅是以“反例”的方式......实际上为什么?你能向我证明这一点,或者指导我证明吗?
最初的问题是这样开始的。有6个州。在每个状态,当 w=1 时移动到下一个状态,当 w=0 时则保持当前状态。在每个状态下,使用标准 7 LED 显示屏 (BCD) 显示一个数字。这些数字是 8 -> 1 -> 9 -> 4 -> 2 -> 2。
这是我对这个问题的尝试。我从一个状态表开始:从左到右 y2,y1,y0
w=0 w=1 a b c d e f g
000|000 001 1 1 1 1 1 1 1
001|001 010 0 1 1 0 0 0 0
010|010 011 1 1 1 1 0 1 1
011|011 100 0 1 1 0 0 1 1
100|100 101 1 1 0 1 1 0 1
101|101 000 1 …Run Code Online (Sandbox Code Playgroud) 我得到了以下卡诺图,但在计算每个表中的 XOR 表达式时仍然遇到问题。
Table 1
-------
WZ
00 01 11 10
-----------------------
00 | | | | 1 |
-----------------------
01 | 1 | | | |
-----------------------
XY 11 | | | | 1 |
-----------------------
10 | 1 | | | |
-----------------------
Table 2
-------
WZ
00 01 11 10
-----------------------
00 | | 1 | | |
-----------------------
01 | | | 1 | |
-----------------------
XY 11 | | 1 | | |
-----------------------
10 …Run Code Online (Sandbox Code Playgroud) 我该怎么用?还是有特殊的场合我应该使用一个而不是另一个?
boolean-logic boolean boolean-expression boolean-operations karnaugh-map
我已经确定了一个真值表,如下面的真值表
prev_state| input1 | input2 |next_state| Action
(def/new) |(Disable/Enable)|(Off/On)| |
def | D | Off | def | Nothing
def | D | On | def | Nothing
def | E | Off | def | Nothing
def | E | On | new | call function1
new | D | Off | def | call function2
new | D | On | def | call function2
new | E | Off | def | call function2
new | E …Run Code Online (Sandbox Code Playgroud)