Counting Finite Lattices

2 downloads 0 Views 133KB Size Report
a, b ∈ P have a meet (=greatest lower bound) a ∧P b and a join (=smallest ... It is well known and easy to see that a finite poset that has a greatest element and ...
Counting Finite Lattices Jobst Heitzig and J¨ urgen Reinhold Universit¨at Hannover, Institut f¨ ur Mathematik Welfengarten 1, 30167 Hannover, Germany E-mail: [email protected], [email protected]

Abstract. The correct values for the numbers of all unlabeled lattices on n elements are known for n ≤ 11. We present a fast orderly algorithm generating all unlabeled lattices up to a given size n. Using this algorithm, we have computed the numbers of all unlabeled lattices as well as those of all labeled lattices on an n-element set for each n ≤ 18.

Mathematics Subject Classification 1991. primary 05A15, secondary 06B99 05-04 Key words. Orderly algorithm, (un-)labeled lattice, tree, canonical, levelized.

2

J. Heitzig, J. Reinhold

1. Introduction. Probably the most efficient way for the mathematician to find and test new hypotheses is to consider examples. When working with finite structures, it is often possible to make a complete list of the smallest examples. If this list is worked out personally, it will be short and may contain trivial examples only. But it can be extremely helpful if such a list is worked out much more exhaustively by a computer program. For example, the search for a counter-example to a new hypothesis can be done by such a program. A mathematical structure is often called a labeled structure if one wants to express the difference between the structure itself and its isomorphism type which is then called an unlabeled structure. Since mathematicians usually study structures only up to isomorphism, it is often more useful to consider unlabeled structures. The principle of an orderly algorithm for the generation of all unlabeled structures of a given type up to an appropriate finite size n was introduced by R.C. Read [14] in 1976. Considering structures like posets or graphs, Read’s idea can be sketched as follows: Turn the class of all considered labeled structures of size at most n into a finite set by assuming that the underlying set of the structures is always a natural number m = {0, ..., m − 1}. Given two structures S, T with underlying sets m and m + 1, respectively, call S the mother of T and T a child of S if S is a substructure of T . It should be possible to find an algorithmic description of all childs of S. But, many of these childs may be isomorphic. To avoid this obstacle, one introduces an appropriate linear ordering on the finite set of all considered labeled structures and calls a structure S canonical, if it is the smallest structure with respect to this ordering compared with all other structures of the same isomorphism type. The canonical structures form a set of representatives for the isomorphism types and, therefore, may be identified with unlabeled structures. The chosen linear ordering should have the property that the mother of a canonical structure is also canonical. Now, one can generate all canonical (unlabeled) structures of size at most n by starting with the trivial (empty) structure and always branching from one structure S of size m < n to all canonical childs of S. Diverse authors have introduced different orderly algorithms which generate and count various types of structures (see, e.g. [1,3,4,6,11,13,15,16,17]). In this paper, we introduce a fast orderly algorithm that generates lattices, i.e. posets (=partially ordered sets) P in which any two elements a, b ∈ P have a meet (=greatest lower bound) a ∧P b and a join (=smallest upper bound) a ∨P b. It is well known and easy to see that a finite poset that has a greatest element and in which any two elements have a meet is already a lattice. We denote by L(n) and l(n) the numbers of all labeled and unlabeled lattices on an n-element set, respectively. In [11], Koda presented the numbers l(11), l(12) and l(13). It seems that he used an orderly algorithm which generated all unlabeled posets and then counted only those posets which actually are lattices. We are sure that Koda’s values for l(12) and l(13) are wrong. Using our algorithm, we calculated the numbers l(n) as well as L(n) for n ≤ 18. Besides presenting the algorithm and the results we shall also sketch a couple of methods that we used to verify our results.

3

Counting Finite Lattices

2. A tree of lattices. In this paper it will be convenient to consider n-lattices, i.e. lattices with underlying set n = {0, ..., n − 1} whose smallest element is 0 and whose greatest element is 1. To avoid confusion, we shall use the symbol ⊑ for the order relation of posets and lattices and reserve the symbol ≤ for the usual order relation on the natural numbers. Let P be a poset and A ⊆ P . The set ↓A = {p ∈ P | p ⊑ a for some a ∈ A} is called the lower set generated by A and the set ↑ A = {p ∈ P | a ⊑ p for some a ∈ A} is called the upper set generated by A. If an interval [a, b] = {p ∈ P | a ⊑ p ⊑ b} contains exactly the two different elements a, b then we write a ≺ b and call b an (upper) cover of a and a a lower cover of b. Covers of the smallest element 0 in a lattice are called atoms. Each atom is join-irreducible, i.e. it is different from 0 and not the join of two strictly smaller elements. Coatoms and meet-irreducible elements are defined dually. While every subset Q of a poset P is again a poset P |Q carrying the induced order relation ⊑|Q , this smaller poset need not be a lattice if so is P . If ⊑|Q is the identity relation on Q then Q is called an antichain in P . The following lemma is probably known to lattice-theorists, but for the reader’s convenience, we include the proof.

Lemma 1. Let a be an element of a finite lattice L. Then L′ = L|L\{a} is a lattice if and only if a is join- or meet-irreducible in L.

Proof: If a is neither join- nor meet-irreducible in L then a has two different lower covers b, c and two different upper covers d, e. But then d and e are minimal upper bounds of b and c in L′ , so there is no join of b and c in L′ . If a is join-irreducible in L then there is a greatest element a− strictly below a. Therefore, regardless whether a is the greatest element of L or not, L′ has a greatest element, too. Moreover, any two elements b, c ∈ L′ have a meet in L′ . Indeed, this meet coincides with the meet in L whenever the latter is different from a, and otherwise, it is a− . Thus L′ is a lattice. The case where a is meet-irreducible is treated dually.

2

By Lemma 1, a successive removal of atoms from a given finite lattice will produce smaller lattices. Conversely, we wish to generate larger lattices by adding new atoms. Actually, it is possible to describe for a given n-lattice L all (n+1)-lattices M containing the element n as an atom such that M |n = L. To this end, call a nonempty antichain A ⊆ L \ {0} of an n-lattice L a lattice-antichain if a ∧L b ∈ {0} ∪ ↑A holds for any two elements a, b ∈ ↑A.

Lemma 2. A subset A ⊆ L \ {0} of an n-lattice L is a lattice-antichain if and only if L is a subposet of an (n + 1)-lattice LA in which the element n is an atom and A is the set of its covers.

Proof: Let M be an (n + 1)-lattice such that n ∈ M is an atom covered exactly by the elements of the subset A ⊆ L \ {0}, where L = M |n . Hence M = LA . Since A consists of the minimal elements strictly above n in LA , it is an antichain, and for c, d ∈ ↑ A = ↑ {n} \ {n} one has c ∧LA d ∈ {n} ∪ ↑A and thus c ∧L d ∈ {0} ∪ ↑A. Thus A is a lattice-antichain in L. Conversely, let A be a lattice-antichain in an n-lattice L = (n, ⊑). Define LA = (n + 1, ⊑A ) by ⊑A = ⊑ ∪ {(0, n), (n, n)} ∪ (n×↑A).

4

J. Heitzig, J. Reinhold

Since A 6= ∅, the greatest element of L is also the greatest element of LA . We claim that any two elements c, d ∈ LA have a meet in LA . We distinguish three cases. (i) n ∈ {c, d}. Then ↓{n} = {0, n} implies that either 0 or n is the meet of c and d in LA . (ii) {c, d} ⊆ ↑A. Since A is a lattice-antichain in L, we have c ∧L d ∈ {0} ∪ ↑A. If c ∧L d = 0 then c ∧LA d = n. If c ∧L d ∈ ↑A then n ⊑A c ∧L d and thus c ∧L d is also the meet of c and d in LA . (iii) n ∈ / {c, d} 6⊆ ↑A. Then the lower bounds of c and d in LA coincide with those in L. So, again c ∧L d is also the meet of c and d in LA . 2 Consider the unique 2-lattice 2 and define S2 = {2} Now, recursively define a set S3 of 3-lattices, a set S4 of 4-lattices etc. by setting Sn+1 = {LA | L ∈ Sn , A is a lattice-antichain in L}. Finally, let S=

∞ [

Sn .

n=2

For L = (l, ⊑L ), M = (m, ⊑M ) ∈ S set L ⊑S M if and only if l ≤ m and ⊑L = ⊑M |l . Obviously, ⊑S is an order relation on S such that (S, ⊑S ) is a tree, i.e. for every element L ∈ S, the lower set ↓{L} is linearly ordered. A straightforward induction using Lemma 2 shows that an n-lattice L = (n, ⊑L ) is an element of the tree S if and only if for each number m = 2, ..., n − 1 the element m is an atom in the (m + 1)-lattice (m + 1, ⊑L |m+1 ).

3. An orderly algorithm. We define the weight w(L) = (w2 (L), ..., wn−1 (L)) of an n-lattice L by setting wi (L) =

X

2j .

i≺j

Since a finite poset is uniquely determined by its covering relation, the map L 7→ w(L) is injective. Let L, M be n-lattices. Then we write w(L) w(C), implies w(LA ) > w(C ϕ[A] ), a contradiction.

5

Counting Finite Lattices Let T2 = {2} and define Tn+1 = {LA | L ∈ Tn , A is a lattice-antichain in L such that LA is canonical}. Ordering the set T =

S∞

n=2 Tn

in the same way as the set S in the preceding section yields the

tree (T , ⊑T ). As we shall see in the next section, in every canonical (n + 1)-lattice the element n is an atom. Since for each canonical (n + 1)-lattice L, the n-lattice L|n and thus all the lattices L|2 , ..., L|n are again canonical lattices, T contains exactly all canonical lattices. Now, it is easy to formulate a recursive algorithm that generates for a given natural number n ≥ 2 exactly all canonical lattices on up to n elements.

next lattice (integer m, canonical m-lattice L) begin if m < n then for each lattice-antichain A of L do if LA is a canonical lattice then next lattice (m + 1, LA ) if m = n then output L end.

4. Levelized lattices. The set of all maximal elements in a finite poset P is called the first level of P and will be denoted by lev1 (P ). One recursively defines the (m + 1)-th level of P by levm+1 (P ) = lev1 (P \

m [

levi (P )).

i=1

Moreover, for p ∈ P let depP (p) denote the depth of p in P , i.e. the number k such that p ∈ levk (P ). It is easy to see that an element p ∈ P is contained in levm (P ) if m is the maximal cardinality of a chain in P with least element p. In the case of a lattice, for example, the second level is the set of all coatoms, and the second to the last nonempty level contains atoms only, but there may also be atoms in higher levels. Notice that p < q implies depP (p) > depP (q). We call an n-lattice L levelized if depL (i) ≤ depL (j) for all i, j ∈ L\{0} with i ≤ j. It is easy to see that L is levelized if and only if

Sk

h=1 levh (L)

= {1, ..., |

Sk

h=1 levh (L)|}

for k = 1, ..., depL (n − 1).

Let L be a levelized n-lattice. Then for each m ∈ 2, ..., n − 1 the (m + 1)-lattice L|m+1 is also levelized and thus m is an atom in L|m+1 , in particular, L ∈ S. Moreover, if A is a latticeantichain in L then depL (m) = depLA (m) for each m = 1, ..., n − 1, and thus LA is levelized if and only if A ∩ (levk−1 (L) ∪ levk (L)) 6= ∅, where k = depL (n − 1).

6

J. Heitzig, J. Reinhold

Theorem 3. Every canonical lattice L is levelized. Proof: Assume that L is not levelized. Then there is a smallest number m such that the set Mm = Sm

h=1 levh (L)

is different from {1, ..., |Mm |}. Let i be the smallest number in {1, ..., |Mm |} \ Mm

and choose any j ∈ Mm \ {1, ...., |Mm |}. Then i < j but depL (i) > depL (j). Define L′ be the isomorphic copy of L obtained by exchanging the labels i and j. (i) wk (L′ ) = wk (L) for 2 ≤ k < i: By the choice of i, one has k ∈ Mm and thus depL (k) ≤ m. Let c be any cover of k in L. Then depL (c) ≤ m − 1. Since Mm−1 =

Sm−1 h=1

levh (L) coincides with

{1, ..., |Mm−1 |} by the choice of m, it follows from c ∈ Mm−1 and i ∈ / Mm−1 ⊆ Mm that c < i < j. Therefore, the covers of k in L are different from i and j and thus coincide with those in L′ . (ii) wi (L′ ) = wj (L): From depL′ (j) > depL′ (i) it follows that j is not a cover of i in L′ . Therefore, the covers of i in L′ coincide with those of j in L. (iii) wj (L) < wi (L): Since j ∈ Mm , every cover of j is contained in Mm−1 = {1, ..., |Mm−1 |} and, therefore, wj (L) < 2|Mm−1 |+1 . Since depL (i) > m = depL (j), there is a cover c of i in L with depL (c) ≥ m, whence c ∈ / Mm−1 = {1, ..., |Mm−1 |} and thus c ≥ |Mm−1 | + 1 and wi (L) ≥ 2c ≥ 2|Mm−1 |+1 > wj (L). In all, it follows that w(L′ ) < w(L), a contradiction.

2

Dealing with levelized n-lattices, one has to consider fewer permutations in order to check their canonicity. Indeed, by the above theorem, it suffices to consider permutations that leave the levels of L fixed. This idea makes it possible to improve the performance of the algorithm considerably.

5. Speeding up the algorithm. In this section, we present a few further ideas to make the algorithm run faster. As we shall see, special properties of canonical lattices make it possible to consider fewer lattice-antichains A on the given n-lattice L and to decide faster whether the lattice LA is canonical. As demonstrated in the preceding section, it will suffice to consider levelized lattices only, so the lattice-antichains A should have the property A ∩ (levk−1 (L) ∪ levk (L)) 6= ∅ for k = depL (n − 1). The following theorem yields another possibility to reduce the number of lattice-antichains A to be considered, namely to deal only with those antichains A which satisfy wn (LA ) =

P

a∈A

2a ≥ wn−1 (L).

Theorem 4. Let L be a canonical n-lattice. Then w2 (L) ≤ ... ≤ wn−1 (L). Proof: Let 2 ≤ i < j. If depL (i) = depL (j) then consider the lattice L′ obtained from L by exchanging the labels i and j. Since L is levelized by Theorem 3, we have wk (L′ ) = wk (L) for k = 1, ..., i − 1. Hence wi (L) ≤ wi (L′ ) by the canonicity of L. Since the covers of i in L′ coincide with those of j in L, we have wi (L′ ) = wj (L). It follows that wi (L) ≤ wj (L). If depL (i) < depL (j) then there is a cover c of j such that depL (c) = depL (j) − 1 ≥ depL (i), and since L is levelized, there is no m ∈ n with m ≥ c and i ≺ m. Hence wi (L) < 2c ≤ wj (L).

2

7

Counting Finite Lattices

When the algorithm tries to decide whether for a given canonical lattice L and a given latticeantichain A on L the (n + 1)-lattice LA is canonical, it searches for a permutation ϕ of the labels of LA such that the weight of the lattice with the resulting labeling is smaller than that of LA . As mentioned at the end of the last section, we only have to consider permutations ϕ that leave the levels of LA fixed. Another possibility to reduce the number of permutations that have to be considered here arises from the following observation: Let k = depLA (n). Since L is levelized, m = {0} ∪

Sk−1 i=1

levi (L) is a natural number. Since L is canonical, so is L|m . Therefore, we only

need to consider permutations ϕ such that the restriction ϕ|m is an automorphism of L|m . A multiplet of a finite poset is a maximal subset M with |M | ≥ 2 such that all elements m ∈ M have the same upper and the same lower covers. Clearly, every multiplet is an antichain, and in a finite lattice, the elements of a multiplet have only one upper and one lower cover. The following facts about multiplets can be used to further improve the performance of our algorithm.

Theorem 5. Let L be a canonical n-lattice, and let M ⊆ n be a multiplet in L and A ⊆ n a lattice-antichain in L. a) The elements of M are labeled consecutively, i.e. M = {m, ..., m + |M | − 1} for some m ∈ n. b) If LA is canonical and A ∩ M 6= ∅ then A ∩ M = {m, ..., k} for some k ∈ M .

Proof: a) All elements of M have the same weight 2c , where c is the unique common upper cover. Let d be the unique common lower cover, and set m = min M and x = max M . Suppose that there is a k ∈ / M with m < k < x. Thus wk (L) = 2c by Theorem 4. Since k ∈ / M , there exists s = min {l ∈ n \ {d} | l ≺ k}. If s < d then define L′ to be obtained from L by exchanging the labels m and k. It is then rapidly checked that s is the smallest number with different weights in L and L′ and that wL′ (s) < wL (s), contradicting the canonicity of L. Similarly, if s > d then define L′ to be obtained from L by exchanging the labels x and k. Now, d is the smallest number with different weights in L and L′ , and wL′ (d) < wL (d) again contradicts the canonicity of L. b) Clearly, every permutation on M becomes an automorphism of L when extended by the identity on n \ M . Therefore, for k = m + |A ∩ M | − 1, the set B = (A \ M ) ∪ {m, ..., k} is also a lattice-antichain and LA ∼ = LB . Since wLB (p) = wL (p) = wLA (p) for p ∈ n, the canonicity of LA implies

