Efficient enumeration and hierarchical classification of ... - CiteSeerX

32 downloads 9661 Views 323KB Size Report
graph theory and are aided by computer search algorithms. ... 6855 and then 6856 single-degree-of-freedom 12-bar mechanisms using a computer program.
Mechanism and Machine Theory

Mechanism and Machine Theory 40 (2005) 1030–1050

www.elsevier.com/locate/mechmt

Efficient enumeration and hierarchical classification of planar simple-jointed kinematic chains: Application to 12- and 14-bar single degree-of-freedom chains Eric A. Butcher a

a,*

, Chris Hartman

b

Department of Mechanical Engineering, University of Alaska Fairbanks, Fairbanks, AK 99775, USA b Department of Computer Science, University of Alaska Fairbanks, Fairbanks, AK 99775, USA Received 19 May 2003; received in revised form 17 September 2003; accepted 28 December 2004 Available online 2 March 2005

Abstract An algorithm to exhaustively enumerate and structurally classify planar simple-jointed kinematic chains using the hierarchical representation of Fang and Freudenstein is proposed in which all isomorphic chains are automatically eliminated in the enumeration procedure such that isomorphism testing on the final set of chains is eliminated. An efficient rule-based technique for eliminating degenerate kinematic chains is also proposed. This efficient scheme allows for the exhaustive enumeration of complicated cases that have received little or no attention in the past due to the difficult and time-consuming aspect of testing the kinematic chains for isomorphisms. For verification, the algorithm is first applied to enumerate the single degree-of-freedom 6-, 8-, and 10-bar cases, then to the 12-bar case (for which the results verify or contradict those reported in three previous papers), and finally to the previously intractable 14-bar case.  2005 Elsevier Ltd. All rights reserved. Keywords: Planar mechanisms; Isomorphism testing; Simplified; Contracted; Monochrome graphs

*

Corresponding author. Tel.: +1 907 474 5649; fax: +1 907 474 6141. E-mail address: ff[email protected] (E.A. Butcher).

0094-114X/$ - see front matter  2005 Elsevier Ltd. All rights reserved. doi:10.1016/j.mechmachtheory.2004.12.015

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1031

Nomenclature SAM VVS D n e ni nmax nmaj n2 es ec l nb Ds Dc

stratified adjacency matrix valid vertex sequence degrees of freedom number of linkages (vertices) number of joints (edges) number of vertices of degree i maximum number of major vertices for given n, D total number of major vertices number of binary vertices number of edges of simplified graph number of edges of contracted graph length of a binary string total number of binaries added between major vertices when generating the monochrome graph degrees of freedom of the simplified graph degrees of freedom of the contracted graph

1. Introduction In the early stages of mechanical design, it is helpful to have a complete list of all possible kinematic chains with a required number of links and degrees of freedom. The systematic enumeration of planar kinematic chains with simple joints has been studied since Klein [1] first presented the complete set of 16 single-degree-of-freedom 8-bar chains. It has also been known for many years that there are 230 different single-degree-of-freedom 10-bar chains [2,3]. Recent surveys utilize graph theory and are aided by computer search algorithms. Kiper and Schian [4,5] derived 6855 and then 6856 single-degree-of-freedom 12-bar mechanisms using a computer program. Mruthyunjaya [6–8] used a method of transforming binary chains to generate the catalogue of kinematic chains with up to 10 links and 3 degrees of freedom. Sohn and Freudenstein [9] used the concept of dual graphs to establish the planar linkages with up to 11 links and 2 degrees of freedom. Tuttle and Peterson [10] proposed the symmetry group theory to synthesize 1964 kinematic chains with 12 links and 3 degrees of freedom. Later, Hwang and Hwang [11] found 6862 single-degree-of-freedom 12-bar mechanisms using a contracted link adjacency matrix. Their results differ from those in [4,5] as well as those of Srinath and Krishnamurty [12], who recently also found 6856 12-bar kinematic chains. Thus far, this represents the most complete attempt at number synthesis (the 14-bar case has not been previously addressed). The enumeration and classification of kinematic chains up to a given order presents a challenging task, however. As demonstrated in [11], the most time-consuming aspect of this problem is testing and eliminating isomorphisms. (Testing for isomorphisms required 99% of the computer time in finding the 230 10-bar chains in [11]). Although new methods for isomorphism testing have been developed, this procedure still requires the majority of the total computing time because of

1032

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

the fact that some type of unique code for each new kinematic chain must be compared with those of all previously found kinematic chains to test for isomorphisms. If the code matches that of a previously found chain, the new one is not unique and is discarded. In determining the code for a given n-link kinematic chain the n rows and columns of the corresponding adjacency matrix must be exhaustively permuted n! times. This cumbersome search process is always computationally inefficient. A technique for enumerating kinematic chains which does not require testing for isomorphisms would therefore be much more preferable. Such a technique was recently outlined by Rao and Deshmukh [13], who used a technique based on loop assortment to verify previously known results up to 10-bar and 1 degree-of-freedom. However, the use of independent loops to characterize a graph breaks down when dealing with non-planar graphs. (A planar graph is a graph which can be drawn without edge crossing.) Non-planar graphs must be used to construct planar or plane mechanisms (i.e. which involve only plane motion but whose constructive layouts on a surface may require link crossings—see [14] for further elaboration) for 10-bar and higher chains. In order to circumvent these difficulties with independent loops, we employ an alternative technique originally developed by Fang and Freudenstein [15] and described in detail in [16]. It is based on a stratified or hierarchical representation of mechanisms, from the most abstract level (the simplified graph) to an intermediate representation (the contracted graph) to the most detailed (the monochrome graph, or, for mechanisms with different types of joints, the colored graph). The kinematic chain is represented by a stratified adjacency matrix (SAM) which can be condensed into a special code called the stratified code. All structural information of the kinematic chain is readily retrievable from the SAM or stratified code, and each unique kinematic chain results in a unique SAM or stratified code. A particular sequence of the vertices of the SAM which can produce the stratified code in its canonical form is a valid vertex sequence (VVS). The VVSs can be used to efficiently enumerate all kinematic chains of a given order without doing isomorphism testing on the final set of chains by successively eliminating VVSs which do not produce the stratified code in canonical form. This is done by permutation of the rows and columns of the SAM at each stage in the hierarchy in such a way that each element on successive diagonals of the SAM is optimized sequentially to produce the canonical form of the stratified code. A derived graph which is not in the canonical form is always isomorphic to one of the derived graphs which is in the canonical form and is therefore discarded. Because the dimensions of the SAM are in general significantly less than those of a traditional adjacency matrix, these vertex permutations are far less time-consuming than are those in traditional isomorphism testing algorithms such as max Code and min Code [17,18]. And, unlike some recent algorithms for isomorphism testing [19,20], this technique is exact in the sense that neither undetected isomorphisms nor falsely identified isomorphisms can ‘‘leak through’’, even for high-order cases. This procedure was used in [15,16] to enumerate all single degree of freedom mechanisms with up to 10 links, thus reproducing previously known cases. Their work was extended, however, to enumeration of colored graphs representing mechanisms with different types of joints for these cases, and many of the corresponding mechanisms were obtained for the first time. However, their work did not specifically utilize the simplified graphs since the 17 contracted graphs for 10 links were produced directly using an ad hoc method of splitting vertices. For the case of 12 links (and higher order), however, the 97 (or more) relevant contracted graphs cannot be completely obtained in this manner. Hence, their work was not extended to 12 bars or more than 1 degree of

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1033

freedom. This method was also adopted in [12], where 6856 12-bar mechanisms were found which agreed with [4,5]. However, they enumerated 118 contracted graphs, which is more than the number necessary to find all the mechanisms, and their technique for eliminating degenerate chains was ad hoc, varying according to the order of the mechanism. Most importantly, a comparison of the numbers of mechanisms in the various link sets with those obtained in [4,5,11] was not provided, so the errors in [11] could not be precisely pinpointed. Here, we extend the method of Fang and Freudenstein [15] by directly finding all the relevant simplified graphs from which the contracted (and finally the monochrome) graphs are generated algorithmically. This algorithm is based on a set of proven theorems, and hence the enumerations obtained are complete. A major distinction with this work is a new efficient method for testing for degenerate chains which is rule-based and does not depend on the order of the chain. After testing this method by verifying previously known results, the cases of 12 and 14 bars are tackled. In the first case, the results in each of the link sets are compared with those obtained in [4,5,11] and validate the former two studies. For the 14-bar case, this study represents the first attempt at an exhaustive enumeration. In addition, for both cases we also classify the sets of simplified and contracted graphs and kinematic chains by the numbers of major vertices and edges in the simplified graph.

2. The hierarchical representation The monochrome graph of a planar simple-jointed kinematic chain contains all relevant structural information. For example, Fig. 2 shows the monochrome graph of the 12-bar kinematic chain in Fig. 1. Note that the labels indicate that only vertices 1–8 (called major vertices) are sequentially adjacent. A contracted graph is obtained from the monochrome graph by replacing

Fig. 1. A 12-bar single-dof kinematic chain.

1034

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

Fig. 2. The monochrome graph corresponding to Fig. 1.

Fig. 3. The contracted graph corresponding to Figs. 1 and 2.

each alternating sequence of distinct edges and binary vertices (called a string) by a single edge. This may result in more than one edge connecting two vertices. The contracted graph corresponding to Figs. 1 and 2 is shown in Fig. 3. Note that binary vertices 9–12 in Fig. 2 have been eliminated and replaced with a pair of second edges connecting vertices 1 with 2 and 7 with 8, respectively. The simplified graph is obtained from the contracted graph by replacing each group of multiple edges by a single edge. Hence, the number n of vertices in the simplified graph (the major vertices) is equal to the total number of vertices or links minus the binary vertices or links. The simplified graph corresponding to Figs. 1–3 is in Fig. 4. In its simplest form, the SAM is a traditional adjacency matrix for the simplified graph with each element consisting of either a 0 or 1 depending on whether the corresponding pair of vertices

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1035

Fig. 4. The simplified graph corresponding to Figs. 1–3.

are connected by an edge. Since it is a symmetric matrix with zero diagonal elements, only the n(n  1)/2 elements in the upper or lower triangular parts are required. The stratified code is obtained by concatenating into a single list the n(n  1)/2 elements of successive upper diagonals of the SAM. The 8 · 8 adjacency matrix corresponding to the simplified graph in Fig. 4 is

ð1Þ

from which the code corresponding to vertex pairs {{1, 2}, {2, 3}, . . . , {7, 8}, {1, 3}, . . . , {6, 8}, . . . , {1, 8}} is obtained as {1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} as is shown. As multiple edges are added to form the contracted graph, the 1Õs which indicated connected vertices become equal to the number of multiple edges. The 8 · 8 SAM corresponding to the contracted graph in Fig. 3 is

1036

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

2

0 2

3

0

1

0

0

0 0

0

1

0

0

0

1 0

0 1

1 0

0 1

1 0

0

0

1

0

1

0

1

0

1

0

0

0

0

0

1

0 07 7 7 0 07 7 0 07 7 7 0 17 7 1 07 7 7 0 25

0 0

0

0

1

0

2 0

62 6 6 60 6 61 6 6 60 6 60 6 6 40

ð2Þ

from which the code {2, 1, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} is obtained. To form the monochrome graph, each of these non-zero numbers become a separate list in which the non-zero number is the number of elements in the list. As binaries are added, the elements of the list are equal to the length (number of edges) of the newly formed binary strings. The monochrome graph in Fig. 2 has the 8 · 8 SAM of 3 2 fg f3; 1g f g f1g f g f g fg fg 6 f3; 1g fg f1g f g f g f g fg fg 7 7 6 6 fg f1g f g f1g f g f1g fg fg 7 7 6 7 6 6 1 fg f1g f g f1g f g fg fg 7 7 6 ð3Þ 7 6 fg f g f g f1g f g f1g f g f1g 7 6 7 6 fg f1g f g f1g f g f1g fg 7 6 fg 7 6 4 fg fg f g f g f g f1g fg f3; 1g 5 fg fg f g f g f1g f g f3; 1g fg from which the stratified code is {{3, 1}, {1}, {1}, {1}, {1}, {1}, {3, 1}, { }, { }, { }, { }, { }, { }, {1}, { }, {1}, { }, {1}, { }, { }, { }, { }, { }, { }, { }, { }, { }, { }}. For comparison, the traditional adjacency matrix for Fig. 2 is the 12 · 12 matrix 3 2 0 1 0 1 0 0 0 0 1 0 0 0 61 0 1 0 0 0 0 0 0 1 0 07 7 6 7 6 60 1 0 1 0 1 0 0 0 0 0 07 7 6 61 0 1 0 1 0 0 0 0 0 0 07 7 6 60 0 0 1 0 1 0 1 0 0 0 07 7 6 7 6 60 0 1 0 1 0 1 0 0 0 0 07 7 6 ð4Þ 60 0 0 0 0 1 0 1 0 0 1 07 7 6 7 6 60 0 0 0 1 0 1 0 0 0 0 17 7 6 61 0 0 0 0 0 0 0 0 1 0 07 7 6 60 1 0 0 0 0 0 0 1 0 0 07 7 6 7 6 40 0 0 0 0 0 1 0 0 0 0 15 0 0 0 0 0 0 0 1 0 0 1 0

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1037

3. Valid vertex sequences Consider a kinematic chain represented by an n · n SAM. In general there are n! ways of permuting the vertex labels (called vertex sequences) which result in n! different matrices. Only some of these result in kinematic chains which are identical to the original one, and such vertex sequences are called valid vertex sequences (VVSs). The VVSs can be used to efficiently enumerate all mechanisms of a given order without testing the final set of kinematic chains for isomorphisms. This is done by using the ‘‘best-only search’’. When vertices of a graph are labelled according to the best-only search routine, the rows and columns of the SAM are permuted in such a way that each element on successive diagonals of the SAM (c.f. the stratified code) is optimized sequentially to produce a canonical form. This process is repeated at each stage in the hierarchy for simplified, contracted, and finally monochrome graphs. A vertex sequence which can produce the stratified code in its canonical form is a VVS. In general, there is more than one VVS for a graph. The set of VVSs for the monochrome graph are always a subset of those for the contracted graph, while those VVSs for the contracted graph form a subset of those for the simplified graph. For example, the VVSs for the graphs in Figs. 2–4 are {{1, 2, 3, 4, 5, 6, 7, 8}, {2, 1, 4, 3, 6, 5, 8, 7}, {7, 8, 5, 6, 3, 4, 1, 2}, {8, 7, 6, 5, 4, 3, 2, 1}}. It is therefore possible to enumerate mechanisms from the most abstract to the most concrete stage by successively eliminating VVSs which do not produce the stratified code in canonical form. Since the conversion of a graph to the stratified code involves only permuting the elements, and every possible permutation of elements has to be generated from the parent graph, a derived graph which is not in the canonical form is always isomorphic to one of the derived graphs which is in the canonical form and is discarded. Therefore, isomorphism checking among the final set of kinematic chains is completely eliminated by making sure that stratified codes for derived graphs are in the canonical form. Because the dimensions of the SAM are in general significantly less than those of a traditional adjacency matrix, these repeated vertex permutations are far less time-consuming than are those in traditional isomorphism testing algorithms in which a graph with n total vertices requires n! total permutations. For example, the number of vertex permutations needed to find the stratified code for the kinematic chain in Fig. 1 is 8! = 40,320. In contrast, the min Code or max Code would require 12! = 479,001,600 permutations. In fact, this example represents the most inefficient case: since all 12-bar single degree-of-freedom kinematic chains have between 2 and 8 major vertices (which is the dimension of the SAM), the number of required permutations is usually far less than this. This computational savings allows high-order cases which are intractable using traditional algorithms to be efficiently enumerated.

4. Enumerating the link sets The first step in enumerating mechanisms for a certain number of linkages and degrees of freedom is solving GreublerÕs equation D ¼ 3ðn  1Þ  2e

ð5Þ

for the linksets that may occur where D is the number of degrees-of-freedom, n is the number of linkages (vertices in the corresponding graph), and e is the number of joints (edges in the

1038

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

Table 1 Summary of previously known single dof results verified in the present work n

Link sets

No. of graphs

n2

n3

n4

n5

6 8

4 6 5 4 Totals

2 0 2 4

0 2 1 0

0 0 0 0

1 1 1 2 4

2 2 5 9 16

10

8 7 6 7 6 5 4 Totals

0 1 3 0 2 4 6

0 1 0 3 2 1 0

2 1 1 0 0 0 0

1 1 1 1 4 3 4 15

2 8 15 3 57 95 50 230

Contracted

Chains

corresponding graph). This corresponds to finding the possible numbers ni of major vertices of degree i via [21] nD3¼

ðnDþ1Þ=2 X

ði  2Þni

ð6Þ

i¼3

in which (n  D + 1)/2 represents the maximum degree of a vertex. The above equation also gives the maximum number nmax = n  D  3 of major vertices (which occurs if all ni = 0 for i 5 3). The number of major nmaj and binary n2 vertices are then found from nmaj ¼

ðnDþ1Þ=2 X

ni

i¼3

ð7Þ

n2 ¼ n  nmaj Tables 1, 2 and 4 show the link sets for n = 6, 8, 10, 12, and 14 and D = 1 degree-of-freedom.

5. Generating the simplified graphs To generate the simplified graphs needed for n total links (vertices) and D degrees of freedom, all possible biconnected graphs are generated with nmaj vertices (where 2 6 nmaj 6 nmax) and es edges where es lies within a certain range for each nmaj. To find the lower bound of this range, a theorem from graph theory is utilized: The minimum number of edges in a biconnected simple graph is the same as the number of vertices [22]. The exception is the simple graph with two vertices, which has only one edge. Another theorem which sets a lower bound on es was derived: To generate kinematic chains with D degrees-of-freedom, the relevant simplified graphs on nmaj vertices must have total edges es P (3nmaj  D  3)/2 (see proof in Appendix A). For nmaj > 2 we have

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1039

Table 2 12-bar planar single dof kinematic chains classified by link sets as determined by Kiper and Schian (KS, 1975, 1976), Hwang and Hwang (HH, 1992), and the present analysis (BH) Link sets

No. of contracted graphs

n2

n3

n4

n5

n6

10 9 9 8 7 9 8 8 7 6 8 7 6 5 4

0 1 0 2 4 0 2 1 3 5 0 2 4 6 8

0 0 2 1 0 1 0 2 1 0 4 3 2 1 0

0 1 0 0 0 2 2 1 1 1 0 0 0 0 0

2 1 1 1 1 0 0 0 0 0 0 0 0 0 0

Totals

No. of kinematic chains KS

HH

BH

1 1 1 2 2 1 4 4 10 6 3 9 26 16 11

2 8 5 46 49 7 63 147 716 506 37 647 2339 1873 410

2 8 5 46 49 7 63 147 716 508 37 648 2343 1873 410

2 8 5 46 49 7 63 147 716 506 37 648 2339 1873 410

97

6855 + 1

6862

6856

es 6 e  n2 = e  n + nmaj = nmaj + nmax/2 since every binary vertex we eventually add will add one to the number of edges. Also, es must be smaller than the maximum number nmaj(nmaj  1)/2 of edges in a simple graph with nmaj vertices. We thus allow the range of edges to be max(nmaj, (3nmaj  D  3)/2) 6 es 6 min(e  n + nmaj, nmaj(nmaj  1)/2). For n = 12 and D = 1 (e = 16 from Eq. (1)), the vertex/edge ranges are 2 6 nmaj 6 8 and max(nmaj, 3nmaj/ 2  2) 6 es 6 min(4 + nmaj, nmaj(nmaj  1)/2), or es = 1, 3, 4–6, 6–9, 7–10, 9–11, 10–12 for nmaj = 2, 3, 4, 5, 6, 7, 8, respectively. For n = 14 (e = 19), we have 2 6 nmaj 6 10 and es = 1, 3, 4–6, 6–10, 7– 11, 9–12, 10–13, 12–14, 13–15 for nmaj = 2, 3, 4, 5, 6, 7, 8, 9, 10, respectively. To generate all simplified graphs with nmaj vertices and es edges, we place es 1Õs representing connected edges into the stratified code, which is a list of length nmaj(nmaj  1)/2 consisting of 1Õs and 0Õs obtained from the SAM by concatenating the elements of successive upper diagonals of the SAM (beginning with the first upper diagonal). Two important theorems save significant computational time by specifying exactly where in the stratified code some of the es edges must be placed: First, every biconnected simple graph with at least 5 vertices has a path with length 4 [22]. This allows us to automatically place 4 of the es 1Õs in the first 4 places in the stratified code for graphs with nmaj P 5, leaving only es  4 1Õs to place in the remaining nmaj(nmaj  1)/2  4 positions. Second, every simple graph needed to enumerate all planar n-bar kinematic chains with n < 16 has a Hamiltonian path of length nmaj  1 (see proof in Appendix B). For nmaj P 6, this result is stronger than the previous one and allows us to automatically place nmaj  1 of the es 1Õs in the first nmaj  1 places in the stratified code, leaving only es  nmaj + 1 1Õs to place in the remaining nmaj(nmaj  3)/2 + 1 positions. These are placed by generating the es  nmaj + 1 order subsets of the set with nmaj(nmaj  3)/2 + 1 distinct elements, and then placing 1Õs in the corresponding positions in the stratified code.

1040

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

As each simplified graph is generated, its valid vertex sequences (VVS) are also generated using the best-only search. The vertex sequences which result in the same stratified code in canonical form are saved to a separate file to be used later when generating the contracted and monochrome graphs. The numbers of simplified graphs corresponding to each vertex/edge pair for 12-bar kinematic chains are shown in Table 3, in which the total number of simplified graphs that were produced according to the above procedures is 783. However, the numbers in parentheses are the subset of graphs which actually create valid contracted graphs which result in non-degenerate and non-isomorphic kinematic chains, and it can be seen that there are only 55 of these. Since all of the 12-bar chains can be obtained from these 55 graphs, we shown each of them in Fig. 5 classified according to the number of vertices/edges. It should be observed that seven of these are non-planar graphs (each of which contain the graph K3,3 shown in Fig. 6(a), as a subset) from which each of the 12-bar chains requiring link crossings in their drawings are obtained. Table 5 shows the numbers of simplified graphs corresponding to each vertex/edge pair for 14bar kinematic chains. Here, 35,931 graphs were produced from which only 397 result in nondegenerate and non-isomorphic kinematic chains. In Table 5 it can be seen that the complete graph on 5 vertices K5 (which has 10 edges and is not used in the 12-bar case) is used as a simplified graph for the first time in the 14-bar case. This non-planar graph, which is shown in Table 3 12-bar planar single dof kinematic chains classified by number of vertices/edges in simplified graphs (the numbers in parentheses indicate a subset of the graphs which produce non-degenerate and non-isomorphic kinematic chains) No. of major vertices, nmaj

No. of edges, es

No. of simplified graphs

No. of contracted graphs

No. of kinematic chains

2

1

1(1)

1(1)

2

3

3

1(1)

3(3)

20

4

4 5 6

1(1) 1(1) 1(1)

5(5) 5(5) 3(3)

27 132 134

5

6 7 8 9

