KR20210107328A - A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query - Google Patents

A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query Download PDF

Info

Publication number
KR20210107328A
KR20210107328A KR1020200022155A KR20200022155A KR20210107328A KR 20210107328 A KR20210107328 A KR 20210107328A KR 1020200022155 A KR1020200022155 A KR 1020200022155A KR 20200022155 A KR20200022155 A KR 20200022155A KR 20210107328 A KR20210107328 A KR 20210107328A
Authority
KR
South Korea
Prior art keywords
multidimensional
skyline
optimal path
data
algorithm
Prior art date
Application number
KR1020200022155A
Other languages
Korean (ko)
Other versions
KR102367753B1 (en
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 KR1020200022155A priority Critical patent/KR102367753B1/en
Publication of KR20210107328A publication Critical patent/KR20210107328A/en
Application granted granted Critical
Publication of KR102367753B1 publication Critical patent/KR102367753B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • G06Q10/047Optimisation of routes or paths, e.g. travelling salesman problem
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063114Status monitoring or status determination for a person or group
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063116Schedule adjustment for a person or group
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063118Staff planning in a project environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

A technology disclosed in the present specification provides a top-n skyline multi-dimensional TSP (TS-MDT) algorithm, which is a multidimensional TSP solving technique using a top-n skyline algorithm to guarantee a fast processing speed in path calculation of data including multiple attributes. The technology calculates a TSP candidate path of TSP by using the top-n skyline algorithm before path search to reduce operation time. Thereafter, one optimal path with the minimum costs is finally returned by connecting return candidate paths using a dynamic programming algorithm.

Description

Top-n 스카이라인 질의를 이용한 다차원 속성 기반 최적 경로 탐색 방법{A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query}A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n Skyline Query}

본 명세서에 개시된 기술은 다차원 속성을 고려하여 Top-n 스카이라인 질의(Top-n SKyline Query)를 이용한 다차원 외판원 순회문제(Multi-Dimensional Traveling Salesman Problem)의 해결 방법에 관한 것으로, 구체적으로는 스카이라인의 지배 원칙에 따라 다중 속성의 노드들을 제거함으로써 연산 횟수의 감소를 통한 신속한 연산과 최적 경로를 반환하는 방법에 관한 것이다.The technology disclosed in the present specification relates to a method of solving the Multi-Dimensional Traveling Salesman Problem using Top-n Skyline Query in consideration of multidimensional properties, specifically, Skyline It relates to a method of returning the optimal path and fast operation by reducing the number of operations by removing nodes of multiple properties according to the governing principle of .

최근 사용자에게 위치정보를 제공하는 위치기반 서비스가 대두되고 있다. 위치기반 서비스(Location based service)는 휴대폰, PDA 등과 같은 이동통신망과 IT 기술을 종합적으로 활용한 위치정보 기반의 시스템 및 서비스이다. 지하철이나 버스 노선 안내 서비스의 경우에는, 노선도, 역과 역, 정류장과 정류장 사이의 이동 거리 또는 이동 시간, 탑승하기 위해 기다려야 하는 시간 등 많은 속성이 존재한다. 최적 경로를 구하는 외판원 순회문제(Traveling Salesman Problem, TSP)에 다중 속성을 적용한다면 사용자의 다양한 요구에 맞추어 더 세밀한 서비스를 제공할 수 있다.Recently, location-based services that provide location information to users are emerging. Location based service is a system and service based on location information that comprehensively utilizes mobile communication networks such as mobile phones and PDA's and IT technology. In the case of a subway or bus route guide service, there are many attributes, such as a route map, a station and a station, a travel distance or travel time between stops, and a time to wait to get on. If multiple attributes are applied to the Traveling Salesman Problem (TSP) to find the optimal route, more detailed services can be provided to meet the various needs of users.

최적 경로 탐색에서 다중 속성을 고려해야 하는 이유는 다음과 같다. 입구와 출구가 같은 놀이동산에서 사용자는 각 놀이기구 사이의 거리, 대기시간 및 이용시간을 알 수 있다. 이용시간은 언제나 변함없는 불변형 데이터지만 거리와 대기시간은 가변형 데이터로 현 위치와 대기 인원 수에 따라 변하게 된다. 따라서 두 놀이기구 사이의 거리만을 평가하는 경우에, TSP는 가장 짧은 경로를 반환하지만 계속해서 변경되는 대기시간 때문에 서비스를 이용하는 사용자의 관점에서 최적의 경로로 판단하기에는 적합하지 않다.The reasons for considering multiple attributes in optimal path search are as follows. In an amusement park with the same entrance and exit, the user can know the distance between each ride, waiting time, and usage time. The usage time is always unchanging data, but the distance and waiting time are variable data and change according to the current location and the number of people waiting. Therefore, when only the distance between two rides is evaluated, the TSP returns the shortest route, but it is not suitable for determining the optimal route from the perspective of the user using the service because of the continuously changing waiting time.

위의 예와 같이, TSP에서 사용되는 가변형 데이터는 하나 이상일 수 있으며, 모든 속성에 대한 연산이 진행되어야 더 세밀한 최단 경로를 제공할 수 있다. 즉, 사용자의 요구를 만족하는 서비스 제공을 위해서는 다중 속성에 대한 평가가 함께 반영되어야 한다.As in the above example, there may be more than one variable data used in the TSP, and a more detailed shortest path can be provided only when the operation on all attributes is performed. That is, in order to provide a service that satisfies the user's needs, evaluation of multiple attributes must be reflected together.

한 가지 속성을 사용할 경우, 거리가 가장 짧은 경로나 가장 시간이 적게 걸리는 경로 중 하나만 선택할 수 있다. 그러나 다중 속성을 사용하면 거리가 짧으면서 동시에 비교적 시간도 적게 걸리는 경로를 반환할 수 있다.If you use one attribute, you can only choose the path with the shortest distance or the path with the least time. However, using multiple attributes it is possible to return routes that are short distances and at the same time take relatively little time.

예를 들어, 시간과 거리 비용이 각각 40, 70인 경로 A와, 50, 50인 경로 B, 그리고 60, 50인 경로 C가 있다고 가정하면, 만약 사용자가 짧은 거리만을 선호한다면 경로 B, C를 선택하고, 적게 걸리는 시간만을 선호한다면 경로 A가 최단 경로로 서비스된다. 그러나 두 속성을 모두 고려하면 경로 B가 최적 경로로 서비스된다.For example, suppose there are paths A with time and distance costs of 40 and 70, respectively, path B with 50 and 50, and path C with 60 and 50. Path A is served as the shortest path if it is selected and only takes less time. However, considering both attributes, path B is served as the optimal path.

외판원 순회문제(TSP)는 탐색 대상의 수가 증가할수록 비교 횟수도 기하급수적으로 증가하기 때문에 처리 시간이 오래 걸리는 단점이 있다. 다중 속성 데이터에서는 각 데이터의 속성별로 비교해야 하므로 비교 시간 및 횟수는 더욱 증가한다.The Travel Salesman Travel Problem (TSP) has a disadvantage in that it takes a long time to process because the number of comparisons increases exponentially as the number of search targets increases. In multi-attribute data, the comparison time and the number of times are further increased because each attribute of each data has to be compared.

따라서, 이러한 비교 속성이 증가함에 따라 기하급수적으로 증가하는 연산 횟수를 줄여 빠른 처리 속도를 보장할 수 있는, 1차원의 속성을 다루는 외판원 순회문제(TSP)를 다차원으로 확장한 최단 경로 탐색기법이 요구되고 있는 실정이다.Therefore, as these comparative properties increase, the shortest path search method that multi-dimensionally expands the traveling salesman traversal problem (TSP) dealing with one-dimensional properties is required, which can reduce the number of operations that increase exponentially and guarantee fast processing speed. It is becoming.

본 명세서에 개시된 기술은 개선된 다차원 속성 기반의 최적 경로를 탐색하는 방법을 제공하는 것을 목적으로 하며, 본 명세서에 개시된 기술의 기술적 사상에 따른 다차원 속성 기반의 최적 경로를 탐색하는 방법이 이루고자 하는 기술적 과제는 이상에서 언급한 문제점을 해결하기 위한 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제는 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technology disclosed in the present specification aims to provide a method for searching an improved multi-dimensional attribute-based optimal path, and the method for searching an optimal multi-dimensional attribute-based optimal path according to the technical concept of the technology disclosed herein The task is not limited to the task for solving the above-mentioned problems, and another task not mentioned will be clearly understood by those skilled in the art from the following description.

