KR20150079374A - 대용량 그래프 데이터베이스에서 하한 경계값에 기초하여 메디안 노드를 검색하는 방법 - Google Patents
대용량 그래프 데이터베이스에서 하한 경계값에 기초하여 메디안 노드를 검색하는 방법 Download PDFInfo
- Publication number
- KR20150079374A KR20150079374A KR1020140074347A KR20140074347A KR20150079374A KR 20150079374 A KR20150079374 A KR 20150079374A KR 1020140074347 A KR1020140074347 A KR 1020140074347A KR 20140074347 A KR20140074347 A KR 20140074347A KR 20150079374 A KR20150079374 A KR 20150079374A
- Authority
- KR
- South Korea
- Prior art keywords
- node
- value
- median
- minimum value
- nodes
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2465—Query processing support for facilitating data mining operations in structured databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 방법에 관한 것으로, 보다 구체적으로 대용량 그래프 데이터베이스를 다수의 그래프 그룹으로 분리하고 각 그래프 그룹에서 단일 쌍의 최단 경로 알고리즘을 분산 처리하여 메디안 노드를 검색하며, 임계 하한 경계값을 이용하여 특정 시작 노드를 기준으로 계산한 경로 가중치의 합이 임계 하한 경계값보다 큰 경우 특정 시작 노드에 대한 메디안 노드의 검색을 중단하여 연산량을 줄인 메디안 노드의 검색 방법에 관한 것이다.
Description
본 발명은 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 방법에 관한 것으로, 보다 구체적으로 대용량 그래프 데이터베이스를 다수의 그래프 그룹으로 분리하고 각 그래프 그룹에서 단일 쌍의 최단 경로 알고리즘을 분산 처리하여 메디안 노드를 검색하며, 임계 하한 경계값을 이용하여 특정 시작 노드를 기준으로 계산한 경로 가중치의 합이 임계 하한 경계값보다 큰 경우 특정 시작 노드에 대한 메디안 노드의 검색을 중단하여 연산량을 줄인 메디안 노드의 검색 방법에 관한 것이다.
페타(peta) 바이트 이상의 규모의 대용량 데이터 분석은 다양한 분야에서 연구되고 있다. 특히, 소셜 네트워크, XML 등과 같은 구조적인 정보를 갖는 대용량의 그래프들을 분석하는 기술이 활발히 연구되고 있다. 예를 들어, 소셜 네트워크에서 사용자 식별자는 노드 버텍스로, 사용자 사이의 관계는 노드 버텍스를 연결하는 노드 에지로, 사용자 관계의 긴밀도 또는 거리는 노드 가중치로 표현될 수 있다.
이러한 대용량의 그래프데이터로부터 유용한 지식을 찾아내는 그래프 마이닝 기술이 주목받고 있는데, 특히 그래프 메디안(median)은 그래프의 중심 노드를 찾는 기법으로서, 그래프 군집화, 인덱싱, 분류 등과 같은 다양한 그래프 마이닝 기술의 기반 기술로 사용되고 있다. 예를 들어, 소셜 네트워크에서 영향력을 가지는 사용자를 찾기 위한 기준으로 그래프 메디안을 지표로 사용하거나, 물류 네트워크에서 창고의 위치를 선정할 때 모든 운송 지역과의 거리를 최소화하기 위해 그래프 메디안을 사용한다.
메디안 노드는 그래프에서 모든 노드들과의 최단 경로 합이 최소인 노드를 의미한다. 종래 메디안 노드를 계산하기 기술1은 단일 컴퓨터에서 모든 쌍의 최단 경로 알고리즘을 이용하여 계산하다. 이러한 종래 기술1에서 인-메모리 기반의 모든 쌍의 최단 경로 알고리즘(all-pair shoretest path)은 그래프 내의 모든 노드와 에지들을 메모리에 적재한 후, 모든 쌍의 최단 경로 알고리즘을 통해 메디안 노드를 계산한다. 한편, 메디안 노드를 계산하기 위한 종래기술2은 디스크 기반으로, 그래프를 메모리의 크기만큼 부분 그래프로 분할하여 부분 그래프에서 모든 쌍의 최단 경로 알고리즘을 수행하여 메디안 노드를 계산한다.
그러나 종래기술1의 경우 대용량의 그래프를 메모리에 적재할 수 없어 메디안 노드의 계산이 불가능하며, 종래기술2의 경우 디스크 기반으로 많은 수의 데이터 입력/출력이 발생하여 많은 비용과 연산이 필요하다는 문제점을 가진다.
최근 대용량 그래프 알고리즘들을 효율적으로 분산처리하기 위한 프리겔(Pregel) 프레임워크가 제안되었다. 프리겔은 노드 단위로 알고리즘을 분할하여 분산처리한다. 프리겔 프레임워크를 이용하여 단일 쌍의 최단 경로 알고리즘을 분산처리하여 효율성을 증가시켰다. 그러나 단일 쌍의 최단 경로 알고리즘을 반복 수행하게 되면, 최단 경로의 합이 이전에 계산한 최단 경로의 합보다 큰 불필요한 경우에도 모두 최단 경로를 계산하는 문제점을 가진다. 특히, 대용량 그래프와 같이 그래프 내에 노드 수가 많아질수록 불필요한 최단 경로의 계산량이 많아져 메디안 노드를 계산하는데 오랜 시간과 연산량이 필요하다는 문제점을 가진다.
본 발명은 위에서 언급한 종래 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 방법이 가지는 문제점을 해결하기 위한 것으로, 본 발명이 이루고자 하는 목적은 대용량 그래프 데이터베이스를 다수의 그래프 그룹으로 분산하고, 각 그래프 그룹에서 단일 쌍의 최단 경로 알고리즘을 처리하여 메디안 노드를 검색하는 방법을 제공하는 것이다.
본 발명이 이루고자 하는 다른 목적은 임계 하한 경계값을 이용하여 특정 시작 노드를 기준으로 계산한 경로 가중치의 합이 임계 하한 경계값보다 큰 경우, 특정 시작 노드에 대한 메디안 노드의 검색을 중단하여 연산량을 줄인 메디안 노드의 검색 방법을 제공하는 것이다.
한편, 본 발명이 이루고자 하는 또 다른 목적은 각 그래프 그룹에서 가장 작은 경로 가중치 합을 인접 그래프 그룹으로 송신하여 하한 경계값을 계산하기 위해 필요한 데이터 송수신 횟수를 줄인 메디안 노드의 검색 방법을 제공하는 것이다.
본 발명의 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 대용량 그래프 데이터베이스에서 메디안(median) 노드를 검색하는 방법은 대용량 그래프 데이터베이스가 다수개의 그래프 그룹으로 분리되어 분산되어 있으며,그래프 그룹을 구성하는 노드 중 1개를 시작 노드로 설정하는 단계(a 단계)와, 시작 노드와 상기 시작 노드로부터 순차적으로 연결되어 있는 기준 노드 사이의 경로 가중치의 합을 구비하는 가중치 메시지를 기준 노드의 인접 노드로부터 수신하는 단계(b 단계)와, 시작 노드와 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산하는 단계(c 단계)와, 하한 경계값과 임계 하한 경계값을 비교하여 하한 경계값이 임계 하한 경계값보다 큰지 판단하는 단계(d 단계)를 포함하는 것을 특징으로 한다.
여기서 본 발명의 일 실시예에 따른 메디안 노드의 검색 방법에서 시작 노드의 노드값은 0으로 설정되며, 시작 노드를 제외한 나머지 노드의 노드값은 무한대로 설정되는 것을 특징으로 한다.
여기서 하한 경계값이 임계 하한 경계값보다 큰 경우 시작 노드에 대한 메디안 노드의 검색을 중단하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른 메디안 노드의 검색 방법은 시작 노드에 대한 메디안 노드의 검색을 중단하는 경우, 그래프 그룹에서 시작 노드를 변경 설정하여 그래프 그룹을 구성하는 모든 노드에 대해 (b) 단계 내지 (d) 단계를 반복하는 것을 특징으로 한다.
바람직하게, 하한 경계값을 계산하는 단계는 가중치 메시지에 구비되어 있는 시작 노드와 기준 노드 사이의 경로 가중치의 합 중 최소값과 기준 노드의 기설정된 노드값을 비교하여 기준 노드의 노드값을 갱신하는 단계와, 모든 기준 노드의 노드값 중 최소값을 가지는 전체 최소값을 판단하는 단계와, 전체 최소값 이상의 노드값을 가지는 노드의 수와 전체 최소값 이하의 노드값을 가지는 노드의 노드값으로부터 하한 경계값을 계산하는 단계를 포함하며, 하한 경계값은 각 수퍼 스텝에서 계산되는 것을 특징으로 한다.
바람직하게, 본 발명의 일 실시예에 따른 메디안 노드의 검색 방법은 기준 노드의 노드값이 갱신되고 하한 경계값이 임계 하한 경계값보다 작은 경우, 기준 노드에 연결되어 있는 기준 인접 노드로 시작 노드로부터 기준 인접 노드까지의 경로 가중치 합을 구비하는 가중치 메시지를 송신하는 단계(e 단계)를 더 포함하며, 기준 노드의 노드값이 갱신되지 않을 때까지, (b) 단계 내지 (e) 단계를 반복하여 시작 노드의 최단 경로 가중치를 계산하는 것을 특징으로 한다.
한편, 본 발명의 일 실시예에 따른 메디안 노드의 검색 방법은 시작 노드의 최단 경로 가중치가 계산되는 경우, 임계 하한 경계값을 시작 노드의 최단 경로 가중치로 갱신하는 것을 특징으로 한다.
바람직하게, 본 발명의 일 실시예에 따른 메디안 노드의 검색 방법은 대용량 그래프 데이터베이스의 각 데이터 그룹에서 전체 최소값을 인접 데이터 그룹으로 송신하는 단계를 더 포함한다.
본 발명의 일 실시예에 따른 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 장치는 다수개의 그래프 그룹으로 분리되어 있는 대용량 그래프 데이터베이스 중 1개의 그래프 그룹이 분산 저장되어 있는 그래프 데이터베이스와, 그래프 그룹을 구성하는 노드 중 시작 노드와 시작 노드로부터 순차적으로 연결되어 있는 기준 노드 사이의 경로 가중치의 합 중 전체 최소값으로부터 하한 경계값을 계산하고 하한 경계값이 임계 하한 경계값보다 작은 경우 시작 노드의 최단 경로 가중치를 계산하여 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 검색 모듈을 포함하는 것을 특징으로 한다.
여기서 검색 모듈은 각 그래프 그룹을 구성하는 노드 중 1개를 시작 노드로 설정하는 시작 노드 설정부와, 인접 노드로부터 가중치 메시지를 수신하는 기준 노드를 활성화 제어하는 활성화 제어부와, 활성화된 모든 기준 노드에 대해 시작 노드와 활성화된 각 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산하여 시작 노드에 대한 메디안 노드의 검색 진행 여부를 결정하는 기능 수행부를 포함하는 것을 특징으로 한다.
바람직하게, 기능 수행부는 가중치 메시지에 구비되어 있는 시작 노드와 기준 노드 사이의 경로 가중치의 합 중 최소값과 기준 노드의 기설정된 노드값을 비교하여 기준 노드의 노드값을 갱신하는 노드값 설정부와, 시작 노드와 모든 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산하여 시작 노드에 대한 메디안 노드의 검색 여부를 결정하는 진행 결정부와, 기준 노드의 노드값이 갱신되고 시작 노드에 대한 메디안 노드의 검색 여부를 진행하는 것으로 결정하는 경우 기준 노드의 노드값에 경로 가중치를 합한 경로 가중치 합을 구비하는 신규 가중치 메시지를 생성하고 기준 노드의 인접 노드로 신규 가중치 메시지를 송신하는 가중치 메시지 송신부를 포함하는 것을 특징으로 한다.
여기서 시작 노드 설정부는 시작 노드의 노드값을 0으로 설정하고, 시작 노드를 제외한 나머지 노드의 노드값을 무한대로 설정하는 것을 특징으로 한다.
바람직하게, 진행 결정부는 각 수퍼스텝에서 시작 노드와 모든 기준 노드 사이의 경로 가중치 합 중 최소값을 가지는 전체 최소값을 판단하는 전체 최소값 판단부와, 전체 최소값 이상의 노드값을 가지는 노드의 수와 전체 최소값 이하의 노드값을 가지는 노드의 노드값으로부터 하한 경계값을 계산하는 하한 경계값 계산부와, 하한 경계값과 임계 하한 경계값의 크기를 비교하는 비교부와, 임계 하한 경계값이 하한 경계값보다 큰 경우 시작 노드에 대한 메디안 노드의 검색을 중단하는 중단 진행 결정부를 포함하는 것을 특징으로 한다.
바람직하게, 검색 모듈은 시작 노드로부터 순차적으로 연결되어 있는 모든 기준 노드가 더 이상 활성화되지 않는 경우 시작 노드와 시작 노드에 순차적으로 연결되어 있는 모든 기준 노드 사이의 경로 가중치를 합하여 시작 노드의 최단 경로 가중치를 계산하는 최단 경로 계산부와, 임계 하한 경계값을 시작 노드의 최단 경로 가중치로 갱신하는 갱신부를 더 포함하는 것을 특징으로 한다.
여기서 시작 노드 설정부는 진행 결정부에서 시작 노드에 대한 메디안 노드의 검색을 중단하는 경우 또는 시작 노드의 최단 경로 가중치를 계산한 경우, 그래프 그룹에서 시작 노드를 변경 설정하는 것을 특징으로 한다.
여기서 검색 모듈은 각 수퍼스텝에서 시작 노드와 모든 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값을 인접 분산된 메디안 노드 검색 장치로 송신하는 전체 최소값 송신부를 더 포함하는 것을 특징으로 한다.
본 발명의 일 실시예에 따른, 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 방법은 다음과 같은 효과를 가진다.
첫째, 본 발명에 따른 메디안 노드의 검색 방법은 대용량 그래프 데이터베이스를 다수의 그래프 그룹으로 분산하고 각 그래프 그룹에서 최단 경로 가중치를 가지는 메디안 노드를 분산 검색함으로써, 대용량 그래프 데이터베이스에 존재하는 메디안 노드를 빠르고 적은 비용으로 검색할 수 있다.
둘째, 본 발명에 따른 메디안 노드의 검색 방법은 임계 하한 경계값을 이용하여 특정 시작 노드를 기준으로 계산한 경로 가중치의 합이 임계 하한 경계값보다 큰 경우 특정 시작 노드에 대한 메디안 노드의 검색을 중단함으로써, 연산량을 줄여 빠르고 적은 비용으로 메디안 노드를 검색할 수 있다.
셋째, 본 발명에 따른 메디안 노드의 검색 방법은 각 그래프 그룹에서 가장 작은 경로 가중치 합을 인접 그래프 그룹으로 송신함으로써, 하한 경계값을 계산하기 위해 필요한 데이터 송수신 횟수를 줄일 수 있다.
도 1은 본 발명의 일 실시예에 따른, 다수의 그래프 그룹으로 이루어진 대용량 그래프 데이터베이스의 일 예를 도시하고 있다.
도 2는 본 발명의 일 실시예에 따른 대용량 그래프 데이터베이스에서 메디안 노드를 분산 검색하는 장치를 설명하기 위한 기능 블록도이다.
도 3은 본 발명의 일 실시예에 따른 검색 모듈을 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 4는 본 발명에 따른 기능 수행부를 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 5는 본 발명에 따른 진행 결정부의 일 예를 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 6은 본 발명의 일 실시예에 따른 메디안 노드의 검색 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명에 따른 하한 경계값을 계산하는 일 예를 설명하기 위한 흐름도이다.
도 8 내지 도 15는 본 발명에 따른 메디안 노드의 검색 방법의 일 예를 설명하기 위한 도면이다.
도 16은 그래프 그룹 사이에서 전체 최소값을 송신하는 방식을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 대용량 그래프 데이터베이스에서 메디안 노드를 분산 검색하는 장치를 설명하기 위한 기능 블록도이다.
도 3은 본 발명의 일 실시예에 따른 검색 모듈을 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 4는 본 발명에 따른 기능 수행부를 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 5는 본 발명에 따른 진행 결정부의 일 예를 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 6은 본 발명의 일 실시예에 따른 메디안 노드의 검색 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명에 따른 하한 경계값을 계산하는 일 예를 설명하기 위한 흐름도이다.
도 8 내지 도 15는 본 발명에 따른 메디안 노드의 검색 방법의 일 예를 설명하기 위한 도면이다.
도 16은 그래프 그룹 사이에서 전체 최소값을 송신하는 방식을 설명하기 위한 도면이다.
이하 첨부한 도면을 참고로 본 발명의 일 실시예에 따른 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 방법 및 그 장치에 대해 보다 구체적으로 설명한다.
도 1은 본 발명의 일 실시예에 따른, 다수의 그래프 그룹으로 이루어진 대용량 그래프 데이터베이스의 일 예를 도시하고 있다.
도 1을 참고로 살펴보면, 원으로 표현된 다수의 노드 버텍스와 노드 버텍스 사이를 연결하는 에지로 구성되어 있는 대용량 그래프 데이터베이스가 존재한다. 여기서 노드 버텍스와 노드 버텍스를 연결하는 에지에는 가중치가 부여되어 있는데, 노드 버텍스는 소셜 네트워크의 경우 사용자 이름, 아이디 등과 같은 사용자 식별자이며, 노드 에지는 사용자의 관계를 의미하며, 가중치는 노드와 노드 사이의 거리, 친밀도 등을 의미한다.
대용량 그래프 데이터베이스는 다수의 그래프 그룹(GG1, GG2, GG3)으로 구분되어 그래프 그룹 단위로 메디안 노드를 검색하는 장치에 분산 저장되어 있는데, 메디안 노드를 검색하는 장치는 각 그래프 그룹 단위로 각 그래프 그룹을 구성하는 모든 노드를 기준 노드로 동시에 그래프 그룹에서 단일 쌍 최단 경로를 계산한다.
여기서 그래프 그룹에서 다른 그래프 그룹과의 경계에 위치하는 경계 노드는 다른 그래프 그룹에서 경계 노드에 연결되어 있는 주변 노드의 식별자 정보를 가지는데, 예를 들어 그래프 그룹(GG1)의 경계 노드A는 그래프 그룹(GG1)의 경계에 위치하는 그래프 그룹(GG3)에서 경계 노드A에 연결되어 있는 주변 노드B의 식별자 정보를 가지고 있다. 이러한 주변 노드B의 식별자 정보는 그래프 데이터베이스에 저장될 수 있다.
도 2는 본 발명의 일 실시예에 따른 대용량 그래프 데이터베이스에서 메디안 노드를 분산 검색하는 장치를 설명하기 위한 기능 블록도이다.
도 2를 참고로 보다 구체적으로 살펴보면, 그래프 데이터베이스(100)는 다수개의 그래프 그룹으로 분리되어 있는 대용량 그래프 데이터베이스 중 적어도 1개 이상의 그래프 그룹이 분산 저장되어 있다.
검색모듈(200)는 그래프 그룹을 구성하는 노드 중 시작 노드와 시작 노드로부터 순차적으로 연결되어 있는 기준 노드 사이의 경로 가중치의 합 중 전체 최소값으로부터 하한 경계값을 계산하고, 하한 경계값이 임계 하한 경계값보다 작은 경우 시작 노드의 최단 경로 가중치를 계산하여 대용량 그래프 데이터베이스에서 메디안 노드를 검색하며 하한 경계값이 임계 하한 경계값보다 큰 경우에는 시작 노드의 최단 경로 가중치의 계산을 중단한다.
도 3은 본 발명의 일 실시예에 따른 검색 모듈을 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 3을 참고로 살펴보면, 시작 노드 설정부(210)는 각 그래프 그룹을 구성하는 노드 중 1개를 시작 노드로 설정한다.
시작 노드가 설정된 경우 시작 노드의 최단 경로 가중치를 계산하는데, 활성화 제어부(220)는 인접 노드로부터 가중치 메시지를 수신하는 기준 노드를 활성화 제어한다. 여기서 가중치 메시지는 인접하고 있는 모든 인접 노드로 송신되는데, 가중치 메시지를 수신한 인접 노드는 모두 기준 노드이며, 기준 노드는 활성화 제어된다.
기능 수행부(230)는 활성화된 모든 기준 노드에 대해 시작 노드와 활성화된 각 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산하여 시작 노드에 대한 메디안 노드의 검색 진행 여부를 결정한다. 가중치 메시지에는 시작 노드로부터 각 기준 노드까지의 경로 가중치의 합이 구비되어 있는데, 각 기준 노드는 인접한 적어도 1개의 이상의 노드로부터 가중치 메시지를 수신한다. 기능 수행부(230)는 수신한 가중치 메시지에 기초하여 각 기준 노드의 기설정된 노드 설정값과 각 기준 노드에서 수신한 가중치 메시지에 구비되어 있는 경로 가중치 합의 최소값을 비교하여 노드 설정값과 최소값 중 작은 값으로 각 기준 노드의 노드값을 설정한다.
한편, 수행 수행부(230)는 모든 기준 노드에서 수신한 가중치 메시지에 구비되어 있는 시작 노드로부터 각 기준 노드 사이의 경로 가중치 합 중 최소값을 가지는 전체 최소값을 판단하며, 전체 최소값으로부터 하한 경계값을 계산하여 계산한 하한 경계값이 임계 하한 경계값보다 작은 경우 시작 노드로부터의 최단 경로 가중치를 계속해서 계산한다. 즉, 가중치 메시지를 수신한 모든 기준 노드를 대상으로 계산한 하한 경계값이 임계 하한 경계값보다 작은 경우, 기능 수행부(230)는 다시 기준 노드에 인접한 노드로 가중치 메시지를 송신하며, 가중치 메시지를 수신한 인접 노드는 다음 단계(superstep)에서 기준 노드로 동작하여 앞서 설명한 기능 수행부(230)의 동작을 반복 수행한다. 기능 수행부(230)는 데이터 그룹에 존재하는 모든 기준 노드에서 노드값이 변경되지 않을 때까지 앞서 설명한 기능 수행부(230)의 동작을 반복 수행한다.
그러나 기능 수행부(230)는 계산한 하한 경계값이 임계 하한 경계값보다 큰 경우, 설정된 시작 노드로부터의 최단 경로 가중치의 계산을 중단한다.
최단 경로 계산부(240)는 설정된 시작 노드로부터의 최단 경로 가중치의 계산이 중단되지 않으며 모든 기준 노드의 노드값이 변경되지 않을 때, 대용량 그래프데이터베이스의 모든 노드의 노드값 합으로부터 시작 노드의 최단 경로 가중치를 계산한다. 시작 노드의 최단 경로 가중치가 계산되는 경우, 갱신부(250)는 임계 하한 경계값을 계산한 시작 노드의 최단 경로 가중치로 갱신한다. 한편, 시작 노드 설정부(210)는 시작 노드를 그래프 그룹의 다른 노드로 변경 설정하며, 활성화 제어부(220), 기능 수행부(230)는 변경된 시작 노드에 대한 최단 경로 가중치를 계산한다.
메디안 노드 결정부(260)는 계산된, 대용량 그래프데이터베이스의 모든 노드의 최단 경로 가중치에 기초하여 가장 작은 최단 경로 가중치를 가지는 노드를 메디안 노드로 결정한다.
바람직하게, 전체 최소값 송신부(270)는 각 수퍼스텝에서 전체 최소값에 대한 정보를 인접 분산되어 있는 메디안 노드의 검색 장치로 송신한다. 이와 같이 전체 최소값 송신부(270)를 통해 전체 최소값에 대한 정보를 인접 분산되어 있는 메디안 노드의 검색 장치로 제공함으로써, 그래프 그룹에 위치하는 모든 경계 노드가 각각 인접 분산되어 있는 메디안 노드의 검색 장치로 자신의 노드값을 송신하는 것을 방지하여 분산된 메디안 노드의 검색 장치 사이에서 송수신되는 통신 횟수를 줄일 수 있다.
도 4는 본 발명에 따른 기능 수행부를 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 4를 참고로 보다 구체적으로 살펴보면, 노드값 설정부(310)는 기준 노드에서 인접한 노드로부터 가중치 메시지를 수신하는 경우, 가중치 메시지에 구비되어 있는 시작 노드와 기준 노드 사이의 경로 가중치의 합 중 최소값과 기준 노드의 기설정된 노드값을 비교하여 기준 노드의 노드값을 갱신 설정한다. 기준 노드에 인접한 모든 노드는 기준 노드로 시작 노드와 기준 노드 사이의 경로 가중치 합을 구비하는 가중치 메시지를 송신하는데, 노드값 설정부(310)는 수신한 경로 가중치 합 중 최소값과 기설정된 노드값을 비교하여 최소값이 기설정된 노드값보다 작은 경우 최소값으로 기준 노드의 노드값을 변경 설정한다. 그러나 최소값이 기설정된 노드값보다 큰 경우에는 기준 노드의 노드값을 유지 설정한다.
한편, 진행 결정부(320)는 시작 노드와 모든 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산하여 시작 노드에 대한 메디안 노드의 검색 여부를 결정한다. 진행 결정부(320)는 계한한 하한 경계값이 임계 하한 경계값보다 큰 경우 시작 노드의 최단 경로 가중치의 계산을 중단하며, 계산한 하한 경계값이 임계 하한 경계값보다 작은 경우 시작 노드의 최단 경로 가중치의 계산을 계속한다.
진행 결정부(320)에서 시작 노드의 최단 경로 가중치의 계산을 계속하는 것으로 결정하고 기준 노드의 노드값이 변경 갱신된 경우, 가중치 메시지 송신부(330)는 기준 노드에 에지로 연결된 인접 노드로 시작 노드로부터 인접 노드 사이의 경로 가중치 합을 구비하는 새로운 가중치 메시지를 생성하고, 생성한 가중치 메시지를 기준 노드에 인접한 기준 인접 노드로 송신한다.
도 5는 본 발명에 따른 진행 결정부의 일 예를 보다 구체적으로 설명하기 위한 기능 블록도이다.
도 5를 참고로 본 발명에 따른 진행 결정부의 일 예를 살펴보면, 전체 최소값 계산부(321)는 시작 노드와 모든 기준 노드 사이의 경로 가중치 합 중 최소값을 가지는 전체 최소값을 판단한다. 기준 노드는 각각 기준 노드에 인접한 적어도 1개 이상의 인접 노드로부터 경로 가중치 합을 수신하며, 모든 기준 노드가 수신한 경로 가중치 합 중 가장 작은 전체 최소값을 판단한다.
하한 경계값 계산부(323)는 대용량 그래프 데이터베이스에서 전체 최소값 이상의 노드값을 가지는 노드의 수와 전체 최소값 이하의 노드값을 가지는 노드의 노드값으로부터 하한 경계값을 계산한다.
비교부(325)는 하한 경계값과 임계 하한 경계값의 크기를 비교하며, 중단 진행 결정부(327)는 하한 경계값이 임계 하한 경계값보다 큰 경우 시작 노드에 대한 메디안 노드의 검색을 중단하며 하한 경계값이 임계 하한 경계값보다 작은 경우 시작 노드의 최단 경로 가중치의 계산을 계속하도록 결정한다.
도 6은 본 발명의 일 실시예에 따른 메디안 노드의 검색 방법을 설명하기 위한 흐름도이다.
도 6을 참고로 보다 구체적으로 살펴보면, 대용량 그래프 데이터베이스는 그래프 그룹으로 구분되어 다수의 메디안 노드 검색 장치에 분산 저장되어 있는데, 각 메디안 노드 검색 장치에서는 저장된 그래프 그룹을 구성하는 노드 중 1개를 시작 노드로 설정한다(S110). 바람직하게, 그래프 그룹에서 설정한 시작 노드의 노드값은 0으로 설정되고, 시작 노드를 제외한 나머지 노드의 노드값은 무한대로 설정된다. 본 발명이 적용되는 분야에 따라 시작 노드의 노드값을 나머지 노드의 노드값과 비교하여 상대적으로 작은 값으로 설정할 수 있으며, 이는 본 발명의 범위에 속한다.
인접한 노드로부터 가중치 메시지를 수신하는 경우(S120) 가중치 메시지를 수신한 모든 노드는 기준 노드로 활성화되는데, 가중치 메시지에는 설정한 시작 노드와 기준 노드 사이의 경로 가중치 합이 구비되어 있다. 기준 노드는 인접한, 즉 에지로 연결되어 있는 적어도 1개 이상의 인접 노드로부터 가중치 메시지를 수신하며 수신한 가중치 메시지의 경로 가중치 합 중 최소값을 판단한다.
판단한 최소값과 기준 노드에 기설정되어 있는 노드값을 비교하여 최소값이 기설정되어 있는 노드값보다 작은지 판단하여 기준 노드의 노드값을 설정하는데, 기준 노드의 노드값이 변경되었는지 판단한다(S130). 최소값이 기설정되어 있는 기준 노드의 노드값보다 작은 경우 최소값으로 기준 노드의 노드값을 변경 설정하며, 최소값이 기설정되어 있는 기준 노드의 노드값보다 큰 경우 기설정되어 있는 기준 노드의 노드값을 유지 설정한다.
그래프 그룹에서 노드값이 변경된 기준 노드가 존재하는 경우, 시작 노드와 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산한다(S140). 계산한 하한 경계값이 임계 하한 경계값보다 작은 경우, 기준 노드는 인접한 기준 인접 노드로 시작 노드로부터 기준 인접 노드까지의 경로 가중치 합을 구비하는 새로운 가중치 메시지를 생성하여 송신한다. 기준 노드로부터 새로운 가중치 메시지를 수신한 인접 노드는 다음 단계(superstep)에서 신규 기준 노드로 동작한다.
새로운 가중치 메시지를 수신한 신규 기준 노드는 그래프 그룹에서 모든 기준 노드의 노드값이 변경되지 않을 때까지 앞서 설명한 S130 단계 내지 S150 단계를 반복한다. 그래프 그룹의 모든 기준 노드에서 노드값이 변경되지 않은 경우, 대용량 그래프 데이터베이스의 모든 노드의 노드값을 합하여 시작 노드의 최단 경로 가중치를 계산한다(S160).
시작 노드의 최단 경로 가중치를 계산한 경우, 시작 노드의 최단 경로 가중치와 임계 하한 경계값을 비교하여 작은 값으로 임계 하한 경계값을 갱신하고, 그래프 그룹에 시작 노드로 설정되지 않은 노드가 존재하는지 판단한다(S170). 시작 노드로 설정되지 않은 노드가 존재하는 경우, 시작 노드로 설정되지 않은 노드로 시작 노드를 설정하여 앞서 설명한 S110단계 내지 S170 단계를 반복 수행한다.
그러나 시작 노드로 설정되지 않은 노드가 그래프 그룹에 존재하지 않은 경우, 전체 그래프 그룹에서 최단 경로 가중치가 계산된 시작 노드 중에서 가장 작은 최단 경로 가중치를 가지는 시작 노드를 대용량 그래프 데이터베이스의 메디안 노드로 결정한다(S180).
한편, 본원발명에서는 계산한 하한 경계값이 임계 하한 경계값보다 큰 경우, 시작 노드의 최단 경로 가중치의 계산을 중단한다(S190). 시작 노드의 최단 경로 가중치의 계산이 중단된 경우, 그래프 그룹에서 시작 노드를 변경하여 새로운 시작 노드로 앞서 설명한 S110 단계 내지 S180 단계를 반복하여 수행한다.
도 6을 참고로 설명한 본 발명에 따른 메디안 노드의 검색은 프리겔(Pregel)과 같은 분산 처리 프레임워크를 이용하여 수행될 수 있는데, 프리겔은 노드 단위로 기설계한 함수에 따라 노드의 값을 변경하거나 다른 노드로 메시지를 보내는 등의 슈퍼스텝(superstep)이란 과정으로 동작한다. 본 발명에서 각 슈퍼스텝은 가중치 메시지를 수신하는 기능, 기준 노드의 노드값을 설정하는 기능, 하한 경계값을 계산하는 기능, 최단 경로 가중치의 계산을 계속해서 진행할지 판단하는 기능, 최단 경로 가중치의 계산을 계속해서 진행하는 것으로 판단하는 경우 새로운 가중치 메시지를 생성하여 송신하는 기능 등으로 이루어진다.
프리겔에서 활성화와 비활성화라는 두 가지의 노드 상태가 존재하는데 활성화 상태의 노드들은 사용자가 정의한 함수를 수행하며 연결된 노드에 메시지를 전달한다. 이때 더 이상 전송하는 메시지가 없거나 노드값이 변경되지 않는 비활성화 상태가 되며, 메시지를 전송받아 값이 변경되는 작업이 발생하지 않으면 이때 또한 비활성화 상태로 전이가 발생한다. 이러한 프리겔은 모든 노드가 비활성화 상태이거나 노드 간 메시지 전달이 발생하지 않을 때 종료하게 된다.
도 7은 본 발명에 따른 하한 경계값을 계산하는 일 예를 설명하기 위한 흐름도이다.
도 7을 참고로 보다 구체적으로 살펴보면, 가중치 메시지에 구비되어 있는 시작 노드와 기준 노드 사이의 경로 가중치의 합 중 최소값과 기준 노드의 기설정된 노드값을 비교하여 기준 노드의 노드값을 갱신 설정한다(S141).
전체 그래프 그룹의 모든 기준 노드의 노드값 중 최소값을 가지는 전체 최소값을 판단하고(S143), 전체 최소값 이상의 노드값을 가지는 노드의 수와 전체 최소값 이하의 노드값을 가지는 노드의 노드값으로부터 하한 경계값을 계산한다.
바람직하게, 하한 경계값(LB)은 아래의 수학식(1)과 같이 계산된다.
여기서 n은 대용량 그래프 데이터베이스에 존재하는 전체 노드 수(t) 중 전체 최소값보다 작은 노드값을 가지는 노드의 수이며, wi는 전체 최소값보다 작은 노드값을 가지는 노드(i)의 노드값이며, wmin은 전체 최소값을 의미하는 것을 특징으로 한다.
도 8 내지 도 15는 본 발명에 따른 메디안 노드의 검색 방법의 일 예를 설명하기 위한 도면이다.
먼저, 도 8(a)을 참고로 살펴보면 그래프 그룹에 노드 버텍스가 1, 2, 3, 4, 5인 5개의 노드가 존재하면, 노드 1을 시작 노드로 초기화 설정하여 노드 1의 노드값을 0으로 초기화 설정하고 나머지 노드 2, 3, 4, 5의 노드값을 무한대로 초기화 설정한다. 시작 노드를 설정한 경우, 제0 수퍼스텝에서 시작 노드는 기준 노드로 설정되며 인접한 노드4, 5는 기준 인접 노드로 동작한다. 시작 노드는 가중치 메시지를 생성하여 기준 인접 노드로 송신하는데, 가중치 메시지에는 시작 노드로부터 기준 인접 노드까지의 경로 가중치 합이 구비되어 있다. 도 8(b)에 도시되어 있는 바와 같이, 기준 인접 노드 4가 수신한 가중치 메시지에는 시작 노드의 노드값(0)과 시작 노드와 기준 인접 노드4 사이의 가중치(10)가 합해진 가중치 경로 합이 구비되어 있다.
다음으로 도 9(a)를 참고로 살펴보면, 시작 노드로부터 가중치 메시지를 수신한 노드 4, 5는 제1 수퍼스텝에서 기준 노드로 동작한다. 기준 노드4는 수신한 가중치 메시지에 기초하여 기준 노드의 기설정된 노드값인 무한대와 수신한 가중치 메시지의 시작 노드 1로부터 기준노드 4까지의 가중치 경로 합(10) 중 가장 작은 값으로 기준 노드의 노드값(10)을 갱신 설정한다. 이와 동일하게 기준 노드 5도 기준 노드의 노드값을 설정한다. 제1 수퍼스텝에서 모든 기준 노드 4, 5에서 수신한 시작 노드 1과 기준 노드 4, 5 사이의 경로 가중치 합(5, 10) 중 최소값을 가지는 전체 최소값은 5이다. 제1 수퍼스텝에서 전체 최소값보다 작은 노드값을 가지는 노드의 노드값 합, 전체 최소값보다 큰 노드값을 가지는 노드 수 및 전체 최소값에 기초하여 하한 경계값(0+5+5×3)을 계산한다. 초기화시 임계 하한 경계값은 무한대로 설정되거나 일정한 값으로 설정될 수 있는데, 임계 하한 경계값은 40으로 설정되어 있는 것으로 가정한다. 계산한 하한 경계값이 임계 하한 경계값보다 작으며 기준 노드에서 노드값이 변경 설정되므로, 도 9(b)에 도시되어 있는 바와 같이 기준 노드는 인접 기준 노드로 새로운 가중치 메시지를 생성하여 송신한다.
다음으로 도 10(a)를 참고로 살펴보면, 기준 노드 4로부터 가중치 메시지를 수신한 노드 2, 5는 제2 수퍼스텝에서 기준 노드로 동작하며, 기준 노드 5로부터 가중치 메시지를 수신한 노드 2, 3, 4는 제2 수퍼스텝에서 기준 노드로 동작한다. 기준 노드 4는 수신한 가중치 메시지에 기초하여 기준 노드의 기설정된 노드값(10)과 수신한 가중치 메시지의 시작 노드로부터 기준 노드 4까지의 가중치 경로 합 중 최소값(8)을 비교하여 기준 노드의 노드값(8)을 갱신 설정한다. 이와 동일하게 기준 노드 2, 3도 노드값을 설정한다. 제2 수퍼스텝에서 모든 기준 노드 2, 3, 4, 5에서 수신한 시작 노드 1과 기준 노드2, 3, 4, 5 사이의 경로 가중치 합(7. 8, 11, 12, 14) 중 최소값을 가지는 전체 최소값은 7이다. 제2 수퍼스텝에서 전체 최소값보다 작은 노드값을 가지는 노드의 노드값 합, 전체 최소값보다 큰 노드값을 가지는 노드 수 및 전체 최소값에 기초하여 하한 경계값(0+5+7+7×2)을 계산한다. 계산한 하한 경계값(26)이 임계 하한 경계값(40)보다 작으며 기준 노드에서 노드값이 변경 설정되므로, 도 10(b)에 도시되어 있는 바와 같이 기준 노드는 인접 기준 노드로 새로운 가중치 메시지를 생성하여 송신한다.
다음으로 도 11(a)를 참고로 살펴보면, 기준 노드 3, 4로부터 가중치 메시지를 수신한 노드 2는 제3 수퍼스텝에서 기준 노드로 동작하며, 기준 노드 2로부터 가중치 메시지를 수신한 노드 3은 제3 수퍼스텝에서 기준 노드로 동작하며, 기준 노드 3으로부터 가중치 메시지를 수신한 노드 1은 제3 수퍼스텝에서 기준 노드로 동작하며, 기준 노드 4로부터 가중치 메시지를 수신한 노드 5는 기준 노드로 동작한다. 기준 노드 2는 수신한 가중치 메시지에 기초하여 기준 노드의 기설정된 노드값(11)과 수신한 가중치 메시지의 시작 노드로부터 기준 노드 2까지의 가중치 경로 합 중 최소값(9)에서 작은 값으로 기준 노드의 노드값(9)을 갱신 설정한다. 이와 동일하게 기준 노드 1, 3, 5도 노드값을 설정한다. 제3 수퍼스텝에서 모든 기준 노드 1, 2, 3, 5에서 수신한 시작 노드 1과 기준 노드2, 3, 4, 5 사이의 경로 가중치 합(9. 10, 13, 14, 15) 중 최소값을 가지는 전체 최소값은 9이다. 제3 수퍼스텝에서 전체 최소값보다 작은 노드값을 가지는 노드의 노드값 합, 전체 최소값보다 큰 노드갑을 가지는 노드 수 및 전체 최소값에 기초하여 하한 경계값(0+5+7+8+9×1)을 계산한다. 계산한 하한 경계값이 임계 하한 경계값보다 작으며, 기준 노드에서 노드값이 변경 설정되므로, 도 11(b)에 도시되어 있는 바와 같이 기준 노드는 인접 기준 노드로 새로운 가중치 메시지를 생성하여 송신한다.
도 12에 도시되어 있는 바와 같이, 기준 노드 2로부터 가중치 메시지를 수신한 노드 3은 제4 수퍼스텝에서 기준 노드로 동작한다. 기준 노드 3은 수신한 가중치 메시지에 기초하여 기준 노드의 기설정된 노드값(7)과 수신한 가중치 메시지의 시작 노드로부터 기준 노드 3까지의 가중치 경로 합 중 가장 작은 값(13)에서 작은 값으로 기준 노드의 노드값(7)을 갱신 설정한다.
그래프 그룹의 모든 노드 1, 2, 3, 4, 5에서 노드값이 변경되지 않은 경우, 그래프 그룹의 모든 노드 1, 2, 3, 4, 5의 노드값을 합하여 시작 노드1의 최단 경로 가중치(29)를 계산한다. 시작 노드1의 최단 경로 가중치(29)가 계산되는 경우, 임계 하한 경계값(40)을 계산한 최단 경로 가중치(29)로 변경한다.
다음으로 도 13(a)를 참고로 살펴보면, 노드 2를 시작 노드로 초기화 설정하여 노드 2의 노드값을 0으로 초기화 설정하고 나머지 노드 1, 3, 4, 5의 노드값을 무한대로 초기화 설정한다. 시작 노드를 설정한 경우, 제5 수퍼스텝에서 시작 노드는 기준 노드로 설정되며 인접한 노드 3는 기준 인접 노드로 동작한다. 시작 노드는 가중치 메시지를 생성하여 기준 인접 노드로 송신하는데, 가중치 메시지에는 시작 노드로부터 기준 인접 노드까지의 경로 가중치 합이 구비되어 있다. 도 13(b)에 도시되어 있는 바와 같이, 기준 인접 노드 3이 수신한 가중치 메시지에는 시작 노드의 노드값(0)과 시작 노드와 기준 인접 노드3 사이의 가중치(4)가 합해진 가중치 경로 합이 구비되어 있다.
다음으로 도 14(a)를 참고로 살펴보면, 시작 노드로부터 가중치 메시지를 수신한 노드 3은 제6 수퍼스텝에서 기준 노드로 동작한다. 기준 노드 3은 수신한 가중치 메시지에 기초하여 기준 노드의 기설정된 노드값인 무한대와 수신한 가중치 메시지의 시작 노드 2로부터 기준노드 3까지의 가중치 경로 합 중 가장 작은 값으로 기준 노드의 노드값(4)을 갱신 설정한다. 제6 수퍼스텝에서 시작 노드 1과 기준 노드 3 사이의 경로 가중치 합(4) 중 최소값을 가지는 전체 최소값은 4이다. 제6 수퍼스텝에서 전체 최소값보다 작은 노드값을 가지는 노드의 노드값 합, 전체 최소값보다 큰 노드갑을 가지는 노드 수 및 전체 최소값에 기초하여 하한 경계값(0+4+4×3)을 계산한다. 계산한 하한 경계값이 임계 하한 경계값(29)보다 작으며 기준 노드에서 노드값이 변경 설정되므로, 도 14(b)에 도시되어 있는 바와 같이 기준 노드는 인접 기준 노드로 새로운 가중치 메시지를 생성하여 송신한다.
다음으로 도 15(a)를 참고로 살펴보면, 기준 노드 3으로부터 가중치 메시지를 수신한 노드 1, 2는 제7 수퍼스텝에서 기준 노드로 동작한다. 기준 노드 1은 수신한 가중치 메시지에 기초하여 기준 노드의 기설정된 노드값과 시작 노드로부터 기준 노드 1까지의 가중치 경로 합 중 최소값에서 작은 값(11)으로 기준 노드의 노드값(11)을 갱신 설정한다. 이와 동일하게 기준 노드 2도 노드값을 설정한다. 제7 수퍼스텝에서 모든 기준 노드 1, 2에서 수신한 시작 노드 2과 기준 노드 1, 2 사이의 경로 가중치 합(10, 11) 중 최소값을 가지는 전체 최소값은 10이다. 제7 수퍼스텝에서 전체 최소값보다 작은 노드값을 가지는 노드의 노드값 합, 전체 최소값보다 큰 노드갑을 가지는 노드 수 및 전체 최소값에 기초하여 하한 경계값(0+4+10×3)을 계산한다. 계산한 하한 경계값(34)이 임계 하한 경계값보다 크기 때문에 시작 노드 2에 대한 최단 경로 가중치의 계산을 중단한다.
바람직하게, 도 16에 도시되어 있는 바와 같이 각 수퍼스텝에서 하한 경계값을 계산하기 위하여 그래프 그룹의 경계에 위치하는 기준 노드는 인접하고 있는 그래프 그룹으로 각각 시작 노드로부터 기준 노드까지의 경로 가중치의 합 중 최소값을 송신하여야 한다. 본 발명에서는 각 그래프 그룹에서 경계에 위치하는 모든 기준 노드가 최소값을 송신하는 대신, 각 그래프 그룹에서 경계에 위치하는 모든 기준 노드의 최소값 중 가장 작은 값인 전체 최소값을 판단하여 인접하고 있는 그래프 그룹으로 전체 최소값만을 송신한다. 이와 같이 각 그래프 그룹에서 전체 최소값을 판단하여 송신함으로써, 인접 그래프 그룹 사이의 통신 횟수를 줄일 수 있다.
한편, 상술한 본 발명의 실시 예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
상기 컴퓨터로 읽을 수 있는 기록 매체는 전기 또는 자기식 저장 매체(예를 들어, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장 매체를 포함한다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 그래프 데이터베이스
200: 검색 모듈
210: 시작 노드 설정부 220: 활성화 제어부
230: 기능 수행부 240: 최단 경로 계산부
250: 갱신부 260: 메디안 노드 결정부
270: 전체 최소값 송신부 310: 노드값 설정부
320: 진행 결정부 330: 가중치 메시지 송신부
321: 전체 최소값 계산부 323: 하한 경계값 계산부
325: 비교부 327: 중단 진행 결정부
210: 시작 노드 설정부 220: 활성화 제어부
230: 기능 수행부 240: 최단 경로 계산부
250: 갱신부 260: 메디안 노드 결정부
270: 전체 최소값 송신부 310: 노드값 설정부
320: 진행 결정부 330: 가중치 메시지 송신부
321: 전체 최소값 계산부 323: 하한 경계값 계산부
325: 비교부 327: 중단 진행 결정부
Claims (16)
- 대용량 그래프 데이터베이스에서 메디안(median) 노드를 검색하는 방법에 있어서,
상기 대용량 그래프 데이터베이스는 다수개의 그래프 그룹으로 분리되어 분산되어 있으며,
(a) 각 상기 그래프 그룹을 구성하는 노드 중 1개를 시작 노드로 설정하는 단계;
(b) 상기 시작 노드와 상기 시작 노드로부터 순차적으로 연결되어 있는 기준 노드 사이의 경로 가중치의 합을 구비하는 가중치 메시지를 상기 기준 노드의 인접 노드로부터 수신하는 단계;
(c) 상기 시작 노드와 상기 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산하는 단계; 및
(d) 상기 하한 경계값과 임계 하한 경계값을 비교하여 상기 하한 경계값이 상기 임계 하한 경계값보다 큰지 판단하는 단계를 포함하는 것을 특징으로 하는 메디안 노드의 검색 방법. - 제 1 항에 있어서, 상기 메디안 노드의 검색 방법은
상기 시작 노드의 노드값은 0으로 설정되며, 상기 시작 노드를 제외한 나머지 노드의 노드값은 무한대로 설정되는 것을 특징으로 하는 메디안 노드의 검색 방법. - 제 1 항에 있어서,
상기 하한 경계값이 상기 임계 하한 경계값보다 큰 경우 상기 시작 노드에 대한 메디안 노드의 검색을 중단하는 것을 특징으로 하는 메디안 노드의 검색 방법. - 제 3 항에 있어서, 상기 메디안 노드의 검색 방법은
상기 시작 노드에 대한 메디안 노드의 검색을 중단하는 경우, 상기 그래프 그룹에서 시작 노드를 변경 설정하여 상기 그래프 그룹을 구성하는 모든 노드에 대해 상기 (b) 단계 내지 (d) 단계를 반복하는 것을 특징으로 하는 메디안 노드의 검색 방법. - 제 3 항에 있어서, 상기 하한 경계값을 계산하는 단계는
상기 가중치 메시지에 구비되어 있는 상기 시작 노드와 상기 기준 노드 사이의 경로 가중치의 합 중 최소값과 상기 기준 노드의 기설정된 노드값을 비교하여 상기 기준 노드의 노드값을 갱신하는 단계;
모든 기준 노드의 노드값 중 최소값을 가지는 전체 최소값을 판단하는 단계; 및
상기 전체 최소값 이상의 노드값을 가지는 노드의 수와 상기 전체 최소값 이하의 노드값을 가지는 노드의 노드값으로부터 하한 경계값을 계산하는 단계를 포함하며,
상기 하한 경계값은 각 수퍼 스텝에서 계산되는 것을 특징으로 하는 메디안 노드의 검색 방법. - 제 5 항에 있어서, 상기 메디안 노드의 검색 방법은
(e) 상기 기준 노드의 노드값이 갱신되고 상기 하한 경계값이 상기 임계 하한 경계값보다 작은 경우, 상기 기준 노드에 연결되어 있는 기준 인접 노드로 상기 시작 노드로부터 상기 기준 인접 노드까지의 경로 가중치 합을 구비하는 신규 가중치 메시지를 송신하는 단계를 더 포함하며,
상기 기준 노드의 노드값이 갱신되지 않을 때까지, 상기 (b) 단계 내지 (e) 단계를 반복하여 상기 시작 노드의 최단 경로 가중치를 계산하는 것을 특징으로 하는 메디안 노드의 검색 방법. - 제 5 항에 있어서, 상기 메디안 노드의 검색 방법은
상기 시작 노드의 최단 경로 가중치가 계산되는 경우, 상기 임계 하한 경계값을 상기 시작 노드의 최단 경로 가중치로 갱신하는 것을 특징으로 하는 메디안 노드의 검색 방법. - 제 1 항 내지 제 7 항 중 어느 한 항에 있어서, 상기 메디안 노드의 검색 방법은
상기 대용량 그래프 데이터베이스의 각 데이터 그룹에서 상기 전체 최소값을 인접 데이터 그룹으로 송신하는 단계를 더 포함하는 메디안 노드의 검색 방법. - 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 장치에 있어서,
다수개의 그래프 그룹으로 분리되어 있는 상기 대용량 그래프 데이터베이스 중 1개의 그래프 그룹이 분산 저장되어 있는 그래프 데이터베이스; 및
상기 그래프 그룹을 구성하는 노드 중 시작 노드와 상기 시작 노드로부터 순차적으로 연결되어 있는 기준 노드 사이의 경로 가중치의 합 중 전체 최소값으로부터 하한 경계값을 계산하고, 상기 하한 경계값이 임계 하한 경계값보다 작은 경우 상기 시작 노드의 최단 경로 가중치를 계산하여 상기 대용량 그래프 데이터베이스에서 메디안 노드를 검색하는 검색 모듈을 포함하는 것을 특징으로 하는 메디안 노드 검색 장치. - 제 9 항에 있어서, 상기 검색 모듈은
각 상기 그래프 그룹을 구성하는 노드 중 1개를 시작 노드로 설정하는 시작 노드 설정부;
인접 노드로부터 가중치 메시지를 수신하는 기준 노드를 활성화 제어하는 활성화 제어부; 및
활성화된 모든 기준 노드에 대해 상기 시작 노드와 활성화된 각 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산하여 상기 시작 노드에 대한 메디안 노드의 검색 진행 여부를 결정하는 기능 수행부를 포함하는 것을 특징으로 하는 메디안 노드 검색 장치. - 제 10 항에 있어서, 상기 기능 수행부는
상기 가중치 메시지에 구비되어 있는 상기 시작 노드와 상기 기준 노드 사이의 경로 가중치의 합 중 최소값과 상기 기준 노드의 기설정된 노드값을 비교하여 상기 기준 노드의 노드값을 갱신하는 노드값 설정부;
상기 시작 노드와 모든 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값으로부터 하한 경계값을 계산하여 상기 시작 노드에 대한 메디안 노드의 검색 여부를 결정하는 진행 결정부; 및
상기 기준 노드의 노드값이 갱신되고 상기 시작 노드에 대한 메디안 노드의 검색 여부를 진행하는 것으로 결정하는 경우, 상기 기준 노드의 노드값에 경로 가중치를 합한 경로 가중치 합을 구비하는 신규 가중치 메시지를 생성하고 상기 기준 노드의 인접 노드로 상기 신규 가중치 메시지를 송신하는 가중치 메시지 송신부를 포함하는 것을 특징으로 하는 메디안 노드의 검색 장치. - 제 11 항에 있어서, 상기 시작 노드 설정부는
상기 시작 노드의 노드값을 0으로 설정하고, 상기 시작 노드를 제외한 나머지 노드의 노드값을 무한대로 설정하는 것을 특징으로 하는 메디안 노드의 검색 장치. - 제 11 항에 있어서, 상기 진행 결정부는
상기 시작 노드와 모든 기준 노드 사이의 경로 가중치 합 중 최소값을 가지는 전체 최소값을 판단하는 전체 최소값 판단부;
상기 전체 최소값 이상의 노드값을 가지는 노드의 수와 상기 전체 최소값 이하의 노드값을 가지는 노드의 노드값으로부터 하한 경계값을 계산하는 하한 경계값 계산부;
상기 하한 경계값과 임계 하한 경계값의 크기를 비교하는 비교부; 및
상기 임계 하한 경계값이 상기 하한 경계값보다 큰 경우 상기 시작 노드에 대한 메디안 노드의 검색을 중단하는 중단 진행 결정부를 포함하는 것을 특징으로 하는 메디안 노드의 검색 장치. - 제 11 항에 있어서, 상기 검색 모듈은
상기 시작 노드로부터 순차적으로 연결되어 있는 모든 기준 노드가 더 이상 활성화되지 않는 경우 상기 시작 노드와 상기 시작 노드에 순차적으로 연결되어 있는 모든 기준 노드 사이의 경로 가중치를 합하여 상기 시작 노드의 최단 경로 가중치를 계산하는 최단 경로 계산부; 및
상기 임계 하한 경계값을 상기 시작 노드의 최단 경로 가중치로 갱신하는 갱신부를 더 포함하는 것을 특징으로 하는 메디안 노드의 검색 장치. - 제 14 항에 있어서, 상기 시작 노드 설정부는
상기 진행 결정부에서 상기 시작 노드에 대한 메디안 노드의 검색을 중단하는 경우 또는 상기 시작 노드의 최단 경로 가중치를 계산한 경우, 상기 그래프 그룹에서 시작 노드를 변경 설정하는 것을 특징으로 하는 메디안 노드의 검색 장치. - 제 11 항에 있어서, 상기 검색 모듈은
각 수퍼스텝에서 상기 시작 노드와 모든 기준 노드 사이의 경로 가중치의 합 중 최소값을 가지는 전체 최소값을 인접 분산된 메디안 노드 검색 장치로 송신하는 전체 최소값 송신부를 더 포함하는 특징으로 하는 메디안 노드의 검색 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020130165502 | 2013-12-27 | ||
KR20130165502 | 2013-12-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150079374A true KR20150079374A (ko) | 2015-07-08 |
KR101609457B1 KR101609457B1 (ko) | 2016-04-06 |
Family
ID=53791741
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140074347A KR101609457B1 (ko) | 2013-12-27 | 2014-06-18 | 대용량 그래프 데이터베이스에서 하한 경계값에 기초하여 메디안 노드를 검색하는 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101609457B1 (ko) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105515977A (zh) * | 2015-12-21 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 获取网络中传输路径的方法、装置和系统 |
WO2017026999A1 (en) * | 2015-08-07 | 2017-02-16 | Hewlett Packard Enterprise Development Lp | Identifying shortest paths |
WO2017069548A1 (ko) * | 2015-10-23 | 2017-04-27 | 아주대학교산학협력단 | 복잡계 네트워크에서의 집합 관계 분석 시각화 장치 및 그 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100936198B1 (ko) | 2008-03-21 | 2010-01-11 | 인하대학교 산학협력단 | 소셜 네트워크 분석 시스템 |
-
2014
- 2014-06-18 KR KR1020140074347A patent/KR101609457B1/ko active IP Right Grant
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017026999A1 (en) * | 2015-08-07 | 2017-02-16 | Hewlett Packard Enterprise Development Lp | Identifying shortest paths |
WO2017069548A1 (ko) * | 2015-10-23 | 2017-04-27 | 아주대학교산학협력단 | 복잡계 네트워크에서의 집합 관계 분석 시각화 장치 및 그 방법 |
CN105515977A (zh) * | 2015-12-21 | 2016-04-20 | 腾讯科技(深圳)有限公司 | 获取网络中传输路径的方法、装置和系统 |
CN105515977B (zh) * | 2015-12-21 | 2020-05-12 | 腾讯科技(深圳)有限公司 | 获取网络中传输路径的方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
KR101609457B1 (ko) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9521067B2 (en) | System and methods for improved network routing | |
Mohar et al. | Localization of sensor nodes in wireless sensor networks using bat optimization algorithm with enhanced exploration and exploitation characteristics | |
CN103179052B (zh) | 一种基于接近度中心性的虚拟资源分配方法及系统 | |
US9599483B2 (en) | Region guided and change tolerant fast shortest path algorithm and graph preprocessing framework | |
Das et al. | Energy efficient routing protocol for manet based on vague set measurement technique | |
EP2923459A2 (en) | Multi-objective server placement determination | |
Tashtarian et al. | ODT: optimal deadline-based trajectory for mobile sinks in WSN: a decision tree and dynamic programming approach | |
Yilmaz et al. | Shortest hop multipath algorithm for wireless sensor networks | |
Mohamadi et al. | Solving target coverage problem using cover sets in wireless sensor networks based on learning automata | |
Wu et al. | Optimal movement-assisted sensor deployment and its extensions in wireless sensor networks | |
Pan et al. | Diversity Enhanced Ion Motion Optimization for Localization in Wireless Sensor Network. | |
KR101609457B1 (ko) | 대용량 그래프 데이터베이스에서 하한 경계값에 기초하여 메디안 노드를 검색하는 방법 | |
CN110784903A (zh) | 网络数据传输方法、装置、计算机设备和存储介质 | |
CN111178678B (zh) | 基于社团影响力的网络节点重要性评估方法 | |
Gupta et al. | Multi-UAV deployment for NOMA-enabled wireless networks based on IMOGWO algorithm | |
Ebrahim et al. | Privacy-aware load balancing in fog networks: A reinforcement learning approach | |
CN106211189B (zh) | 一种异构多媒体传感器网络部署方法及装置 | |
Stai et al. | Hyperbolic embedding for efficient computation of path centralities and adaptive routing in large-scale complex commodity networks | |
Baidar et al. | A hybrid Harrison Hawk optimization based on differential evolution for the node localization problem in IoT networks | |
Khot et al. | Taylor CMVO: Taylor Competitive Multi-Verse Optimizer for intrusion detection and cellular automata-based secure routing in WSN | |
Thanuja | Multi mobile agent itinerary planning using farthest node first nearest node next (FNFNNN) technique | |
Feng et al. | Recovering information recipients in social media via provenance | |
Gao et al. | Identifying Influential Nodes for Efficient Routing in Opportunistic Networks. | |
KR101591595B1 (ko) | 대용량 그래프 데이터베이스에서 링크를 예측하는 방법 | |
Dao | An Optimal Node Localization in WSN Based on Siege Whale Optimization Algorithm. |
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 | ||
FPAY | Annual fee payment |
Payment date: 20190107 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20200128 Year of fee payment: 5 |