be done by brute force, there are n! permutations of the vertices of a graph with n vertices. Each permutation corre sponds to a possibly unique adjacency matrix. The adja cency matrices can be linearly ordered by considering each matrix as a binary string of length n2. The first such string can then be chosen as the canoni cal label for the given graph. The problem with this method is that inhibitor supplier it involves produ Inhibitors,Modulators,Libraries cing and sorting n! strings. For example, let G1 be a graph with five vertices, v1, v5 with edges between Inhibitors,Modulators,Libraries vi and vj if i j �� 1 modulo 2. Let G2 also be a graph with vertices v1. v5 but with the edges vi, vi 1 so that we get a 5 cycle, together with an edge connecting v1 and v3. See Figure 6. Both graphs consist of five vertices, two of which have degree 3 and three of which have degree 2.

Thus, by only looking at the degrees of the vertices of these two graphs, we can not distinguish them. On the other hand, the graphs can be distinguished by finding the equitable partition of the Inhibitors,Modulators,Libraries vertex set for each graph. The unique coarsest equitable partition for G1 is. Each vertex in the first cell is connected to three vertices in the second cell, and none in the first while each vertex in the sec ond cell is connected to two vertices in the first cell and none in the second. On the other hand, the unique coarsest equitable partition for G2 is. Here, each vertex in the first cell is connected to exactly one vertex from each of the three cells. The ver tex in the second cell is connected to two from the first cell and zero from the third.

As these two equitable par titions have different shapes, G1 and G2 cannot be isomorphic. In general, equitable partitions are insufficient to dis tinguish between non isomorphic graphs and therefore insufficient to determine canonical labels for graphs. They must be used together with individualization, which can be described as follows. Inhibitors,Modulators,Libraries Suppose the partition P is not discrete, then let C be the first cell of P with more than one element. Pick an element x in C and consider the partition P formed by replacing the cell C with the two cells C\x and x. P is a refinement of P, but it is not necessarily equitable. Thus, it is necessary to find the equitable refinement of P. Continuing in this manner, it is possible to individualize and find further equitable refinements until a discrete partition is reached.

As the individualized vertices Batimastat were chosen at random, the procedure must be repeated for each possi ble choice of vertices. In this way, several discrete parti tions are produced, this is the individualization and refinement selleckchem Brefeldin A procedure used in many canonical labeling algorithms including Nauty. To finish, the algorithm must select a canonical discrete partition from among those produced by the individualization and refinement procedure. If a graph has a small automorphism group then the individualization and refinement procedure will produce only a few discrete partitions, in this case it will be rela tively easy