2(2) 3(2) 2(2) 1(1)

9(9) 8(8) 3(3) 1(1)

136 549 617 111

6

7 8 9 10

3(2) 8(5) 13(6) 12(4)

9(6) 13(13) 9(9) 4(4)

36 377 1370 1062

7

9 10 11

19(4) 47(7) 79(4)

7(5) 7(7) 4(4)

55 536 1282

8

10 11 12

37(2) 149(4) 403(5)

4(2) 4(4) 5(5)

6 52 352

783(55)

104(97)

6856

Totals

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1041

Fig. 5. The 55 simplified graphs from which all 6856 12-bar kinematic chains are derived.

Fig. 6(b), produces 54 valid kinematic chains which must be drawn with link crossings. An important theorem about non-planar graphs states that each non-planar graph contains either K5 or K3,3 as a subgraph. Finally, the graph shown in Fig. 6(c), which has 10 vertices and 15 edges, is the last simplified graph in Table 5 which produces valid 14-bar kinematic chains. Each of these 36 non-degenerate and non-isomorphic kinematic chains belong to the last (4, 10, 0, 0, 0, 0) linkset in Table 4. This graph is called the Petersen Graph, and is well-known in discrete mathematics for its special properties [23]. It is significant that the 14-bar case is the lowest order case in which the Petersen Graph is embedded into the topology of the mechanisms.

6. Generating the contracted graphs After the relevant simplified graphs have been generated, the contracted graphs are then produced by turning all possible combinations of edges into multiple edges so that the resulting contracted graph has a total of ec = e  n2 = (n  D  3)/2 + nmaj edges. The number of edges added is ec  es = e  n2  es = (n  D  3)/2 + nmaj  es using compositions of ec  es into es parts.

1042

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

Fig. 6. Non-planar simplified graphs: (a) K3,3 (b) K5, (c) Petersen graph.

They must be added such that the contracted graph has no binary vertices, since all binaries will be added in the next step when generating the monochrome graphs. For n = 12 and D = 1 (e = 16), the contracted graphs have ec = 16  n2 = 4 + nmaj edges, while the total number of valid contracted graphs is 104. Of these, 97 produce non-degenerate and non-isomorphic kinematic chains. These contracted graphs, which were also found in [4] (where they are called binding planes), are distributed among the linksets as shown in Table 2, and among the simplified graphs with common vertex/edge numbers as shown in Table 3. It should be noted that Srinath and Krishnamurty [12] generated more (118) contracted graphs than necessary for 12-bar chains because they used nmaj as a lower bound for es. The additional contracted graphs generated from the (5, 5), (6, 6), (7, 7), (7, 8), (8, 8), and (8, 9) vertex/edge categories (which produce no valid kinematic chains) brings the total number to precisely 118. For n = 14 Tables 4 and 5 show that the total number of valid contracted graphs is 1067, of which only 923 produce non-degenerate and non-isomorphic kinematic chains. When generating the contracted graphs, a list of all possible biconnected 3-vertex subgraphs (triangles) for each contracted graph is assembled and stored. This is done so that, when generating the monochrome graphs later, the binary vertices are added such that all rigid 3-bar chains are eliminated. Finally, as the contracted graphs are generated from the simplified graphs, the formerÕs VVS set is truncated to reflect the additional structure using the best-only search.

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1043

Table 4 14-bar planar single dof kinematic chains classified by link sets Link sets n2

n3

n4

n5

n6

n7

12 11 11 10 10 9 8 11 10 11 10 9 10 9 8 7 10 10 9 8 9 8 7 6 9 8 7 6 5 4

0 1 0 2 1 3 5 0 2 0 1 3 0 2 4 6 1 0 2 4 1 3 5 7 0 2 4 6 8 10

0 0 1 0 2 1 0 1 0 0 1 0 3 2 1 0 0 2 1 0 3 2 1 0 5 4 3 2 1 0

0 0 1 1 0 0 0 0 0 2 1 1 0 0 0 0 3 2 2 2 1 1 1 1 0 0 0 0 0 0

0 1 0 0 0 0 0 2 2 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

2 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Totals

No. of contracted graphs

No. of kinematic chains

1 1 1 2 2 4 2 1 4 1 7 10 2 17 26 12 2 7 24 31 18 88 107 40 4 44 130 196 100 39

2 8 8 46 49 232 180 7 63 7 306 857 79 1858 5120 2672 77 216 3083 4515 3320 28,242 44,871 15,215 302 12,117 62,854 89,338 38,098 4420

923

318,162

7. Generating the monochrome graphs After the relevant contracted graphs have been generated, the monochrome graphs are then produced by adding n2 binary vertices and edges (which comprise binary strings) so that the resulting graph has a total of n = nmaj + n2 vertices and e = ec + n2 edges. This is done by using specific rules which avoid the creation of rigid 3- and 5-chains between two adjacent major vertices. First, the length l of each binary string must satisfy 1 6 l 6 D + 2 (The length of a binary string is the number of edges between the two major vertices, which is one more than the number of binary vertices added.). Next, the total number nb of binaries added on e edges between any two major vertices must satisfy nb P 2(e  1) in order to break all 3-bar and 5-bar chains between pairs of major vertices. Also, they must be added such that all rigid 3-bar chains (triangles) in the list

1044

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

Table 5 14-bar planar single dof kinematic chains classified by number of vertices/edges in simplified graphs (the numbers in parentheses indicate a subset of the graphs which produce non-degenerate and non-isomorphic kinematic chains) No. of major vertices, nmaj

No. of edges, es

No. of simplified graphs

No. of contracted graphs

No. of kinematic chains

2

1

1(1)

1(1)

2

3

3

1(1)

4(4)

30

4

4 5 6

1(1) 1(1) 1(1)

7(7) 13(13) 6(6)

48 383 405

5

6 7 8 9 10

2(2) 3(3) 2(2) 1(1) 1(1)

29(29) 31(31) 14(14) 2(2) 1(1)

630 3282 4403 1283 54

6

7 8 9 10 11

3(2) 8(8) 13(11) 12(9) 8(5)

44(26) 76(76) 63(63) 21(21) 5(5)

248 4392 18,032 21,501 6001

7

9 10 11 12

19(12) 47(26) 79(31) 93(17)

90(67) 107(105) 60(60) 17(17)

1527 16,819 52,290 39,761

8

10 11 12 13

37(9) 149(39) 403(54) 750(33)

71(25) 110(95) 83(83) 33(33)

168 4824 35,641 63,920

9

12 13 14

398(20) 1602(43) 4536(25)

51(27) 50(48) 25(25)

396 7192 30,510

10

13 14 15

928(5) 5321(16) 21,511(18)

17(5) 18(16) 18(18)

16 410 3994

35,931(397)

1067(923)

318,162

Totals

previously stored are eliminated by adding at least one binary vertex to each triangle. While the resulting graphs will not have rigid 3-bar chains (or rigid 5-bar chains between two major vertices), they may have 5-bar and higher-order rigid chains between three or more major vertices. These graphs must also be detected and eliminated from the list of valid mechanisms. This is discussed in the next section. Finally, as the monochrome graphs are generated from the contracted graphs, the formerÕs VVS set is once more truncated to reflect the additional structure using the best-only search.

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1045

8. Eliminating degenerate chains In the process of generating the contracted graphs, the degenerate chains with 3-vertex rigid chains (triangles) and 5-bar rigid chains between two major vertices are identified and eliminated as binaries are added when generating the monochrome graphs. However, degenerate kinematic chains containing rigid chains of order 5, 7, . . . between 3 or more major vertices may remain. To eliminate these, a rule-based technique for isolating any rigid chains by successively removing binary chains was created by utilizing a theorem from [11]: If a binary chain with more than one binary link is removed from a degenerate kinematic chain, the remaining subchain is either degenerate or rigid. Another theorem which allows us to search for rigid chains based on the degree of freedom of subgraphs of the kinematic chain was also utilized: Let G be a biconnected triangle-free graph with n vertices, e edges, and D degrees of freedom. If G contains a vertex v of degree k and a rigid subgraph G 0 not containing v, then D 6 n  2k  3 (see proof in Appendix C). Based on these theorems, an algorithm was written to isolate and detect degenerate chains. It is briefly outlined as follows. If the mechanism contains a binary chain with more than one binary link, remove the chain from the mechanism. By direct application of the first theorem above, the deletion of such chains does not make a degenerate kinematic chain into a non-degenerate one. Let D be the degrees of freedom of the resulting mechanism. If D 6 0, the resulting kinematic chain contains a rigid chain, and therefore the original kinematic chain is degenerate. If D > n  7 then the second theorem above (with k P 2) implies that the kinematic chain contains no rigid subchains, and therefore the original mechanism is not degenerate. If no decision has yet been made, repeat the deletion of other binary chains with more than one binary link. When this process cannot continue (because there are no more binary chains with more than one binary link), make the following test: If D > n  9 the mechanism is not degenerate by the second theorem above with k P 3 (see comments at the end of Appendix C), and thus the original mechanism was not degenerate. Otherwise, to further check for degeneracy, generate the set of all kinematic chains possible by removing single binary vertices from the current mechanism, and check all of these (using this algorithm recursively) to see if they are degenerate. If none of them are, then the original mechanism contains no rigid subchains and is not degenerate. If any of the new kinematic chains are degenerate or rigid, then so was the original mechanism. When programming this algorithm, the most complex step is the deletion of binary chains. Care must be taken, for instance, to ensure that if a binary chain incident to a major vertex of degree three is deleted, then that major vertex becomes a binary vertex. Also, the graph may become trivial (say, a cycle). It is probable that mistakes in the implementation of this part of the algorithm caused the incorrect results in [11] in some of the linkset categories. To find the rigid chains, it is not necessary to know the highest order of rigid chain which may occur. However, it can easily be shown using an extension of Theorem 2 in [11] that, if the number of binary links in each binary string of a n-bar D-degree-of-freedom kinematic chain is not more than D + 1, the highest order rigid chain it may contain has n  4  D links. For n = 12 and D = 1, this means that the algorithm must detect 5- and 7-bar rigid chains, while 9-bar rigid chains must be included for n = 14. First, the previously known results for lower order chains in Table 1 were tested using this algorithm. This code was then implemented to produce the list of nonisomorphic non-degenerate kinematic chains for n = 12 and n = 14 in Tables 2–5.

1046

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

9. Twelve and 14-bar results Computer programs using the algorithms discussed above were written in both Mathematica and C++. The results of the two programs were compared with each other and against previously known results. The Mathematica and C++ results for the 12- and 14-bar cases shown in Tables 2– 5 are identical. Cpu times for the two programs are shown in Table 6. (The two programs were run on separate PCs with speeds as shown beneath Table 6.) The required simplified and contracted graphs for the 14-bar case were only produced in C++. While obtaining these graphs was intractable time-wise using Mathematica and the generation of the corresponding monochrome graphs (using the C++ results for the contracted graphs) stretched the performance limit of the Mathematica program both in terms of time and memory, the C++ program easily accommodated this case within a reasonable time. It is seen in Table 2 that the number of 12-bar kinematic chains (which totals 6856) found in the present analysis agrees exactly with those of Kiper and Schian [4] (in which the total number of 12-bar chains was reported to be 6855) for all but one of the 15 linkset categories. This (7, 2, 3, 0, 0) category differs from the present results by one. In their second paper, Kiper and Schian [5] found an additional 12-bar chain, thus bringing their total to 6856. Although the linkset category of this last mechanism was not clearly stated, it is reasonable to suppose that it belonged to (7, 2, 3, 0, 0) which makes the results match perfectly with the present ones. The differences from those in [11] occur in two linksets, (6, 5, 0, 1, 0) and (6, 4, 2, 0, 0), in which they reported finding six additional chains. As in [12] (which also reported 6856 12-bar chains but did not enumerate the chains in the separate linksets), the present results thus appear to validate the earlier results of Kiper and Schian [4,5], implying that the higher numbers obtained by Hwang and Hwang [11] include either isomorphic or degenerate kinematic chains. Since the authors claimed to have performed exhaustive isomorphism checking on all of their kinematic chains, it is more likely that their code to detect degenerate subchains was not effective for six kinematic chains in these cases. Table 3 shows the distribution of the 6856 12-bar chains among the simplified graphs with common vertex/edge numbers. In Tables 4 and 5, the 318,162 14-bar kinematic chains found using the present algorithm are shown according to linksets and numbers of vertices/edges in the simplified graphs. We believe that this represents the first attempt at exhaustive enumeration of 14-bar kinematic chains. Finally, a complete list of all 6856 12-bar chains that were found here is available for examination at http://www.cs.uaf.edu/~hartman/12barchains. The mechanisms are classified by their linksets and Table 6 Cpu times to generate the various graphs for the 12- and 14-bar cases Number of bars 12 14 *

Program

Simplified graphs *

Mathematica C++* Mathematica* C++*

5 h

Contracted graphs

Monochrome graphs

30 s 6 min Only total time determined (used C++ results) 48 h* Only total time determined

Total 5 h 10 s 48 h 15 min

Mathematica program run on PC with Linux, 850 MHz cpu and 512 MB SDRAM. C++ program run on PC with Windows, 1.3 GHz cpu. Mathematica program for 14 bars had to be run in two separate parts (and the results combined) due to insufficient memory for a single run.

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1047

are listed both as a stratified code and as a traditional adjacency matrix. The authors will be preparing a similar website for the 14-bar case.

10. Conclusions An algorithm has been shown to enumerate and structurally classify planar simple-jointed kinematic chains using the stratified or hierarchical representation of Fang and Freudenstein [15]. This procedure does not require isomorphism testing on the final set of kinematic chains. During the direct enumeration of the simplified and contracted graphs from which the graphs of the kinematic chains are built up, valid vertex sequences are created and repeatedly truncated to reflect the increasing structure. In the process, all isomorphic chains are automatically eliminated. An efficient rule-based technique for eliminating degenerate kinematic chains has also been shown. This efficient scheme thus allows for the exhaustive enumeration of complicated cases. In addition, a system of structural classification of the kinematic chains based on a hierarchy of graphs from the most general to the most specific is also produced. Results for the exhaustive enumeration of 1 degree-of-freedom 12- and 14-bar kinematic chains have been shown. The technique for mechanism enumeration used here is also appropriate for discovering higher order 1 dof (e.g. 16-bar) and multi-dof mechanisms; the authors are currently extending this work in these areas.

Appendix A Theorem 1. To generate kinematic chains with D degree-of-freedom, the relevant simplified graphs on nmaj vertices must have total edges es P (3nmaj  D  3)/2. Proof. Consider simplified graphs with nmaj vertices and es edges. Applying GreublerÕs equation yields Ds = 3(nmaj  1)  2es degrees-of-freedom in the simplified graph. To generate contracted graphs, a certain number ec  es of edges is added in parallel to existing edges. Each added edge causes two to be subtracted from Ds, hence the degrees-of-freedom becomes Dc = 3(nmaj  1)  2ec. To generate monochrome graphs, n2 binary vertices are added so as to avoid the creation of rigid subchains. This means that at least two binary vertices must be added for each of the ec  es edges that were added to create contracted graphs. Since each added binary vertex also adds one edge, at least two is added to Dc for each of the ec  es edges. Hence the degrees-of-freedom of the kinematic chain is D P 3(nmaj  1)  2ec + 2(ec  es) = 3(nmaj  1)  2es = Ds or always greater than or equal to the degrees-of-freedom of the simplified graph. Solving for es, we see that the number of edges in the simplified graph must satisfy es P (3nmaj  D  3)/2. h Appendix B Theorem 2. Every simple graph needed to enumerate all mechanisms with total number of vertices n < 16 has a Hamiltonian path of length nmaj  1.

1048

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

Fig. 7. Biconnected simple graphs with 6 vertices that do not have Hamiltonian paths.

Proof. Since every biconnected simple graph with at least 5 vertices has a path with length 4, the fewest number of vertices of a simple graph which does not have a path of length nmaj  1 is nmaj = 6. There are two biconnected simple graphs with 6 vertices which do not have Hamiltonian paths. These graphs, shown in Fig. 7, contain es = 8 and 9 edges, respectively. Since they each have 4 isolated binary vertices (which must become major vertices when generating the contracted graphs), a minimum of 4 additional edges are required to generate valid contracted graphs, thus bringing the minimum number of edges in the contracted graphs to ec = 12 and 13, respectively. A certain minimum number n2 of binaries vertices must then be added when generating the monochrome graphs to ensure that the mechanism is not rigid. Since each additional binary also increases the number of edges by one, applying GreublerÕs equation yields D = 3(6 + n2  1)  2(ec + n2) = n2  2ec + 15 P 1. Hence, the minimum number of binary vertices is n2 = 10 and 12 for ec = 12 and 13, respectively, and the total number of vertices is 16 and 18. It is sufficient to investigate only the graphs in Fig. 7 since biconnected simple graphs with nmaj > 6 that do not have Hamiltonian paths will be relevant only for mechanisms with n P 16. To show this, consider adding x additional binaries to one of the simple graphs in Fig. 7. This increases both nmaj and es by the same amount. If they are added such that each binary string has length 2 or 3, then only four additional edges are still required to generate the contracted graphs; hence both nmaj and ec increase by the same amount. The net effect in GrueblerÕs equation is to add x so that x may be subtracted from the previous value of n2 (before adding the additional binaries to the simplified graph). Hence, the total number of vertices (nmaj + n2) is the same. If the binaries are added such that a string has length greater than 3, or if more independent loops are formed when generating the simplified graphs, then the increase in nmaj is less than that in ec so that the total number of vertices is larger. h