P

a∈A

2a = wLA (n) ≤ wLB (n) =

P

b∈B

2b . But this is only possible if B = A.

2

Recall that a lattice L is vertically decomposable if it contains an element which is neither the greatest nor the least element of L but comparable with every element of L. Let lv (n) be the number of unlabeled vertically indecomposable lattices. Applying the simple recursion formula l(n) =

n X

lv (k)l(n − k + 1),

n ≥ 2,

(1)

k=2

where the running index k may be regarded as the cardinality of the upmost vertical component of the lattices, one can compute the numbers l(1), ..., l(n) from the values of lv (1), ..., lv (n).

8

J. Heitzig, J. Reinhold

Theorem 6. Let L = (n, ⊑) be a canonical n-lattice containing an element k ∈ {3, ..., n − 1} comparable with the elements 2, ..., k − 1. Then L is vertically decomposable.

Proof: Let A be the set of covers of k. Since L is levelized by Theorem 3, we have ↑ A = {1, ..., k − 1}. Assume that there is a smallest number p ∈ {k + 1, ..., n} such that p 6⊑ a for some a ∈ A. By Theorem 4, we have wp (L) ≥ wk (L). If wp (L) > wk (L) then p ≺ c for some c ∈ {k, ..., p − 1} and thus p < c ⊑ a by the minimality of p. If wp (L) = wk (L) =

