유방향그래프에서의 순환 검출 알고리즘

A Cycle Detection Algorithm in Directed Graphs

  • 이우기 (성결대학교 컴퓨터공학과) ;
  • 이정훈 (성결대학교 컴퓨터공학과) ;
  • 박상언 (성결대학교 컴퓨터공학과) ;
  • 김능회 (성결대학교 컴퓨터공학과)
  • 발행 : 2005.05.13

초록

순환탐색 알고리즘 및 스택기반 알고리즘 등은 유방향그래프에서 순환과 순환경로를 발견하는 특정 정점으로부터 출발하여 연결된 그래프에서 순환을 탐색하는 것이다. 기존 연구의 단점은 모든 순환을 다 찾아내지지 못하는 경우라든지, 동일한 순환을 중복해서 찾아내는 문제가 있었다. 본 연구에서 제시하는 정점제거 순환탐색 알고리즘은 특정 정점의 순환을 발견한 뒤 그 정점을 삭제하므로 중복된 순환을 발견하지 않고 모든 순환을 찾을 수 있다. 또한 순환을 발견했을 때, 순환경로를 출력하는데 있어서 스택의 인덱스를 이용해, 저장경로를 탐색하지 않고 출력하는 방법을 제안하였다. 실험에서는 임의의 정점과 간선을 생성하여 그래프로 만들고, 각 알고리즘에 따른 모든 정점을 찾을 수 있는지, 그래프 상황에 따라 어떠한 장단점이 있는지, 간선이 많아질수록 인덱스 순환탐색 알고리즘보다 탐색시간이 얼마나 차이를 보이는지를 확인하였다. 웹 구조처럼 일정한 크기의 웹페이지와 많은 수의 링크가 존재하는 그래프에서 정점제거 순환탐색 알고리즘이 순환을 찾는데 적합하다는 것을 입증했다.

키워드