Appendix C Theorem 3. Let G be a biconnected triangle-free graph with n vertices, e edges, and D degrees of freedom. If G contain a vertex v of degree k and a rigid subgraph G 0 not containing v, then D 6 n  2k  3.

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

1049

Proof. Let G, v, and G 0 be as in the hypothesis, and let G 0 have n 0 vertices, e 0 edges, and D 0 6 0 degrees of freedom. First, note that by removing v (and its incident edges) from G we get a connected graph H with n  1 vertices, and e  k edges. Consider a spanning tree of G 0 extended to a spanning tree H. By repeatedly removing leaves (each of which removes at least one edge also) to get from H to G 0 , we see (e  k)  e 0 P (n  1)  n 0 . (The number of edges removed is at least the number of vertices removed.) Rewriting and multiplying by two, we have 2e  2n P 2e 0  2n 0 + 2k  2. Assume (for an eventual contradiction) that D > n  2k  3. GrueblerÕs equation for G then gives us 3n  2e  3 = D > n  2k  3, that is, 2n  2e + 2k > 0. Adding this to the previous equation, we obtain 2k > 2e 0  2n 0 + 2k  2, i.e. 2 > 2e 0  2n 0 . Adding 3n 0  2e 0  3 = D 0 6 0 (GrueblerÕs equation for G 0 ) we find 2 > n 0  3, that is, n 0 < 5. The only rigid graph on fewer than 5 vertices is the triangle, but this contradicts the hypothesis that G is triangle-free. Thus, the assumption above is wrong and we have D 6 n  2k  3. Note that this theorem implies a degenerate mechanism always satisfies D 6 n  7 (since biconnectedness implies k P 2). Additionally, when a degenerate mechanism contains no binary chains with more than one binary link, any rigid subgraph must leave out at least one major vertex (since removal of a single binary vertex along with the two incident edges increases D by GrueblerÕs equation). Choosing this vertex as v in the hypothesis gives us k P 3 and therefore D 6 n  9. h References [1] A.W. Klein, Kinematics of Machinery, McGraw-Hill, New York, 1917. [2] T.H. Davies, F.E. Crossley, Structural analysis of plane linkages by FrankeÕs condensed notation, J. Mech. 1 (1966) 171–183. [3] L.S. Woo, Type synthesis of plane linkages, ASME J. Eng. Indus. 89 (1967) 159–172. [4] G. Kiper, D. Schian, Die 12gliedrigen Gr ublerschen kinematischen ketten, VDI-Z 117 (1975) 283–288. [5] G. Kiper, D. Schian, Sammlung der Grublerschen kinematischen ketten mit bis zu zwolf gliedern, VDI-Z 118 (1976) 1066. [6] T.S. Mruthyunjaya, A computerized methodology for structural synthesis of kinematic chains, part 1, Mech. Mach. Theory 19 (1984) 487–495. [7] T.S. Mruthyunjaya, A computerized methodology for structural synthesis of kinematic chains, part 2, Mech. Mach. Theory 19 (1984) 497–505. [8] T.S. Mruthyunjaya, A computerized methodology for structural synthesis of kinematic chains, part 3, Mech. Mach. Theory 19 (1984) 507–530. [9] W.J. Sohn, F. Freudenstein, An application of dual graphs to the automatic generation of the kinematic structures of mechanisms, ASME J. Mech., Transmissions, Automat. Des. 108 (1986) 392–398. [10] E.R. Tuttle, S.W. Peterson, in: Proc. 10th Appl. Mech. Conf., New Orleans, LA 1987. [11] W.-M. Hwang, Y.-W. Hwang, Computer-aided structural synthesis of planar kinematic chains with simple joints, Mech. Mach. Theory 27 (1992) 189–199. [12] J. Srinath, S. Krishnamurty, Modified standard codes in enumeration and automatic Sketching of mechanisms, in: Proc. 4th Appl. Mech. Robotics Conf., Cincinnati, OH, 1995. [13] A.C. Rao, P.B. Deshmukh, Computer aided structural synthesis of planar kinematic chains obviating the test for isomorphism, Mech. Mach. Theory 36 (2001) 489–506. [14] N.P. Belfiore, A brief note on the concept of planarity for kinematic chains, Mech. Mach. Theory 35 (2000) 1745– 1750. [15] W.E. Fang, F. Freudenstein, The stratified representation of mechanisms, ASME J. Mech. Des. 112 (1990) 514– 519.

1050

E.A. Butcher, C. Hartman / Mechanism and Machine Theory 40 (2005) 1030–1050

[16] W.E. Fang, A hierarchical methodology for the creative design of mechanisms, PhD dissertation, Columbia University, 1989. [17] A.G. Ambekar, V.P. Agrawal, On canonical numbering of kinematic chains and isomorphism problem: max Code, in: Proc. ASME 86-DET-169, Columbus, OH, 1986. [18] A.G. Ambekar, V.P. Agrawal, Canonical numbering of kinematic chains and isomorphism problem: min Code, Mech. Mach. Theory 22 (1987) 453–461. [19] V.P. Agrawal, J.N. Yadav, C.R. Pratap, Link-center and indexes of a kinematic chain, in: Proc. ASME 22nd Mech. Conf., DE 46, AZ, 1992. [20] J.N. Yadav, C.R. Pratap, V.P. Agrawal, Detection of isomorphism among kinematic chains using the distance concept, ASME J. Mech. Des. 117 (1995) 607–611. [21] F.R.E. Crossley, A contribution to GrueblerÕs theory in the number synthesis of plane mechanisms, ASME J. Eng. Indust. (1964) 1–8. [22] D.B. West, Introduction to Graph Theory, Prentice Hall, Upper Saddle River, NJ, 1996. [23] D.A. Holton, J. Sheehan, The Petersen Graph, Cambridge University Press, Cambridge, 1993.