P

b∈A

2b then

A is also the set of covers of p. Thus in both cases we have p < a, a contradiction. It follows that p ⊑ a holds for every a ∈ A and every p ∈ {k, ..., n − 1}. Suppose that k is not comparable with every element in L. Then there is a q ∈ {k + 1, ..., n − 1} which is maximal with respect to ⊑ such that q 6⊑ k. By the maximality of q, the antichain A is also the set of covers of q. Since L is a lattice, it follows that |A| = 1, and since ↑A = {1, ..., k − 1}, it follows that A = {k − 1}. Hence the element k − 1 is comparable with every element in L. 2 Theorem 6 makes it easy to modify the algorithm so that it only generates and counts vertically indecomposable lattices. Unfortunately, the rate of vertically decomposable n-element lattices becomes small when n grows. For example, for n = 18 fewer than 1/5 of all unlabeled n-lattices are vertically decomposable.

6. The labeled case. Although our algorithm generates only one member of each isomorphism class of finite lattices, it also provides us with the numbers L(n) of all labeled lattices on an n-element set. Indeed, since an n-lattice is recognized to be canonical if the search for a permutation of the labels of L which yields an isomorphic copy with a smaller weight fails, the algorithm may count by the way the number of those permutations which yield an isomorphic copy with the same weight, i.e. it may determine the cardinality of the automorphism group Aut (L) of L. If the number of the considered permutations is reduced via an application of Theorem 5 then a few additional computations have to be done to get the cardinality |Aut (L)|, but these are simple. Now, the numbers L(n) can be computed by L(n) =

X

L canonical n-lattice

n! . |Aut (L)|

(2)

Similar to the extrapolation formulae of Ern´e [5] for posets, the following theorem shows that it is possible to compute the numbers L(n) by just generating all unlabeled (n − 1)-lattices L and then determining for every lattice-antichain A of L the number a(LA ) of atoms in LA .

9

Counting Finite Lattices

Theorem 7. X

L(n) =

L canonical (n − 1)-lattice

n! |Aut (L)|

X

A latticeantichain in L

1 a(LA )

Proof: Let Lk (n) be the number of all labeled lattices on the set n with exactly k atoms, and fk (n) be the number of all labeled lattices on the set n with exactly k atoms such that the let L

element n − 1 is one of these atoms. Moreover, let Ljk (n) be the number of all labeled lattices L

on the set n which contain exactly j lattice-antichains A such that LA has exactly k atoms. Then n

fk (n) = L

2 X

j · Ljk (n − 1).

j=1

The fractions Lk (n)/

n k

fk (n)/ and L

n−1 k−1

have the same value since both can be interpreted as

the number of labeled lattices on the set n in which exactly the elements n − k, ..., n − 1 are atoms. Hence f (n) · Lk (n) = L k

n k n−1 k−1

n . k

f (n) · =L k

In all, we get L(n) =

n X

Lk (n) =

k=1

n X k=1

n

n X 2 X n fk (n) · n = L j · Ljk (n − 1) · ,

k

k

k=1 j=1

and applying (2), it follows that L(n) =

X

L canonical (n − 1)-lattice

(n − 1)! |Aut (L)|

X

A latticeantichain in L

n . a(LA )

2

An algorithmic realization of Theorem 7 computes the numbers L(n) much faster than one of (2). But since the search for all lattice-antichains and the determination of the numbers a(LA ) needs some additional time, we did not compute L(19) although we generated all unlabeled lattices with up to 18 elements.

7. Concluding remarks. An implementation of our algorithm on a single personal computer yields the results presented in the table in a considerable time only for n ≤ 17. Indeed, a Pentium III, 500 Mhz, needs about two days to determine the numbers l(n) and L(n) for n ≤ 16 and another three weeks for the values of l(17) and L(17). In order to determine the numbers l(18) and L(18), with the kind support of the RRZN Hannover we developed a parallelized version of the algorithm which ran on the Cray T3e ‘BERTHE’ at the Conrad Zuse Zentrum in Berlin. We worked with 50 of BERTHE’s 450Mhz processors at once. Divided into several partial jobs, the program ran about 6 days. Some details of the parallelization will be presented in [7]. When working with computer programs containing hundreds of commands, it is almost impossible to prove that the results are correct. But there were some different possibilities for us to partially verify our results. For example, we counted the number of vertically indecomposable lattices as

