📜  门| GATE-CS-2015(模拟测试)|问题10(1)

📅  最后修改于: 2023-12-03 15:12:42.667000             🧑  作者: Mango

门 | GATE-CS-2015(模拟测试)|问题10

这是一道GATE-CS-2015(模拟测试)的问题,主要考查对于计算机组成原理及数字电路的知识。

题目描述

设$n$个门有$s$个输入变量和$p$个输出变量。每个输入变量和输出变量都有一个整数权值。这些门被组成了一些层,每层有$k$个门,每个门有$s$个输入变量和$p$个输出变量。每个门的每个输出变量的权值是由一个布尔表达式计算而来,这个布尔表达式由这个门的$s$个输入变量和一些常数构成,而这个门的每个输入变量的权值由上一层的所有$p$个输出变量和一些常数计算而来。

假设计算所有$n$个门的输出需要的总时间是$T$,试证明对于整数$k$和$\gamma$,找到以$k$个门为一组分层时的最小值$b$是一个NP完全问题,某种函数$T'(b)$可以在多项式时间内计算出,且对于所有的$b$有$T'(b)\leq \gamma T$。

解题思路

这道题目考查的是组成原理及数字电路的基础知识,需要掌握数字电路中的门电路、布尔代数以及数字电路中的分层计算的概念。同时,此题为证明题,需要学习证明方法和NP完全问题的知识。

首先需要理解含义:将$n$个门以$k$个门为一组划分为若干层,每一层有$k$个门组成,第一层由$n$个门组成,最后一层可能会不足$k$个门。

证明过程中需要使用到电路满足布尔代数,即每个门的输出只有0或1两个值。又因为门被分组分层,每层有$k$个门,所以总共有$2^{kp}$种情况。因此我们可以使用关于门的输入变量的布尔表达式递归的来刻画整个电路的输入与输出的关系,从而得到全局最优的电路,用$T'(b)$来表示这个电路的运算时间。接下来需要展开设计符合上述条件的算法,具体如下:

  1. 对所有$s$个输入变量按照权值排序,得到$s$个变量的排名列表。
  2. 对所有$p$个输出变量按照权值排序,得到$p$个变量的排名列表。
  3. 以$k$个门为一组,枚举每一组中门的连接方式,得到每一组组成的输出变量的排名列表。
  4. 根据原电路的输入变量排名列表,得到每一层组成的输入变量排名列表。
  5. 根据第3步得到的每一组组成的输出变量排名列表,以及第4步得到的每一层组成的输入变量排名列表,计算布尔表达式,得到该组组成的输出变量到该层组成的输入变量需要的时间。
  6. 对所有组成不同的方式,以及所有组成的所有层进行递归(即选出权值最小的方案),记$T_i(b)$为这$i$个门分为一组时的最小时间。得到$T'(b)$的值。

通过分析,可以发现$T'(b)$可以在多项式时间内计算出,因为$k$是一个固定的数,可以将每一组组成的输出变量的排名列表、每一层组成的输入变量的排名列表和布尔表达式的计算视为固定的操作,只要枚举每一组门的连线方式即可,枚举$k^2s^2$种情况,在固定步骤的前提下,即可计算所有情况的最小时间。所以此函数可以在多项式时间内计算出。

最后,因为NP完全问题一定可以规约成某个NP完全问题,找到以$k$个门为一组分层时的最小值$b$也是一个NP完全问题。证毕。

返回Markdown
# 门 | GATE-CS-2015(模拟测试)|问题10

这是一道GATE-CS-2015(模拟测试)的问题,主要考查对于计算机组成原理及数字电路的知识。

## 题目描述

设$n$个门有$s$个输入变量和$p$个输出变量。每个输入变量和输出变量都有一个整数权值。这些门被组成了一些层,每层有$k$个门,每个门有$s$个输入变量和$p$个输出变量。每个门的每个输出变量的权值是由一个布尔表达式计算而来,这个布尔表达式由这个门的$s$个输入变量和一些常数构成,而这个门的每个输入变量的权值由上一层的所有$p$个输出变量和一些常数计算而来。

假设计算所有$n$个门的输出需要的总时间是$T$,试证明对于整数$k$和$\gamma$,找到以$k$个门为一组分层时的最小值$b$是一个NP完全问题,某种函数$T'(b)$可以在多项式时间内计算出,且对于所有的$b$有$T'(b)\leq \gamma T$。

## 解题思路

这道题目考查的是组成原理及数字电路的基础知识,需要掌握数字电路中的门电路、布尔代数以及数字电路中的分层计算的概念。同时,此题为证明题,需要学习证明方法和NP完全问题的知识。

首先需要理解含义:将$n$个门以$k$个门为一组划分为若干层,每一层有$k$个门组成,第一层由$n$个门组成,最后一层可能会不足$k$个门。

证明过程中需要使用到电路满足布尔代数,即每个门的输出只有0或1两个值。又因为门被分组分层,每层有$k$个门,所以总共有$2^{kp}$种情况。因此我们可以使用关于门的输入变量的布尔表达式递归的来刻画整个电路的输入与输出的关系,从而得到全局最优的电路,用$T'(b)$来表示这个电路的运算时间。接下来需要展开设计符合上述条件的算法,具体如下:

1. 对所有$s$个输入变量按照权值排序,得到$s$个变量的排名列表。
2. 对所有$p$个输出变量按照权值排序,得到$p$个变量的排名列表。
3. 以$k$个门为一组,枚举每一组中门的连接方式,得到每一组组成的输出变量的排名列表。
4. 根据原电路的输入变量排名列表,得到每一层组成的输入变量排名列表。
5. 根据第3步得到的每一组组成的输出变量排名列表,以及第4步得到的每一层组成的输入变量排名列表,计算布尔表达式,得到该组组成的输出变量到该层组成的输入变量需要的时间。
6. 对所有组成不同的方式,以及所有组成的所有层进行递归(即选出权值最小的方案),记$T_i(b)$为这$i$个门分为一组时的最小时间。得到$T'(b)$的值。

通过分析,可以发现$T'(b)$可以在多项式时间内计算出,因为$k$是一个固定的数,可以将每一组组成的输出变量的排名列表、每一层组成的输入变量的排名列表和布尔表达式的计算视为固定的操作,只要枚举每一组门的连线方式即可,枚举$k^2s^2$种情况,在固定步骤的前提下,即可计算所有情况的最小时间。所以此函数可以在多项式时间内计算出。

最后,因为NP完全问题一定可以规约成某个NP完全问题,找到以$k$个门为一组分层时的最小值$b$也是一个NP完全问题。证毕。