cond-mat0501594/piec.tex
1: \documentclass[doublespacing]{elsart}
2: \usepackage{graphicx}
3: \usepackage{amsmath}
4: \usepackage{amsfonts}
5: \usepackage{amssymb}
6: 
7: \begin{document}
8: 
9: \begin{frontmatter}
10: \title{How to count trees?}
11: \author{Sebastian Piec,}
12: \author{Krzysztof Malarz\corauthref{km}}
13: \ead{malarz@agh.edu.pl}
14: \ead[url]{http://home.agh.edu.pl/malarz/}
15: \corauth[km]{Corresponding author. Fax: +48 12 6340010.}
16: \and
17: \author{Krzysztof Ku{\l}akowski}
18: \address{
19: AGH University of Science and Technology,
20: Faculty of Physics and Applied Computer Science,
21: al. Mickiewicza 30, PL-30059 Krak\'ow, Poland}
22: 
23: \begin{abstract}
24: We propose a new topological invariant of unlabeled trees of $N$ nodes.
25: The invariant is a set of $N\times 2$ matrices of integers, with $\sum_j k^{d_{i,j}}$ 
26: and $v_i$ as the matrix elements, where $d_{i,j}$ are the elements of the distance 
27: matrix and $v_i$ denotes $i$-th node's degree and $k\in\mathbb{N}$.
28: To compare the invariant calculated for possibly different graphs, the matrix rows 
29: are ordered with respect to first column, and --- if necessary --- with respect to 
30: the second one.
31: We use the new invariant to evaluate from below the number of topologically different 
32: unlabeled trees up to $N=17$.
33: The results slightly exceed the asymptotic evaluation of Otter. 
34: \end{abstract}
35: 
36: \begin{keyword}
37: computer modeling and simulation \sep trees and graphs
38: 
39: %% \PACS
40: %% 02.10.Ox %% combinatorics and graph theory 
41: %% \sep
42: %% 05.10.-a %% general metods of statistical and nonlinear physics 
43: %% \sep
44: %% 07.05.Tp %% computer modelling and simulation
45: \end{keyword}
46: 
47: \end{frontmatter}
48: 
49: %% ###########################################################################
50: \section{Introduction}
51: %% ###########################################################################
52: Averaging over different graphs is basic in numerous applications of the graph theory 
53: \cite{graph,tab8}.
54: For such tasks, knowledge of the number of topologically different graphs is of primary 
55: importance.
56: Having two graphs, a typical question is: are they different?
57: If the graphs are labeled, respective algorithms are of polynomial time.
58: However, for unlabeled graphs the task should be to check all possible labellings, what 
59: makes the problem unfeasible \cite{free}.
60: An alternative solution is to find a quantity which is different for different graphs, 
61: and of the same value if the graphs are topologically equivalent.
62: The latter means that there is a one-to-one transformation from one graph to another: 
63: each pair of nodes linked (not linked) in one graph is linked (not linked) in another graph.
64: Such a quantity is a topological invariant. 
65: However, actually we can be never sure if the quantity proposed as the invariant has indeed 
66: the above discriminating property.
67: While its different values certainly mean different graph structures, the same value does 
68: not allow to claim that the graphs are indeed topologically identical.
69: In many cases, the proposed quantity appears to be degenerate, i.e. its value is the same 
70: for different graphs.
71: All that remains true for unlabeled trees, which are graphs without cyclic paths and without 
72: loops.
73: 
74: In a series of papers, Schultz et al. proposed and evaluated some scalar quantities
75: as candidates to be topological invariants for trees \cite{szulc}. This work was 
76: motivated by a chemical application of the constructed quantities, which were found to 
77: increase monotonically with the melting temperature of alkanes. However, almost all 
78: proposed invariants were found to be degenerate. On the other hand, the last proposed 
79: invariant is a real number and not integer, and the comparison of its value must rely on
80: the numerical accuracy. 
81: 
82: 
83: Here we propose a new candidate as a topological invariant for unlabeled trees. Unlike the
84: quantities discussed previously, this is a set of matrices and not a single number. The advantage
85: is that the matrices are ordered in a simple way, and the ordering algorithm works in 
86: polynomial time. On the other hand, to state that two trees are topologically identical 
87: we compare all the matrix elements. This modification is expected to enhance the discriminative 
88: force of the proposed invariant. We use the obtained criterion to calculate the number 
89: of topologically non-equivalent trees up to $N=17$ nodes. As stated above, the obtained
90: numbers can be treated only as an evaluation of the true results from below. Then,
91: if one has a better criterion, he should find the greater number of trees for $N\le 17$, 
92: than our result, given in Table 1. 
93: 
94: %% ---------------------------------------------------------------------------
95: \begin{table}
96: \caption{\label{tab} The number of trees $T$ evaluated basing on sorted $({\bf b},{\bf v})$ 
97: pairs with $k\le 6$.
98: $T_\text{O}$ is given by the Otter's formula \eqref{eq-otter}.}
99: \begin{center}
100: \begin{tabular}{l rrrrr rrrrr}
101: \hline \hline
102: $N$ &
103:            1 &
104:            2 &
105:            3 &
106:            4 &
107:            5 \\
108: %%
109: $T$ &
110:            1 &
111:            1 &
112:            1 &
113:            2 &
114:            3 \\
115: %%
116: $T_{\text{O}}$ &
117:          1.6 &
118:          0.8 &
119:          0.9 &
120:          1.3 &
121:          2.2 \\
122: %% ---------------------------------------------------------------------------
123: \hline
124: %% ---------------------------------------------------------------------------
125:              &
126:            6 &
127:            7 &
128:            8 &
129:            9 &
130:           10 \\
131: %%
132:              &
133:            6 &
134:           11 &
135:           23 &
136:           47 &
137:          106 \\
138: %%
139:              &
140:          4.0 &
141:          8.1 &
142:         17.2 &
143:         37.9 &
144:         86.1 \\
145: %% ---------------------------------------------------------------------------
146: \hline
147: %% ---------------------------------------------------------------------------
148:              &
149:           11 &
150:           12 &
151:           13 &
152:           14 &
153:           15 \\
154: %%
155:              &
156:          235 &
157:          551 &
158:         1301 &
159:         3159 &
160:         7741 \\
161: %%
162:              &
163:        200.5 &
164:        476.9 &
165:       1153.9 &
166:       2833.8 &
167:       7049.1 \\
168: %% ---------------------------------------------------------------------------
169: \hline
170: %% ---------------------------------------------------------------------------
171:              &
172:           16 &
173:           17 \\ % &
174: %         18 &
175: %         19 &
176: %         20 \\
177: %%
178:              &
179:        19320 &
180:        48629 \\ %&
181: %        --- &
182: %        --- &
183: %        --- \\
184: %%
185:              &
186:      17731.0 &
187:      45038.0 \\  %&
188: %    115396.0 &
189: %    297959.9 &
190: %    774705.7 \\
191: %% ---------------------------------------------------------------------------
192: \hline \hline
193: \end{tabular}
194: \end{center}
195: \end{table}
196: %% ---------------------------------------------------------------------------
197: 
198: In our next section, our numerical procedure is described in details. Section \ref{sec-3} contains the 
199: numerical results. The obtained numbers of trees are compared to the analytical
200: evaluation of Otter \cite{otter}. In Section \ref{sec-4} we provide an argument that the range of 
201: values of any good candidate of a topological invariant should increase exponentially 
202: with the number of nodes $N$. Our proposition is the only one we know to fulfill this criterion. 
203: However, this `criterion of range' is not sufficient in the sense that it does not exclude the 
204: possible degeneracy. 
205: 
206: %% ###########################################################################
207: \section{Numerical approach}
208: %% ###########################################################################
209: 
210: Our numerical approach is based on the construction of the distance matrix $\mathbf{D}^N$ during tree 
211: growth \cite{km}.
212: In distance matrix ${\bf D}$ element $d_{i,j}$ gives the length of the shortest path between 
213: nodes $i$ and $j$, i.e. the minimal number of edges which connect these vertices.
214: The construction algorithm relies on the fact that a distance to a newly added $(N+1)$-th node 
215: to all other nodes $1\le i\le N$ via node $q$ --- to which new node is attached --- is 
216: $d_{N+1,i}=d_{q,i}+1$.
217: The computational complexity of the distance matrix ${\bf D}$ construction recipe is of order 
218: of $O(N^2)$.
219: The number of `1' in $i$-th row gives $i$-th node's degree $v_i$.
220: 
221: 
222: 
223: For counting trees two single-column vectors seem to be useful:
224: the first one $\mathbf{b}$ gives sum of the natural parameter
225: $k\in\mathbb{N}$ to the power equal to distance $d_{i,j}$ of $i$-th node to
226: another node $j$: $b_i=\sum_{j=1}^N k^{d_{i,j}}$.
227: The second vector ${\bf v}$ serves node's degrees $v_i$.
228: These vectors form a matrix, which is sorted with key pair
229: $(\mathbf{b},\mathbf{v})$: two trees are different if their
230: $(\mathbf{b},\mathbf{v})$ are different for {\em all} values of $k$.
231: Actually, we compare the matrices for $k=2, 3, 4, 5$ and $6$.
232: We have checked numerically, that the results of trees counting are
233: different for $k\le 4$ and $k=5$ but they are the same for $k=5$ and
234: $k=6$.
235: Sorting elements of $(\mathbf{b},\mathbf{v})$ makes the matrix independent
236: on an order of labeling of the tree's nodes.
237: 
238: 
239: For example, the only two existing trees for $N=4$ --- presented in Fig. \ref{fig-tree4} --- 
240: have distance matrices $\mathbf{D}^4$ \cite{physicaa}:
241: %% ---------------------------------------------------------------------------
242: \[ 
243: \mathbf{D}^4_a=
244: \begin{pmatrix}
245: 0&1&2&3\\
246: 1&0&1&2\\
247: 2&1&0&1\\
248: 3&2&1&0\\
249: \end{pmatrix}
250: \text{ and }
251: \mathbf{D}^4_b=
252: \begin{pmatrix}
253: 0&1&2&2\\
254: 1&0&1&1\\
255: 2&1&0&2\\
256: 2&1&2&0\\
257: \end{pmatrix}
258: \]
259: %% ---------------------------------------------------------------------------
260: and sorted pair $(\mathbf{b},\mathbf{v})^4$ for $k=2$:
261: %% ---------------------------------------------------------------------------
262: \[
263: (\mathbf{b},\mathbf{v})^4_a=
264: \begin{pmatrix}
265: 15 & 1\\
266: 15 & 1\\
267:  9 & 2\\
268:  9 & 2\\
269: \end{pmatrix}
270: \text{ and }
271: (\mathbf{b},\mathbf{v})^4_b=
272: \begin{pmatrix}
273: 11 & 1\\
274: 11 & 1\\
275: 11 & 1\\
276:  7 & 3\\
277: \end{pmatrix}.
278: \]
279: %% ---------------------------------------------------------------------------
280: \begin{figure}
281: \begin{center}
282: (a) \includegraphics[scale=.4]{piec-1a}
283: (b) \includegraphics[scale=.4]{piec-1b}
284: \end{center}
285: \caption{\label{fig-tree4} Two trees of $N=4$ nodes.
286: (Figures using Pajek \cite{pajek}.)}
287: \end{figure}
288: %% ---------------------------------------------------------------------------
289: Now, the next generation of trees is produced $N\to N+1$ by systematically adding a new node to 
290: each node for all preexisting trees.
291: For example in case of $N=4\to N=5$ look at Fig. \ref{fig-tree5}.
292: %% ---------------------------------------------------------------------------
293: \begin{figure}
294: \begin{center}
295: \includegraphics[scale=.3]{piec-21}
296: \includegraphics[scale=.3]{piec-22}
297: \includegraphics[scale=.3]{piec-23}
298: \includegraphics[scale=.3]{piec-24}\\
299: \includegraphics[scale=.3]{piec-25}
300: \includegraphics[scale=.3]{piec-26}
301: \includegraphics[scale=.3]{piec-27}
302: \includegraphics[scale=.3]{piec-28}\\
303: (a) \includegraphics[scale=.3]{piec-2a}
304: (b) \includegraphics[scale=.3]{piec-2b}
305: (c) \includegraphics[scale=.3]{piec-2c}
306: \end{center}
307: \caption{\label{fig-tree5} Eight possible trees obtained by adding one node by one link in 
308: all possible ways to two trees with $N=4$.
309: Among them {\em only three} are different.}
310: \end{figure}
311: %% ---------------------------------------------------------------------------
312: Among eight cases only three classes of $(\mathbf{b},\mathbf{v})^5$ exist, i.e.:
313: %% ---------------------------------------------------------------------------
314: \[
315: (\mathbf{b},\mathbf{v})^5_a=
316: \begin{pmatrix}
317: 31 & 1\\
318: 31 & 1\\
319: 17 & 2\\
320: 17 & 2\\
321: 13 & 2\\
322: \end{pmatrix},
323: (\mathbf{b},\mathbf{v})^5_b=
324: \begin{pmatrix}
325: 23 & 1\\
326: 19 & 1\\
327: 19 & 1\\
328: 13 & 2\\
329: 11 & 3\\
330: \end{pmatrix}
331: \text{ and }
332: (\mathbf{b},\mathbf{v})^5_c=
333: \begin{pmatrix}
334: 15 & 1\\
335: 15 & 1\\
336: 15 & 1\\
337: 15 & 1\\
338:  9 & 4\\
339: \end{pmatrix}
340: \]
341: for $k=2$.
342: %% ---------------------------------------------------------------------------
343: Three distance matrices $\mathbf{D}^5_{a,b,c}$ for these three trees are necessary to next step, 
344: i.e. $N=5\to N=6$.
345: The procedure is repeated recursively.
346: 
347: Technically, the sorting with key procedure is an implementation of the quick-sort algorithm 
348: \cite{quicksort} while comparing two $({\bf b},{\bf v})$ matrices are realized with standard 
349: C++ STL library \cite{stl}.
350: 
351: %% ###########################################################################
352: \section{Results of simulations}
353: \label{sec-3}
354: %% ###########################################################################
355: The number of trees $T$ obtained with above algorithm with $k\le 5$ are given in Table \ref{tab}.
356: The results agree with the available number of trees given in Refs. \cite{tab8,net}.
357: For example, all $T=47$ trees of $N=9$ nodes are presented in Fig. \ref{fig-trees9}.
358: 
359: %% ---------------------------------------------------------------------------
360: \begin{figure*}
361: \begin{center}
362: \includegraphics[scale=.25]{piec-301}
363: \includegraphics[scale=.25]{piec-302}
364: \includegraphics[scale=.25]{piec-303}
365: \includegraphics[scale=.25]{piec-304}
366: \includegraphics[scale=.25]{piec-305}
367: \includegraphics[scale=.25]{piec-306}
368: \includegraphics[scale=.25]{piec-307}
369: \includegraphics[scale=.25]{piec-308}
370: \includegraphics[scale=.25]{piec-309}
371: \includegraphics[scale=.25]{piec-310}
372: \includegraphics[scale=.25]{piec-311}
373: \includegraphics[scale=.25]{piec-312}
374: \includegraphics[scale=.25]{piec-313}
375: \includegraphics[scale=.25]{piec-314}
376: \includegraphics[scale=.25]{piec-315}
377: \includegraphics[scale=.25]{piec-316}
378: \includegraphics[scale=.25]{piec-317}
379: \includegraphics[scale=.25]{piec-318}
380: \includegraphics[scale=.25]{piec-319}
381: \includegraphics[scale=.25]{piec-320}
382: \includegraphics[scale=.25]{piec-321}
383: \includegraphics[scale=.25]{piec-322}
384: \includegraphics[scale=.25]{piec-323}
385: \includegraphics[scale=.25]{piec-324}
386: \includegraphics[scale=.25]{piec-325}
387: \includegraphics[scale=.25]{piec-326}
388: \includegraphics[scale=.25]{piec-327}
389: \includegraphics[scale=.25]{piec-328}
390: \includegraphics[scale=.25]{piec-329}
391: \includegraphics[scale=.25]{piec-330}
392: \includegraphics[scale=.25]{piec-331}
393: \includegraphics[scale=.25]{piec-332}
394: \includegraphics[scale=.25]{piec-333}
395: \includegraphics[scale=.25]{piec-334}
396: \includegraphics[scale=.25]{piec-335}
397: \includegraphics[scale=.25]{piec-336}
398: \includegraphics[scale=.25]{piec-337}
399: \includegraphics[scale=.25]{piec-338}
400: \includegraphics[scale=.25]{piec-339}
401: \includegraphics[scale=.25]{piec-340}
402: \includegraphics[scale=.25]{piec-341}
403: \includegraphics[scale=.25]{piec-342}
404: \includegraphics[scale=.25]{piec-343}
405: \includegraphics[scale=.25]{piec-344}
406: \includegraphics[scale=.25]{piec-345}
407: \includegraphics[scale=.25]{piec-346}
408: \includegraphics[scale=.25]{piec-347}
409: \end{center}
410: \caption{\label{fig-trees9} All $T=47$ trees with $N=9$ nodes.}
411: \end{figure*}
412: %% ---------------------------------------------------------------------------
413: 
414: For large enough $N$ the number of trees $T$ is asymptotically given as
415: \begin{equation}
416: \label{eq-otter}
417: T_{\text{O}}(N)=\beta \cdot \alpha^N \cdot N^{-5/2},
418: \end{equation}
419: where
420: $\alpha=2.9557652856\cdots$
421: and
422: $\beta=0.5349496061\cdots$
423: \cite{otter}.
424: The comparison of the results of the exact trees counting and predictions of Eq. 
425: \eqref{eq-otter} is shown in Table \ref{tab} and in Fig. \ref{fig-otter}.
426: %% ---------------------------------------------------------------------------
427: \begin{figure}
428: \begin{center}
429: \includegraphics[width=.9\textwidth]{piec-4}
430: \end{center}
431: \caption{\label{fig-otter} Number of trees $T$ as compared with the Otter's formula 
432: $T_{\text{O}}$.}
433: \end{figure}
434: %% ---------------------------------------------------------------------------
435: 
436: In the terminology of Ref. \cite{szulc} the degree vector ${\bf v}$ is called {\em valence} 
437: vector.
438: The molecular topological index (MTI) is defined as\footnote{MTI was originally defined as a simple sum of elements of product ${\bf v}({\bf A}+{\bf D})$ and not as sum of absolute values of its elements.
439: As elements of ${\bf v}({\bf A}+{\bf D})$ are always positive our description is only more formally compact.}
440: \begin{equation}
441: \text{MTI}=\left\| {\bf v}\cdot({\bf A}+{\bf D}) \right\|,
442: \end{equation}
443: where
444: ${\bf A}$ is a graph's adjacency matrix
445: and vector norm $||\cdots||$ is defined as sum of absolute value of vectors element
446: \[
447: \left\|{\bf c}\right\| = \left\|(c_1,c_2,\cdots,c_{N-1},c_N )\right\|\equiv\sum_{i=1}^N |c_i|.
448: \]
449: In adjacency matrix ${\bf A}$ element $a_{ij}$ gives number of edges between nodes $i$ and $j$.
450: For simple graphs --- where multiple edges are forbidden --- matrix ${\bf A}$ becomes binary.
451: 
452: 
453: MTI was believed to be single-number value which allow to differ between trees \cite{szulc}.
454: Here, however we can see that this method of counting fails for $N\ge 8$.  The obtained 
455: number of trees with Schultz method is $T_\text{S}(8)=20$ while true value is $T(8)=23$.
456: Three pairs of trees which have the same MTI but different $({\bf b},{\bf v})^8$ are shown in 
457: Fig. \ref{fig-missing}.
458: %% ---------------------------------------------------------------------------
459: \begin{figure}
460: \begin{center}
461: \begin{tabular}{r cc}
462: \hline \hline
463: MTI & & \\
464: 230 & (a) \includegraphics[scale=0.3]{piec-511}
465:     & (b) \includegraphics[scale=0.3]{piec-512} \\
466: 242 & (c) \includegraphics[scale=0.3]{piec-521}
467:     & (d) \includegraphics[scale=0.3]{piec-522} \\
468: 260 & (e) \includegraphics[scale=0.3]{piec-531} 
469:     & (f) \includegraphics[scale=0.3]{piec-532} \\ %% [2mm]
470: \hline \hline
471: \end{tabular}
472: \end{center}
473: \caption{\label{fig-missing} Three pairs of different topologically trees with $N=8$ nodes with the same MTI.}
474: \end{figure}
475: %% ---------------------------------------------------------------------------
476: 
477: The purpose of introducing MTI was to differentiate chemical molecules.
478: When a carbon atom (with proper number of hydrogen atoms) is assigned to all nodes of trees shown 
479: in Fig. \ref{fig-missing}(c)-(f) they may represent semi-structural formulas of 
480: (c) 2,2,4-trimethylpentane, (d) 3-ethyl-2-methylpentane, (e) 2,2-dimethylhexane and 
481: (f) 3-ethylhexane \cite{chem}.
482: The MTI cannot differ between pairs (c,d) and (e,f) of these forms of $\text{C}_8\text{H}_{18}$.
483: 
484: Our results contain not only the number of trees, but the structure of all of them.
485: Binary files with distance matrices and the program for their conversion to input files for Pajek 
486: \cite{pajek} program are available from our web page \cite{www}.
487: 
488: %% ###########################################################################
489: \section{Discussion}
490: \label{sec-4}
491: %% ###########################################################################
492: 
493: Now we are going to prove that for large $N$, the range of any discriminative 
494: topological invariant with integer values should increase exponentially with $N$.
495: To each tree, a different value of the invariant must be assigned, 
496: if the invariant is discriminative. Then we get an exponentially 
497: increasing number of different integer values. The length of a
498: range on an axis, where these values can be placed, must increase 
499: also at least exponentially, what finishes the proof. We note that the
500: matrix character of the invariant does not change this result, as long
501: as the matrix size increases as $N^c$, where $c$ is a constant. In our case $c=1$,
502: because the matrix is $N\times 2$. We should add that this `range criterion' is
503: crucial in the asymptotic regime of large $N$. Up to now, the computational resources do not allow 
504: to penetrate this region.
505: 
506: 
507: Concluding, we have proposed a new topological invariant to discriminate unlabeled trees.
508: The matrix character of the invariant allows to believe, that the discriminating power of the 
509: invariant is much better, than scalar invariants proposed previously.
510: 
511: %% ###########################################################################
512: \ack
513: %% ###########################################################################
514: K.M. thanks Aleksandra Jung for her valuable help.
515: Calculations were carried out in ACK-CYFRONET-AGH.
516: The machine time on SGI 2800 is financed by the Polish Ministry of Science and 
517: Information Technology under Grant No. KBN/SGI2800/AGH/018/2003.
518: 
519: %% ###########################################################################
520: \begin{thebibliography}{99}
521: %% ###########################################################################
522: 
523: \bibitem{graph}
524: J.~Clark, D.~A.~Holton,
525: \textit{A First Look at Graph Theory},
526: (World Scientific, 1991);
527: 
528: M.~E.~J.~Newman,
529: SIAM Rev. {\bf 45} (2003) 167;
530: 
531: S.~N.~Dorogovtsev, J.~F.~F.~Mendes, A.~N.~Samukhin,
532: Nucl. Phys. {\bf B653} (2003) 307;
533: 
534: R.~Albert, A.-L.~Barab\'asi,
535: Rev. Mod. Phys. {\bf 286} (2002) 47;
536: 
537: S.~N.~Dorogovtsev, J.~F.~F.~Mendes,
538: Adv. Phys. {\bf 51} (2002) 1079.
539: 
540: \bibitem{tab8}
541: R.~J.~Wilson,
542: \textit{Introduction to Graph Theory},
543: (Addison--Wesley, 1996).
544: 
545: \bibitem{free}
546: M. R. Garey, D. S. Johnson,
547: {\em Computers and Intractability}
548: (Freeman, New York, 1979).
549: 
550: \bibitem{szulc}
551: H.~P.~Schultz, T.~P.~Schultz,
552: J. Chem. Inf. Comput. Sci. {\bf 40} (2000) 107;
553: 
554: 
555: H.~P.~Schultz, E.~B.~Schultz, T.~P.~Schultz,
556: {\em ibid} {\bf 35} (1995) 864;
557: %% H.~P.~Schultz, E.~B.~Schultz, T.~P.~Schultz,
558: {\em ibid} {\bf 34} (1994) 1151;
559: 
560: 
561: H.~P.~Schultz, T.~P.~Schultz,
562: {\em ibid} {\bf 33} (1993) 240;
563: %% H.~P.~Schultz, T.~P.~Schultz,
564: {\em ibid} {\bf 31} (1991) 144;
565: 
566: 
567: H.~P.~Schultz, E.~B.~Schultz, T.~P.~Schultz,
568: {\em ibid} {\bf 30} (1990) 27;
569: 
570: 
571: H.~P.~Schultz,
572: {\em ibid} {\bf 29} (1989) 227.
573: 
574: \bibitem{km}
575: K.~Malarz, J.~Czaplicki, B.~Kawecka-Magiera, K.~Ku{\l}akowski,
576: Int. J. Mod. Phys. {\bf C14} (2003) 1201;
577: 
578: 
579: K.~Malarz, J.~Karpi\'nska, A.~Kardas, K.~Ku{\l}akowski,
580: TASK Quarterly {\bf 8} (2004) 115;
581: 
582: 
583: K.~Malarz, K.~Ku{\l}akowski,
584: Eur. Phys. J. {\bf B41} (2004) 333;
585: 
586: 
587: K.~Malarz, K.~Ku{\l}akowski,
588: {\tt cond-mat/0501545}.
589: 
590: \bibitem{physicaa}
591: K.~Malarz, K.~Ku{\l}akowski,
592: Physica {\bf A345} (2005) 326.
593: 
594: \bibitem{otter}
595: R.~Otter,
596: Ann. Math. {\bf 49} (1948) 583.
597: 
598: \bibitem{quicksort}
599: R.~Johnsonbaugh, M.~Schaefer,
600: {\em Algorithms}
601: (Pearson, 2004);
602: 
603: 
604: D.~E.~Knuth,
605: {\em The Art of Computer Programming, Vol. 3: Sorting and Searching}
606: (Addison--Wesely, 1998).
607: 
608: \bibitem{stl}
609: A.~A.~Stepanov, M.~Lee,
610: {\em The Standard Template Library},
611: (Hewlett--Packard Laboratories, 1994);
612: 
613: 
614: N. M. Jousuttis,
615: {\em The C++ Standard Library: A Tutorial and References}
616: (Addison--Wesley--Longman, 1999).
617: 
618: \bibitem{net}
619: {\tt http://www.research.att.com/cgi-bin/access.cgi/as/njas/sequences/ eisA.cgi?Anum=A000055}
620: 
621: \bibitem{chem}
622: R. T. Morrison, R. N. Boyd,
623: {\em Organic Chemistry},
624: (Allyn and Bacon, 1973).
625: 
626: \bibitem{pajek}
627: W.~de~Nooy, A.~Mrvar, V.~Batagelj,
628: {\it Exploratory Social Network Analysis with Pajek},
629: (Cambridge UP, 2005);
630: 
631: 
632: P.~Doreian, V.~Batagelj, A.~Ferligoj,
633: {\it Generalized Blockmodeling},
634: (Cambridge UP, 2005);
635: 
636: 
637: {\tt http://vlado.fmf.uni-lj.si/pub/networks/pajek/}.
638: 
639: \bibitem{www}
640: {\tt http://www.zis.agh.edu.pl/trees/}.
641: 
642: \end{thebibliography}
643: 
644: \end{document}
645: 
646: