The La Plata Mountains as seen from above the author’s
            home.


Durango Bill's

Enumeration of Unlabeled Graphs



Enumeration of Structurally Different Unlabeled Graphs

Some of the
            possible subgraphs within an unlabeled graph system

   An unlabeled graph may have an arbitrary number of vertices with none, one, or more edges connecting some or all of the vertices. A graph may have several separate (not connected) subgraphs in the system.

   The chart above shows a graph containing 10 vertices and 11 edges. Four of the vertices are connected by 3 edges to form a tree. 5 more vertices are connected by 8 edges to form another subgraph that has multiple cycles. (You can travel along some (or all) the edges and return to your starting point.) Finally, vertices do not have to be connected to anything.

   In any generalized graph system containing "V" vertices, there are potentially COMBIN(V, 2) edges that could be drawn. If we select any "E" of these for our graph, then there are COMBIN(COMBIN(V, 2), E) potential graph systems that could be drawn. A difficult problem in combinatorics is to calculate how many of these are structurally different.

   The table below shows all combinations up to 13 vertices.

   A typical row in the table translates as follows. If you have 2 edges and only 2 vertices, no graph is possible. If you have 2 edges and 3 vertices, 1 graph is possible. (Start at any vertex, draw the first edge to another vertex, and draw the 2nd edge to the remaining vertex. With 4 or more vertices, 2 structurally different graphs are possible. Each of the edges could connect a separate pair of vertices, or the edges could form a chain leaving one (or more) vertices unused.

   At the end of the table I have included an outline on how to calculate these results. However, a full description of the process would require many pages explaining "Why" various calculations are being made.    
 
 
Number of structurally different unlabeled graphs for "V" vertices and "E" edges
Computer Program by Bill Butler

Number
of                   <----------   Number of Vertices     ----------->
Edges   2  3  4  5   6     7      8       9         10            11              12                 13
-------------------------------------------------------------------------------------------------------
   0    1  1  1  1   1     1      1       1          1             1               1                  1
   1    1  1  1  1   1     1      1       1          1             1               1                  1
   2    0  1  2  2   2     2      2       2          2             2               2                  2
   3    0  1  3  4   5     5      5       5          5             5               5                  5
   4    0  0  2  6   9    10     11      11         11            11              11                 11
   5    0  0  1  6  15    21     24      25         26            26              26                 26
   6    0  0  1  6  21    41     56      63         66            67              68                 68
   7    0  0  0  4  24    65    115     148        165           172             175                176
   8    0  0  0  2  24    97    221     345        428           467             485                492
   9    0  0  0  1  21   131    402     771      1,103         1,305           1,405              1,446
  10    0  0  0  1  15   148    663   1,637      2,769         3,664           4,191              4,435
  11    0  0  0  0   9   148    980   3,252      6,759        10,250          12,763             14,140
  12    0  0  0  0   5   131  1,312   5,995     15,772        28,259          39,243             46,415
  13    0  0  0  0   2    97  1,557  10,120     34,663        75,415         119,890            154,658
  14    0  0  0  0   1    65  1,646  15,615     71,318       192,788         359,307            517,121
  15    0  0  0  0   1    41  1,557  21,933    136,433       467,807       1,043,774          1,711,908
  16    0  0  0  0   0    21  1,312  27,987    241,577     1,069,890       2,911,086          5,546,619
  17    0  0  0  0   0    10    980  32,403    395,166     2,295,898       7,739,601         17,422,984
  18    0  0  0  0   0     5    663  34,040    596,191     4,609,179      19,515,361         52,664,857
  19    0  0  0  0   0     2    402  32,403    828,728     8,640,134      46,505,609        152,339,952
  20    0  0  0  0   0     1    221  27,987  1,061,159    15,108,047     104,504,341        420,048,805
  21    0  0  0  0   0     1    115  21,933  1,251,389    24,630,887     221,147,351      1,101,083,128
  22    0  0  0  0   0     0     56  15,615  1,358,852    37,433,760     440,393,606      2,739,261,020
  23    0  0  0  0   0     0     24  10,120  1,358,852    53,037,356     825,075,506      6,461,056,816
  24    0  0  0  0   0     0     11   5,995  1,251,389    70,065,437   1,454,265,734     14,441,470,390
  25    0  0  0  0   0     0      5   3,252  1,061,159    86,318,670   2,411,961,516     30,583,652,956
  26    0  0  0  0   0     0      2   1,637    828,728    99,187,806   3,765,262,970     61,372,294,334
  27    0  0  0  0   0     0      1     771    596,191   106,321,628   5,534,255,092    116,724,411,757
  28    0  0  0  0   0     0      1     345    395,166   106,321,628   7,661,345,277    210,474,287,115
  29    0  0  0  0   0     0      0     148    241,577    99,187,806   9,992,340,187    359,954,668,522
  30    0  0  0  0   0     0      0      63    136,433    86,318,670  12,281,841,209    584,089,835,857
  31    0  0  0  0   0     0      0      25     71,318    70,065,437  14,229,503,560    899,632,282,299
  32    0  0  0  0   0     0      0      11     34,663    53,037,356  15,542,350,436  1,315,729,343,451
  33    0  0  0  0   0     0      0       5     15,772    37,433,760  16,006,173,014  1,827,823,498,798
  34    0  0  0  0   0     0      0       2      6,759    24,630,887  15,542,350,436  2,412,694,353,115
  35    0  0  0  0   0     0      0       1      2,769    15,108,047  14,229,503,560  3,026,821,673,656
  36    0  0  0  0   0     0      0       1      1,103     8,640,134  12,281,841,209  3,609,810,088,490
  37    0  0  0  0   0     0      0       0        428     4,609,179   9,992,340,187  4,093,273,437,761
  38    0  0  0  0   0     0      0       0        165     2,295,898   7,661,345,277  4,413,678,080,790
  39    0  0  0  0   0     0      0       0         66     1,069,890   5,534,255,092  4,525,920,859,198
  40    0  0  0  0   0     0      0       0         26       467,807   3,765,262,970  4,413,678,080,790
  41    0  0  0  0   0     0      0       0         11       192,788   2,411,961,516  4,093,273,437,761
  42    0  0  0  0   0     0      0       0          5        75,415   1,454,265,734  3,609,810,088,490
  43    0  0  0  0   0     0      0       0          2        28,259     825,075,506  3,026,821,673,656
  44    0  0  0  0   0     0      0       0          1        10,250     440,393,606  2,412,694,353,115
  45    0  0  0  0   0     0      0       0          1         3,664     221,147,351  1,827,823,498,798
  46    0  0  0  0   0     0      0       0          0         1,305     104,504,341  1,315,729,343,451
  47    0  0  0  0   0     0      0       0          0           467      46,505,609    899,632,282,299
  48    0  0  0  0   0     0      0       0          0           172      19,515,361    584,089,835,857
  49    0  0  0  0   0     0      0       0          0            67       7,739,601    359,954,668,522
  50    0  0  0  0   0     0      0       0          0            26       2,911,086    210,474,287,115
  51    0  0  0  0   0     0      0       0          0            11       1,043,774    116,724,411,757
  52    0  0  0  0   0     0      0       0          0             5         359,307     61,372,294,334
  53    0  0  0  0   0     0      0       0          0             2         119,890     30,583,652,956
  54    0  0  0  0   0     0      0       0          0             1          39,243     14,441,470,390
  55    0  0  0  0   0     0      0       0          0             1          12,763      6,461,056,816
  56    0  0  0  0   0     0      0       0          0             0           4,191      2,739,261,020
  57    0  0  0  0   0     0      0       0          0             0           1,405      1,101,083,128
  58    0  0  0  0   0     0      0       0          0             0             485        420,048,805
  59    0  0  0  0   0     0      0       0          0             0             175        152,339,952
  60    0  0  0  0   0     0      0       0          0             0              68         52,664,857
  61    0  0  0  0   0     0      0       0          0             0              26         17,422,984
  62    0  0  0  0   0     0      0       0          0             0              11          5,546,619
  63    0  0  0  0   0     0      0       0          0             0               5          1,711,908
  64    0  0  0  0   0     0      0       0          0             0               2            517,121
  65    0  0  0  0   0     0      0       0          0             0               1            154,658
  66    0  0  0  0   0     0      0       0          0             0               1             46,415
  67    0  0  0  0   0     0      0       0          0             0               0             14,140
  68    0  0  0  0   0     0      0       0          0             0               0              4,435
  69    0  0  0  0   0     0      0       0          0             0               0              1,446
  70    0  0  0  0   0     0      0       0          0             0               0                492
  71    0  0  0  0   0     0      0       0          0             0               0                176
  72    0  0  0  0   0     0      0       0          0             0               0                 68
  73    0  0  0  0   0     0      0       0          0             0               0                 26
  74    0  0  0  0   0     0      0       0          0             0               0                 11
  75    0  0  0  0   0     0      0       0          0             0               0                  5
  76    0  0  0  0   0     0      0       0          0             0               0                  2
  77    0  0  0  0   0     0      0       0          0             0               0                  1
  78    0  0  0  0   0     0      0       0          0             0               0                  1
-------------------------------------------------------------------------------------------------------
Totals  2  4 11 34 156 1,044 12,346 274,668 12,005,168 1,018,997,864 165,091,172,592 50,502,031,367,952

    Results for all possible edges and for all possible vertices from 2 thru 70 can be seen here.
http://www.durangobill.com/MiscComb/UnlbGraph70.txt (2.1 MB file)
(Where 18 digits are shown, precision errors may exist, and are more likely where 19 digits are shown.)

   The following table shows the number of possible graphs for larger numbers of vertices.

  Number              Number of               Computer
of Vertices        Possible Graphs        Calculation Time
----------------------------------------------------------
     10               12,005,168              0.000247 Sec.
     20               6.4549E+38              0.004485 Sec.
     30               3.3449E+98              0.137891 Sec.
     40               7.7938E+186             2.19931  Sec.
     50               1.8996E+304            26.7119   Sec.
     60               7.9968E+450           207.492    Sec.
     70               8.1103E+626         1,437.1      Sec.
     80               2.5122E+832         8,431.77     Sec.
     90               2.8392E+1067       43,855.6      Sec.
    100               1.3442E+1332      205,642        Sec.

(Calculations for another 10 (+/-) more rows are possible, but would be excessively time consuming.)

   A listing of the number of all possible graphs for each possible edge for 80 vertices can be seen here:
http://www.durangobill.com/MiscComb/UnlbGraph80.txt
Note: The total number of graphs given here cross checks with the exact number given at https://oeis.org/A000088/b000088.txt , but the author of this web page also lists the subtotals for each number of edges in the graphs.

  A listing of the number of all possible graphs for each possible edge for 90 vertices can be seen here:
http://www.durangobill.com/MiscComb/UnlbGraph90.txt

  A listing of the number of all possible graphs for each possible edge for 100 vertices can be seen here:
http://www.durangobill.com/MiscComb/UnlbGraph100.txt
(Up to 4,950 possible edges)


   Calculations are a "little" involved. First, for each column (Number of Vertices) you have to generate the "Cycle Index Formula for the Symmetric Groups". The Cycle Index Formula for 5 vertices is shown below. (The web editor leaves a "little" to be desired for subscripts and superscripts, but I hope you get the idea.)


        1   5       3       2         2                        ("1 over" & Superscripts)
Z(S ) = --(s   + 10s s + 20s s + 15s s + 30s s + 20s s + 24s ) (Main line)
   5    5!  1       1 2     1 3     1 2     1 4     2 3     5  (FACT(5) & Subscripts)



(Note: In this and the following equation, if no superscript (power) is shown, it is an implied "1".) The first term is "1" divided by FACT(Nbr. of Vertices). The terms inside the parenthesis are derived from the way 5 objects can be partitioned. (Five 1's, three 1's and one 2, two 1's and one 3, one 1 and two 2's, one 1 and one 4, one 2 and one 3, one 5.) The coefficient for each term inside the parenthesis is calculated by starting with 5! = 120. Then for each "s" in each term, first divide by FACT(Superscript). Then divide again by Subscript^Superscript.

   Next we have to convert the "Cycle Index Formula for the Symmetric Groups" (above) to the "Cycle Index Formula for the Pair Groups". For our 5-vertex equation this becomes:

   (2)    1   10      4 3        3      2 4        2                 2
Z(S   ) = --(s   + 10s s  + 20s s  + 15s s  + 30s s  + 20s s s  + 24s )
    5     5!  1       1 2      1 3      1 2      2 4      1 3 6      5


   The conversion for each of the terms inside the parenthesis (in our 5 vertex example there are 7 terms) is calculated as follows: For each "s" in each term let "k" equal the old subscript and "JsubK" equal the old superscript. Then if "k" is odd, the new subscript simply copies "k". The new superscript becomes: (JsubK)*[((k)(JsubK)-1)/2]. (Note: If the superscript goes to "0", the "s" disappears.)

   If "k" is even, then the single "s" expands into 2 "s" components. For the first of these, the superscript remains the same while the subscript is divided by 2. For the second "s" the subscript remains the same while the new superscript becomes: (JsubK)*[((k)(JsubK)-2)/2)]. (Note: Again, if the superscript goes to "0", the "s" disappears.)

   Finally, for each of the (old) terms that have two or more "s" components, then for each possible pair of s's, we generate a new "s" where the new subscript is the least common multiple of the subscripts of the two s's in the pair, and the superscript equals: the product of the two superscripts and multiplied again by the greatest common divisor of the two superscripts.

   As an example of how these calculations work, let's work with the second term in the first equation. The first "s" has an odd subscript. Thus, the old subscript "1" stays at "1". The new superscript becomes: 3[((1)(3)-1)/2] = 3.

   The second "s" is even, thus we will have two resulting "s" terms. The first of these keeps the old superscript of "1" while the subscript gets cut in half to "1". The second "s" term will keep the old subscript of "2" and the new superscript becomes: 1[(2)(1)-2)/2] = 0. (This "s" will thus disappear.)

   Finally, there are 2 "s" terms in the first equation. Thus will have to apply the pair rule once. The subscript will be:
LCM(1, 2) = 2. The superscript for the new "s" will be: (3)(1)[GCD(3, 1)] = 3.

Combining these three operations yields:

                       3   1   0   3          4   3
Converted term = (10)(s )(s )(s )(s ) = (10)(s )(s )
                       1   1   2   2          1   2


   When we combine and simplify these new terms we get the "Cycle Index Formula for the Pair Groups". If all you want to know is the total number of structurally different graphs (without a breakdown by specific number of edges), you can use the "Pair" equation.

   For example, if your graph is confined to 2 "colors" (either an edge exists or it doesn't), simply substitute "2" for each "s" in the "Pair" equation. (This will give you the grand total shown at the bottom of the table.) If you want 3 "colors" (e. g. No edge, green edge, or black edge), substitute a "3" instead.

For the 5 vertex "Pair" equation, if we substitute "2" for "s" it becomes:

Total combinations = 1/5! [2^10 + 10(2^4)(2^3) + 20(2)(2^3) + 15(2^2)(2^4) + 30(2)(2^2) + 20(2)(2)(2) + 24(2^2)] = 34


   If you want the complete Edge/Vertex table, another step is required. To get the results shown in the table: substitute "1 + Y" for each "s" and then use the subscripts and superscripts to perform the following polynomial multiplication: ((1 + Y^(Subscript))^Superscript). Then add the polynomials for each term. For example: The second term in the "Pair" formula becomes:  10[((1 + Y^1)^4) + ((1 + Y^2)^3)].

After you have combined all the terms for the Number of Vertices = 5 formula you will get:

(1/5!) * [ 120 + 120Y + 240Y^2 + 480Y^3 + 720Y^4 + 720Y^5 + 720Y^6 + 480Y^7 + 240Y^8 + 120Y^9 + 120Y^10]

which reduces to the values in the table.

("Y" = the number of colors available. If your graph has just "black" edges, you have "1" color. Thus substitute "1" for Y. Each term will give the number of unlabeled graphs for the corresponding number of edges. If edges (if present) can be either red or green (2 colors), then substitute "2" for Y. Etc.)


Return to Durango Bill's Home Page



Web page generated via Sea Monkey's Composer HTML editor
within  a Linux Cinnamon Mint 18 operating system.
(Goodbye Microsoft)