Раздел I АРХИТЕКТУРА САПР
УДК 681.3-519.8
Victor М. Kureichik A Graph Isomorphism Algorithm for Regular VLSI Structures
Abstract
The problem of object identification is very important for information systems. To address this problem, it is necessary to solve the problem of testing for the isomorphism of graphs/hypergraphs. There exists many efficient algorithms for isomorphism testing of nonhomogeneous (non-regular) graphs. On the other hand, models of subsystems such as memories, regular electronic structures, networks, and connection machines are homogeneous graphs with possibly automorphic subgraphs. Using the above mentioned algorithms for this class of system can lead to exponential running time. To resolve this situation, an efficient and accurate algorithm is presented.
1. Introduction
Designers need effective tools for VLSI structure identification and verification. A structure is usually described In the form of a graph or hypergraph (a network or a netlist). Such tools should analyze two given netlists and indicate'whether or not they represent the same structure. They should produce the correspondence, component and net mappings, or the differences between the netlists. As far as hypergraphs are concerned, the corresponding bipartite graph can be formed for any hypergraph [1], thereby reducing the task to a well-studied graph isomorphism problem. Note that many other engineering problems also belong to this class (e.g., some pattern recognition problems). Most efficient algorithms for solving the graph isomorphism problem exploit the idea of a partition refinement [1], [2], [3]. These algorithms are quite fast for graphs with no ambiguous partition situations (non-trivial automorphisms or graph regularities (homogeneities) that lead to insufficient initial discrimination). For instance, an algorithm [4] runs for such graphs in 0(\E\log(\V\)) time, where \E\ is the number of edges in the graph G=(V,E) and |V| is the number of vertices.
Many modem VLSI design paradigms use uniform, regular structures. The graphs of such structures contain regular parts (subgraphs) [5], and using the above mentioned algorithms can result in exponential running time [1]. An efficient and accurate algorithm for testing for the isomorphism of pairs of graphs is presented in this work. This algorithm allows for the testing for the isomorphism for completely and partially homogeneous graphs. The algorithm is based on using the "force placement" of a graph's vertices [6]. The time complexity of the algorithm is 0(\E\\V\) for the graphs with no automorphisms (non-trivial automorphisms). In addition, a modification of the algorithms [2] and [7] allows a decrease in running time for the graphs which contain nontrivial automorphisms. The modification uses a special search, based on an assumed isomorphism of the vertices in selected subsets, and a partition of these vertices into levels according to their adjacency. Then, an isomorphism is proven or disproven through a comparison of the inter-connectivity of the vertices within each subset, and a comparison of the inter-connectivity between each subset. For the worst case, the exhaustive search
with time complexity 0(\V\!) is decreased to 0(kl), where k is the number of vertices in the largest subset.
2. Definitions
Let G=(V,E) and G'=(V\E') be two undirected graphs which have neither multi (parallel) edges nor self loops where V and V are the vertex sets and E and E' are their edge sets respectively. Two graphs are sard to be isomorphic if and only if there exists a one-to-one function /mapping the vertices of G onto the vertices of G1 that preserves adjacency; that is, vl and v2 are adjacent in G if and only if vi -f(vi) and v2-f(v2) are adjacent in G' In other words, there exists an equivalence relation VoV, EoE', such that if edge (vi,v2) is equivalent to (vi'.vty. (vi,v2)0(vr,v2‘), vieV, V2eV, vi'eV, V2'eV’, then viovi1, V20V21. This is the equivalence relation which we will denote as GoG'.
3. An Isomorphism Test for Homogeneous Graphs
Here we will consider homogeneous graphs. We assume that ||V|=|V'|, |E|=|E'| and the vertex degrees are the same in V and correspondingly in V, that is, p(i)=p(i')=co«$f 0= 1 ,...,IVI), where p(i) is the degree of vertex i.
A complete search—consideration of every possible pairing of the vertex sets of the two homogeneous graphs—requires 0(n!) operations, where n is the number of vertices in either graph. We propose, as an outgrowth of concepts set forth in [5],[7], a new approach based on establishing a correspondence between parts of the two graphs. The approach is described below by discussing two examples.
Example 1. Consider the two homogeneous graphs, G=(V,E), G'=(V',E'), 1V|=|V'|=6, |E|=|E'|=9, p(i)=p(i')=3 (i=l,...,6) given by the adjacency
matrixes
R
We are concerned with vertex adjacency relations, it is reasonable to associate with a vertex a two-part partition of the other vertices in the graph, one part containing those vertices adjacent to it and the other part containing the remaining vertices. Let choose randomly one vertex from G and one vertex from G', for example vertex 1 and 1' respectively, and create the two-part partition
{1} {2,4,6} 1+ {3,5},-.
{!'} {W},'* {3\5'}r.
where index 1+ denotes that vertices 2,4,6 are adjacent to vertex I in graph G and index I- denotes that vertices 3,5 are not adjacent to vertex I. The same notations were used for graph G'.
First, we suppose that lol'. In the two-part partition, we choose a subset with the minimum cardinality (number of vertices) and compare adjacency of vertices in this subset. In our example, vertex 3 is not adjacent to vertex 5 and vertex 3' is adjacent to vertex 5’. Therefore, vertex 1 cannot be isomorphic to vertex 1'.
Second, we suppose that lo2'. Then,
{1} {2,4,6} {3,5} i-
{2'} {r,3',6'}r+ {4\5'}r.
In this partition, vertex 3 is not adjacent to vertex 5 and vertex 4' is adjacent to vertex 5’. Therefore, vertex 1 cannot be isomorphic to vertex 2'. Suppose that lo3', then
1 2 3 4 5 6 Г V 3' 4' 5' 6'
1 0 1 0 1 0 1 г 0 1 0 1 0 1
2 1 0 1 0 1 0 2' 1 0 1 0 I 0
3 0 1 0 1 0 1 So II <*> 0 1 0 1 0 1
4 1 0 1 0 1 0 4' 1 0 1 0 1 0
5 0 1 0 1 0 1 5' 0 1 0 1 0 1
6 1 0 1 0 1 0 6' 1 0 1 0 1 0
{1} {2,4,6} l+ {3.5),.
{31) {2',4.i,5')4+ {1\6'}4,
Here vertex 3 is not adjacent to 5 and 21 is adjacent to vertex 61. Therefore vertex I
cannot be isomorphic to
(1} {2,4,6} ,♦ {3,5} i-
{5’} {3\4\6'},+ {l',2'}j-
Here vertex 3 is not adjacent to 5 and I1 is adjacent to vertex 2'. Therefore vertex I
cannot be isomorphic to vertex 5'.
Suppose that lo6\ then
{1} {2,4,6} {3,5},.
{6'} {r,2\5'},+ {3\4'}~
Here vertex 3 is not adjacent to 5 and 3' is adjacent to vertex 4'. Therefore vertex I
cannot be isomorphic to vertex 6'.
So graphs G and G' are not isomorphic.(Fig.l., Fig.2.)
Fig. 2
2. Consider again two homogeneous graphs given by their adjacency matrixes, in this case
1 2 3 4 5 6 1' 2' 3' 4' 5' 6'
1 0 1 0 1 0 1 г 0 0 0 1 1 1
2 1 0 1 0 1 0 2' 0 0 0 1 1 1
3 0 1 0 1 0 1 R' = 3' 0 0 0 1 1 1
4 1 0 1 0 1 0 4' 1 1 1 0 0 0
5 0 1 0 1 0 1 5' 1 1 1 0 0 0
6 1 0 1 0 1 0 6' 1 1 1 0 0 0
It is seen that graph G coincides with graph G from example 1. Let us again choose randomly vertices I and 1' in G and O' And perform the two-part partition
{1} {2,4,6}i+ {3,5}.-{1'} 14\5',6V+ {2\3’}.- „ j L L
After comparing the adjacency of vertices 3 and 5, and of 2' and 3, we find that they are not adjacent. Consequently, vertex I might be isomorphic to vertex I'. So, we continue partitioning
{1} {3},. {{2,4,6}*},* {{5}э-}|+
{•'} {2'}i - {{4',адг+}|ч {{3*}2’-}г-
Suppose that 2о4'
{1} {3}j- {{2}J+},+ {{{4,6}2-}з+}н {{{5}j+},.},.
{Г} {2'}|.{{4'}г+}|ч {{{5\6Vb'+}i4 { {{5}«•♦}*.}■■.
Suppose that 4о5', then
{1} {3} 1- {{2}3+} 1+ {{{4}2-}3+} 1 +
{{{{6}4-}2-}3+}l+ {{{{5}4-}2+}3-}1-
{Г){2’)Г- {{4’}2’+} Г+ {{{5’}4’-}2’+}Г+
{{{{6’}5’-}4’-}2’+}Г+ {{{{3’}5’-}4’+}2’-} 1’-
So graph G is isomorphic with graph G\ GoG’. The math, based upon permutation of the verttices of G’ can be written as a follows:
12 4 6 3 5
Г 4’ 5’ 6’ T 3’.
This partitioning sheme is the principal construct in our algorithm (Fig.3, Fig. 4).
4. Algorithm
Select one vertex v from the first graph Gl (any type of signature [1] can be used to reduce the number of vertices with the same signature); form initial lists of fixed vertices for graph Gl and G2: FIXI={v},FIX2=III.
Determine the force placement PI of the vertices of Gl with the fixed vertices FIX I [1,6].
Form the list W of the vertices from the second graph G2 which have Uie signature coinciding with the signature of v.
If w is empty, then stop-the graphs are not isomorphic Add any vertex weW to FIX2 and delete w from W: W=W\w Determine the force placement p2 of the vertices of graph G2 with the fixed vertices FIX2 W.
If PI is not equal to P2, then go to 4.
If P1 contains two vertices with the same coordinates of the placement, then go to 11.
IT
3+
о
ь
©
Зщое 1 ч мапс^ио Г Э1о2’
3
Sunned is isamfhicto Г 3 to 2’
5 to3"
G is isomorphictoG’
J1 2 3 4 5
t = {\' 4' 2' 5 3'
Fig. 4
If the one-to-one mapping of the vertices ot Gi onto the vertices of G2, according to the force placement, does not preserve adjacency, then go to 4.
Stop-the graphs are isomorphic.
The modeled procedure (Section 3) • that treats the subgraphs with non-trivial automorphisms (these subgraphs correspond to the groups of vertices with the same
coordinates). The procedure finds a mapping for the vertices with non-trivial
automorphism.
Add the vertices to FIX I and FIX2, respectively, and go to 2.
Let us consider an example with the non-trivial automorphism described in [1]. See Fig S. We choose vertex I from G and vertex g (which has the same degree) from G'. Then we fix these vertices and put equal forces F to all other vertices. We obtain two force placements. See Fig. 6 and Fig.7. Coordinates of vertices are different, so we fix vertex a from G’. See Fig. 8. Vertices 3 and 4, c and d have the same coordinates. For these groups we use the algorithm for homogeneous graphs (section 3).
6^
6',
CXI>-©-(iXZ>©
F*6 d
GKIKD-©-<EK*)
Fig. 7
©<E>-6-©-©-®
Fig. 8
5. Conclusions
This isomorphism algorithm has been realized as C program on an MS-DOS (PC) system. It is of considerable intertest that our tests have shown this to be a rather pessimistic bound. We have considered ten randomly generated homogeneous graphs and these graphs after a random permutation of their vertices. In the table below the experimental data are presented.
n Degre e t, seconds
6 3 0.0005
10 3 0.1
17 6 0.12
20 10 0.15
30 10 0.35
40 10 0.81
50 10 2.01
60 10 3.42
70 10 4.07
100 20 16.01
On the basis of these data, we found that the time complexity of the algorithm is approximately 0(nJ). Additionally, for a "difficult case" [7], i.e., graphs with many automorphic groups, we obtained a result after 0.05 seconds. These graphs, given in the form of adjacency lists where
G: 1(3,4,10); 2(4,5,6); 3(1,5,7); 4(1,2 8); 5(239); 6(2,7,10); 7(3,6,8); 8(4,7,9); 9(5,8,10); 10(1,6,9)
G’: r(2\6',8'); 2,(r,3'9'); 3,(2,,4',7'); 4'(3\5',8'); 5'(4,,6,,9'); 6,(r,5,,7'); 7,(3',6M0’); 8'(r,4',10'); 9',(2,,5,,10'); 10'(7’,8').
The isomorphism identified was:
lol’; 2o5’; 3o2'; 4o6'; 5o9'; 6o4'; 7o3'; 8o7'; 9ol0'; 10o8'.
The force placement algorithm has the time complexity o(n2) [for many practical graphs 0(n)]. The developed algorithm brings about a complexity reduction from 0(n!) to
0(k!), where k is the number of vertices in the largest automorphic group. If the graph has no automorphic groups, then the time complexity of the described algorithm is 0(n3) [for many practical graphs 0(n2). The force placement algorithm finds the same vertex coordinates for each automorphic group of vertices. In this case, for each such group we use the algorithm for homogeneous graphs (subgraphs).
One additional advantage of the algorithm is that it can show the "places" where differences exist when graphs do not match. The algorithm was tested on large sets of randomly generated graphs. The algorithm was found to be much more efficient than previous methods, based only on partitioning of vertices, without compromising its accuracy.
References
1. Physical Design Automation of VLSI Systems, Edited by B.T. PREAS and MJ. LORENZETTI, The Benjamin/Cummmgs Publishing Company, Jnc., 1988.
2. TETELBAUM A. Y., KUREICHIK V. M. CRAPH Izomorfizm Algoritm for Regular VLSIOSTRUCTUREC, 28th Annual canf of Iss', DRINCETON, USA, march, 1994.
3. READ, R.C. and D.G. CORNEIL, "The graph isomorphism disease," Journal of Graph Theory, 1,1977, pp. 339-363.
4. KUBO, N.. SHIRAKAWA, 1. and OZAKI, H„ "A fast algorithm for testing graph isomorphism", in Proc. Intl. Symposium Circuits and Systems, pp. 641-644,1979.
5. OHLRICH, M., C.EBELING, E.GINTING, and L.SATHER, "SubGemmi: Identifying Subcircuits using Isomorphism Algorithm", in Proc. 30th ACMJIEEEE Design Automation Conf. 1993, pp. 31-37.
6. TETELBAUM, A.Y., "Optimal Placement of Components and Public Pins", Electronic Design Automation, Kiev, No. II, 1975.
7. KUREICHIK, V.M., and BICKART, T.A., "An isomorphism test for homogeneous graphs", Proc. 1979 Conference on Information Science and Systems, The Johns Hopidns University, Baltimore, MD, March 1979.
w 658.512.2
SangYong Han
Reduction of clock skew with selected nets in high performance CMOS VLSI
Clock skew minimization in high speed VLSI synchronous systems is extremely important, and significant research interest in clock distribution networks exists "within both the industrial and academic communities. The large die size, deterioration in interconnect performance in sub_micron process and high frequency makes the clock design and implementation a major challenge. In this paper, we describe an implementation of a multi-level balanced clock-free distribution scheme that improves the performance considerably. The focus of this clock-tree distribution scheme is to .balance the loading and allocate interconnect delay optimally to take advantage of ”self_adjusf' aspect of clock tree into account. Optimal delay allocation among the clock nets do not need to balance all the nets, which use more wires and may cause problem in dense chip.