본 명세서에 개시된 기술의 일 실시예에 따른 다차원 속성 기반의 최적 경로를 탐색하는 방법은, 프로세서가 복수의 다차원 속성 데이터를 처리하여 스카이라인 후보군을 반환하는 단계 및 프로세서가 스카이라인 후보군을 이용하여 다차원 속성을 고려한 최적 경로를 연산하는 단계를 포함하도록 구성된다.A method of searching for an optimal path based on multi-dimensional attributes according to an embodiment of the technology disclosed herein includes the steps of processing, by a processor, a plurality of multi-dimensional attribute data to return a skyline candidate group, and the processor using the multi-dimensional skyline candidate group and calculating an optimal path in consideration of the attribute.

또한, 상기 스카이라인 후보군을 반환하는 단계는, 스카이라인 후보군을 초기화하는 단계 및 K-도미넌트(K-dominant) 알고리즘을 이용하여 복수의 다차원 속성 데이터 중 지배되는 데이터를 삭제하는 단계를 포함하며, 상기 삭제하는 단계는 현재 속성 수가 차원 수와 동일하거나 작을 때까지, 또는 현재 다차원 속성 데이터의 수가 한계 객체 수와 동일하거나 작을 때까지 반복되는 것을 특징으로 한다.In addition, returning the skyline candidate group includes initializing the skyline candidate group and deleting dominant data from among a plurality of multidimensional attribute data using a K-dominant algorithm, The step of deleting is characterized in that it is repeated until the number of current attributes is equal to or less than the number of dimensions, or until the number of current multidimensional attribute data is equal to or less than the number of limit objects.

더불어, 상기 복수의 다차원 속성 데이터 간의 연결 관계를 나타내는 2차원 배열을 더 포함하고, 상기 복수의 다차원 속성 데이터 중 지배되는 데이터를 삭제하는 단계는, 상기 2차원 배열에서 상기 지배되는 데이터의 위치의 값을 참에서 거짓으로 변경하는 것을 특징으로 한다.In addition, the method further includes a two-dimensional array indicating a connection relationship between the plurality of multidimensional attribute data, wherein the deleting of dominant data from among the plurality of multidimensional attribute data includes a value of a position of the dominant data in the two-dimensional array is changed from true to false.

그리고, 상기 스카이라인 후보군을 반환하는 단계는 상기 반복이 종료된 후의 상기 2차원 배열을 반환하는 것을 특징으로 한다.In addition, the returning the skyline candidate group is characterized in that the 2D array after the iteration is finished is returned.

상기 최적 경로를 연산하는 단계는, 현재 위치 및 이미 방문한 객체들에 대응하는 2진 비트 마스크를 입력 받는 단계, 상기 현재 위치에서 상기 방문한 방문한 객체들의 최소 비용 값이 저장된 캐시 배열의 값으로 리콜 확인 변수를 초기화하는 단계, 상기 리콜 확인 변수가 0인 경우 최대 비용 값을 저장하고, 상기 리콜 확인 변수가 0이 아닌 경우 및 상기 스카이라인 후보군에 해당되는 객체인 경우, 상기 현재 위치의 객체의 비용에 다음 함수 호출 시 반환된 값을 더한 값과 현재의 상기 리콜 확인 변수를 비교하여 더 작은 값을 상기 리콜 확인 변수에 저장하는 단계, 및 상기 캐시 배열에 상기 리콜 확인 변수를 저장하고, 상기 리콜 확인 변수를 반환하는 단계를 포함하는 것을 특징으로 한다.The step of calculating the optimal path includes receiving a binary bit mask corresponding to a current location and already visited objects, and a recall confirmation variable as a value of a cache array in which the minimum cost value of the visited objects at the current location is stored. initializing, storing the maximum cost value when the recall confirmation variable is 0 Comparing the current recall confirmation variable with a value obtained by adding a value returned when a function is called and storing a smaller value in the recall confirmation variable, and storing the recall confirmation variable in the cache array, and the recall confirmation variable It characterized in that it comprises the step of returning.

본 명세서에 개시된 기술의 다른 실시예에 따른 매체에 저장된 컴퓨터 프로그램은, 상기 다차원 속성 기반의 최적 경로를 탐색하는 방법들 중 하나에 따른 방법을 프로세서에 의하여 처리하는 것을 특징으로 한다.The computer program stored in the medium according to another embodiment of the technology disclosed in the present specification is characterized in that a method according to one of the methods for searching the optimal path based on the multidimensional attribute is processed by the processor.

본 명세서에 개시된 기술의 일 실시예에 따른 다차원 속성 기반의 최적 경로를 탐색하는 방법에 의하면, 사용자가 요구하는 다양한 속성을 모두 고려하는 최적의 경로를 반환하면서도, 경로 탐색 과정의 처리 데이터 수를 감소시킴으로써 처리 속도 및 처리 비용을 효율적으로 감소시킬 수 있는 효과가 있다.According to a method for searching an optimal path based on multi-dimensional attributes according to an embodiment of the technology disclosed in this specification, an optimal path considering all various attributes required by a user is returned while reducing the number of data processed in the path search process This has the effect of effectively reducing the processing speed and processing cost.

다만, 본 명세서에 개시된 기술의 일 실시예에 따른 다차원 속성 기반의 최적 경로를 탐색하는 방법이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.However, effects that can be achieved by the method for searching an optimal path based on multidimensional properties according to an embodiment of the technology disclosed in the present specification are not limited to those mentioned above, and other effects not mentioned are described below. It will be clearly understood by those skilled in the art.

본 명세서에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 명세서에 개시된 기술의 외판원 순회문제에 관련한 데이터의 예시를 나타낸다.
도 2는 본 명세서에 개시된 기술의 스카이라인 질의에 관련한 데이터의 예시를 나타낸다.
도 3은 본 명세서에 개시된 기술의 스카이라인 질의에 관련한 데이터의 예시를 나타낸다.
도 4는 본 명세서에 개시된 기술의 동적 계획법의 예시를 나타낸다.
도 5는 본 명세서에 개시된 기술의 일 실시예를 나타낸다.
도 6은 본 명세서에 개시된 기술의 최적 경로 탐색 방법에서 사용되는 기호 및 정의를 설명한 표이다.
도 7은 본 명세서에 개시된 기술의 스카이라인 질의에 사용되는 2차원 배열의 예시를 나타낸다.
도 8은 본 명세서에 개시된 기술의 K-도미넌트 알고리즘의 일 예시를 나타낸 것이다.
도 9는 본 명세서에 개시된 기술의 Top-n 알고리즘의 일 예시를 나타낸 것이다.
도 10은 본 명세서에 개시된 기술의 동적 계획법 알고리즘의 일 예시를 나타낸 것이다.
도 11은 본 명세서에 개시된 기술의 연산 시간을 비교한 그래프를 나타낸다.
도 12는 본 명세서에 개시된 기술의 함수 호출 횟수를 비교한 그래프를 나타낸다.
In order to more fully understand the drawings cited herein, a brief description of each drawing is provided.
1 shows an example of data relating to the traveling salesman traversal problem of the technology disclosed herein.
2 shows an example of data related to a skyline query of the technology disclosed herein.
3 shows an example of data related to a skyline query of the techniques disclosed herein.
4 shows an example of dynamic programming of the techniques disclosed herein.
5 illustrates one embodiment of the technology disclosed herein.
6 is a table explaining symbols and definitions used in the optimal path search method of the technology disclosed herein.
7 shows an example of a two-dimensional array used in a skyline query of the techniques disclosed herein.
8 shows an example of a K-dominant algorithm of the techniques disclosed herein.
9 shows an example of a Top-n algorithm of the technology disclosed herein.
10 illustrates an example of a dynamic programming algorithm of the techniques disclosed herein.
11 shows a graph comparing computation times of the techniques disclosed herein.
12 shows a graph comparing the number of function calls of the techniques disclosed herein.

