KR20100101365A - 최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 - Google Patents
최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 Download PDFInfo
- Publication number
- KR20100101365A KR20100101365A KR1020090019820A KR20090019820A KR20100101365A KR 20100101365 A KR20100101365 A KR 20100101365A KR 1020090019820 A KR1020090019820 A KR 1020090019820A KR 20090019820 A KR20090019820 A KR 20090019820A KR 20100101365 A KR20100101365 A KR 20100101365A
- Authority
- KR
- South Korea
- Prior art keywords
- path
- matrix
- shortest path
- shortest
- group
- Prior art date
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 165
- 238000000034 method Methods 0.000 claims abstract description 62
- 230000006870 function Effects 0.000 claims description 24
- 125000002015 acyclic group Chemical group 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 5
- KHOITXIGCFIULA-UHFFFAOYSA-N Alophen Chemical compound C1=CC(OC(=O)C)=CC=C1C(C=1N=CC=CC=1)C1=CC=C(OC(C)=O)C=C1 KHOITXIGCFIULA-UHFFFAOYSA-N 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000000126 substance Substances 0.000 description 2
- 238000003889 chemical engineering Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000004072 lung Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램에 관한 것이다. 본 발명에 따른 기법은, 네트워크 상에 위치하는 노드(node)들의 연결 관계에 경로 정보를 생성하여 노드들의 연결 관계를 생성된 경로 정보로 나타내는 인접행렬을 획득하고, 이러한 인접행렬을 이용하여 최단경로행렬 및 최단경로+1행렬을 획득한 후, 최단경로행렬 및 최단경로+1행렬을 이용하여 최소 길이의 폐구간을 이루는 노드 집합을 찾기 위한 프로그램을 제공한다.
최단경로행렬, 최소 링, SSSR, 링 인식, ring perception
Description
본 발명은 최단경로행렬을 이용하여 각 노드 간의 연결 관계를 파악하는 기법에 관한 것으로, 구체적으로는 최소 길이의 폐구간을 이루는 노드들을 찾는 기법 및 그 기법에 따른 프로그램을 제안하는 것이다.
통신, 교통 체계, 전자회로, 화학 구조 등의 각종 정보는 다수의 노드(node)와 각 노드를 그래프로 연결시킨 하나의 네트워크 개념으로 모델링할 수 있다.
예를 들어, 통신 기술 분야의 경우, 이동 단말, 기지국, 중계국 등의 네트워크 엔터티가 노드의 개념으로 표현되고, 각 네트워크 엔터티 간의 유/무선 인터페이스가 각 노드 간의 연결관계로 표현될 수 있고, 화학 구조의 경우, 하나의 분자를 이루는 각 원자가 노드의 개념으로 표현되고, 각 원자 간에 결합이 있는지 여부에 관한 정보가 각 노드 간의 연결관계로 표현될 수 있다.
상기 네트워크에 존재하는 다수의 노드들 간에 연결 관계를 효율적으로 나타 내는 방법 중 하나가 거리행렬을 이용하여 나타내는 방법이다. 이하, 거리행렬에 관하여 설명한다.
거리행렬(distance matrix)은 각 노드(node)들 간의 최단거리에 관한 정보를 행렬 형태로 나타내는 것을 말한다. 네트워크 상에 존재하는 노드의 개수가 n개일 때 거리행렬 A는 n×n의 정방 대칭 행렬 형태를 띠는 것이 일반적이다.
예를 들어, 거리행렬 상에 i행(row), j열(column)의 값이 1이면 i와 j에 해당하는 노드가 하나의 모서리(edge)로 연결된 것이고, 그 값이 2이면 두개의 모서리로 연결된 것이다. 거리행렬의 대각성분(diagonal)은 0이 된다.
도 1은 7개의 노드로 표현된 네트워크 일례이고, 도 2는 도 1의 네트워크를 거리행렬로 나타낸 일례이다.
네트워크에 포함되는 노드들이 형성하는 폐구간에 대한 정보를 정확하게 아는 경우, 특정한 네트워크의 구조를 정확하게 파악할 수 있다.
도 1을 보면, V1-V2-V3-V4-V5-V6-V7이 폐구간(closed path)을 나타내는 것을 알 수 있고, V1-V2-V6-V7, V2-V3-V4-V5-V6 등이 또 다른 폐구간을 나타내는 것을 알 수 있다.
상술한 폐구간 중에서 V1-V2-V6-V7, V2-V3-V4-V5-V6 폐구간의 정보는 특히 중요하다. 도 1의 네트워크는 상술한 2개의 폐구간으로 구분될 수 있으므로, 상술한 2개의 폐구간의 정보를 아는 경우, 상기 네트워크에서의 노드 간의 연결 관계를 정확하게 알 수 있다.
그러나 상기 V1-V2-V3-V4-V5-V6-V7 폐구간은 상술한 V1-V2-V6-V7, V2-V3-V4- V5-V6 폐구간을 그대로 포함하는 폐구간으로서, 상기 V1-V2-V3-V4-V5-V6-V7 폐구간에 대한 정보가 없더라도 도 1의 네트워크의 구조를 파악하는데 문제가 없다.
정리하면, 어떤 네트워크의 구조를 정확하게 알기 위해서는, i) 최소 길이를 갖는 폐구간으로서, ii) 자신보다 좀더 짧은 길이를 갖는 폐구간을 그대로 포함하지 않는 폐구간을 찾아야만 한다.
이하, 상기 i), ii)의 조건을 만족하는 폐구간을 '최소 길이의 폐구간'이라 칭한다. 상기 '최소 길이의 폐구간'은 관련된 기술 분야에 따라 다양한 명칭으로 불린다. 예를 들어, 화학 분야에서는 이러한 '최소 길이의 폐구간'을 이루는 노드들의 집합을 SSSR(Smallest Set of Smallest Rings)이라 칭하고, 이러한 SSSR을 찾는 일련의 과정을 '링 인식'(ring perception)이라 칭해왔다. 반면, 컴퓨터 공학과 다른 분야에서는 MCB(Minimum Cycle Basis)이라 칭해왔다.
예를 들어, 도 1의 경우에는, [V1, V2, V6, V7], [V2, V3, V4, V5, V6] 등이 하나의 SSSR, 즉 최소 길이의 폐구간을 이루는 노드들의 집합으로 정리될 수 있다.
종래에는 SSSR, 즉 최소 길이의 폐구간을 이루는 노드들의 집합들을 효율적으로 찾기 위해 Horton, Berger, Figuera, Bersohn, Esack, Zamora, Gbaumer 등의 다양한 기법 등이 제안되었다.
종래에 제안된 최소 길이의 폐구간을 이루는 노드들을 찾는 기법은 특정한 구조를 갖는 네트워크 구조에 대해서는 완전하게 최소 길이의 폐구간을 찾지 못하는 문제가 있었다.
또한, 종래의 기법은 특정한 구조를 갖는 네트워크에 대해서 최소 길이의 폐구간을 찾는데 지나치게 오랜 시간이 소요되는 문제가 있었다.
본 발명은 상술한 종래 기술의 문제점을 해결하기 위해 제안된 것으로, 본 발명의 목적은, 다양한 네트워크 구조에 대하여 최소 길이의 폐구간을 완전하게 찾는 기법을 제안하는 것이다.
본 발명의 또 다른 목적은 빠른 속도로 최소 길이의 폐구간을 완전하게 찾는 기법을 제안하는 것이다.
본 발명의 일 양태에 따르면 컴퓨터에 네트워크 상에 위치하는 노드(node)들의 연결 관계에 경로 정보를 생성하여 상기 노드들의 연결 관계를 상기 경로 정보로 나타내는 인접행렬을 획득하는 제1 기능, 상기 인접행렬로부터 각 노드들 간의 최단 경로를 상기 경로 정보로 나타내는 최단경로행렬 및 상기 각 노드들 간의 최단 경로에 하나 더 추가된 경로를 가진 최단경로+1를 상기 경로 정보로 나타내는 최단경로+1행렬을 획득하는 제2 기능, 상기 최단경로행렬 및 상기 최단경로+1행렬을 이용하여 상기 네트워크의 폐구간을 이루는 경로 정보들을 그룹화한 적어도 하 나의 경로군(group)을 검출하는 제3 기능,
상기 적어도 하나의 경로군으로부터 최소 길이의 폐구간을 이루는 경로군을 추출하는 제4 기능, 및 상기 추출된 경로군으로부터 상기 인접행렬을 이용하여 최소 길이의 폐구간을 이루는 하나의 노드 집합을 그룹화하는 제5 기능을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체를 제공한다.
본 발명의 다른 양태에 따르면 컴퓨터에 네트워크 상에 위치하는 노드(node)들의 연결 관계에 경로 정보를 생성하여 상기 노드들의 연결 관계를 상기 경로 정보로 나타내는 인접행렬을 획득하는 제1 단계, 상기 인접행렬의 모서리(edge) 및 꼭지점(vertex)의 개수를 이용하여, 상기 인접행렬에서 검출 가능한 최소 길이의 폐구간의 개수를 산출하는 제2 단계, 상기 인접행렬로부터 각 노드들 간의 최단 경로를 상기 경로 정보로 나타내는 최단경로행렬 및 상기 각 노드들 간의 최단 경로에 하나 더 추가된 경로를 가진 최단경로+1를 상기 경로 정보로 나타내는 최단경로+1행렬을 획득하는 제3 단계, 상기 최단경로행렬을 이용하여 길이가 짝수인 폐구간을 이루는 경로 정보들을 그룹화한 적어도 하나의 경로군을 검출하고 상기 최단경로행렬 및 상기 최단경로+1행렬을 이용하여 길이가 홀수인 폐구간을 이루는 적어도 하나의 경로군을 검출하는 제4 단계, 상기 적어도 하나의 경로군으로부터 최소 길이의 폐구간을 이루는 경로군을 추출하는 제5 단계, 상기 추출된 경로군으로부터 상기 인접행렬을 이용하여 최소 길이의 폐구간을 이루는 하나의 노드 집합을 그룹화하는 제6 단계, 및 상기 제6단계에 의해 그룹화한 노드 집합의 개수가 상기 제2단계에 의한 검출 가능한 최소 길이의 폐구간의 개수와 일치할 때까지, 상 기 제5단계 및 상기 제6단계를 반복 수행하는 제7 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체를 제공한다.
종래에는 그 구조를 정확하게 찾지 못한 네트워크에 대해서도, 그 구조를 정확하게 찾을 수 있다. 또한, 종래에는 그 구조를 파악하는데 오랜 시간이 소요된 네트워크에 대해서도 빠른 속도로 구조를 파악할 수 있다.
본 발명은 다양한 형상의 네트워크의 구조를 분석하기 위하여, 네트워크를 이루는 각 노드들의 연결관계를 효율적으로 파악하는 기법을 제공한다.
상술한 네트워크의 종류에는 제한이 없으며, 본 발명이 적용되는 네트워크는 예를 들어, 통신 시스템, 교통 체계, 전자회로, 분자 등일 수 있다. 상기 네트워크는 바람직하게, 복수 개의 노드(node)들로 이루어진다. 상기 노드(node)는, 네트워크의 종류에 따라, 이동 단말, 기지국, 중계국, 이동 수단, 회로 소자, 분자를 이루는 원자 등의 다양한 엔터티(entity)일 수 있다.
본 발명은 다양한 구조의 네트워크에 대하여 '최소 길이의 폐구간'을 이루는 노드들의 집합을 효율적으로 찾는 기법을 제공한다. 상기 '최소 길이의 폐구간'은 '링(ring)' 또는 '최소 링(Smallest Ring)' 등의 다양한 표현으로 불리며, 상기 '최소 길이의 폐구간'을 이루는 노드들의 집합은, 'SSSR(Smallest Set of Smallest Rings)' 등의 다양한 표현으로 불린다.
이하에서는 설명의 편의를 위해, '최소 길이의 폐구간'을 '최소 링(Smallest Ring)'이라 칭하고, 상기 '최소 길이의 폐구간'을 이루는 노드들의 집합은 SSSR이라 칭한다. 또한, 그래프에서 꼭지점(vertex)은 노드(node)로도 불릴 수 있으며, 각 꼭지점을 연결하는 모서리는 경로(path)로도 불릴 수 있다.
비록 '최소 링(Smallest Ring)' 또는 'SSSR'이라는 표현이 특정한 기술 분야(예를 들어, 컴퓨터 공학, 화학 공학)에서 선호되는 표현이라 할지라도, 이는 설명의 편의를 위해 선택된 용어에 불과하므로, 본 발명이 노드로 이루어진 모든 종류의 네트워크 상에서 최소 길이를 갖는 폐구간을 찾는데 사용될 수 있음은 자명하다 할 것이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 다음 실시예들은 본 발명의 이해를 돕기 위한 것이며 본 발명이 하기의 실시예에 한정되는 것은 아니다.
본 발명에 따른 기법은 다양한 방법과 함께 사용되거나, 컴퓨터와 같은 다양한 장치를 통해 구현되는 것이 바람직하다. 이하, 설명의 편의를 위해 본 발명에 따른 기법이 컴퓨터에서 실행되는 소프트웨어의 형태로 구현되는 일례를 설명한다.
도 3은 본 실시예를 실행하는 컴퓨터의 일례를 나타내는 블록도이다.
본 실시예가 수행되는 컴퓨터는 버스(106)로 연결된 중앙처리장치(CPU)(101), 메모리(102), 표시장치(103), 입력장치(104) 및 외부기억수단(105)을 포함한다.
보다 구체적으로, 이 컴퓨터는 워크스테이션, 퍼스널컴퓨터 또는 그 밖의 컴퓨터 시스템일 수 있다. 상기 외부기억수단(105)으로서는, 예를 들면, 자기디스크, 반도체 메모리 또는 그 밖의 일반적인 기억매체가 사용될 수 있다. 바람직하게, 상기 컴퓨터에서, 본 실시예에 따른 기법의 내용을 포함하는 컴퓨터 프로그램은 외부기억수단(105)에 저장된다. 조작자가 입력장치(104)로부터 프로그램 실행의 지시를 입력할 경우, CPU(101)는 외부기억수단(105)으로부터 프로그램을 메모리(102)로 로드(load)한다.
바람직하게, 조작자는, 예컨대 입력장치(104)로부터 프로그램 실행을 위한 데이터(예를 들어, 상술한 '거리행렬' 등)를 입력시킴으로써 메모리(102)에 프로그램 실행을 위한 데이터(예를 들어, '거리행렬')를 준비한다. 상술한 데이터는 외부기억수단(105)에 미리 저장되어 메모리(102)에 로드(load)되는 것도 가능하다. CPU(101)는 메모리(102)에 로드된 프로그램에 따라 상기 데이터를 이용하여 소정의 연산을 수행한다.
바람직하게, 상기 CPU(101)는 본 실시예에 따른 기법의 프로그램의 결과 데이터를 상기 표시장치(103) 상에 표시한다.
도 4는 본 실시예에 따라 'SSSR'을 찾는 과정을 나타낸 절차흐름도의 일례이다. 본 실시예에 따른 컴퓨터는 도 4에 도시된 과정에 따라 'SSSR'을 찾는 것이 바람직하다.
도시된 바와 같이, 그래프로부터 경로 정보를 생성하여 인접행렬(path included adjacency matrix)을 획득하는 단계(S401), 인접행렬에서 검출 가능한 최소 길이의 폐구간(최소 링)의 개수를 산출하는 단계(S402), 인접행렬로부터 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 획득하는 단계(S403), 최소 링 후보인 폐구 간을 이루는 경로군 검출후 이를 배열하는 단계(S404), 경로수가 가장 작은 경로군부터 링을 구성하는 단계(S405), 검출된 링들 중 최소 링을 이루는 경로군을 추출하는 단계(S406), 추출된 경로군으로부터 SSSR을 추출하는 단계(S407), 특정한 네트워크에 대해 찾을 수 있는 모든 SSSR을 찾았는지 판단하는 단계(S408)를 포함한다. 만약, 모든 SSSR을 찾지 않았다면 상기 링의 경로수를 증가시켜(S409) 상기 S405 단계를 반복수행한다.
도 4의 단계는 본 발명의 일례이므로, 도시된 각각의 단계들은 서로 분리되어 수행되거나, 함께 수행되거나, 도시된 순서와 다르게 수행될 수 있다. 또한, 조작자의 필요에 따라 일부 단계를 생략하거나, 부가적인 단계를 추가할 수 있다.
이하, 도 4의 절차흐름도를 기준으로 본 실시예를 설명한다.
제1 단계(S401):
조작자는 상기 입력장치(104) 또는 외부기억수단(105) 등을 이용하여 컴퓨터에 그래프를 입력시킨다. 외부기억수단(105)에 저장된 프로그램을 통하여 입력된 그래프로부터 m개의 노드 및 n개의 각 노드를 연결하는 모서리를 인식하고 각 모서리에 대해 경로 정보를 생성한다. 또한, 본 실시예는 입력장치(104) 또는 외부기억수단(105) 등을 이용하여 컴퓨터에 이하에서 설명될 인접행렬을 직접 입력시킬 수도 있다. 본 실시예에서 '인접행렬'은 그래프의 노드 사이의 인접한 경로 정보를 해당 노드를 나타내는 행과 열의 성분으로 저장된 행렬을 말한다.
이하, 도 1의 네트워크를 중심으로 설명한다.
도 5는 도1의 네트워크에서 각 모서리에 경로 정보를 생성시킨 일례를 설명 하는 도면이다.
도 5를 보면, V1 노드와 V2 노드 사이의 모서리에는 e1의 경로 정보를 생성한다. V2 노드와 V3 노드 사이의 모서리에는 e2, V3 노드와 V4 노드 사이의 모서리에는 e3의 경로 정보를 생성하는 방식으로 모든 모서리에 경로 정보를 생성한다. 도 5에 따른 경로 정보의 생성은 예시로서, 다른 방식 예를 들어, V1 노드와 V2 노드 사이의 모서리에는 e8, V2 노드와 V3 노드 사이의 모서리에는 e7, V3 노드와 V4 노드 사이의 모서리에는 e6의 경로 정보를 생성하는 방식으로도 경로 정보를 생성할 수 있다. 여기서, 특정 경로 정보는 특정 노드 끼리를 연결하는 모서리를 나타내며, 다른 모서리를 중복해서 표현할 수 없다.
그런 다음, 생성된 경로 정보를 포함하는 인접행렬을 획득한다.
도 5에 대한 그래프는 다음 수학식 1과 같은 인접행렬(P)로 모델링된다.
상기 수학식 1의 행렬은 대각성분(diagonal)을 중심으로 대칭한다.
제2 단계(S402):
상기 인접행렬(P)을 이용하면 검출 가능한 최소 링의 개수를 계산할 수 있다.
상기 수학식 1에서, 'E'는 인접행렬의 경로의 개수이고, 'V'는 꼭지점(Vertex)의 개수이다. 인접행렬의 모서리 및 꼭지점을 이용하여 최소 링의 개수를 산출하는 방법은 이미 공지된 내용으로서, 상기 수학식 2에 의할 수 있다. 상기 수학식 2를 통해 특정한 네트워크에 대해 찾을 수 있는 최소 링의 개수가 산출된다. 예컨대, 수학식 1에서 'E'는 e1 내지 e8까지 8개이고, 'V'는 정방행렬(square matrix)의 행과 열의 개수로서 7개이다. 따라서, 상기 수학식 2에 의해 최소 링의 개수는 2개가 된다.
바람직하게, 상기 제2 단계(S402)를 수행하기 이전에 개방된 비환식 노드(open acyclic node)를 제거하는 동작이 수행된다. 즉, 어느 하나의 노드에만 연결된 경로가 존재하는 경우, 해당 경로를 제거하는 데이터 처리가 상기 제2 단계(S402) 수행 이전에 수행되는 것이 바람직하다.
도 6은 개방된 비환식 노드(open acyclic node)의 제거 동작을 설명하는 도면이다.
도 6을 참조하면, 12개의 노드와 15개의 모서리를 가진 그래프(610)에서 어느 하나의 노드에만 연결된 e1 경로를 제거한다(601). 그런 다음, 제거 후 다시 어느 하나의 노드에만 연결되게 된 e2 경로를 제거한다(602). 그런 다음, 상기 제거 후 다시 어느 하나의 노드에만 연결되게 된 e3 경로를 제거한다(603). 마지막으로 어느 하나의 노드에만 연결된 e4 경로를 제거한다(604). 604는 601 내지 603 보다 먼저 수행될 수도 있다. 이러한 제거 동작을 통하여 개방된 비환식 노드가 없는 그래프(620)가 얻어진다. 그래프(620)는 10개의 노드와 11개의 모서리를 가진다.
따라서, 상기 'E' 값과 'V' 값은 개방된 비환식 노드(open acyclic node)를 제거하는 동작이 수행된 이후 얻어지는 값이다.
제3 단계(S403):
이하에서는 인접행렬(P)로부터 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 획득하는 방법을 설명한다.
최단경로행렬(Pe)은 노드 i 와 j 사이의 경로수 dij를 가진 모든 가능한 최단 경로들이 각 노드에 대한 행과 열에 저장된 행렬을 말한다. 최단경로+1행렬(Pe')은 경로수 dij
+ 1을 가진 즉, 최단 경로 보다 하나 더 추가된 경로를 가진 모든 경로들이 각 노드에 대한 행과 열에 저장된 행렬을 말한다. 정리하면, 최단경로+1행렬(Pe')에서 '+1'은 최단 경로 보다 다른 노드까지 하나 더 추가된 경로를 포함하는 것을 나타낸다. 본 실시예에서 경로수는 길이와 동일한 의미를 가진다.
인접행렬(P)로부터 최단경로행렬(Pe)의 획득은 최단 경로의 문제를 해결하는 다양한 알고리즘을 이용하여 수행할 수 있다. 예컨대, 플로이드-왓샬 알고리즘(Floyd-Warshall Algorithm)을 이용하여 수행할 수 있다. 최단경로+1행렬(Pe')의 획득은 최단 경로의 문제를 해결하는 알고리즘들을 응용한 알고리즘을 이용하여 수 행할 수 있다. 도 5의 그래프에 대한 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')은 다음 수학식 3 및 수학식 4로 표현될 수 있다.
상기 수학식 3 및 수학식 4의 행렬은 대각성분(diagonal)을 중심으로 대칭한다.
수학식 3 및 수학식 4의 각 성분에서 '+'는 '또는(or)'을 의미하고, 각 성분이 '0'인 것은 최단 경로나 최단 경로에서 경로가 하나 더 추가된 경로가 없는 것을 의미한다.
수학식 3을 참조하면, V1 노드에서 V2노드까지 최단 경로는 e1이고 V1 노드에서 V3노드까지 최단 경로는 e1과 e2를 거치는 것이며, V1 노드에서 V4노드까지 최단 경로는 e1, e2 및 e3를 거치는 것이다. V1 노드에서 V6노드까지 최단 경로는 e1와 e8을 거치거나, e6과 e7을 거치는 것이다.
수학식 4를 참조하면, V1 노드에서 V4노드까지 최단 경로에서 경로가 하나 더 추가된 경로는 e1,e8,e5 및 e4를 거치거나 e4,e5,e6 및 e7을 거치는 것이다. V1 노드에서 V5노드까지 최단 경로에서 경로가 하나 더 추가된 경로는 e1,e2,e3 및 e4를 거치는 것이다.
본 실시예에서 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')의 각 성분에서 하나의 항을 이루는 모든 경로들을 '경로 집합'으로 나타낸다. 예컨대, 수학식 3에서 V1 노드에서 V4노드까지 최단 경로는 {e1,e2,e3}인 하나의 경로 집합을 가지고, V1 노드에서 V6노드까지 최단 경로는 {e1,e8}와 {e6,e7}의 2개의 경로 집합을 가진다.
제4 단계(S404):
이하에서는 제3 단계에서 획득된 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 이용하여 최소 링 후보인 폐구간을 이루는 경로군을 찾은 후 배열하는 방법에 대하여 설명한다.
도 7은 본 실시예에 따라 최소 링의 후보인 폐구간들을 찾은 방법을 설명하는 도면이다.
도 7을 참조하면, 노드 Vi에서 노드 Vj까지는 경로수가 동일한 경로로 제1방향과 2방향인 경로 pij,1 및 경로 pij,2가 존재하고 경로 pij,1 및 경로 pij,2은 짝수 길이의 폐구간을 형성한다. 노드 Vi에서 노드 Vk까지는 길이가 dik인 최단 경로 pik와 길이가 dik+1, 즉 dik에 하나의 경로가 추가된 경로 pik'가 존재한다. 노드 Vi에서 노드 Vk까지의 경로 pik 및 경로 pik'는 홀수 길이의 폐구간을 형성한다.
도 8은 도 5에 대한 그래프의 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 이용하여 폐구간을 검출하는 방법을 설명하는 도면이다.
우선, 짝수 길이의 폐구간을 찾는 방법을 도 7 및 도 8을 참조하여 설명한다.
본 실시예에서 짝수 길이의 폐구간은 최단경로행렬(Pe)만을 이용하여 찾을 수 있다. 짝수 길이의 폐구간은 ⅰ) 최단경로행렬(Pe)에 항이 2개 이상인 성분에서 ⅱ) 서로 경로의 중복됨이 없는 2개의 경로 집합의 합으로서 찾되, 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합해서 찾을 수 있다. 이는 다음 수학식 5로 표현될 수 있다.
여기서, ㅣ ㅣ는 경로의 수를 나타내고, pij
, a에서 pij는 노드 i 및 노드 j의 경로를 나타내고 a는 방향을 나타낸다.
도 8을 참조하면, 최단경로행렬(Pe)에서 801 영역에 해당하는 성분과 802 영역에 해당하는 성분에서 항이 2개 이상이다. 801 영역에 해당하는 성분에서 각 경 로 집합 {e1,e8} 및 {e7,e6}은 서로 경로의 중복됨이 없다. 따라서, 하나의 경로 집합은 원소를 그대로 적고, 다른 경로 집합은 원소를 반대의 순서대로 나열한 합인 {e1,e8,e6,e7}는 폐구간을 이루는 경로군이 된다. 여기서, '경로군'은 폐구간을 이루는 모든 경로 정보의 그룹을 말한다. 폐구간을 이루는 경로군을 802 영역에 해당하는 성분에서는 2개 이상의 항에 각 항을 이루는 경로 집합간에 중복이 발생한다. 경로 집합 {e5,e6,e7} 및 경로 집합{e5,e8,e1} 간에는 e5 경로 정보가 중복된다. 따라서, 802 영역에 해당하는 성분으로부터는 짝수 길이의 폐구간을 찾을 수 없다.
다시 도 7을 참조하면, 노드 Vi에서 노드 Vj까지는 짝수 길이의 폐구간을 형성하는데, 길이가 동일한 경로로 제1방향과 제2방향인 경로 pij,1 및 경로 pij,2가 존재하고 경로 pij,1 및 경로 pij,2을 이루는 각 경로 집합의 합인 경로군으로 짝수 길이의 폐구간을 형성할 수 있다.
이하, 홀수 길이의 폐구간을 찾는 방법을 도 7 및 도 8을 참조하여 설명한다. 설명의 불필요한 중복을 피하기 위해, 대응되는 내용에 관한 설명을 생략한다.
본 실시예에서 홀수 길이의 폐구간은 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 이용하여 찾을 수 있다. 홀수 길이의 폐구간은 ⅰ) 최단경로+1행렬(Pe')에서 성분이 0이 아니면 폐구간을 이루는 후보가 된다. ⅱ) 최단경로+1행렬(Pe')에서 후보가 되는 성분과 같은 행과 열의 성분을 최단경로행렬(Pe)에서 찾은 후, 각 성분간의 경로 집합에서 서로 경로의 중복됨이 없는 최단경로행렬(Pe)의 경로 집합과 최단경로+1행렬(Pe')의 경로 집합의 합으로서 찾되, 최단경로행렬(Pe)의 경로 집합과 최단경로+1행렬(Pe')의 경로 집합 중 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합해서 찾을 수 있다. 이는 다음 수학식 6으로 표현될 수 있다.
여기서, ㅣ ㅣ는 경로의 수를 나타내고, pik는 노드 i 및 노드 k의 경로를 나타낸다.
노드 Vi에서 노드 Vk까지는 경로수가 dik인 경로 pik와 경로수가 dik+1, 즉 dik에 하나의 경로가 추가된 경로 pik'간에 경로의 중복됨이 없는 경우, 노드 Vi에서 노드 Vk까지의 최단 경로 pik 및 최단 경로에서 하나의 경로가 추가된 경로 pik'는 홀수 길이의 폐구간을 형성한다.
도 8을 참조하면, 최단경로+1행렬(Pe')에서 813 영역에 해당하는 성분과 동일한 행과 열인 최단경로행렬(Pe)에서의 성분인 803 영역에 해당하는 성분을 비교하면, 813 영역에 해당하는 성분의 경로 집합은 {e2,e3,e4}이고, 803 영역에 해당하는 성분의 경로 집합은 {e8,e5}이다. 각 성분간의 경로 집합에서 서로 경로의 중복됨이 없어서 최단경로행렬(Pe)의 경로 집합과 최단경로+1행렬(Pe')의 경로 집합 중 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합한 {e2,e3,e4,e5,e8}은 홀수 길이의 폐구간을 이루는 경로군이 된다.
다른 예로, 최단경로+1행렬(Pe')에서 814 영역에 해당하는 성분과 최단경로행렬(Pe)에서 804 영역에 해당하는 성분을 비교하면, 814 영역에 해당하는 성분의 경로 집합은 {e1,e8,e5,e4}와 {e7,e6,e5,e4}로 2개이고, 804 영역에 해당하는 성분의 경로 집합은 {e1,e2,e3}이다. 각 성분간의 경로 집합을 비교하면, {e1,e8,e5,e4}과 {e1,e2,e3}는 경로 e1이 중복되어 홀수 길이의 폐구간을 이루는 경로군을 이룰수 없다. {e7,e6,e5,e4}과 {e1,e2,e3}는 중복되는 경로가 없어서 최단경로행렬(Pe)의 경로 집합과 최단경로+1행렬(Pe')의 경로 집합 중 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합 {e1,e2,e3,e4,e5,e6,e7}은 홀수 길이의 폐구간을 이루는 경로군이 된다.
다시 도 7을 참조하면, 노드 Vi에서 노드 Vk까지는 홀수 길이의 폐구간을 형성하는데, 최단 경로인 pik 및 최단 경로 보다 하나의 경로가 추가된 경로 pik'은 양 경로간의 경로의 중복이 없으면 각 경로의 경로 집합의 합인 경로군으로 홀수 길이의 폐구간을 형성할 수 있다.
정리하면, 짝수 길이의 폐구간은 ⅰ) 최단경로행렬(Pe)에 항이 2개 이상인 성분에서 ⅱ)서로 경로의 중복됨이 없는 2개의 경로 집합의 합으로서 찾되, 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합해서 찾을 수 있고 , 홀수 길이의 폐구간은 ⅰ) 최단경로+1행렬(Pe')에서 0이 아닌 성분과 같은 행과 열의 성분을 최단경로행렬(Pe)에서 찾은 후 ⅱ) 각 성분간의 경로 집합에서 서로 경로의 중복됨이 없는 최단경로행 렬(Pe)의 경로 집합과 최단경로+1행렬(Pe')의 경로 집합의 합으로서 찾되, 최단경로행렬(Pe)의 경로 집합과 최단경로+1행렬(Pe')의 경로 집합 중 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합해서 찾을 수 있다.
이러한 방법을 수학식 3 및 수학식 4에 적용하면, 짝수 길이의 폐구간은 {e1,e8,e6,e7}인 경로군을, 홀수 길이의 폐구간은 {e2,e3,e4,e5,e8}과 {e1,e2,e3,e4,e5,e6,e7}인 경로군을 검출할 수 있다.
그런 다음, 경로수의 순서대로 상기 폐구간을 이루는 경로군을 배열한다. 예컨대, {e1,e8,e6,e7}, {e2,e3,e4,e5,e8}, {e1,e2,e3,e4,e5,e6,e7}의 순서대로 경로군을 배열한다. 여기서, 경로군을 배열하는 방법은 상기 외에도 다양할 수 있다.
이하에서는 제1 단계(S401) 부터 제4 단계(S404)를 적용하여 최소 링의 후보인 폐구간을 이루는 경로군을 검출하고 배열하는 방법에 대하여 설명한다.
도 9는 본 실시예가 적용되는 네트워크의 일례이다.
도 9를 보면, 네트워크(900)는 6개의 노드 및 6개의 모서리로 구성되며, 각 모서리에 대한 경로 정보는 이미 생성되어 있다.
V1 노드와 V2 노드 사이의 모서리에는 e1, V2 노드와 V3 노드 사이의 모서리에는 e2, V3 노드와 V4 노드 사이의 모서리에는 e3의 경로 정보를 가진다.
이러한 네트워크(900)의 인접행렬(P1)은 다음 수학식 7과 같다.
수학식 7인 인접행렬을 이용하여 검출 가능한 최소 링의 개수를 계산하면, 1개이다. 네트워크(900)에서는 제거해야할 개방된 비환식 노드가 존재하지 않는다.
상기 수학식 7인 인접행렬을 이용하여 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 다음 수학식 8 및 수학식 9로 구할 수 있다.
이하, 짝수 길이의 폐구간을 이루는 경로군을 먼저 검출한다.
최단경로행렬(수학식 8)에서 항이 2개 이상인 성분은 1행 4열, 2행 5열, 3행 6열, 4행 1열, 5행 2열 및 6행 3열이 존재하며, 각 성분들에서 각 항의 경로 집합간의 중복은 없다. 각 항의 경로 집합의 합은 {e1,e2,e3,e4,e5,e6}으로 하나의 경로군이 검출된다. 여기서, 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')은 대각성분(diagonal)을 중심으로 대칭하므로, 대각성분을 중심으로 행렬의 위쪽인 위삼각행렬이나 아랫쪽인 아래삼각행렬 중 하나만 검출하는 것이 바람직하다. 예컨대, 상기 수학식 8에서 1행 4열, 2행 5열, 3행 6열의 결과는 각각 4행 1열, 5행 2열 및 6행 3열의 결과와 동일하게 되므로, 1행 4열, 2행 5열, 3행 6열 또는 4행 1열, 5행 2열 및 6행 3열 중 어느 하나만 검출하는 것이 바람직하다.
다음으로, 홀수 길이의 폐구간을 이루는 경로군을 검출한다.
네트워크(900)에 대한 최단경로+1행렬(Pe')은 모든 성분이 0으로서 0이 아닌 성분이 존재하지 않는다. 따라서, 홀수 길이의 폐구간을 이루는 경로군을 검출할 수 없다.
따라서, 네트워크(900)에 대한 최소 링의 후보인 폐구간을 이루는 경로군은 {e1,e2,e3,e4,e5,e6}로 하나가 검출된다.
제5 단계(S405):
상기 제4 단계(S404) 단계를 통해 최소 링의 후보인 폐구간을 이루는 경로군이 검출된 후, 순서대로 배열된다. 그런 다음, 경로수가 가장 작은 경로군으로부터 링을 구성한다. 바람직하게, 링의 구성은 경로군의 경로들을 순서대로 연결하여 수 행된다.
제6 단계(S406):
상기 제6 단계(S406)는 상술한 제5 단계(S405)까지의 결과에서 최소 링을 이루는 경로군을 추출하는 단계이다.
도 5의 네트워크에 대하여 본 실시예를 적용한 경우, {e1,e8,e6,e7}, {e2,e3,e4,e5,e8}, {e1,e2,e3,e4,e5,e6,e7}의 경로군이 모인 링을 데이터로 얻을 수 있다. 최소 링은 자신보다 좀더 짧은 길이를 갖는 폐구간을 그대로 포함하지 않아야 하므로 상기 경로군이 모인 링을 서로 비교하면, {e2,e3,e4,e5,e8}이 모인 링과 {e1,e2,e3,e4,e5,e6,e7}이 모인 링이 서로 중복되어 더 경로수가 많은 경로군 {e1,e2,e3,e4,e5,e6,e7}은 최소 링을 이루는 경로군으로부터 제외된다. 따라서, 남은 경로군인 {e1,e8,e6,e7} 및 {e2,e3,e4,e5,e8}이 최소 링을 이루는 경로군으로 추출된다.
상기 추출된 데이터는 상기 표시장치(103)를 통해 출력되거나, 상기 외부기억수단(105)에 저장되는 것이 바람직하다.
바람직하게, 상기 제6 단계는 배타합(XOR: exclusive-OR) 연산을 통해 새롭게 추출된 경로군이 이미 추출된 경로군들을 전부 포함하는지 여부를 검사한다.
도 10은 새롭게 추출된 경로군과 이미 추출된 경로군의 배타합(XOR: exclusive-OR) 연산을 통해 그 결과가 이미 추출된 경로군을 전부 포함하는지 여부를 검사하는 개념을 설명한다.
도 10에 도시된 바와 같이 새롭게 추출된 경로군(1001)과 이미 추출된 경로 군(1002)에 대하여 배타합(XOR) 연산을 수행하면, 연산 결과(1003)를 얻을 수 있다.
만약, 상기 연산 결과(1003)가 이미 추출된 경로군에 포함된다면, 새롭게 추출된 경로군(1001)은 이미 추출된 경로군을 포함하는 것이 되기 때문에, 새롭게 추출된 경로군(1001)은 최소 링을 이루는 것이 아닌 것으로 판단된다. 이런 방식으로 최소 링을 이루는 경로군을 추출해 나간다. 바람직하게는, 경로수가 가장 작은 링부터 링의 경로수를 증가시키면서 배타합 연산을 적용하여 추출한다.
이러한 방법을 도 5의 네트워크에 적용하면, 제5 단게에서 검출된 경로군 {e1,e8,e6,e7}, {e2,e3,e4,e5,e8}, {e1,e2,e3,e4,e5,e6,e7}를 경로수로 배열하였다. 먼저, {e1,e8,e6,e7}와 {e2,e3,e4,e5,e8}에 대하여 배타합(XOR) 연산을 수행하면, 연산 결과는 {e1,e2,e3,e4,e5,e6,e7}를 얻는다. 이러한 연산 결과는 이미 추출된 경로군에 포함되지 않으므로 {e1,e8,e6,e7}와 {e2,e3,e4,e5,e8}를 최소 링을 이루는 경로군으로 추출한다. 그런 다음, {e1,e2,e3,e4,e5,e6,e7}를 {e1,e8,e6,e7}와 {e2,e3,e4,e5,e8} 중 어느 하나와 배타합(XOR) 연산을 수행한다. 여기서는, {e1,e2,e3,e4,e5,e6,e7}를 {e1,e8,e6,e7}와 배타합(XOR) 연산을 수행하면, 연산 결과는 {e2,e3,e4.e5,e8}을 얻는다. 이러한 연산 결과는 이미 추출된 경로군에 포함되므로 새롭게 추출된 경로군 {e1,e2,e3,e4,e5,e6,e7}는 최소 링을 이루는 것이 아닌 것으로 판단한다.
제7 단계(S407):
상기 제6 단계에서 최소 링을 이루는 경로군이 추출되었다면, 추출된 최소 링을 이루는 경로군으로부터 인접행렬을 이용하여 최소 링을 구성하는 노드들을 그룹화한다.
예컨대, 도 5의 네트워크의 경우는 수학식 1을 이용하여 최소 링을 이루는 경로군으로부터 최소 링을 구성하는 노드들을 그룹화할 수 있다. 최소 링을 이루는 {e1,e8,e6,e7} 및 {e2,e3,e4,e5,e8} 경로군으로부터 최소 링을 구성하는 노드들 {V1,V2,V6,V7} 및 {V2,V3,V4,V5,V6}으로 그룹화 할 수 있다.
제8 단계(S408):
수학식 2를 통해 도 5의 네트워크 최소 링의 개수가 2개임을 확인하였다. 상기 제1 단계 내지 제7 단계까지 추출한 SSSR 개수가 수학식 2를 통해 찾은 최소 링의 개수와 동일한지 판단한다. 만약, 동일하지 않다면 제5 단계(S405)를 반복한다(S409). 여기서, 제8 단계가 우선적으로 수행되고 제7 단계가 나중에 수행될 수도 있다.
이처럼 주어진 네트워크 구조에 포함되는 모든 SSSR을 찾을 수 있다.
본 실시예가 적용된 일례:
본 실시예를 더욱 상세하게 설명하기 위해, 상술한 기법에 따라 도 11에 도시된 네트워크에 포함된 SSSR을 찾는 일례를 설명한다.
도 11의 네트워크(101)에, 도시된 바와 같이 경로 정보를 생성하여 경로 정보가 생성된 네트워크(103)를 만든다.
도 11의 네트워크(103)에 상응하는 인접행렬(P)은 하기 수학식 10과 같다.
그런 다음, 수학식 2를 이용하여 검출 가능한 최소 링의 개수를 계산한다. 네트워크(103)에서 노드의 수(V)는 8개이고, 인접행렬의 경로의 개수(E)는 9개이므로 최소 링의 개수는 2개가 된다.
그런 다음, 인접행렬(수학식 10)을 이용하여 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 획득한다. 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')은 다음 수학식 11 및 수학식 12와 같다.
그런 다음, 수학식 11 및 수학식 12를 이용하여 최소 링 후보인 폐구간을 이루는 경로군을 찾은 후 배열한다.
먼저, 짝수 길이의 폐구간을 이루는 경로군을 찾는다.
수학식 11인 최단경로행렬(Pe)만을 이용하여 찾을 수 있다. 우선, 수학식 11에서 항이 2개 이상인 성분을 찾는다. 수학식 11의 대각성분을 중심으로 위삼각행렬만을 검출한다. 항이 2개 이상인 성분은 1행 5열 하나만 검출된다. 1행 5열 성분으로는 {e1,e2,e3,e4}의 경로 집합과 {e8,e7,e6,e5}의 경로 집합이 검출되고 양 경로 집합은 중복되는 경로가 없다. 따라서, 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합한{e1,e2,e3,e4,e5,e6,e7,e8}이 폐구간을 이루는 경로군으로 검출된다.
다음으로, 홀수 길이의 폐구간을 이루는 경로군을 찾는다.
우선, 수학식 12인 최단경로+1행렬(Pe')에서 0이 아닌 성분을 추출한다. 수학식 12의 대각성분을 중심으로 위삼각행렬만을 검출한다. 1행 2열 내지 1행 8열, 2행 7열, 2행 8열, 3행 6열, 3행 8열, 4행 7열 및 5행 8열이 검출된다. 상기 성분 들을 수학식 11의 성분과 비교하여 서로 경로의 중복됨이 없는 최단경로행렬(Pe)의 경로 집합과 최단경로+1행렬(Pe')의 경로 집합을 검출하여 양 경로 집합의 합을 구한다. 예컨대, 1행 2열의 경우 수학식 11과 수학식 12에서 서로 경로의 중복됨이 없다. 따라서, 수학식 11의 1행 2열 경로 집합 {e1}과 수학식 12의 1행 2열 경로 집합 {e8,e9} 중 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합한 경로군 {e1,e9,e8}을 검출한다. 이러한 방식으로 4행 7열을 통하여 수학식 11의 {e4,e5,e6}과 수학식 12의 {e3,e2,e9,e7} 중 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로 집합은 그 원소를 반대의 순서로 나열하여 각각을 합한 경로군 {e2,e3,e4,e5,e6,e7,e9}를 검출한다.
정리하면, 네트워크(103)에 상응하는 인접행렬(P)을 통해 짝수 길이의 폐구간을 이루는 경로군 {e1,e2,e3,e4,e5,e6,e7,e8} 및 홀수 길이의 폐구간을 이루는 경로군 {e1,e9,e8}와 {e2,e3,e4,e5,e6,e7,e9}을 검출한다. 그런 다음, 경로수의 순서대로 상기 폐구간을 이루는 경로군을 {e1,e9,e8},{e2,e3,e4,e5,e6,e7,e9}, {e1,e2,e3,e4,e5,e6,e7,e8}와 같이 배열한다.
그런 다음, 경로수가 가장 작은 경로군 {e1,e9,e8}로부터 경로수 순서대로 경로군으로부터 링을 구성한다.
그런 다음, 배타합(XOR: exclusive-OR) 연산을 통해 새롭게 추출된 경로군들이 이미 추출된 경로군들을 전부 포함하는지 여부를 판단하여, 최소 링을 이루는 경로군을 추출한다.
예컨대, 경로군 {e1,e9,e8} 및 경로군 {e2,e3,e4,e5,e6,e7,e9}은 배타합 연산을 통해 나오는 링이 없으므로 양 경로군은 모두 최소 링을 이루는 경로군으로 추출된다. 새롭게 검출된 경로군 {e1,e2,e3,e4,e5,e6,e7,e8}을 이미 최소 링을 이루는 경로군으로 추출된 경로군 {e1,e9,e8} 및 경로군 {e2,e3,e4,e5,e6,e7,e9} 중 어느 하나와 배타합 연산을 수행한다. 여기서는 새롭게 검출된 경로군 {e1,e2,e3,e4,e5,e6,e7,e8}과 이미 최소 링을 이루는 경로군으로 추출된 경로군 {e1,e9,e8}을 배타합 연산을 수행하면, 연산 결과로 {e2,e3,e4,e5,e6,e7,e9}를 얻는다. 연산 결과 {e2,e3,e4,e5,e6,e7,e9}는 이미 최소링을 이루는 경로군으로 추출된 {e2,e3,e4,e5,e6,e7,e9}를 전부 포함하므로, 새롭게 검출된 경로군 {e1,e2,e3,e4,e5,e6,e7,e8}은 최소 링을 이루는 경로군이 아닌 것으로 판단하고 제외한다. 따라서, 최소 링을 이루는 경로군으로 {e1,e9,e8} 및 {e2,e3,e4,e5,e6,e7,e9}을 추출한다. 추출된 경로군의 수는 2개이며, 이는 수학식 2를 통해 계산된 최소 링의 개수인 2개와 일치한다. 따라서, 추출된 경로군을 수학식 10인 인접행렬을 이용하여 최소 링을 구성하는 노드들 {V1,V2,V8} 및 {V2,V3,V4,V5,V6,V7,V8}로 그룹화 할 수 있다.
상술한 동작을 통해 2개의 SSSR을 모두 찾았으므로 모든 동작이 완료된다.
도 12a 내지 도 12d는 본 실시예가 적용되는 기법의 우수한 성능을 나타내는 도면이다.
도 12a에 도시된 네트워크는 길이(n)가 '3'인 최소 링이 36개가 포함된 네트워크이다. 종래에 제안된 Figueras 기법을 사용하면, 길이가 '3'인 최소 링은 '25' 개 밖에 발견하지 못하고, '4' 이상의 길이를 갖는 링을 발견한다. 또한, 종래에 제안된 Welch 기법을 사용하면, 길이가 '3'인 최소 링은 '32'개 밖에 발견하지 못하고, '4' 이상의 길이를 갖는 링을 발견한다. 그러나 본 실시예에 따르면, 주어진 네트워크에 포함되는 최소 링 전부를 발견한다.
다음 표 1은 도 12의 네가지 그래프에 대한 최소 링 추출 성능을 보여준다.
표 1을 참조하면, 도 12a에 도시된 네트워크 외에도 도 12b 내지 도 12d에 도시된 네트워크에서도 본 실시예는 우수한 SSSR 식별 성능을 보여준다. 종래에 제안된 Figueras 기법 또는 Welch 기법은 최소 링을 전부 발견하지 못하는 것에 비해, 본 실시예는 최소 링을 전부 발견한다는 것을 알 수 있다.
다음 표 2는 각 단계의 가장 나쁜 경우의 컴퓨팅 속도를 호튼(Horton)법과 비교하였다. 여기서, RP-Path는 본 실시예에 따른 방식을 말한다.
본 실시예는 PID(최단거리행렬 및 최단거리+1행렬을 말함) 및 거리행렬(distance matrix)을 계산하는데 반해, 호튼법은 오직 거리행렬만 계산한다. 따라서, 본 실시예에 따른 방식은 단계 1 동안 약간 더 긴 컴퓨팅 시간을 갖는다. 그러나, 링 인식을 위한 전체 경로는 PID이 도입될 경우, 훨씬 더 간단하고 빠르다. 단계 2에서, 호튼법은 SDM을 이용하여 세가지 경로를 고려하기 때문에, 모든 링들은 세가지 점의 모든 가능한 결합을 고려하여 식별될 수 있다. 본 실시예에 따른 방식은 작은 계산으로 링 및 크기를 쉽게 식별한다. 본 실시예에 따른 방식은 간단한 알고리즘을 이용하여 링들을 발견하고 SSSR를 찾는데 있어서 더 작은 후보들을 고려하기 때문에, 단계 3 및 4의 컴퓨팅 속도는 호튼법의 것보다 훨씬 더 빠르다.
다음 표 3은 가장 나쁜 경우의 SSSR 알고리즘의 성능을 본 실시예와 다른 종래 방식을 비교하였다.
본 실시예는 종래에 제안된 기법들에 비해 훨씬 빠른 속도로 결과를 얻을 수 있다.
상술한 본 실시예는 본 발명의 설명하기 위한 것으로, 본 실시예에 사용된 구체적인 수치는 본 발명의 설명을 위한 것에 불과하므로, 구체적인 수치에 의해 본 발명이 제한되지 아니한다.
또한, 본 실시예에서 사용한 제1 단계, 제2 단계에 포함된 숫자는 본 발명의 설명을 위한 것에 불과하므로, 상기 단계들의 순서는 자유롭게 조정될 수 있다. 즉, 제3 단계에 포함되는 동작이, 상기 제2 단계에 포함된 동작 이전에도 수행될 수 있음은 자명하다.
위에서 설명된 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 통상의 지식을 가지는 당업자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 하기의 특허청구범위에 속하는 것으로 보아야 할 것이다.
본 발명은 네트워크 구조를 분석하는데 필수적인 최소 링을 빠르고 정확하게 찾는 기법을 제공하므로 산업상 매우 유용하다 할 것이다. 종래에는 네트워크에 포함되는 최소 링을 전부 찾아내는 것이 매우 어렵다고 알려져 있었으나, 본 실시예는 네트워크에 포함된 최소 링 전부를 찾아내는 새로운 기법을 제안하고 있는바, 당연히 산업상 이용가능성이 인정되어야 할 것이다.
도 1은 7개의 노드로 표현된 네트워크 일례이다.
도 2는 도 1의 네트워크를 거리행렬(distance matrix)로 나타낸 일례이다.
도 3은 본 실시예를 실행하는 컴퓨터의 일례를 나타내는 블록도이다.
도 4는 본 실시예에 따라 'SSSR'을 찾는 과정을 나타낸 절차흐름도의 일례이다.
도 5는 도1의 네트워크에서 각 모서리에 경로 정보를 생성시킨 일례를 설명하는 도면이다.
도 6은 개방된 비환식 노드(open acyclic node)의 제거 동작을 설명하는 도면이다.
도 7은 본 실시예에 따라 최소 링의 후보인 폐구간들을 찾은 방법을 설명하는 도면이다.
도 8은 도 5에 대한 그래프의 최단경로행렬 및 최단경로+1행렬을 이용하여 폐구간을 검출하는 방법을 설명하는 도면이다.
도 9는 본 실시예가 적용되는 네트워크의 일례이다.
도 10은 배타합(XOR) 연산을 통해 최소 링을 이루는 경로군을 추출하는 개념을 설명하는 도면이다.
도 11은 본 실시예가 적용되는 네트워크의 다른 예이다.
도 12a 내지 도 12d는 본 실시예가 적용되는 기법의 우수한 성능을 나타내는 도면이다.
Claims (18)
- 컴퓨터에네트워크 상에 위치하는 노드(node)들의 연결 관계에 경로 정보를 생성하여 상기 노드들의 연결 관계를 상기 경로 정보로 나타내는 인접행렬을 획득하는 제1 기능;상기 인접행렬로부터 각 노드들 간의 최단 경로를 상기 경로 정보로 나타내는 최단경로행렬 및 상기 각 노드들 간의 최단 경로에 하나 더 추가된 경로를 가진 최단경로+1를 상기 경로 정보로 나타내는 최단경로+1행렬을 획득하는 제2 기능;상기 최단경로행렬 및 상기 최단경로+1행렬을 이용하여 상기 네트워크의 폐구간을 이루는 경로 정보들을 그룹화한 적어도 하나의 경로군(group)을 검출하는 제3 기능;상기 적어도 하나의 경로군으로부터 최소 길이의 폐구간을 이루는 경로군을 추출하는 제4 기능; 및상기 추출된 경로군으로부터 상기 인접행렬을 이용하여 최소 길이의 폐구간을 이루는 하나의 노드 집합을 그룹화하는 제5 기능을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 1 항에 있어서,상기 인접행렬의 모서리(edge) 및 꼭지점(vertex)의 개수를 이용하여, 상기 인접행렬에서 검출 가능한 최소 길이의 폐구간의 개수를 산출하는 제6 기능을 더 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 2 항에 있어서,상기 제3기능은 검출된 적어도 하나의 경로군을 경로 정보의 수를 기준으로 상기 경로군을 배열하는 제7 기능을 더 포함하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 2 항에 있어서,상기 제5기능에 의해 그룹화된 노드 집합의 개수가 상기 제6 기능에 의해 산출된 폐구간의 개수와 동일해질 때까지, 상기 경로 정보의 개수를 순차적으로 증가시키며 상기 제4 기능 내지 제5 기능을 반복 수행하는 제8기능을 더 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 3 항에 있어서,상기 제7 기능은 상기 경로 정보의 수가 가장 낮은 경로군부터 경로 정보의 수가 많은 순서대로 상기 경로군을 배열하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 1 항에 있어서,상기 제3 기능은상기 폐구간을 이루는 경로 정보의 개수가 짝수인 경우,상기 최단경로행렬에 항이 2개 이상인 성분에서 하나의 항을 이루는 경로 정보들의 집합 끼리 서로 경로의 중복이 없는 2개의 경로 정보들의 집합의 합을 경로정보군으로 검출하고,상기 폐구간을 이루는 경로 정보의 개수가 홀수인 경우,상기 최단경로+1행렬에서 0이 아닌 성분(element)과 동일한 행과 열의 상기 최단경로행렬의 성분의 하나의 항을 이루는 경로 정보들의 집합 끼리 서로 경로의 중복이 없는 상기 최단경로행렬의 경로 정보들의 집합과 상기 최단경로+1행렬의 경로 정보들의 집합의 합을 경로정보군으로 검출하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 6 항에 있어서,상기 폐구간을 이루는 경로 정보의 개수가 짝수인 경우,상기 2개의 경로 정보들의 집합의 합은 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로의 집합은 그 원소를 반대의 순서로 나열하여 각각을 합해서 경로정보군으로 검출하고,상기 폐구간을 이루는 경로 정보의 개수가 홀수인 경우,상기 최단경로행렬의 경로 정보들의 집합과 상기 최단경로+1행렬의 경로 정보들의 집합의 합은 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하 나의 경로의 집합은 그 원소를 반대의 순서로 나열하여 각각을 합해서 경로정보군으로 검출하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 1 항에 있어서,상기 제3 기능은 상기 최단경로행렬 및 상기 최단경로+1행렬의 대각성분을 중심으로 위삼각행렬과 아래삼각행렬 중 어느 하나만을 이용하여 상기 네트워크의 폐구간을 이루는 경로정보들을 그룹화한 적어도 하나의 경로정보군을 검출하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 1 항에 있어서,상기 제5 기능은이미 추출된 경로군이 존재하는 경우, 새롭게 추출된 경로군이 이미 추출된 경로군을 전부 포함하는지 여부를 검사하는 제9기능을 더 포함하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 9 항에 있어서,상기 제9 기능은 배타합(exclusive-OR) 연산에 의해 수행되는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 1 항에 있어서,상기 인접행렬에 포함된 개방된 비환식 노드(open acyclic node)를 제거하는 제10 기능을 더 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 1 항에 있어서상기 인접행렬은 분자에 포함된 원자들의 연결 관계를 나타내는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 컴퓨터에네트워크 상에 위치하는 노드(node)들의 연결 관계에 경로 정보를 생성하여 상기 노드들의 연결 관계를 상기 경로 정보로 나타내는 인접행렬을 획득하는 제1 단계;상기 인접행렬의 모서리(edge) 및 꼭지점(vertex)의 개수를 이용하여, 상기 인접행렬에서 검출 가능한 최소 길이의 폐구간의 개수를 산출하는 제2 단계;상기 인접행렬로부터 각 노드들 간의 최단 경로를 상기 경로 정보로 나타내는 최단경로행렬 및 상기 각 노드들 간의 최단 경로에 하나 더 추가된 경로를 가진 최단경로+1를 상기 경로 정보로 나타내는 최단경로+1행렬을 획득하는 제3 단계;상기 최단경로행렬을 이용하여 길이가 짝수인 폐구간을 이루는 경로 정보들을 그룹화한 적어도 하나의 경로군을 검출하고 상기 최단경로행렬 및 상기 최단경로+1행렬을 이용하여 길이가 홀수인 폐구간을 이루는 적어도 하나의 경로군을 검출 하는 제4 단계;상기 적어도 하나의 경로군으로부터 최소 길이의 폐구간을 이루는 경로군을 추출하는 제5 단계;상기 추출된 경로군으로부터 상기 인접행렬을 이용하여 최소 길이의 폐구간을 이루는 하나의 노드 집합을 그룹화하는 제6 단계; 및상기 제6단계에 의해 그룹화한 노드 집합의 개수가 상기 제2단계에 의한 검출 가능한 최소 길이의 폐구간의 개수와 일치할 때까지, 상기 제5단계 및 상기 제6단계를 반복 수행하는 제7 단계를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 13 항에 있어서,상기 제4 단계는 상기 최단경로행렬 및 상기 최단경로+1행렬의 대각성분을 중심으로 위삼각행렬과 아래삼각행렬 중 어느 하나만을 이용하여 폐구간을 이루는 적어도 하나의 경로군을 검출하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 13 항에 있어서,상기 제5 단계는 이미 추출된 경로군이 존재하는 경우, 새롭게 추출된 경로군이 이미 추출된 경로군을 전부 포함하는지 여부를 검사하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 15 항에 있어서,상기 검사는 배타합(exclusive-OR) 연산에 의해 수행되는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 13 항에 있어서상기 제2 단계 이전에 상기 인접행렬에 포함된 개방된 비환식 노드(open acyclic node)를 제거하는 제2' 단계를 더 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
- 제 13 항에 있어서상기 인접행렬은 분자에 포함된 원자들의 연결 관계를 나타내는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090019820A KR101047429B1 (ko) | 2009-03-09 | 2009-03-09 | 최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090019820A KR101047429B1 (ko) | 2009-03-09 | 2009-03-09 | 최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100101365A true KR20100101365A (ko) | 2010-09-17 |
KR101047429B1 KR101047429B1 (ko) | 2011-07-07 |
Family
ID=43006903
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090019820A KR101047429B1 (ko) | 2009-03-09 | 2009-03-09 | 최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101047429B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280530A (zh) * | 2017-01-06 | 2018-07-13 | 北京佰能盈天科技股份有限公司 | 双向路径不对称状态下库区无人行车吊运路径优化方法及系统 |
CN108646140A (zh) * | 2018-05-25 | 2018-10-12 | 广东电网有限责任公司 | 一种确定故障设备的方法和装置 |
CN111027162A (zh) * | 2019-12-16 | 2020-04-17 | 辽宁工程技术大学 | 一种确定矿井巷网火灾灭火封堵位置的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100920966B1 (ko) | 2008-01-29 | 2009-10-09 | 연세대학교 산학협력단 | 인접행렬을 이용하여 최소 길이의 폐구간을 이루는노드들을 검출하는 프로그램이 저장된 매체 |
-
2009
- 2009-03-09 KR KR1020090019820A patent/KR101047429B1/ko active IP Right Grant
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108280530A (zh) * | 2017-01-06 | 2018-07-13 | 北京佰能盈天科技股份有限公司 | 双向路径不对称状态下库区无人行车吊运路径优化方法及系统 |
CN108280530B (zh) * | 2017-01-06 | 2021-08-13 | 北京佰能盈天科技股份有限公司 | 双向路径不对称状态下库区无人行车吊运路径优化方法 |
CN108646140A (zh) * | 2018-05-25 | 2018-10-12 | 广东电网有限责任公司 | 一种确定故障设备的方法和装置 |
CN111027162A (zh) * | 2019-12-16 | 2020-04-17 | 辽宁工程技术大学 | 一种确定矿井巷网火灾灭火封堵位置的方法 |
CN111027162B (zh) * | 2019-12-16 | 2024-01-26 | 辽宁工程技术大学 | 一种确定矿井巷网火灾灭火封堵位置的方法 |
Also Published As
Publication number | Publication date |
---|---|
KR101047429B1 (ko) | 2011-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110887502B (zh) | 一种必经结点最短路径搜索方法 | |
He | A graphical approach to identify sensor locations for link flow inference | |
Fiala et al. | The k-in-a-path problem for claw-free graphs | |
Gorain et al. | Deterministic graph exploration with advice | |
KR101047429B1 (ko) | 최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 | |
CN110544255A (zh) | 面向3d打印的三角网格孔洞的分割方法及系统 | |
CN105869188A (zh) | 点对多边形方位关系的检测方法和系统 | |
JP5697768B1 (ja) | 道路ネットワーク評価方法、道路ネットワーク評価装置、プログラム、並びに情報記録媒体 | |
Yang et al. | Minimum spanning tree with neighborhoods | |
Quin et al. | Expanding wavefront frontier detection: An approach for efficiently detecting frontier cells | |
Di Giacomo et al. | The planar slope number of subcubic graphs | |
CN111008311B (zh) | 基于邻域弱连接的复杂网络节点重要性评估方法和装置 | |
KR100920966B1 (ko) | 인접행렬을 이용하여 최소 길이의 폐구간을 이루는노드들을 검출하는 프로그램이 저장된 매체 | |
Chimani et al. | Maximum cut parameterized by crossing number | |
Iqbal Hossain et al. | Straight-line monotone grid drawings of series–parallel graphs | |
Shi et al. | Searching for a black hole in interconnected networks using mobile agents and tokens | |
Ortmann et al. | Quad census computation: Simple, efficient, and orbit-aware | |
Lindzey et al. | On finding Tucker submatrices and Lekkerkerker-Boland subgraphs | |
CN104516995A (zh) | 网络流图缩减方法和装置 | |
Gamble et al. | Adaptive tracking of representative cycles in regular and zigzag persistent homology | |
KR101047975B1 (ko) | 방향성 노드 네트워크에서 최소 길이의 폐구간을 이루는 링을 인식하는 방법 | |
Mnich et al. | Linear-time recognition of map graphs with outerplanar witness | |
Karim et al. | On a class of planar graphs with straight-line grid drawings on linear area | |
CN117435850B (zh) | 基于改进贪婪算法的道路巡检方法、系统、设备和介质 | |
Argyriou et al. | Two polynomial time algorithms for the metro-line crossing minimization problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20140701 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20150609 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20160627 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190701 Year of fee payment: 9 |