DOI QR코드

DOI QR Code

A Tree-Compare Algorithm for Similarity Evaluation

유사도 평가를 위한 트리 비교 알고리즘

  • 김영철 ((주)뉴스텍시스템즈, 명지전문대학) ;
  • 유재우 (숭실대학교 컴퓨터학부)
  • Published : 2004.04.01

Abstract

In the previous researches, tree comparison methods are almost studied in comparing weighted or labeled tree(decorated tree). But in this paper, we propose a tree comparison and similarity evaluation algorithm can be applied to comparison of two normal trees. The algorithm converts two trees into node string using unparser, evaluates similarity and finally return similarity value from 0.0 to 1.0. In the experiment part of this paper, we visually presented matched nodes and unmatched nodes between two trees. By using this tree similarity algorithm, we can not only evaluate similarity between two specific programs or documents but also detect duplicated code.

기존의 트리 비교에 관한 연구는 대부분 노드에 가중치가 있거나 레이블이 있는 트리(장식이 있는 트리)에 대해서 연구되었다. 그러나 본 연구에서는 장식이 없는 서로 다른 두개의 트리를 비교하여 유사도를 평가하는 알고리즘을 제시하고 구현한다. 본 시스템에서 제시한 트리 유사도 평가 알고리즘은 비교할 두 개의 트리를 언파서에 의해 노드 스트링으로 변환된 후, 유사도 알고리즘에 의해서 평가되며, 0.0-1.0 사이의 유사 값을 돌려준다. 본 논문의 실험 부분에서는 여러 형태의 트리를 비교 분석하였으며, 두 트리 사이에 일치되는 노드와 불일치 되는 노드를 시각적으로 표현하였다. 본 연구를 활용하면, 특정한 프로그램이나 문서의 유사도 및 중복 코드 발견 등에 활용할 수가 있다.

Keywords

References

  1. T. H. Cormen, C. E. Leiserson, R. L. Rivest, 'Introduction to Algorithms,' The MIT Press, 1994
  2. D. Bryant, 'Building Trees, Hunting for Trees, and Comparing Trees,' phD thesis, University of Caterbury, 1997
  3. D. Robinson and L. Foulds, 'Comparison of Weighted Labelled Trees,' In lecture notes in mathematics, pp.119-126, Springer-Verlag, Germany, 1979 https://doi.org/10.1007/BFb0102690
  4. V. C. Bhavsar, H. Boley and L. Yang, 'A Weighted-Tree Similarity Algorithm for Multi-Agent Systems in E-Business Environments,' available at http://www.ruleml.org/indoo/BhavsarBoley Yang-Final.pdf
  5. M. Steel and D. Penny, 'Distributions of tree comparison metrics-some new results,' syst. biol., 42(2), pp.126-141, 1993 https://doi.org/10.2307/2992536
  6. Component Web Site available at http://taxonomy.zoology.gla.ac.uk/rod/cpw.html
  7. A. H. B. ledsoe and F. H. Sheldon, 'Moecular homology and DNA hybridization,' J. Mol. E vol.30, pp.425-433, 1990 https://doi.org/10.1007/BF02101114
  8. M. S. Waterman and T. F. Smith 'On the Similarity of Dendrograms,' journal of theoretical biology, 73, pp.789-800, 1978 https://doi.org/10.1016/0022-5193(78)90137-6
  9. I. D. Baxter, A. Yahin, L. Moura, M. San'Anna & L. Bier, 'Clone Detection using Abstract Syntax Trees,' In proc. of the international Conference on Software Maintenance, Bethesda, Maryland, pp.368-378, Nov., 1998 https://doi.org/10.1109/ICSM.1998.738528
  10. A. W. Cole, 'Prototype Tree Comparison Tools for Describing File Systems,' available at http://www.ldc.upenn.edu.Staff/acole/research/thesis.html, 2002
  11. E. Berk, 'Jlex : A Lexical Analyzer Generator for Java TM,' available at http://www.cs.princeton.edy/~appel/modern/java/JLex/
  12. J. Lin, 'JLex Tutorial,' available at http://bmrc.berkeley.edu/courseware/ cs164/spring98/proj/jlex/tutorial.html
  13. S. E. Hudson, 'CUP Parser Generator for Java,' available at http://www.cs.princeton.edy/~appel/modern/java/CUP/