본 명세서에 개시된 기술은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 명세서에 개시된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 명세서에 개시된 기술은 본 명세서에 개시된 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Since the technology disclosed in this specification can have various changes and can have various embodiments, specific embodiments are illustrated in the drawings, and this will be described in detail through the detailed description. However, this is not intended to limit the technology disclosed herein to specific embodiments, and it is understood that the technology disclosed herein includes all modifications, equivalents and substitutions included in the spirit and scope of the technology disclosed herein. should be

본 명세서에 개시된 기술을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.In describing the technology disclosed in the present specification, if it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the technology disclosed herein, the detailed description thereof will be omitted. In addition, numbers (eg, first, second, etc.) used in the description process of the present specification are only identification symbols for distinguishing one component from other components.

또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "결합된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결 또는 결합될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결 또는 결합될 수도 있다고 이해되어야 할 것이다.In addition, in this specification, when a component is referred to as "connected" or "coupled" to another component, the component may be directly connected or coupled to the other component, but the opposite is particularly true. Unless there is a description, it should be understood that other elements may be interposed or connected or combined therebetween.

또한, 본 명세서에서 '~부'로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.In addition, in the present specification, two or more components may be combined into one component, or one component may be divided into two or more for each more subdivided function. In addition, each of the components to be described below may additionally perform some or all of the functions of other components in addition to the main functions that each component is responsible for, and some of the main functions of each of the components are different It goes without saying that it may be performed exclusively by the component.

다양한 실시예에서 사용된 "제 1", "제 2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 해당 구성요소들을 한정하지 않는다. 예를 들면, 본 명세서에 개시된 기술의 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.Expressions such as "first", "second", "first", or "second" used in various embodiments may modify various elements regardless of order and/or importance, do not limit For example, without departing from the scope of the technology disclosed herein, a first component may be referred to as a second component, and similarly, a second component may also be renamed to a first component.

이하, 바람직한 실시예에 따른 다차원 속성 기반의 최적 경로를 탐색하는 방법을 상세히 설명하도록 한다.Hereinafter, a method for searching an optimal path based on multidimensional attributes according to a preferred embodiment will be described in detail.

본 명세서에 개시된 기술에 의하면, 이전의 1차원 속성을 다루는 TSP를 다차원 속성을 이용한 최단 경로 탐색 기법으로 확장한 것을 특징으로 한다. 또한, TSP는 데이터 수에 따라 처리 속도가 기하급수적으로 증가하여, 실생활에 적용하기에 어려운 단점이 있었다. 본 발명에서는, 그러한 단점을 효과적으로 해결하여 사용자의 다양한 요구를 수용할 수 있는 다차원 속성을 적용하면서도, 빠른 처리 속도 및 적은 함수 호출 횟수를 갖는 최적 경로 탐색 알고리즘을 제안한다.According to the technology disclosed in the present specification, it is characterized in that the previous TSP dealing with one-dimensional properties is extended to a shortest path search technique using multi-dimensional properties. In addition, the TSP has a disadvantage in that it is difficult to apply in real life because the processing speed increases exponentially according to the number of data. The present invention proposes an optimal path search algorithm having a fast processing speed and a small number of function calls while applying multidimensional properties that can accommodate various user needs by effectively solving such disadvantages.

외판원 순회문제traveling salesman problem

최적 경로 문제에 사용되는 외판원 순회문제(TSP)는 모든 데이터가 이어져 있다는 가정하에 그 데이터들을 한 번씩만 방문한 후 다시 출발점으로 되돌아오는 최단 경로를 반환한다. TSP는 차량의 경로 문제, 일정 계획, 스케줄링이나 택배, 음식 배달 등에 적용되는 최적 경로 탐색 문제에 적용될 수 있다.The traveling salesman traversal problem (TSP) used in the optimal path problem returns the shortest path that returns to the starting point after visiting the data only once, assuming that all data are connected. TSP can be applied to the optimal route search problem applied to the vehicle route problem, scheduling, scheduling, parcel delivery, food delivery, and the like.

TSP는 사용되는 데이터가 많아질수록 기하급수적으로 증가하는 비교 횟수 때문에, 최적해보다는 근사해를 구하는 기법으로 주로 연구되었으며, 유전자 알고리즘이 근사해 기법의 대표적인 예이다.TSP has been mainly studied as a technique for finding an approximate solution rather than an optimal solution because the number of comparisons increases exponentially as the amount of data used increases, and the genetic algorithm is a representative example of the approximate solution technique.

기존의 연구들은 1차원 속성들을 대상으로 TSP를 적용하지만, 본 명세서에 개시된 기술은 사용자들의 다양한 요구를 반영하기 위하여 다차원 속성을 대상으로 TSP 알고리즘을 적용하여 최단 경로를 산출한다.Existing studies apply TSP to one-dimensional properties, but the technology disclosed herein calculates the shortest path by applying the TSP algorithm to multi-dimensional properties in order to reflect the various needs of users.

도 1은 각 노드(Node) 사이의 거리를 나타내고 있으며, 이는 TSP에서 사용하는 대표적인 예시이다. 노드 중 출발점을 a로 가정하면, TSP의 결과값은 출발점으로 되돌아오는 간선의 비용이 62로 가장 적은 {a, d, b, c, a}나 {a, c, b, d, a}의 두 가지 경로 중 하나를 반환한다. 이처럼 기존의 TSP는 1차원 속성을 대상으로 하므로 각 노드가 포함할 수 있는 소요 시간, 이동 거리, 선호도 등 다양한 속성을 동시에 평가할 수 없다.1 shows the distance between each node, which is a representative example used in the TSP. Assuming that the starting point among the nodes is a, the result of TSP is that of {a, d, b, c, a} or {a, c, b, d, a} where the cost of the edge returning to the starting point is 62, which is the lowest. Returns one of two paths. As such, since the existing TSP targets one-dimensional properties, it is impossible to simultaneously evaluate various properties such as time required, travel distance, and preference that each node can include.

Top-n 스카이라인 질의Top-n Skyline Query

스카이라인 질의(SKyline Query)는 2차원 공간에서 서로 지배되지 않는 객체를 탐색하는 기법으로, 전체 데이터에서 서로 지배되지 않는 객체들의 집합을 스카이라인이라 한다. 2차원 이상의 속성에서 어떤 객체 p가 다른 객체 q보다 모든 차원 또는 적어도 한 차원 이상에서 작은 값을 가질 때, p는 q를 지배한다고 표현하며 작은 값을 갖는 p가 스카이라인 객체에 포함된다.Skyline Query is a technique for searching for objects that do not dominate each other in a two-dimensional space, and a set of objects that do not dominate each other in the entire data is called a skyline. When an object p has a smaller value in all dimensions or at least one dimension or more than another object q in a two-dimensional or higher attribute, p is said to dominate q, and p having a small value is included in the skyline object.

도 2는 스카이라인 질의의 결과를 나타낸다. x축은 비용, y축은 거리를 나타내고 그래프에 있는 점들은 호텔이라고 가정하자. 호텔 d는 호텔 b보다 거리가 짧고 비용도 더 저렴하다. 이 때, 호텔 b는 호텔 d에 지배된다고 표현한다. 따라서, 하나의 객체를 기준으로 1 사분면에 있는 점들은 각 속성에 대해 기준점 객체의 속성에 의해 지배되며 탐색 대상에 포함하지 않는다.2 shows the results of a skyline query. Assume that the x-axis represents cost, the y-axis represents distance, and the points on the graph are hotels. Hotel d is shorter and cheaper than hotel b. In this case, it is expressed that hotel b is dominated by hotel d. Accordingly, points in the first quadrant with respect to one object are dominated by the properties of the reference point object for each property and are not included in the search target.

호텔 a와 d에서 비용(Cost)은 a가 저렴하지만, 거리(Distance)는 d가 가까우므로 서로를 지배하지도 지배되지도 않는 관계가 된다. 이처럼 두 속성에서 완전한 지배 관계가 아닌 경우에는 스카이라인 객체에 포함하며 의사 결정 기준에 따라 사용자가 판단하도록 한다.In hotels a and d, cost a is cheaper, but distance d is close, so there is a relationship that neither dominates nor dominates each other. In this way, if the two properties do not have a complete dominance relationship, they are included in the skyline object and the user decides according to the decision criteria.

