cond-mat0612416/csf.tex
1: %% LyX 1.4.3 created this file.  For more info, see http://www.lyx.org/.
2: %% Do not edit unless you really know what you are doing.
3: \documentclass[10pt,oneside,english]{elsart}
4: \usepackage[T1]{fontenc}
5: \usepackage[latin1]{inputenc}
6: \usepackage{array}
7: \usepackage{graphicx}
8: \usepackage{amssymb}
9: 
10: \makeatletter
11: 
12: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% LyX specific LaTeX commands.
13: %% Bold symbol macro for standard LaTeX users
14: \providecommand{\boldsymbol}[1]{\mbox{\boldmath $#1$}}
15: 
16: %% Because html converters don't know tabularnewline
17: \providecommand{\tabularnewline}{\\}
18: 
19: \usepackage{babel}
20: \makeatother
21: \begin{document}
22: \begin{frontmatter}
23: 
24: \title{Characterization of welding defects by fractal analysis of ultrasonic
25: signals}
26: 
27: 
28: \author{A. P. Vieira, E. P. de Moura, L. L. Gonçalves}
29: 
30: 
31: \address{Departamento de Engenharia Metalúrgica e de Materiais, Universidade
32: Federal do Ceará, Fortaleza, CE, Brazil}
33: 
34: 
35: \author{J. M. A. Rebello}
36: 
37: 
38: \address{Departamento de Engenharia Metalúrgica e de Materiais, Universidade
39: Federal do Rio de Janeiro, RJ, Brazil}
40: 
41: \begin{abstract}
42: In this work we apply tools developed for the study of fractal properties
43: of time series to the problem of classifying defects in welding joints
44: probed by ultrasonic tecniques. We employ the fractal tools in a preprocessing
45: step, producing curves with a considerably smaller number of points
46: than in the original signals. These curves are then used in the classification
47: step, which is realized by applying an extension of the Karhunen-Loève
48: linear transformation. We show that our approach leads to small error
49: rates, comparable with those obtained by using more time-consuming
50: methods based on non-linear classifiers.
51: \end{abstract}
52: \end{frontmatter}
53: 
54: \section{Introduction}
55: 
56: Ultrasonic tests can serve as a useful tool for evaluating the integrity
57: of metallic structures, and specially of weld joints. By inspecting
58: the scattering pattern of ultrasonic waves propagating in the material,
59: it is possible to identify the presence of defects, and to estimate
60: their dimensions. However, it is often desirable to have precise information
61: about the nature of the defects, and a number of studies have tried
62: to propose useful approaches to perform such classification \cite{masnata96,margrave99,moura05a,moura05b},
63: mostly based on direct analysis of the patterns with neural networks. 
64: 
65: In the present paper, we describe a distinct approach, based on tools
66: developed for analyzing fractal properties of time series \cite{hurst51,peng94,dubovikov04,addison97}.
67: Such kind of approach has been successfully applied to ultrasonic
68: signals (interpreted as a particular kind of time series) by a number
69: of authors \cite{barat98,matos04,silva05}, both in defect and in
70: microstructure classification, by calculating the exponents of the
71: power laws characterizing various fractal features of the series,
72: and hoping to associate different sets of exponents with different
73: classes. However, this can only be expected to work when the typical
74: series corresponding to different classes are highly dissimilar, due
75: to the fact that the size of each series is usually small, and estimates
76: of the various exponents are subject to significant fluctuations.
77: Thus, in general, an expanded set of features must be used to obtain
78: an efficient classification algorithm. Here we employ tools from the
79: statistical pattern-classification literature to extract relevant
80: features from the set of fractal analyses applied to ultrasonic signals
81: obtained from weld joints having three different kinds of defects.
82: 
83: We used $240$ ultrasonic signals obtained by the TOFD tecnique \cite{silk76},
84: with $60$ signals corresponding to each kind of defect (lack of fusion,
85: lack of penetration, and porosity) and other $60$ signals from regions
86: with no defects. (For a description of the materials used, as well
87: as tecniques for producing and capturing the signals, see Ref. \cite{moura05a}.)
88: All signals had a length of $512$ points, with $8$-bit resolution.
89: Typical signals are shown in Fig. \ref{fig:exemplosdesinais}. After
90: normalizing all signals so that the maximum and minimum values correspond
91: to $1$ and $-1$, we calculated the corresponding curves from four
92: different techniques of fractal analysis, which we describe in Sec.
93: \ref{sec:Fractal-analyses}. Then, as described in Sec. \ref{sec:Results-and-discussion},
94: we employed a variation of the Karhunen-Loève (KT) linear transformation
95: \cite{kittler73,webb02} to extract relevant features from the curves.
96: As we discuss in the final section, the combined approach of fractal
97: analysis and KT transformation yields a quite good classification
98: tool for the defects studied. %
99: \begin{figure}
100: \begin{centering}\includegraphics[width=0.8\columnwidth]{exemplosdesinais}\par\end{centering}
101: 
102: 
103: \caption{\label{fig:exemplosdesinais}Typical examples of signals obtained
104: from samples with (a) lack-of-fusion defects, (b) lack-of-penetration
105: defects, (c) porosities, and (d) no defects. The horizontal axes correspond
106: to the time direction, in units of the inverse sample rate of the
107: equipment.}
108: \end{figure}
109: 
110: 
111: 
112: \section{Fractal analysis}
113: 
114: \label{sec:Fractal-analyses}All techniques of fractal analysis employed
115: here start by dividing the signal into intervals containing $\tau$
116: points. Each technique then involves the calculation of the average
117: of some quantity $Q\left(\tau\right)$ over all intervals, for different
118: values of $\tau$. In a signal with genuine fractal features, $Q\left(\tau\right)$
119: should scale as a power of $\tau$, \begin{equation}
120: Q\left(\tau\right)\sim\tau^{\eta},\end{equation}
121: at least in an intermediate interval of values of $\tau$, corresponding
122: to $1\ll\tau\ll L$, $L$ being the signal length. 
123: 
124: Fractals of different nature should give rise to different exponents
125: $\eta$, providing a signature of the fractal. In our case, due to
126: the finite amount of points, and to the very nature of the signals,
127: a pure power-law behavior is hard to observe. Instead, as shown in
128: Fig. \ref{fig:curvasFF}, the curves usually exhibit features such
129: as a crossover between different power-law behaviors, or saturation
130: points, which can also serve as signatures of the different kinds
131: of defects. However, identifying the relevant features in advance
132: is a complex task. Fortunately, the pattern-classification literature
133: offers useful tools for feature extraction from data, and we describe
134: one of those in Sec. \ref{sec:Results-and-discussion} and Appendix
135: \ref{sec:Karhunen-Lo=E8ve-transformation}.
136: 
137: 
138: \subsection{Hurst (R/S) analysis}
139: 
140: The rescaled-range (R/S) analysis was introduced by Hurst \cite{hurst51}
141: as a tool for evaluating the persistency or antipersistency of a time
142: series. The method works by dividing the series into intervals of
143: a given size, and calculating the average ratio of the range (the
144: difference between the maximum and minimum values of the series) to
145: the standard deviation inside each interval. The size of each interval
146: is then varied.%
147: \begin{figure}
148: \begin{centering}\includegraphics[width=0.8\columnwidth]{curvasfractaisFF}\par\end{centering}
149: 
150: 
151: \caption{\label{fig:curvasFF}Curves for a lack-of-fusion signal, obtained
152: from (a) Hurst analysis, (b) detrended-fluctuation analysis, (c) minimal-cover
153: analysis, and (d) box-counting analysis.}
154: \end{figure}
155: 
156: 
157: Mathematically, the R/S analysis is defined in the following way.
158: Given an interval of size $\tau$, whose left end is located at point
159: $i_{0}$, we calculate $\langle z\rangle_{\tau}$, the average of
160: the series $z_{i}$ inside the interval, \begin{equation}
161: \langle z\rangle_{\tau}=\frac{1}{\tau}\sum_{i=i_{0}}^{i_{0}+\tau-1}z_{i}.\end{equation}
162:  We then define an accumulated deviation from the mean as \begin{equation}
163: Z_{i}=\sum_{k=i_{0}}^{i}\left(z_{k}-\langle z\rangle_{\tau}\right),\end{equation}
164:  from which we extract a range, \begin{equation}
165: R(\tau)=\max_{i_{0}\leqslant i\leqslant i_{0}+\tau-1}Z_{i}-\min_{i_{0}\leqslant i\leqslant i_{0}+\tau-1}Z_{i},\end{equation}
166:  and the corresponding standard deviation, \begin{equation}
167: S(\tau)=\sqrt{\frac{1}{\tau}\sum_{i=i_{0}}^{i_{0}+\tau-1}Z_{i}^{2}}.\end{equation}
168: Finally, we obtain the rescaled range $R(\tau)/S(\tau)$, and take
169: its average over all intervals.
170: 
171: For a curve with true fractal features, the rescaled range should
172: satisfy the scaling form \begin{equation}
173: \frac{R(\tau)}{S(\tau)}\thicksim\tau^{H},\end{equation}
174: where $H$ is the Hurst exponent.
175: 
176: A typical curve obtained from the R/S analysis of the signals is shown
177: in Fig. \ref{fig:curvasFF}(a).
178: 
179: 
180: \subsection{Detrended-fluctuation analysis}
181: 
182: The detrended-fluctuation analysis (DFA) \cite{peng94} aims to improve
183: the evaluation of correlations in a time series by eliminating trends
184: in the data.
185: 
186: The method consists initially in obtaining a new integrated series
187: $\tilde{z}_{i}$, \begin{equation}
188: \tilde{z}_{i}=\sum_{k=1}^{i}\left(z_{k}-\langle z\rangle\right),\end{equation}
189: the average $\langle z\rangle$ being taken over all points, \begin{equation}
190: \langle z\rangle=\frac{1}{L}\sum_{i=1}^{L}z_{i}.\end{equation}
191: After dividing the series into intervals, the points inside a given
192: interval are fitted by a polynomial curve of degree $n$. In our case,
193: we have considered $n=1$ or $n=2$, corresponding to first- and second-order
194: fits. Then, a detrended variation function $\Delta_{i,n}$ is obtained
195: by subtracting from the integrated data the local trend as given by
196: the fit. Explicitly, we define \begin{equation}
197: \Delta_{i,n}=\tilde{z}_{i}-h_{i,n},\end{equation}
198: where $h_{i,n}$ is the value associated with point $i$ according
199: to the fit of degree $n$. Finally, we calculate the root-mean-square
200: fluctuation $F_{n}(\tau)$ inside an interval as \begin{equation}
201: F_{n}(\tau)=\sqrt{\frac{1}{\tau}\sum_{i}\Delta_{i,n}^{2}},\end{equation}
202: and average over all intervals. For a true fractal curve, $F(\tau)$
203: should behave as \begin{equation}
204: F(\tau)\thicksim\tau^{\alpha},\end{equation}
205: where $\alpha$ is the scaling exponent.
206: 
207: A typical curve obtained from the detrented-fluctuation analysis of
208: the signals is shown in Fig. \ref{fig:curvasFF}(b).
209: 
210: 
211: \subsection{Minimal-cover analysis}
212: 
213: This recently introduced method \cite{dubovikov04} relies on the
214: calculation of the minimal area necessary to cover a given plane curve
215: at a specified scale.
216: 
217: After dividing the series, we can associate with each interval, labeled
218: by a variable $k$, a rectangle of height $H_{k}$, defined as the
219: difference between the maximum and minimum values of the series $z_{i}$
220: inside the $k$th interval, \begin{equation}
221: H_{k}=\max_{i_{0}\leqslant i\leqslant i_{0}+\tau-1}z_{i}-\min_{i_{0}\leqslant i\leqslant i_{0}+\tau-1}z_{i},\end{equation}
222: in which $i_{0}=1+\left(k-1\right)\tau$ labels the left end of the
223: interval. The minimal area is then given by \begin{equation}
224: A\left(\tau\right)=\sum_{k}H_{k}\tau,\end{equation}
225: the summation running over all cells.
226: 
227: Ideally, in the scaling region, $A(\tau)$ should behave as \begin{equation}
228: A\left(\tau\right)\thicksim\tau^{2-D_{\mu}},\end{equation}
229: where $D_{\mu}$ is the minimal cover dimension, which is equal to
230: $1$ when the signal presents no fractality.
231: 
232: A typical curve obtained from the minimal-cover analysis of a signal
233: is shown in Fig. \ref{fig:curvasFF}(c).
234: 
235: 
236: \subsection{Box-counting analysis}
237: 
238: This is a well-know method of estimating the fractal dimension of
239: a point set \cite{addison97}, and it works by counting the minimum
240: number $N\left(\tau\right)$ of boxes of side $\tau$ needed to cover
241: all points in the set. For a real fractal, $N\left(\tau\right)$ should
242: follow a power law whose exponent is the box-counting dimension $D_{B}$,\begin{equation}
243: N\left(\tau\right)\sim\tau^{-D_{B}}.\end{equation}
244: 
245: 
246: A typical box-counting curve for a signal is shown in Fig. \ref{fig:curvasFF}(d).
247: 
248: 
249: \section{Results of the classification approach}
250: 
251: \label{sec:Results-and-discussion}In order to classify the signals,
252: we used a supervised variation of the Karhunen-Lo\`{e}ve (KL) transformation
253: \cite{kittler73,webb02}, briefly described in Appendix \ref{sec:Karhunen-Lo=E8ve-transformation}.
254: For each signal, we collected the corresponding curves from various
255: fractal analyses, forming a single vector with $M$ components. The
256: most successfull combination involves curves from Hurst, linear detrended-fluctuation,
257: minimal-cover, and box-counting analyses, corresponding to $M=108$
258: (with $27$ components of the vector taken from each curve). A plot
259: obtained by projecting the first two components of the KL-transformed
260: vectors is shown in Fig. \ref{fig:KLUU12todos}, for the full set
261: of vectors. (Note that, with $4$ different classes for the vectors,
262: the transformed space is three-dimensional.) It is evident from the
263: figure that the transformation yields a good clustering of the vectors
264: around the different class means. This clustering is a general feature
265: of the KL transformation. However, to assess the utility of the classification
266: approach, it is essential to evaluate the generalization error.%
267: \begin{figure}
268: \begin{centering}\includegraphics[width=0.7\columnwidth]{UUmedindnorKL512todos}\par\end{centering}
269: 
270: 
271: \caption{\label{fig:KLUU12todos}Projection, along the first two components,
272: of the vectors obtained by applying the Karhunen-Loève transformation
273: to the to the full data set obtained from four different fractal analyses.}
274: \end{figure}
275: 
276: 
277: We proceeded by first randomly dividing the vectors into a training
278: set (with $80\%$ of the signals) and a test set (with the remaining
279: signals). The KL transformation was first applied to the training
280: vectors, and the class means were determined. Transformed vectors
281: in both sets were then classified by applying the nearest-class-mean
282: rule, i.e., a vector $\mathbf{x}$ was assigned to the class whose
283: average vector, as determined by the training set, lies closer to
284: $\mathbf{x}$. (It is also possible to explore other approaches for
285: discrimination, such as Bayesian rules , but that would require an
286: estimation of the class-conditional probabilities, which we do not
287: have at hand.) Finally, we took averages over $500$ different choices
288: of training and test sets. 
289: 
290: The average confusion matrices of the training and test sets are shown
291: in Tables \ref{tab:1} and \ref{tab:2}. Notice that the mean error
292: rate is negligible for the training vectors, and corresponds to around
293: $15\%$ for the test vectors. These error rates are comparable to
294: those obtained by analyzing the same signals directly using non-linear
295: classifiers based on neural networks \cite{moura05b}; the use of
296: linear classifiers, on the other hand, leads to considerably higher
297: error rates \cite{moura05a}. Notice that in our study the number
298: of variables ($108$) employed in the classification step represents
299: only around $1/5$ of the number used in the neural-network studies
300: (which made use of all $512$ points of each signal). Besides rendering
301: the calculations faster, for an equivalent error rate, the smaller
302: number of variables also leads to smaller fluctuations in the curves.%
303: \begin{table}
304: 
305: \caption{Average confusion matrix for the training vectors, derived from the
306: fractal analyses. The possible classes are lack of fusion (LF), lack
307: of penetration (LP), porosity (PO) and no defects (ND). The figures
308: in parenthesis indicate the standard deviations, calculated over $500$
309: sets. The value in row $i$, column $j$ indicates the percentage
310: of vectors belonging to class $i$ which were associated with class
311: $j$.\label{tab:1}}
312: 
313: \noindent \begin{centering}\begin{tabular}{|c|>{\centering}p{0.16\columnwidth}|>{\centering}p{0.16\columnwidth}|>{\centering}p{0.16\columnwidth}|>{\centering}p{0.16\columnwidth}|}
314: \hline 
315: &
316: LF &
317: LP &
318: PO &
319: ND \tabularnewline
320: \hline 
321: LF &
322: \textbf{100 }&
323: 0&
324: 0 &
325: 0 \tabularnewline
326: \hline 
327: LP &
328: 0 &
329: \textbf{99.87} (0.50)&
330: 0.13 (0.50) &
331: 0 \tabularnewline
332: \hline 
333: PO &
334: 0 &
335: 0.01 (0.10) &
336: \textbf{99.99} (0.10) &
337: 0\tabularnewline
338: \hline 
339: ND &
340: 0 &
341: 0&
342: 0.01 (0.08) &
343: \textbf{99.99} (0.08) \tabularnewline
344: \hline
345: \end{tabular}\par\end{centering}
346: \end{table}
347: %
348: \begin{table}
349: 
350: \caption{The same as in Table \ref{tab:1}, for the testing vectors.\label{tab:2}}
351: 
352: \noindent \begin{centering}\begin{tabular}{|c|>{\centering}p{0.165\columnwidth}|>{\centering}p{0.165\columnwidth}|>{\centering}p{0.165\columnwidth}|>{\centering}p{0.165\columnwidth}|}
353: \hline 
354: &
355: LF &
356: LP &
357: PO &
358: ND \tabularnewline
359: \hline 
360: LF &
361: \textbf{91.07} (8.20) &
362: 1.69 (3.64)&
363: 6.88 (7.37) &
364: 0.35 (1.69) \tabularnewline
365: \hline 
366: LP &
367: 2.61 (8.20) &
368: \textbf{83.96} (10.04)&
369: 12.14 (9.27) &
370: 1.28 (3.21) \tabularnewline
371: \hline 
372: PO &
373: 6.43 (7.27) &
374: 13.99 (10.5) &
375: \textbf{72.66} (12.87)&
376: 6.92 (7.55)\tabularnewline
377: \hline 
378: ND &
379: 1.01 (3.25) &
380: 2.55 (4.43)&
381: 6.92 (7.16) &
382: \textbf{89.51} (8.93) \tabularnewline
383: \hline
384: \end{tabular}\par\end{centering}
385: \end{table}
386: 
387: 
388: For completeness, we also applied the KT transformation to both the
389: correlograms and the Fourier spectra of each signal, obtaining average
390: error rates no smaller than $36\%$ and $48\%$, respectively (see
391: Table \ref{tab:3}). %
392: \begin{table}
393: 
394: \caption{\label{tab:3}Average percentage rates of correct classification
395: of the test vectors, derived from applying the KL transformation to
396: the correlograms or the Fourier spectra associated with the signals.
397: The figures in parenthesis indicate standard deviations calculated
398: over $100$ sets.}
399: 
400: \noindent \begin{centering}\begin{tabular}{|c|c|c|c|c|}
401: \hline 
402: &
403: LF&
404: LP&
405: PO&
406: ND\tabularnewline
407: \hline
408: \hline 
409: Correlograms&
410: 60.19 (17.75)&
411: 64.18 (14.96)&
412: 51.60 (16.87)&
413: 57.43 (16.16)\tabularnewline
414: \hline 
415: Fourier spectra&
416: 51.42 (17.49)&
417: 47.35 (17.03)&
418: 46.76 (16.64)&
419: 48.08 (15.76)\tabularnewline
420: \hline
421: \end{tabular}\par\end{centering}
422: \end{table}
423: 
424: 
425: 
426: \section{Conclusions}
427: 
428: In this paper we applied techniques developed for the study of fractal
429: properties of time series as a preprocessing tool for the classification
430: of defects probed by ultrasonic signals. The signals were obtained
431: in welding joints containing three different classes of defects, and
432: we also considered signals with no defects. For the classification
433: step, we employed an extension of the Karhunen-Loève transformation,
434: which, supplemented by the nearest-class-mean rule, yielded low error
435: rates (between $0$ and $15\%$) both in the training and the test
436: stages. These error rates are comparable with those obtained from
437: more time-consuming approaches based on direct analysis of the signals.
438: In our view, this is evidence that fractal techniques are a promising
439: tool for the classification of defects probed by ultrasonic inspection.
440: 
441: We believe that the performance of the classification approach based
442: on fractal techniques can be further improved by resorting to non-linear
443: classifiers, especially in combination with reclassification and hierarchical
444: procedures. These extensions we leave for future investigations.
445: 
446: \begin{ack}
447: We acknowledge financial support from the Brazilian agencies FUNCAP,
448: CNPq, CAPES and FINEP (CT-Petro). A. P. Vieira has benefitted from
449: helpful conversations with N. Caticha.
450: \end{ack}
451: \appendix
452: 
453: \section{Karhunen-Loève transformation\label{sec:Karhunen-Lo=E8ve-transformation}}
454: 
455: The Karhunen-Loève (KL) transformation, as the principal component
456: analysis, is a tool for feature selection and extraction. It produces
457: a set of mutually uncorrelated components, and dimensionality reduction
458: can be achieved by selecting those components with the largest variances.
459: The version of the transformation employed here {[}Kittler and Young,
460: 1973 (Webb)] relies on compression of the discriminatory information
461: contained in the class means.
462: 
463: Let $\mathbf{x}_{i}$ be the (column) vector corresponding to the
464: $i$th signal. The KL transformation consists of first projecting
465: the training vectors along the eigenvectors of the within-class covariance
466: matrix $\mathbf{S}_{W}$, defined by \begin{equation}
467: \mathbf{S}_{W}=\frac{1}{N}\sum_{k=1}^{N_{C}}\sum_{i=1}^{N_{k}}y_{ik}(\mathbf{x}_{i}-\mathbf{m}_{k})(\mathbf{x}_{i}-\mathbf{m}_{k})^{T},\end{equation}
468: where $N_{C}$ is the number of different classes, $N_{k}$ is the
469: number of vectors in class $k$, $\mathbf{m}_{k}$ is the average
470: vector of class $k$, and $T$ denotes the transpose of a matrix (in
471: this case, yielding a row vector). The element $y_{ik}$ is equal
472: to one if $\mathbf{x}_{i}$ belongs to class $k$, and zero otherwise.
473: We also rescale the resulting vectors by a diagonal matrix built from
474: the eigenvalues $\lambda_{j}$ of $\mathbf{S}_{W}$. In matrix notation,
475: this operation can be written as \begin{equation}
476: \mathbf{X}^{\prime}=\Lambda^{-\frac{1}{2}}\mathbf{U}^{T}\mathbf{X},\end{equation}
477: in which $\mathbf{X}$ is the matrix whose columns are the training
478: vectors $\mathbf{x}_{i}$, $\Lambda=\mathrm{diag}(\lambda_{1},\lambda_{2},...)$,
479: and $\mathbf{U}$ is the matrix whose columns are the eigenvectors
480: of $\mathbf{S}_{W}$. This choice of coordinates makes sure that the
481: transformed within-class covariance matrix corresponds to the unit
482: matrix. Finally, in order to compress the class information, we project
483: the resulting vectors onto the eigenvectors of the between-class covariance
484: matrix $\mathbf{S}_{B}$, \begin{equation}
485: \mathbf{S}_{B}=\sum_{k=1}^{N_{C}}\frac{N_{k}}{N}(\mathbf{m}_{k}-\mathbf{m})(\mathbf{m}_{k}-\mathbf{m})^{T},\end{equation}
486: where $\mathbf{m}$ is the overall average vector. The full transformation
487: can be written as \begin{equation}
488: \mathbf{X}^{\prime\prime}=\mathbf{V}^{T}\Lambda^{-\frac{1}{2}}\mathbf{U}^{T}\mathbf{X},\end{equation}
489: $\mathbf{V}$ being the matrix whose columns are the eigenvectors
490: of $\mathbf{S}_{B}$ (calculated from $\mathbf{X}^{\prime}$).
491: 
492: With $N_{C}$ possible classes, the fully-transformed vectors have
493: at most $N_{C}-1$ relevant components. We then associate a vector
494: $\mathbf{x}_{i}$ with the class whose average vector lies closer
495: to $\mathbf{x}_{i}$ within the transformed $(N_{C}-1)$-dimensional
496: space. This association rule would be optimal if the vectors in different
497: classes followed normal distributions.
498: 
499: \bibliographystyle{unsrt}
500: \bibliography{end}
501: 
502: \end{document}
503: