KR20100101365A - 최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 - Google Patents

최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 Download PDF

Info

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
Application number
KR1020090019820A
Other languages
English (en)
Other versions
KR101047429B1 (ko
Inventor
노경태
이창준
조광휘
이성광
박재성
Original Assignee
연세대학교 산학협력단
숭실대학교산학협력단
사단법인 분자설계연구소
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 연세대학교 산학협력단, 숭실대학교산학협력단, 사단법인 분자설계연구소 filed Critical 연세대학교 산학협력단
Priority to KR1020090019820A priority Critical patent/KR101047429B1/ko
Publication of KR20100101365A publication Critical patent/KR20100101365A/ko
Application granted granted Critical
Publication of KR101047429B1 publication Critical patent/KR101047429B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology 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

최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체{media storing a program of detecting nodes which consist the closed path of the shortest distance using an shortest path matrix}
본 발명은 최단경로행렬을 이용하여 각 노드 간의 연결 관계를 파악하는 기법에 관한 것으로, 구체적으로는 최소 길이의 폐구간을 이루는 노드들을 찾는 기법 및 그 기법에 따른 프로그램을 제안하는 것이다.
통신, 교통 체계, 전자회로, 화학 구조 등의 각종 정보는 다수의 노드(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)로 모델링된다.
Figure 112009014202215-PAT00001
상기 수학식 1의 행렬은 대각성분(diagonal)을 중심으로 대칭한다.
제2 단계(S402):
상기 인접행렬(P)을 이용하면 검출 가능한 최소 링의 개수를 계산할 수 있다.
최소 링의 개수= E-V+1
상기 수학식 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로 표현될 수 있다.
Figure 112009014202215-PAT00002
Figure 112009014202215-PAT00003
상기 수학식 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로 표현될 수 있다.
Figure 112009014202215-PAT00004
여기서, ㅣ ㅣ는 경로의 수를 나타내고, 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으로 표현될 수 있다.
Figure 112009014202215-PAT00005
여기서, ㅣ ㅣ는 경로의 수를 나타내고, 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과 같다.
Figure 112009014202215-PAT00006
수학식 7인 인접행렬을 이용하여 검출 가능한 최소 링의 개수를 계산하면, 1개이다. 네트워크(900)에서는 제거해야할 개방된 비환식 노드가 존재하지 않는다.
상기 수학식 7인 인접행렬을 이용하여 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 다음 수학식 8 및 수학식 9로 구할 수 있다.
Figure 112009014202215-PAT00007
Figure 112009014202215-PAT00008
이하, 짝수 길이의 폐구간을 이루는 경로군을 먼저 검출한다.
최단경로행렬(수학식 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과 같다.
Figure 112009014202215-PAT00009
그런 다음, 수학식 2를 이용하여 검출 가능한 최소 링의 개수를 계산한다. 네트워크(103)에서 노드의 수(V)는 8개이고, 인접행렬의 경로의 개수(E)는 9개이므로 최소 링의 개수는 2개가 된다.
그런 다음, 인접행렬(수학식 10)을 이용하여 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')을 획득한다. 최단경로행렬(Pe) 및 최단경로+1행렬(Pe')은 다음 수학식 11 및 수학식 12와 같다.
Figure 112009014202215-PAT00010
Figure 112009014202215-PAT00011
그런 다음, 수학식 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의 네가지 그래프에 대한 최소 링 추출 성능을 보여준다.
Figure 112009014202215-PAT00012
표 1을 참조하면, 도 12a에 도시된 네트워크 외에도 도 12b 내지 도 12d에 도시된 네트워크에서도 본 실시예는 우수한 SSSR 식별 성능을 보여준다. 종래에 제안된 Figueras 기법 또는 Welch 기법은 최소 링을 전부 발견하지 못하는 것에 비해, 본 실시예는 최소 링을 전부 발견한다는 것을 알 수 있다.
다음 표 2는 각 단계의 가장 나쁜 경우의 컴퓨팅 속도를 호튼(Horton)법과 비교하였다. 여기서, RP-Path는 본 실시예에 따른 방식을 말한다.
Figure 112009014202215-PAT00013
본 실시예는 PID(최단거리행렬 및 최단거리+1행렬을 말함) 및 거리행렬(distance matrix)을 계산하는데 반해, 호튼법은 오직 거리행렬만 계산한다. 따라서, 본 실시예에 따른 방식은 단계 1 동안 약간 더 긴 컴퓨팅 시간을 갖는다. 그러나, 링 인식을 위한 전체 경로는 PID이 도입될 경우, 훨씬 더 간단하고 빠르다. 단계 2에서, 호튼법은 SDM을 이용하여 세가지 경로를 고려하기 때문에, 모든 링들은 세가지 점의 모든 가능한 결합을 고려하여 식별될 수 있다. 본 실시예에 따른 방식은 작은 계산으로 링 및 크기를 쉽게 식별한다. 본 실시예에 따른 방식은 간단한 알고리즘을 이용하여 링들을 발견하고 SSSR를 찾는데 있어서 더 작은 후보들을 고려하기 때문에, 단계 3 및 4의 컴퓨팅 속도는 호튼법의 것보다 훨씬 더 빠르다.
다음 표 3은 가장 나쁜 경우의 SSSR 알고리즘의 성능을 본 실시예와 다른 종래 방식을 비교하였다.
Figure 112009014202215-PAT00014
본 실시예는 종래에 제안된 기법들에 비해 훨씬 빠른 속도로 결과를 얻을 수 있다.
상술한 본 실시예는 본 발명의 설명하기 위한 것으로, 본 실시예에 사용된 구체적인 수치는 본 발명의 설명을 위한 것에 불과하므로, 구체적인 수치에 의해 본 발명이 제한되지 아니한다.
또한, 본 실시예에서 사용한 제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)

  1. 컴퓨터에
    네트워크 상에 위치하는 노드(node)들의 연결 관계에 경로 정보를 생성하여 상기 노드들의 연결 관계를 상기 경로 정보로 나타내는 인접행렬을 획득하는 제1 기능;
    상기 인접행렬로부터 각 노드들 간의 최단 경로를 상기 경로 정보로 나타내는 최단경로행렬 및 상기 각 노드들 간의 최단 경로에 하나 더 추가된 경로를 가진 최단경로+1를 상기 경로 정보로 나타내는 최단경로+1행렬을 획득하는 제2 기능;
    상기 최단경로행렬 및 상기 최단경로+1행렬을 이용하여 상기 네트워크의 폐구간을 이루는 경로 정보들을 그룹화한 적어도 하나의 경로군(group)을 검출하는 제3 기능;
    상기 적어도 하나의 경로군으로부터 최소 길이의 폐구간을 이루는 경로군을 추출하는 제4 기능; 및
    상기 추출된 경로군으로부터 상기 인접행렬을 이용하여 최소 길이의 폐구간을 이루는 하나의 노드 집합을 그룹화하는 제5 기능
    을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  2. 제 1 항에 있어서,
    상기 인접행렬의 모서리(edge) 및 꼭지점(vertex)의 개수를 이용하여, 상기 인접행렬에서 검출 가능한 최소 길이의 폐구간의 개수를 산출하는 제6 기능
    을 더 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  3. 제 2 항에 있어서,
    상기 제3기능은 검출된 적어도 하나의 경로군을 경로 정보의 수를 기준으로 상기 경로군을 배열하는 제7 기능을 더 포함하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  4. 제 2 항에 있어서,
    상기 제5기능에 의해 그룹화된 노드 집합의 개수가 상기 제6 기능에 의해 산출된 폐구간의 개수와 동일해질 때까지, 상기 경로 정보의 개수를 순차적으로 증가시키며 상기 제4 기능 내지 제5 기능을 반복 수행하는 제8기능
    을 더 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  5. 제 3 항에 있어서,
    상기 제7 기능은 상기 경로 정보의 수가 가장 낮은 경로군부터 경로 정보의 수가 많은 순서대로 상기 경로군을 배열하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  6. 제 1 항에 있어서,
    상기 제3 기능은
    상기 폐구간을 이루는 경로 정보의 개수가 짝수인 경우,
    상기 최단경로행렬에 항이 2개 이상인 성분에서 하나의 항을 이루는 경로 정보들의 집합 끼리 서로 경로의 중복이 없는 2개의 경로 정보들의 집합의 합을 경로정보군으로 검출하고,
    상기 폐구간을 이루는 경로 정보의 개수가 홀수인 경우,
    상기 최단경로+1행렬에서 0이 아닌 성분(element)과 동일한 행과 열의 상기 최단경로행렬의 성분의 하나의 항을 이루는 경로 정보들의 집합 끼리 서로 경로의 중복이 없는 상기 최단경로행렬의 경로 정보들의 집합과 상기 최단경로+1행렬의 경로 정보들의 집합의 합을 경로정보군으로 검출하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  7. 제 6 항에 있어서,
    상기 폐구간을 이루는 경로 정보의 개수가 짝수인 경우,
    상기 2개의 경로 정보들의 집합의 합은 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하나의 경로의 집합은 그 원소를 반대의 순서로 나열하여 각각을 합해서 경로정보군으로 검출하고,
    상기 폐구간을 이루는 경로 정보의 개수가 홀수인 경우,
    상기 최단경로행렬의 경로 정보들의 집합과 상기 최단경로+1행렬의 경로 정보들의 집합의 합은 어느 하나의 경로 집합은 그 원소를 그대로 나열하고 다른 하 나의 경로의 집합은 그 원소를 반대의 순서로 나열하여 각각을 합해서 경로정보군으로 검출하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  8. 제 1 항에 있어서,
    상기 제3 기능은 상기 최단경로행렬 및 상기 최단경로+1행렬의 대각성분을 중심으로 위삼각행렬과 아래삼각행렬 중 어느 하나만을 이용하여 상기 네트워크의 폐구간을 이루는 경로정보들을 그룹화한 적어도 하나의 경로정보군을 검출하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  9. 제 1 항에 있어서,
    상기 제5 기능은
    이미 추출된 경로군이 존재하는 경우, 새롭게 추출된 경로군이 이미 추출된 경로군을 전부 포함하는지 여부를 검사하는 제9기능을 더 포함하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  10. 제 9 항에 있어서,
    상기 제9 기능은 배타합(exclusive-OR) 연산에 의해 수행되는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  11. 제 1 항에 있어서,
    상기 인접행렬에 포함된 개방된 비환식 노드(open acyclic node)를 제거하는 제10 기능을 더 수행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  12. 제 1 항에 있어서
    상기 인접행렬은 분자에 포함된 원자들의 연결 관계를 나타내는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  13. 컴퓨터에
    네트워크 상에 위치하는 노드(node)들의 연결 관계에 경로 정보를 생성하여 상기 노드들의 연결 관계를 상기 경로 정보로 나타내는 인접행렬을 획득하는 제1 단계;
    상기 인접행렬의 모서리(edge) 및 꼭지점(vertex)의 개수를 이용하여, 상기 인접행렬에서 검출 가능한 최소 길이의 폐구간의 개수를 산출하는 제2 단계;
    상기 인접행렬로부터 각 노드들 간의 최단 경로를 상기 경로 정보로 나타내는 최단경로행렬 및 상기 각 노드들 간의 최단 경로에 하나 더 추가된 경로를 가진 최단경로+1를 상기 경로 정보로 나타내는 최단경로+1행렬을 획득하는 제3 단계;
    상기 최단경로행렬을 이용하여 길이가 짝수인 폐구간을 이루는 경로 정보들을 그룹화한 적어도 하나의 경로군을 검출하고 상기 최단경로행렬 및 상기 최단경로+1행렬을 이용하여 길이가 홀수인 폐구간을 이루는 적어도 하나의 경로군을 검출 하는 제4 단계;
    상기 적어도 하나의 경로군으로부터 최소 길이의 폐구간을 이루는 경로군을 추출하는 제5 단계;
    상기 추출된 경로군으로부터 상기 인접행렬을 이용하여 최소 길이의 폐구간을 이루는 하나의 노드 집합을 그룹화하는 제6 단계; 및
    상기 제6단계에 의해 그룹화한 노드 집합의 개수가 상기 제2단계에 의한 검출 가능한 최소 길이의 폐구간의 개수와 일치할 때까지, 상기 제5단계 및 상기 제6단계를 반복 수행하는 제7 단계
    를 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  14. 제 13 항에 있어서,
    상기 제4 단계는 상기 최단경로행렬 및 상기 최단경로+1행렬의 대각성분을 중심으로 위삼각행렬과 아래삼각행렬 중 어느 하나만을 이용하여 폐구간을 이루는 적어도 하나의 경로군을 검출하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  15. 제 13 항에 있어서,
    상기 제5 단계는 이미 추출된 경로군이 존재하는 경우, 새롭게 추출된 경로군이 이미 추출된 경로군을 전부 포함하는지 여부를 검사하는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  16. 제 15 항에 있어서,
    상기 검사는 배타합(exclusive-OR) 연산에 의해 수행되는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  17. 제 13 항에 있어서
    상기 제2 단계 이전에 상기 인접행렬에 포함된 개방된 비환식 노드(open acyclic node)를 제거하는 제2' 단계를 더 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
  18. 제 13 항에 있어서
    상기 인접행렬은 분자에 포함된 원자들의 연결 관계를 나타내는 것을 특징으로 하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 매체.
KR1020090019820A 2009-03-09 2009-03-09 최단경로행렬을 이용하여 최소 길이의 폐구간을 이루는 노드들을 검출하는 프로그램이 저장된 매체 KR101047429B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100920966B1 (ko) 2008-01-29 2009-10-09 연세대학교 산학협력단 인접행렬을 이용하여 최소 길이의 폐구간을 이루는노드들을 검출하는 프로그램이 저장된 매체

Cited By (5)

* Cited by examiner, † Cited by third party
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