Top-n 스카이라인 질의는 다차원 속성을 갖는 데이터에서 스카이라인을 구하고 의미 있는 n개의 데이터를 반환하는 질의이다. 이 때, 사용자의 선호도는 속성을 비교 및 판단하는 기준으로 사용되며, 최종 결과는 n개의 데이터가 된다. 여기서 n개의 데이터를 특정하는 대표적인 방법으로는 K개의 차원에서 다른 차원들에 지배되지 않는 객체들을 반환하는 K-도미넌트(K-dominant) 스카이라인이 있다. 처리 기법에는 One-scan, Two-scan, Sorted Retrieval 알고리즘 등이 있고, 그 중 Two-scan 기법이 가장 우수한 처리 속도를 보인다. Top-n 스카이라인 질의는 속성 K의 값을 1부터 증가시키면서 n개의 데이터가 반환될 때까지 K-도미넌트 함수를 호출하게 된다.The top-n skyline query is a query that retrieves a skyline from data with multidimensional properties and returns n meaningful data. In this case, the user's preference is used as a criterion for comparing and judging attributes, and the final result is n pieces of data. Here, as a representative method of specifying n pieces of data, there is a K-dominant skyline that returns objects that are not dominated by other dimensions in K dimensions. Processing methods include One-scan, Two-scan, and Sorted Retrieval algorithms. Among them, Two-scan method shows the best processing speed. Top-n skyline query increases the value of attribute K from 1 and calls the K-dominant function until n pieces of data are returned.

도 3은 5개의 속성(s1-s5)를 갖는 객체(p1-p5)를 나타내는 표이며, Top-n 스카이라인과 K-도미넌트 알고리즘에 대한 예는 다음과 같다.3 is a table showing an object (p1-p5) having five attributes (s1-s5). Examples of the Top-n skyline and the K-dominant algorithm are as follows.

K=1일 때, Top-2를 구하기 위하여 1차원 속성으로 비교하면 모든 객체가 서로에게 지배되지 않는다. 예를 들어 p1과 p2를 비교하면 p1은 s5에서 p2에 의해 지배되지만, s2에서는 p2를 지배하여 결론적으로는 서로 지배되지 않는다. 이를 적용하면 {p1, p2, p3, p4, p5}가 스카이라인 후보가 되므로 Top-2의 결과를 2개 객체만 한정할 수 없다. 5개의 객체를 구한 후, 또 한 번 사용자의 선호도에 따라 스카이라인 질의를 수행하는 선형 알고리즘을 사용한다면 상위 2개의 후보군을 구할 수 있다. 그러나, 이는 어느 시점에서 알고리즘을 사용해야 하는지 명확하지 않고, 연산 시간을 줄인다는 본 발명의 취지와는 맞지 않는다.When K = 1, if we compare with one-dimensional properties to find Top-2, all objects are not dominated by each other. For example, comparing p1 and p2, p1 dominates p2 in s5, but dominates p2 in s2, and consequently, they do not dominate each other. If this is applied, {p1, p2, p3, p4, p5} becomes a skyline candidate, so the result of Top-2 cannot be limited to only two objects. After finding 5 objects, if a linear algorithm that performs a skyline query according to the user's preference is used again, the top two candidates can be obtained. However, it is not clear at which point the algorithm should be used, and this is not in line with the purpose of the present invention to reduce the computation time.

속성 K=2의 경우에는, p3가 속성 {s2, s3, s4, s5}에서 p1을 지배하지만, p3는 p1의 s1 차원에서만 지배되므로 많은 속성이 지배되는 p1은 p3에 의해 지배된다고 표현할 수 있다.In the case of attribute K=2, p3 dominates p1 in the attributes {s2, s3, s4, s5}, but p3 dominates only in the s1 dimension of p1, so it can be expressed that p1, which is dominated by many attributes, is dominated by p3 .

같은 방법으로 p2, p5 데이터 역시 p3에 의해 지배되기 때문에 스카이라인 후보군에서 제외되므로, {p3, p4}를 반환한다. 본 발명에서 Top-n 스카이라인 질의는 TSP를 위해 각 데이터를 방문할 때 경로에 포함되는 데이터의 수를 줄이기 위하여 사용된다.In the same way, since p2 and p5 data are also dominated by p3, they are excluded from the skyline candidate group, so {p3, p4} is returned. In the present invention, the Top-n skyline query is used to reduce the number of data included in the path when each data is visited for TSP.

동적 계획법dynamic programming

동적 계획법은 도 4처럼 하나의 문제를 여러 개의 작은 문제로 나누어 해결하는 기법이다. 분할정복 알고리즘과의 차이점은 문제를 계산한 후 결과값을 재활용하는 것이다. 따라서, 같은 연산을 여러 번 할 필요 없이 저장된 결과를 불러오는 것으로 문제를 해결할 수 있다.Dynamic programming is a technique for solving one problem by dividing it into several small problems as shown in FIG. 4 . The difference from the divide-and-conquer algorithm is that the result is recycled after calculating the problem. Therefore, the problem can be solved by retrieving the stored result without having to perform the same operation multiple times.

본 명세서에 개시된 발명에서 동적 계획법은 비트 마스크(Bit Mask)를 이용한 경로 탐색 알고리즘으로 사용한다. 비트 마스크는 이진수를 자료구조로 사용하며, 빠른 수행시간과 코드의 간결화와 같은 장점을 가진다. 도 4의 동적 계획법에서는 6개의 데이터 a, b, c, d, e, f에 대한 비트 마스크를 생성한다. 방문 여부를 비트 마스크에 값으로 표현하고, 이를 배열의 색인으로 사용하여 결과값을 저장한다. 예를 들어, a를 방문했다고 가정하면 000001(2)로 표현되고, 배열 색인 1번에 a의 결과값이 저장된다.In the invention disclosed herein, the dynamic programming method is used as a path search algorithm using a bit mask. The bit mask uses a binary number as a data structure and has advantages such as fast execution time and code simplification. In the dynamic programming method of FIG. 4, bit masks are generated for six pieces of data a, b, c, d, e, and f. Whether to visit is expressed as a value in the bit mask, and the result is stored using it as an index of the array. For example, assuming that a has been visited, it is expressed as 000001 (2) , and the result value of a is stored in array index 1.

다차원 속성 기반의 최적 경로 탐색 기법Multi-dimensional property-based optimal path search technique

본 발명은, 도 5에서 나타난 바와 같이 다수의 단계로 수행되며, 먼저 사용자가 요구하는 속성(차원)의 수, 객체 수를 입력받고, K-도미넌트 알고리즘을 수행하여 스카이라인 후보군을 반환하는 단계를 거친다. 그 후, 해당 반환된 스카이라인 후보군을 이용하여 일정 수준 감소된 수를 갖는 연결된 객체를 기반으로 동적 계획법 알고리즘이 수행되며, 최종적으로 연산된 다차원 기반의 최적 경로를 반환한다.The present invention is performed in a number of steps as shown in FIG. 5, first receiving the number of attributes (dimensions) and the number of objects requested by the user, and performing the K-dominant algorithm to return the skyline candidate group. rough Thereafter, the dynamic programming algorithm is performed based on the connected objects having a reduced number by a certain level using the returned skyline candidate group, and finally the calculated multidimensional optimal path is returned.

아래에서는, 제안 기법인 Top-n 스카이라인을 이용한 다차원 외판원 순회문제(Top-n SKyline Multi-dimensional TSP, TS-MDP)에 적용되는 K-도미넌트, Top-n 스카이라인 질의 및 동적계획법 알고리즘의 구현 과정을 상세히 설명한다.Below, the implementation of K-dominant, Top-n Skyline query and dynamic programming algorithm applied to the Top-n Skyline Multi-dimensional TSP (TS-MDP) using the Top-n Skyline, which is the proposed technique. The process will be described in detail.

① 탐색 경로 축소① Reduce search path

본 발명에서는 다차원 속성을 갖는 데이터에 대하여 탐색 대상을 축소한 후, 최적 경로 탐색을 위한 세 개의 새로운 개선된 알고리즘을 제안한다. 해당 알고리즘에서 사용하는 기호와 정의는 도 6과 같다.In the present invention, after reducing a search target for data having multidimensional properties, three new and improved algorithms for optimal path search are proposed. Symbols and definitions used in the algorithm are shown in FIG. 6 .

