簡體   English   中英

命題邏輯 - 減少操作次數

[英]Propositional Logic - Reducing the Number of Operations

簡而言之,我想知道,給定兩個命題公式,是否有一種標准方法可以找到仍然具有與兩個公式相同的輸出的最短操作序列。 例如,如果我們有以下公式:

在此輸入圖像描述

在此輸入圖像描述

我們可以通過引入一個新命題來減少操作次數:

在此輸入圖像描述

然后Q成為:

在此輸入圖像描述

這將操作(一元和二元)的數量從1914 Q的新邏輯電路是:

在此輸入圖像描述

理想情況下,我希望只有否定和脫節。 有沒有一種算法可以將任何命題轉換成我理想的簡化命題? 是否有一種引入上述新命題的算法?

經過大約50年的研究,仍然沒有多級邏輯綜合的標准方法。 使用卡諾圖Quine McCluskey方法可以很好地解決兩級案例。 這里,最小化了最小數量。 但這並不直接對應於確定函數值所需的邏輯運算的數量。

加州大學伯克利分校開發了幾種工具來生成啟發式解決方案。 其中一些工具在Logic Friday 1中很好地打包。

功能輸入問:

輸入:Q:=(A&((B&C)+(B'&C')))+(A'&((B&C)+(B'&C'))');

最小化:Q:= ABC + A'B'C + A'BC'+ AB'C';

“映射到門”操作后的輸出:

在此輸入圖像描述

注意:
最近的綜合套件是Clifford Wolf的Yosys

是的,有一種標准的邏輯方程簡化方法

  • 它是卡諾圖的使用
  • 這里是Karnaugh Maps for 4輸入示例
  • 背后的想法是將邏輯/電路真值表編碼成矩形矩陣
  • 卡諾圖
  • 這是來自這個答案的3張卡諾圖的例子
  • 一張地圖代表單一輸出
  • 每個代表它自己的邏輯電路/方程
  • 你可以看到set1和set2是一樣的
  • X表示輸出= 1
  • 空格意味着輸出= 0
  • sides是所有輸入組合的二進制編碼

簡化

  • 通過從地圖中提取方程來完成
  • 因此,找到覆蓋所有X或空間的最小區域數
  • 哪一個取決於使用的邏輯或哪個更容易選擇
  • 例如,只有當ab都處於活動狀態時,set1才有效
  • 所以: set1=ab
  • set3可以像這樣提取:
  • 通過選擇x, set3=a+b
  • set3=!((!a).(!b))選擇空格

[筆記]

  • .
  • +
  • !
  • 選擇可以重疊邊框

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM