📅  最后修改于: 2023-12-03 15:28:37.284000             🧑  作者: Mango
这是一个关于计算机科学与技术的重要考试——GATE CS 1999的问题4的介绍,它是一道非常经典的问题,涉及到图论与算法等多个领域,对于有志于进一步学习计算机科学与技术的人来说,这个问题是不可或缺的。
在一个门控电路的实现中,任何一些输入位不能相互影响。例如,在实现一个单二输入门时,相应的表示为两个输入应该相互独立。
假设我们有一些输入变量: A1, A2………An并且明确地规定如何实现每个变量(作为单一二进制变量)以及规定门的种类,它们可以交叉地连接到电路。证明在这种情况下,它是可能实现的,必要包括存在一个方案,使得门可以被布置成二进制树的形式。
(提示:根据图形理论可行性的欧拉定理求解)
这个问题涉及到图形理论中欧拉定理的应用。在今天的计算中,门控电路多数时候是不存在限制的(也就是可以交叉地连接到电路),但是如果规定了任何一些输入位不能相互影响,那么我们需要对于输入变量进行划分,使得划分过后的所有变量两两独立,换句话说就是不存在连接。这样,我们就可以将输入变量看作点,连接看作边,构建一个图。
接下来,我们需要证明这个图是欧拉图。如果这个图是欧拉图,那么它是连通的,有欧拉回路(即有一个简单回路,其中可以经过所有边恰好一次),并且不存在度为奇数的节点。具体证明如下:
由于我们规定了每个输入变量都在电路中出现,因此所有点都在同一个联通分量中(由于每个输入变量可以交叉连接,因此我们仅考虑没有交叉连接的情况)。
对于任意顶点v,我们需要证明存在一条回路,经过所有边恰好一次。
考虑在输入变量直接的连接构成的图上进行归纳。当只有两个输入变量时,显然成立。当有三个输入变量A, B, C时,可以构造四种不同的图形:
A—B—C
|
V
A—B
\ |
\V
C
A—B
| |
V V
C D
注意这是有向图,并且图中也存在环,这里省略了指向输入变量的箭头。
这样,在由三个输入变量组成的图中,我们都可以找到一个欧拉回路。
假设我们已经证明了由k个点组成的图都存在欧拉回路,考虑k+1个点时的情况。考虑一条路径P1,连接了两个度为奇数的点v和u,其中v为当前节点。可以证明,对于所有的路径P1,都存在至少一条路径P2,它连接的两个度为奇数的点v'和u',其中v'与v在路径P1上的距离最短,u'与u在路径P1上的距离最短。考虑如果我们去掉这个路径P1,将它分为P3和P4,那么我们可以将图分为两个部分,每个部分的顶点数<=k,因此根据归纳假设,每个部分都存在欧拉回路,那么将欧拉回路重新合在一起,就可以得到含有k+1个点的输入变量组成的图的欧拉回路。
由于每个输入变量都可以出现在多个门中,因此每个点的度数都是偶数。因此,图中不存在度为奇数的节点。
综上所述,这个图是欧拉图,因此存在一个方案,可以将门布置成二进制树的形式。