최적 경로를 탐색하는 과정에서 임의의 객체 a와 객체 b가 연결될 때 이를 이어진다고 표현하며, 연결된 경로를 통해 두 객체 (또는 장소) 사이를 이동하면서 최적 경로를 탐색한다. 이동이란 최단 경로를 찾기 위한 연산이 하나의 객체에서 다른 객체로 넘어가는 것을 의미한다.When an arbitrary object a and object b are connected in the process of searching for the optimal path, it is expressed as connecting, and the optimal path is searched while moving between the two objects (or places) through the connected path. Moving means that the operation to find the shortest path passes from one object to another.

도 7은 객체들의 연결 상태를 표현한 2차원 배열 R[][]을 나타낸다. 배열에서 1은 해당 행과 열의 두 객체가 이어진 것을 나타내며, 0은 연결되지 않은 것이다. 도 7에서 (a)의 모든 객체는 자기 자신을 제외한 다른 객체와 연결된 것을 나타낸다. 객체가 서로 연결되지 않으면 동적 계획 알고리즘의 연산 과정에서 해당 객체에 대한 함수 호출은 발생하지 않는다.7 shows a two-dimensional array R[][] representing the connection state of objects. In an array, 1 indicates that the two objects in that row and column are connected, and 0 indicates that they are not connected. In FIG. 7 , all objects in (a) indicate that they are connected to other objects except themselves. If the objects are not connected to each other, no function calls are made to the object during the operation of the dynamic planning algorithm.

Top-n 스카이라인 질의는 K-도미넌트 알고리즘을 이용하여 객체들의 다중 속성을 평가하고, 객체들의 연결관계를 도 7의 (a)에서 (b)로 변환한다. 도 7의 (a)에서 현재 위치가 a라고 할 때, a에서 갈 수 있는 후보 경로 4개 (b, c, d, e)를 도 7의 (b)와 같이 스카이라인 질의를 통하여 b와 e로 감소시킨 후, 다시 R[][] 배열에 저장한다.The Top-n Skyline query evaluates multiple properties of objects using the K-dominant algorithm, and converts the connection relationships between objects from (a) to (b) of FIG. 7 . When the current location is a in (a) of FIG. 7, four candidate routes (b, c, d, e) that can go from a are searched for b and e through a skyline query as shown in (b) of FIG. 7 . After reducing it to R[][], it is stored again in the R[][] array.

후보 경로에 대한 축소 연산이 필요한 이유는 다음과 같다. 기존에는 최적 경로를 탐색하기 위해서 4개의 노드를 모두 방문해야 하지만, 본 발명의 제안 기술에서는 다중 속성의 평가를 통해 방문 대상을 두 개로 줄임으로써 연산 횟수를 감소시킨다. 총 객체의 개수만큼 반복하면 모든 행의 변환이 종료되며, 새로 구성된 R[][] 배열을 이용하여 동적 계획법 알고리즘을 실행한다. 개선된 알고리즘을 적용한 최적 경로 탐색 과정은 아래에서 더욱 상세히 설명된다.The reason for the reduction operation on the candidate path is as follows. Conventionally, all four nodes must be visited in order to search for an optimal path, but in the proposed technique of the present invention, the number of operations is reduced by reducing the number of visits to two through evaluation of multiple attributes. When iterating as many as the total number of objects, transformation of all rows is finished, and the dynamic programming algorithm is executed using the newly constructed R[][] array. The optimal path search process applying the improved algorithm will be described in more detail below.

② 스카이라인 기반의 TSP② Skyline-based TSP

다차원의 데이터 중 속성에 대한 평가를 통해 경로에 포함할 대상을 선택하기 위해 일차적으로 K-도미넌트 알고리즘을 적용한다.The K-dominant algorithm is primarily applied to select objects to be included in the path through the evaluation of attributes among multidimensional data.

도 8의 K-도미넌트 알고리즘은 각 객체사이의 지배 관계를 평가하기 위한 속성 개수 k를 입력받아 실행되며, 다중 속성 객체인 p와 p'에 대하여 다음의 수식을 기준으로 지배 여부를 판단한다.The K-dominant algorithm of FIG. 8 is executed by receiving the number of attributes k for evaluating the dominance relationship between each object, and determines whether or not to dominate the multi-attribute objects p and p' based on the following equation.

Figure pat00001
(D는 Dataset) … (1)
Figure pat00001
(D is Dataset) … (One)

알고리즘의 1행에서는 스카이라인 후보들의 집합인 T를 전체 객체로 초기화시킨다. 이후에는 객체들의 속성을 서로 비교하여, 지배되는 객체를 T에서 제거한다(2 내지 11행). 예를 들어, p가 p'에게 지배된다면 p를 T에서 제거하고(8행) 반대의 경우에는 p'를 제거한다.In line 1 of the algorithm, T, a set of skyline candidates, is initialized to the entire object. After that, the properties of the objects are compared with each other, and the dominant object is removed from T (lines 2 to 11). For example, if p is dominated by p', remove p from T (line 8) and vice versa.

for 문에서 방문 여부를 표시하는 check[] 배열을 통해 이미 들렀던 객체를 확인하고, 방문한 객체를 제외한 후에 계산한다(3 내지 7행). 마지막으로, Top-n의 질의를 위해 서로 지배되지 않는 객체들의 집합인 T를 반환한다. 예를 들어, 지배 관계를 판단하기 위한 속성을 하나만 지정한다면 k = 1이 되며, 하나의 속성에 대해 각 객체의 지배 관계를 판단하기는 어렵다. 객체 A와 B의 두 속성이 p1 = {3, 4}, p2 = {5, 2}의 값을 갖는다면, A는 p1에서 B를 지배하지만 B는 p2에서 2의 값으로 A를 지배하게 되므로, 두 객체는 모두 T로 반환된다.Objects that have already been visited are checked through the check[] array that indicates whether the for statement has been visited, and calculated after excluding the visited objects (lines 3 to 7). Finally, we return T, which is a set of objects that do not dominate each other for Top-n queries. For example, if only one attribute for determining the dominance relationship is designated, k = 1, and it is difficult to determine the dominance relationship of each object with respect to one attribute. If two properties of objects A and B have the values p1 = {3, 4}, p2 = {5, 2}, then A dominates B at p1, but B dominates A at p2 with a value of 2. , both objects are returned as T.

도 9는 Top-n 알고리즘을 상세히 나타낸 것이다. Top-n 알고리즘은 각 조건문에서 수행되는 내용이 같으므로 하나의 코드 블록으로 통합할 수 있으나, 명료한 설명을 위하여 네 개의 조건을 나누어 도 9와 같이 표현하였다. 또한, 전체 객체 수인 N과의 혼동을 방지하고자 Top-n의 n을 limit로 표현하였으며, 이는 전체 객체 수(N)의 절반을 의미한다.9 shows the details of the Top-n algorithm. The Top-n algorithm can be integrated into one code block because the contents performed in each conditional statement are the same, but for clarity, four conditions are divided and expressed as shown in FIG. 9 . In addition, in order to prevent confusion with N, which is the total number of objects, n of Top-n is expressed as a limit, which means half of the total number of objects (N).

Top-n 스카이라인 알고리즘은 k를 1부터 하나씩 늘려가면서 K-도미넌트 알고리즘을 호출하여 기준치인 limit에 근접한, 또는 일치하는 개수가 반환될 때까지 반복한다. 알고리즘을 통하여 반환된 객체 집합 T는 현재 위치인 s에서 갈 수 있는 후보 객체에 해당된다. 반환되지 않은 나머지 객체들은 특정 속성에서 다른 객체에 의해 지배되어 반환되지 않는 것이므로, 경로 탐색 과정에서 제외된다. 연결 상태는 2차원 배열 R의 R[s]행에 저장됨으로써 현재 위치인 s에서 연결된 객체를 나타낸다. 도 9의 알고리즘에서는 R[s] = T로 해당 의미를 표현하였다.The Top-n Skyline algorithm calls the K-dominant algorithm while increasing k by one from 1 and repeats until a number close to or matching the reference limit is returned. The object set T returned through the algorithm corresponds to a candidate object that can be reached from the current position s. The remaining objects that are not returned are not returned because they are dominated by other objects in a specific property, so they are excluded from the path search process. The connection state is stored in the R[s] row of the two-dimensional array R to indicate the connected object at the current position s. In the algorithm of FIG. 9, the corresponding meaning is expressed as R[s] = T.