10

J. Heitzig, J. Reinhold

well as the number of all lattices and then checked that (1) holds. Moreover, we implemented the extrapolation formula given in Theorem 7 and compared the resulting values for the numbers L(n) with the ones obtained by a direct counting. This should have eliminated a lot of possible sources for mistakes. The asymptotics given in [9,10] are not suitable for a verification of our numbers nor of their rough size. The asymptotic behaviour of the series (Ln ) is not recognizable for the small values n ≤ 18. Our algorithm can easily be modified in order to generate arbitrary posets instead of lattices. The fact that this modification has verified all known values for posets (see [2]) gives us even more evidence that the algorithm works properly. Moreover, we were able to compute the number of all unlabeled posets on 14 elements (see [7]). The fact that this new result needed even less effort than Chaunier’s and N. Lyger¯os’ [2] computation of the last known value for 13 elements demonstrates the superiority of our algorithm. We plan to use other modifications to generate and count different types of lattices, for example, distributive, modular or complemented lattices. The additional structural properties will make the resulting trees considerably smaller so that we expect to obtain results for underlying sets with much more than 18 elements. This work will be presented in a forthcoming note.

11

Counting Finite Lattices

The numbers of lattices on up to 18 elements. elements n

labeled lattices L(n)

unlabeled lattices l(n)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

1 2 6 36 380 6 390 157 962 5 396 888 243 179 064 13 938 711 210 987 858 368 750 84 613 071 940 452 8 597 251 494 954 564 1 020 353 444 641 839 854 139 627 532 137 612 581 090 21 788 453 795 572 514 675 760 3 840 596 246 648 027 262 079 472 758 435 490 711 709 577 216 754 642

1 1 1 2 5 15 53 222 1 078 5 994 37 622 262 776 2 018 305 16 873 364 152 233 518 1 471 613 387 15 150 569 446 165 269 824 761

12

J. Heitzig, J. Reinhold

References [1] G. Brinkmann and E. Steffen, Chromatic-index-critical graphs of orders 11 and 12, European J. Combin. 19 (1998), no. 8, 889–900. [2] C. Chaunier and N. Lyger¯ os, The number of orders with thirteen elements. Order 9 (1992), no. 3, 203-204. [3] C. J. Colbourn and R. C. Read, Orderly algorithms for graph generation, Internat. J. Comput. Math. 7 (1979), no. 3, 167–172. [4] C. J. Colbourn and R. C. Read, Orderly algorithms for generating restricted classes of graphs, J. Graph Theory 3 (1979), no. 2, 187–195. [5] M. Ern´e, On the cardinalities of finite topologies and the number of antichains in partially ordered sets, Discrete Math. 35 (1981), 119-133. [6] D. K. Garnick and J. H. Dinitz, J. H., On the number of one-factorizations of the complete graph on 12 points, in: “Proceedings of the Twenty-fourth Southeastern International Conference on Combinatorics, Graph Theory, and Computing (Boca Raton, FL, 1993),” Congr. Numer. 94 (1993), 159–167. [7] J. Heitzig and J. Reinhold, The number of unlabeled posets on fourteen elements, preprint. [8] D. J. Kleitman and B. L. Rothschild, Asymptotic enumeration of partial orders on a finite set, Trans. Amer. Math. Soc. 205 (1975), 205–220. [9] D. J. Kleitman and K. J. Winston, The asymptotic number of lattices, in: “Combinatorial mathematics, optimal designs and their applications (Proc. Sympos. Combin. Math. and Optimal Design, Colorado State Univ., Fort Collins, Colo., 1978),” Ann. Discrete Math. 6 (1980), 243–249. [10] W. Klotz and L. Lucht, Endliche Verb¨ ande, J. Reine Angew. Math. 247 (1971) 58–68. [11] Y. Koda, Orderly algorithms for generating k-colored graphs, in: “Proceedings of the Twenty-third Southeastern International Conference on Combinatorics, Graph Theory, and Computing (Boca Raton, FL, 1992),” Congr. Numer. 91 (1992), 223–238. [12] Y. Koda, The numbers of finite lattices and finite topologies, Bull. Inst. Combin. Appl. 10 (1994), 83–89. [13] B. D. McKay, Isomorph-free exhaustive generation, J. Algorithms 26 (1998), no. 2, 306–324. [14] R. C. Read, Every one a winner or how to avoid isomorphism search when cataloguing combinatorial configurations, in: “Algorithmic aspects of combinatorics (Conf., Vancouver Island, B.C., 1976),” Ann. Discrete Math. 2 (1978), 107–120. [15] G. F. Royle, An orderly algorithm and some applications in finite geometry, Discrete Math. 185 (1998), no. 1–3, 105–115. [16] P. Schultz, Enumerations of rooted trees with an application to group presentations, Discrete Math. 41 (1982), no. 2, 199–214. [17] E. Seah and D. R. Stinson, On the enumeration of one-factorizations of complete graphs containing prescribed automorphism groups, Math. Comp. 50 (1988), no. 182, 607–618.