Top-n 알고리즘은 지배 속성의 개수를 k = 1에서 하나씩 증가시켜가면서 Top-n에서 요구되는 limit에 가까운 수를 반환할 때까지 함수 Kdo(k)를 호출한다. 따라서, 처음에는 지배 관계를 판단하기 위한 속성을 하나만 지정하여 k를 1로 초기화한 후 지배 속성을 증가시키면서 속성 수만큼 루프를 실행한다(3 내지 19행). 4행에서 K-도미넌트 알고리즘을 호출하여 객체 집합 T를 반환받고, T에 속해있는 객체의 수를 t에 저장한다(5행).The Top-n algorithm calls the function Kdo(k) until it returns a number close to the limit required by Top-n while increasing the number of dominant properties by one at k = 1. Therefore, initially k is initialized to 1 by designating only one attribute for determining the dominant relationship, and then a loop is executed as many as the number of attributes while increasing the dominant attribute (lines 3 to 19). In line 4, the K-dominant algorithm is called to return the object set T, and the number of objects belonging to T is stored in t (line 5).

변수 t는 T에 포함된 후보 객체의 수를 나타내며, k가 1 일때는 다중 속성에서 서로 지배할 수 있는 객체가 극히 적으므로 객체 대부분이 반환되어 가장 큰 수를 가진다. 그러나, k가 증가할수록 지배하는 속성의 수가 많아지므로 T에 포함되는 객체의 수는 적어진다.The variable t represents the number of candidate objects included in T. When k is 1, there are very few objects that can dominate each other in multiple properties, so most of the objects are returned and have the largest number. However, as k increases, the number of governing properties increases, so the number of objects included in T decreases.

예를 들어, k = 2 이면, 비교할 속성 수가 2개로 늘어나 k = 1 일 때보다 지배 가능성이 커지므로 지배되지 않는 객체의 수는 감소한다. 결과적으로 k = 1일 때 t가 limit보다 작으면, k가 증가하더라도 t는 limit 작으므로 함수를 종료한다(6 내지 8행).For example, if k = 2, the number of properties to be compared increases to two, which increases the likelihood of dominance compared to when k = 1, so the number of non-dominant objects decreases. As a result, if t is less than limit when k = 1, even if k increases, t is less than limit, so the function is terminated (lines 6 to 8).

반대로 9행은 마지막 루프일 때 t가 limit보다 크면 모든 k에서도 t는 limit보다 크기 때문에 함수를 끝낸다. 12행과 15행은 위의 두 경우를 제외한 것으로서, t가 limit와 같으면 조건을 만족하였으므로 함수를 끝낸다. 만일 루프 중간에 t가 limit보다 작아진다면 k-1의 값으로 K-도미넌트 알고리즘을 재수행한 후 T를 반환받고 알고리즘을 종료한다. 여기에서 재연산을 하는 이유는, 루프 중간에 limit보다 작은 t의 수가 나올 때, t = 0이 될 수 있기 때문이다. t = 0이라면 현재 위치에서 이동할 수 있는 객체가 없어지므로, 재연산을 통하여 0이 아닌 t를 찾기 위한 것이다. 알고리즘의 최종 결과는 방문해야 할 객체들의 연결 관계를 표시한 이차원 배열 R로 반환된다.Conversely, in line 9, if t is greater than limit in the last loop, the function ends because t is greater than limit in all k. Lines 12 and 15 exclude the above two cases. If t is equal to limit, the condition is satisfied and the function ends. If t becomes smaller than limit in the middle of the loop, the K-dominant algorithm is re-executed with a value of k-1, T is returned and the algorithm is terminated. The reason for re-computation here is that t = 0 when the number of t less than limit appears in the middle of the loop. If t = 0, there is no object that can move from the current position, so it is to find a non-zero t through re-computation. The final result of the algorithm is returned as a two-dimensional array R representing the connection relationship of the objects to be visited.

도 10은 동적 계획법 알고리즘을 각 조건에 따라 상세히 나타낸 것이다.10 shows the dynamic programming algorithm in detail according to each condition.

동적 계획법 알고리즘은 Top-n 스카이라인 질의로 축소한 객체들을 모두 확인하여 경로를 연산하는 알고리즘으로, 연산된 모든 경로 중 가장 최적의 경로를 반환한다.The dynamic programming algorithm is an algorithm that calculates a path by checking all objects reduced by the Top-n Skyline query, and returns the most optimal path among all the calculated paths.

동적 계획법 함수인 예는 현재 위치인 s와 지금까지 방문한 객체들을 표시한 값인 visit를 입력값으로 받아서 실행된다. 여기서 visit는 2진 비트로 표현된 비트 마스크이다. 모든 객체를 방문하면 재귀가 종료된다(1 내지 2행). 현재 위치와 방문한 곳의 최솟값이 저장된 cache 배열로부터 해당 객체의 최솟값을 변수 x에 초기화한다(3행). cache 배열에는 같은 연산을 여러 번 하지 않도록 한 번 연산된 결과가 저장되어 있다. x는, cache에 저장된 값을 불러와서 값이 있다면 이미 연산된 경로로 확인하고, 0이라면 아직 연산되지 않은 것이므로 다음 경로 연산을 진행할지 여부를 결정하기 위한 변수이다. 즉, x가 0이 아니라면 이미 한 번 연산된 것이므로, 저장된 값을 바로 반환한다(4 내지 5행). x가 0이라면 최댓값(MAX)을 저장한다(6행). 총 객체의 수만큼 반복문을 실행하고, 배열 R을 통해서 현재의 경로에서 이전에 방문했던 객체이거나 현재 위치와 이어져있지 않은 객체는 해당 루프를 중단하고 다음 루프를 실행한다(7 내지 9행). x에 현재 객체의 비용에 다음 호출 시 반환된 값을 더한 값과, 현재의 x값을 비교하여 더 낮은 값을 저장한다(10행). cache[s][visit]에 연산된 x값을 저장하고 반환한다(11 내지 12행).The example, which is a dynamic programming function, is executed by receiving as inputs s, the current location, and visit, a value representing the objects visited so far. where visit is a bit mask expressed in binary bits. The recursion ends when all objects have been visited (lines 1 and 2). Initializes the minimum value of the object to the variable x from the cache array where the current location and the minimum value of the visited location are stored (line 3). In the cache array, the result of one operation is stored so that the same operation is not performed multiple times. x is a variable to determine whether to proceed with the next path operation since it has not been calculated yet if it is 0, it is a variable to determine whether or not to call the value stored in the cache and check it as an already calculated path if there is a value. That is, if x is not 0, since it has already been calculated once, the stored value is immediately returned (lines 4 to 5). If x is 0, store the maximum value (MAX) (line 6). The loop is executed as many as the total number of objects, and the object that has been previously visited in the current path through the array R or that is not connected to the current position is interrupted and the next loop is executed (lines 7 to 9). Compares the current value of x with the value returned by the next call to the cost of the current object to x and stores the lower value (line 10). Stores and returns the computed value of x in cache[s][visit] (lines 11 to 12).

TS-MDT의 효율 검증Efficiency Verification of TS-MDT

본 명세서에 제안된 Top-n 알고리즘을 이용한 최적 경로 탐색 방법의 효율성을 검증하기 위하여, 아래와 같은 환경에서 실험을 수행하였다.In order to verify the efficiency of the optimal path search method using the Top-n algorithm proposed in this specification, an experiment was performed in the following environment.

본 발명에서 제안된 방법의 실험과정에서, 비트 마스크를 사용하여 연산하는 동적 계획법 알고리즘의 특성상 24개의 데이터에서 2차원 배열의 크기가 약 1GB를 넘게 되므로 메모리에 제약이 있다. 실험에서는 데이터를 무작위로 생성하였으며, 상기와 같은 배열의 메모리 용량 문제로 인하여 23개의 데이터를 사용하였다. 각 데이터는 5개의 속성을 가지며, 실험 횟수는 총 1만 회를 수행하였다.In the experimental process of the method proposed in the present invention, the size of the two-dimensional array exceeds about 1 GB in 24 data due to the nature of the dynamic programming algorithm that operates using a bit mask, so there is a limitation in memory. In the experiment, data were randomly generated, and 23 pieces of data were used due to the memory capacity problem of the above arrangement. Each data has 5 attributes, and the number of experiments was performed a total of 10,000 times.

본 발명의 제안 기법의 실험 환경은 아래 표와 같다.The experimental environment of the proposed technique of the present invention is shown in the table below.

DivisionDivision 내용Contents SystemSystem Intel i5 CPU 2.3 GHz, RAM 4GBIntel i5 CPU 2.3 GHz, RAM 4GB 데이터의 수number of data 19 ~ 23 objects19 ~ 23 objects 속성(차원) 수number of attributes (dimensions) 55 실험 횟수number of experiments 10,00010,000

본 발명의 비교 대상의 동적 계획법은 마찬가지로 도 10에서 제안된 알고리즘을 사용하였다. 각 데이터는 1개의 속성을 갖고 실험횟수는 동일하게 1만 회로 진행되었다. 실험은 같은 시스템 사양에서 이루어졌다. 실험에서는 같은 데이터 수일 때, 기존의 1차원에서 진행되는 비교대상(기존의 동적 계획법, Dynamic으로 표시)과 본 발명에서 제안된 방법(TS-MDT)의 다차원 데이터의 연산 시간, 평균 함수 호출 횟수의 차이를 비교하였다.The dynamic programming method of the comparison object of the present invention also used the algorithm proposed in FIG. 10 . Each data had one attribute, and the same number of experiments was performed 10,000 times. Experiments were performed on the same system specifications. In the experiment, when the number of data is the same, the calculation time of the multidimensional data of the existing one-dimensional comparison target (existing dynamic programming method, expressed as Dynamic) and the method (TS-MDT) proposed in the present invention, the average number of function calls The differences were compared.

도 11은 데이터 수 변화에 따른 질의 처리 시간을 비교한 것으로, 단위는 초(Second)이다. 실험 결과 23개의 데이터에서 비교 대상은 54.7초, 본 발명의 제안 기법은 3.24초로 약 18배의 차이를 나타낸다.11 shows a comparison of query processing times according to a change in the number of data, and the unit is seconds. As a result of the experiment, in the 23 data sets, the comparison target is 54.7 seconds, and the method proposed by the present invention is 3.24 seconds, representing an 18-fold difference.

본 발명의 제안 기법은 동적 계획법을 수행하면서 Top-n 스카이라인 질의에서 후보 데이터를 연산하는 시간을 더 포함하지만, 기존의 TSP 동적 계획법 알고리즘(Dynamic)보다 더 빠른 처리 시간을 나타내었다. 처리시간에 대한 증가율 측면에서도 본 발명의 제안 기법은 상대적으로 낮은 변화를 나타내고 있다.The proposed method of the present invention includes more time for calculating candidate data in the Top-n skyline query while performing dynamic programming, but exhibits faster processing time than the existing TSP dynamic programming algorithm (Dynamic). Also in terms of the increase rate with respect to the processing time, the proposed method of the present invention shows a relatively low change.

연산 속도의 차이를 상세히 살펴보면 다음과 같다. 도 11의 기존 Dynamic에서 데이터가 19에서 21까지, 즉, 2개 증가할 때 연산속도는 약 10배의 차이를 보인다. 이는 연산 횟수가 기하급수적으로 증가하는 TSP의 단점을 보여준다. 하지만, 본 발명의 TS-MDT의 경우에는 같은 위치에서 처리 속도의 증가가 크지 않으며, 데이터 개수가 증가할수록 TS-MDT와 Dynamic의 효율 차이는 더 크게 나타나는 것을 확인할 수 있다.A detailed look at the difference in operation speed is as follows. In the existing Dynamic of FIG. 11, when data is increased from 19 to 21, that is, two is increased, the calculation speed shows a difference of about 10 times. This shows the disadvantage of TSP, in which the number of operations increases exponentially. However, in the case of the TS-MDT of the present invention, the increase in processing speed at the same location is not large, and it can be seen that the difference in efficiency between the TS-MDT and the Dynamic increases as the number of data increases.

도 12는 TS-MDT의 효율에 대한 실험으로, Dynamic과 TS-MDT의 평균 함수 호출 횟수를 비교한 것이다. 결과적으로, 본 발명에서 제안된 TS-MDT 기법의 함수 호출 횟수가 기존의 Dynamic 기법보다 낮고 데이터의 증가에 따른 크기 변화 또한 낮게 유지되고 있으므로, 알고리즘의 처리에 있어서 제안된 TS-MDT가 더 효율적인 것을 확인할 수 있다.12 is an experiment on the efficiency of TS-MDT, comparing the average number of function calls between Dynamic and TS-MDT. As a result, since the number of function calls of the TS-MDT technique proposed in the present invention is lower than that of the existing dynamic technique, and the size change according to the increase in data is also kept low, it is confirmed that the proposed TS-MDT is more efficient in processing the algorithm. can be checked

도 11 및 도 12에서, 연산 시간과 함수 호출 횟수에서 큰 차이가 나타나는 이유는, Top-n 스카이라인 질의에 있다. 스카이라인 질의에서 데이터를 지배원칙에 따라 제거하여, 방문할 경로의 개수를 최소 (n-1)!/2n 만큼 감소시킴으로써 성능에 차이가 발생하는 것이다. 예를 들어, 기존의 기법은 19에서 20으로 데이터 개수가 늘어날 때 경로의 개수는 18! X 19가 되지만, 제안 기법은 약 18!/219 X 10이 된다.The reason for the large difference in the calculation time and the number of function calls in FIGS. 11 and 12 is in the Top-n Skyline query. The difference in performance occurs by removing the data from the skyline query according to the governing principle and reducing the number of routes to visit by at least (n-1)!/2 n. For example, in the existing technique, when the number of data increases from 19 to 20, the number of paths is 18! X 19, but the proposed method is about 18!/2 19 X 10.

위와 같은 실험 결과에서 확인되는 바와 같이, 본 발명에서 제안된 TS-MDT는 처리 시간과 사용자의 다양한 선호도에 부합하는 TSP를 구현하였으며, 실용적이고 유용한 결과를 도출하였다. 결과적으로, 기존 기법과의 비교 실험에서 23개의 데이터를 대상으로 하였을 때, 약 18배 정도의 빠른 연산 속도를 나타내는 것을 확인하였다. 또한, 지금까지 실험한 결과를 토대로, 데이터 또는 객체의 수가 증가할수록 더욱 긍정적인 효과를 기대할 수 있을 것으로 예상된다.As can be seen from the above experimental results, the TS-MDT proposed in the present invention implements a TSP that meets the processing time and various preferences of the user, and derives practical and useful results. As a result, it was confirmed that the operation speed was about 18 times faster when 23 pieces of data were targeted in the comparison experiment with the existing technique. In addition, based on the experimental results so far, it is expected that more positive effects can be expected as the number of data or objects increases.

이상에서 설명된 방법 및 이에 대한 제어는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 방법 및 구성요소는, 프로세서, 컨트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제상에서 수행되는 하나 이상의 소프트웨어 어플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성도 가능하다.The method and control therefor described above may be implemented by a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, the methods and components described in the embodiments may include a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA), and a programmable logic unit (PLU). It may be implemented using one or more general purpose or special purpose computers, such as a logic unit, microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device may include a plurality of processing elements and/or multiple types of processing elements. it can be seen that there is For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소, 물리적 장치, 가상 장치, 컴퓨터 저장 매체 또는 장치에 영구적으로, 또는 일시적으로 구체화될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more thereof, which configures the processing device to operate as desired, or independently or in combination instructs the processing device to operate as desired. can do. The software and/or data may be permanently or temporarily on any machine, component, physical device, virtual device, computer storage medium or device of any type to be interpreted by or to provide instructions or data to the processing device. can be materialized. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (6)

다차원 속성 기반의 최적 경로를 탐색하는 방법으로서,
프로세서가 복수의 다차원 속성 데이터를 처리하여 스카이라인 후보군을 반환하는 단계; 및
상기 프로세서가 상기 스카이라인 후보군을 이용하여 상기 다차원 속성을 고려한 최적 경로를 연산하는 단계를 포함하는,
다차원 속성 기반의 최적 경로를 탐색하는 방법.
As a method of searching for an optimal path based on multidimensional properties,
processing, by the processor, a plurality of multidimensional attribute data to return a skyline candidate group; and
Comprising the step of calculating, by the processor, an optimal path in consideration of the multidimensional attribute using the skyline candidate group,
A method of finding the optimal path based on multidimensional properties.
제 1 항에 있어서,
상기 스카이라인 후보군을 반환하는 단계는:
상기 스카이라인 후보군을 초기화하는 단계; 및
K-도미넌트 알고리즘을 이용하여 상기 복수의 다차원 속성 데이터 중 지배되는 데이터를 삭제하는 단계를 포함하고,
상기 삭제하는 단계는 현재 속성 수가 차원 수와 동일하거나 작을 때까지, 또는 현재 다차원 속성 데이터의 수가 한계 객체 수와 동일하거나 작을 때까지 반복되는,
다차원 속성 기반의 최적 경로를 탐색하는 방법.
The method of claim 1,
Returning the skyline candidate group includes:
initializing the skyline candidate group; and
Deleting dominant data from among the plurality of multidimensional attribute data using a K-dominant algorithm,
The deleting step is repeated until the current number of attributes is equal to or less than the number of dimensions, or until the number of current multi-dimensional attribute data is equal to or less than the number of limit objects,
A method of finding the optimal path based on multidimensional properties.
제 2 항에 있어서,
상기 복수의 다차원 속성 데이터 간의 연결 관계를 나타내는 2차원 배열을 포함하고,
상기 복수의 다차원 속성 데이터 중 지배되는 데이터를 삭제하는 단계는,
상기 2차원 배열에서 상기 지배되는 데이터 위치의 값을 참에서 거짓으로 변경하는 것인,
다차원 속성 기반의 최적 경로를 탐색하는 방법.
3. The method of claim 2,
A two-dimensional array representing a connection relationship between the plurality of multidimensional attribute data,
The step of deleting dominant data among the plurality of multidimensional attribute data includes:
changing the value of the dominant data position in the two-dimensional array from true to false,
A method of finding the optimal path based on multidimensional properties.
제 3 항에 있어서,
상기 스카이라인 후보군을 반환하는 단계는,
상기 반복이 종료된 후의 상기 2차원 배열을 반환하는 것인,
다차원 속성 기반의 최적 경로를 탐색하는 방법.
4. The method of claim 3,
Returning the skyline candidate group comprises:
Returning the two-dimensional array after the iteration is finished,
A method of finding the optimal path based on multidimensional properties.
제 1 항에 있어서,
상기 최적 경로를 연산하는 단계는:
현재 위치 및 이미 방문한 객체들에 대응하는 2진 비트 마스크를 입력 받는 단계;
상기 현재 위치에서 상기 방문한 객체들의 최소 비용 값이 저장된 캐시 배열의 값으로 리콜 확인 변수를 초기화하는 단계;
상기 리콜 확인 변수가 0인 경우, 최대 비용 값을 저장하고,
상기 리콜 확인 변수가 0이 아닌 경우, 및 상기 스카이라인 후보군에 해당되는 객체인 경우, 상기 현재 위치의 객체의 비용에 다음 함수 호출 시 반환된 값을 더한 값과 현재의 상기 리콜 확인 변수를 비교하여 더 작은 값을 상기 리콜 확인 변수에 저장하는 단계; 및
상기 캐시 배열에 상기 리콜 확인 변수를 저장하고, 상기 리콜 확인 변수를 반환하는 단계를 포함하는 것인,
다차원 속성 기반의 최적 경로를 탐색하는 방법.
The method of claim 1,
Calculating the optimal path includes:
receiving a binary bit mask corresponding to a current location and already visited objects;
initializing a recall confirmation variable with a value of a cache array in which minimum cost values of the visited objects are stored at the current location;
If the recall confirmation variable is 0, store the maximum cost value;
When the recall confirmation variable is not 0, and if it is an object corresponding to the skyline candidate group, the current recall confirmation variable is compared with a value obtained by adding the value returned when the next function is called to the cost of the object at the current location. storing a smaller value in the recall confirmation variable; and
storing the recall confirmation variable in the cache array and returning the recall confirmation variable,
A method of finding the optimal path based on multidimensional properties.
매체에 저장된 컴퓨터 프로그램으로서,
제 1 항 내지 제 5 항 중 어느 한 항에 따른 방법을 프로세서에 의하여 처리하는 것을 특징으로 하는,
매체에 저장된 컴퓨터 프로그램.
A computer program stored on a medium, comprising:
The method according to any one of claims 1 to 5, characterized in that it is processed by a processor,
A computer program stored on a medium.
KR1020200022155A 2020-02-24 2020-02-24 A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query KR102367753B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200022155A KR102367753B1 (en) 2020-02-24 2020-02-24 A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200022155A KR102367753B1 (en) 2020-02-24 2020-02-24 A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query

Publications (2)

Publication Number Publication Date
KR20210107328A true KR20210107328A (en) 2021-09-01
KR102367753B1 KR102367753B1 (en) 2022-02-25

Family

ID=77780095

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200022155A KR102367753B1 (en) 2020-02-24 2020-02-24 A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query

Country Status (1)

Country Link
KR (1) KR102367753B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114485705A (en) * 2022-01-12 2022-05-13 上海于万科技有限公司 Road network map-based cleaning path determination method and system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010056264A (en) * 1999-12-14 2001-07-04 이계철 Method of calculating optimum path in link oriented
KR20190109637A (en) * 2018-03-02 2019-09-26 주식회사 세중아이에스 stadium visitor big-data analysis system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010056264A (en) * 1999-12-14 2001-07-04 이계철 Method of calculating optimum path in link oriented
KR20190109637A (en) * 2018-03-02 2019-09-26 주식회사 세중아이에스 stadium visitor big-data analysis system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114485705A (en) * 2022-01-12 2022-05-13 上海于万科技有限公司 Road network map-based cleaning path determination method and system
CN114485705B (en) * 2022-01-12 2024-05-14 上海于万科技有限公司 Road network map-based cleaning path determining method and system

Also Published As

Publication number Publication date
KR102367753B1 (en) 2022-02-25

Similar Documents

Publication Publication Date Title
US9804892B2 (en) Tracking large numbers of moving objects in an event processing system
US10810257B2 (en) Fast processing of path-finding queries in large graph databases
US8996492B2 (en) Graph traversal operator inside a column store
CN111460234B (en) Graph query method, device, electronic equipment and computer readable storage medium
JPH06214843A (en) Data base management system and processing method for inquiry
Al-Khalidi et al. Approximate algorithms for static and continuous range queries in mobile navigation
Nutanong et al. Memory-efficient algorithms for spatial network queries
Safar et al. Optimized skyline queries on road networks using nearest neighbors
KR102367753B1 (en) A Method for Finding a Shortest Route based on Multi-dimensional Attributes using Top-n SKyline Query
Yin et al. A cost-efficient framework for finding prospective customers based on reverse skyline queries
Qi et al. Efficient point-based trajectory search
Le Hoang et al. A farthest first traversal based sampling algorithm for k-clustering
KR102532433B1 (en) Routing group search optimization scheduling optimization method to search for optimum solution of parallel delivery using vehicles and drones and the system thereof
Yi et al. View field nearest neighbor: A novel type of spatial queries
Mutingi et al. Optimizing order batching in order picking systems: Hybrid grouping genetic algorithm
Xuan et al. Network Voronoi diagram based range search
Wang et al. Efficiently monitoring reverse k-nearest neighbors in spatial networks
Feng et al. Search of continuous nearest target objects along route on large hierarchical road network
Khan et al. Efficient computation of the optimal accessible location for a group of mobile agents
Liu et al. A segmented parallel expansion algorithm for keyword-aware optimal route query
Ren et al. Adaptive road candidates search algorithm for map matching by clustering road segments
Heendaliya et al. Continuous predictive line queries for on-the-go traffic estimation
Mohapatra et al. A Survey on Large Datasets Minimum Spanning Trees
Miao et al. Direction-Aware Top-k Dominating Query
Boyal et al. New database architecture for smart query handler of spatial database

Legal Events

Date Code Title Description
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant