KR20010092265A - 기업 모델에서 시변 변수를 위한 데이터 구조 및 동작 - Google Patents

기업 모델에서 시변 변수를 위한 데이터 구조 및 동작 Download PDF

Info

Publication number
KR20010092265A
KR20010092265A KR1020017001761A KR20017001761A KR20010092265A KR 20010092265 A KR20010092265 A KR 20010092265A KR 1020017001761 A KR1020017001761 A KR 1020017001761A KR 20017001761 A KR20017001761 A KR 20017001761A KR 20010092265 A KR20010092265 A KR 20010092265A
Authority
KR
South Korea
Prior art keywords
time
node
value
query
subtree
Prior art date
Application number
KR1020017001761A
Other languages
English (en)
Inventor
조슬린데이비드이.
모르가도라에르테에프.
Original Assignee
샌제이브 사이두
아이2 테크놀러지즈, 인크.
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 샌제이브 사이두, 아이2 테크놀러지즈, 인크. filed Critical 샌제이브 사이두
Publication of KR20010092265A publication Critical patent/KR20010092265A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9027Trees
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

시변 변수(time-varying variable)를 표현하고, 변수에 대한 질의(queries)에 답하는 2진 트리 데이터 구조(binary tree data structure)의 사용 방법이다. 트리는 특히 "y 단위(units)의 최소 값을 가지고 있는 최초/최후 시간은 무엇인가?"와 같은 "검색(find)" 형태의 질의에 답하는 데 유용하다. 이런 유형의 질의에는 O(log n)의 효율로 답할 수 있으며, 여기서 n은 트리(tree)의 노드(node) 수이다.

Description

기업 모델에서 시변 변수를 위한 데이터 구조 및 동작 {DATA STRUCTURE AND OPERATIONS FOR TIME-VARYING VARIABLE IN AN ENTERPRISE MODEL}
컴퓨터 소프트웨어용 애플리케이션들이 점차 복잡해지고 고성능화 됨에 따라 소프트웨어를 효율적으로 실행시켜야 할 필요가 있다. 복잡한 소프트웨어의 일례는 제조회사들(manufacturers)이나 서비스 제공회사들(service providers)과 같은 회사들의 작업(operation)을 모델링(modeling)하는 데 사용되는 "기업(enterprise)" 소프트웨어이다.
일반적으로 기업 모델(enterprise model)은 제고품(inventory)과 같은 시변량(time-varying quantities)을 모델링한다. 또한 기업 모델은 종종 자원(resource)과 이 자원의 유용성(availability)을 나타내는 계획형 프로세스들(scheduling type processes)을 모델링한다.
일반적으로 기업 소프트웨어는 사용자가 시변량들(time-varying quantities)에 대한 질의(quary)를 입력할 수 있도록 한다. 때로는 질의가 "시간 t에서 얼마나 많이 가지고 있는가?"와 같은 단순한 "함수 값(function value)" 형태의 질의일수도 있다. 그러나 더욱 실질적인 "검색(find)" 형태의 질의는 최초/최후 또는 최대/최소에 대한 정보를 요구한다. 예를 들면, "최초" 시간 및 "최소" 양에 대한 정보 둘 다를 검색하는 질의는 "자재(material)에 대한 n 단위의 최소 값을 가지게 될 t보다 크게 되는 최초 시간을 찾아라?"를 요구할 지도 모른다. 이러한 예에서, t는 (다른 제약 조건들 때문에) 태스크(task)가 계획되는 최초 시간이고, n은 그 타스크가 소비할 자재의 단위 수이다.
시변 변수를 포함하는 질의에 답하는 접근 방법 중 하나는 변수의 값들을 "2진 트리(binary tree)"로 나타내는 것이다. 2진 트리는 데이터를 계층적으로 정렬하는 알고리즘 기술 분야에서 잘 알려진 데이터 구조의 한 유형이다. 2진 트리는 상기 시변 변수에 대한 데이터를 얻기 위하여 질의 받을 수 있다.
상업적으로 이용 가능한 기업 모델 중 하나는 시변 함수(time varying fuction)를 나타내기 위하여 2진 트리를 사용하는 Optimax Corporation에서 OPTIFLEX라는 상표로 제조되는 것이다. 각 노드에, 그 노드의 "하위 트리(subtree)"와 관련된 소정 값들이 저장된다.
본 발명은 컴퓨터 데이터 구조 및 알고리즘에 관한 것으로, 더욱 상세하게는 시변 변수(time-varying variable)를 표현하는 데이터 구조와 이 데이터 구조를 사용하는 알고리즘에 관한 것이다.
도 1은 시변 함수의 예를 본 발명에 따른 2진 트리 데이터 구조로 나타낸 도면이다.
도 2는 각 노드에 저장된 데이터뿐만 아니라 상기 본 발명의 2진 트리 구조를 도시한 도면이다.
도 3은 특정 시변 함수의 예를 도시한 도면이다.
도 4는 도 3의 함수를 나타내는 2진 트리를 도시한 도면이다.
본 발명의 특징 중 하나는 시변 변수의 값을 저장하는 방법이다. 이 시변 변수를 시간 값들과 함수 값들을 갖는 시변 함수로 나타낸다. 그런 다음 시변 함수를 2진 트리로 나타내며, 2진 트리의 각 노드는 시변 함수 값의 변경과 연관된다. 2진 트리는 자신의 부모 노드(parent node)의 값보다 작은 값을 갖는 각 자식노드(child node)는 그 부모 노드의 왼쪽에 존재하고, 자신의 부모 노드의 값보다 큰 값을 갖는 각 자식 노드는 그 부모 노드의 오른쪽에 존재 하도록 하여 이 2진 노드는 균형을 이룬다. 각 노드에 저장된 값은 시간 값(time value), 변화량 값(delta value), 최대 하위 트리 값(maximun subtree value) 및 최소 하위 트리 값(minimun subtree value)이다. 후자의 두 "하위 트리 값(최대 하위 트리 값, 최소 하위 트리 값)"은 해당 노드에서 시작하는 하위 트리의 상대적인 기여도(contribution)를 나타내기 때문에 그 자체로서 참조된다. 2진 트리는 임의의 노드에서 호출할 수 있는 연관된 경계 상자 함수(associated bounding box function)를 가지며, 연관된 경계 상자 함수는 그 하위 트리 내의 함수 값에 대한 하나 이상의 경계 값을 계산하기 위해 상기 노드의 하위 트리 값들을 사용할 수 있다. 이러한 경계 값들은 시간 경계 값들(time bounds) 또는 양 경계 값들(quantity bounds)일 수 있다.
본 발명의 장점은 2진 트리가 "최초" 및 "최후" 형태의 질의에 대한 답을 제공한다는 것이다. 또한 이들 질의는 "시간 t 이후의 최초 시간" 또는 "시간 t 이전의 최후 시간"과 같은 시간 제한들을 지정할 수도 있다.
2진 트리 구조(Binary Tree Structure)
도 1은 본 발명에 따른 데이터 구조로 표현되는 시변 함수 f(t)를 도시한다. 이 함수는 순서쌍 집합(S), S=(Xi, δ(Xi)) = {(t1, δ(t1)), (t2, δ(t2)), ....(tn, δ(tn))}로 표현될 수 있다. 임의의 시간 T에서의 f(t) 값은 n ≤ t 일 때, f(T) = δ(X1) + δ(X2) + .... + δ(Xn)이다. 이러한 방식으로 표현되는 함수는 종종 "변량(fluent)"함수라 부른다.
다소 덜 공식적으로 나타내면, f(t)는 시간이 증가함에 따른 일련의 변화량 (delta, δ) 값으로 표현될 수 있다. f(t)의 초기 값은 0으로 가정한다. 또한, t와 δ 값은 실수 값으로 가정하고, 또 정수 값일 수도 있다고 가정한다. 특정 시간(T)에서의 f(t) 값은 이 시간 전의 모든 변화량 값을 합산하여 계산된다.
실제 적용에 있어, f(t)는 재고량(amount of inventory)일 수 있다. 재고품이 선적되어 나가고 또 보충되면서 이 재고량은 시간에 따라 변하여 변화량 값을 생성시킨다. 진행중인 기획 작업을 해 나가는 동안 줄곧 새로운 변화량들(+ 혹은 -) 계속적으로 이 함수 f(t)에 더해진다.
한편, 재고량에 대한 질의들이 만들어진다. 이미 배경 기술에서 기술한 바와 같이, 특정 시간 t에서의 f(t)를 알 필요가 있을 수 있다. 혹은, 보다 정교한 질의는 적어도 특정 f(t) 값이 이용 가능하게 되는 시간, 즉, 양(amount) ≥ Y 인시간을 요구할 수 있다.
도 2는 각 노드에 저장된 데이터와 노드에서 호출될 수 있는 함수뿐만 아니라 본 발명의 2진 트리 구조를 도시한다.
각 노드 N은 다음 값들, t(N), δ(N), Net(N), Min(n) 및 Max(M)을 저장한다. 트리의 각 노드는 도 1과 관련하여 앞서 설명한 바와 같이 집합(S)의 구성요소(member)에 대응한다. 따라서, 임의의 노드에서, 저장된 값 t 및 δ는 f(t)와 연관된 순서쌍이다. 함수 I(N) 및 S(N)를 비롯한 다른 저장된 값들에 대해 이하에서 설명한다. 저장된 데이터와 함수들은 해당 트리에 대한 질의에 답하기 위해 트리를 트래버싱(traversing)하는 동안에 사용된다.
트리는그 루트 노드(root node)에서 f(t)의 구성요소를 반으로 나누어 균형을 이룬다. 다시 말하면, f(t)의 구성요소 중 반은 루트 노드 Root의 왼쪽에 그리고 나먼지 반은 오른쪽(노드가 짝수인 경우를 포함하도록 트리 여유도(margin) 내)에 존재한다. 따라서, 예를 들면, f(t)가 n+1개의 구성요소를 가지는 경우, n/2개의 구성요소는 루트 노드의 왼쪽에 존재하고, 나머지 n/2개의 구성요소는 루트 노드의 오른쪽에 존재한다. 새로운 변화량들이 생성되고 f(t)가 새로운 구성요소들을 획득할 때, 새로운 노드들이 추가된다. 트리는 그 루트 노드에 저장된 값들을 변경시키는 적당한 때에 다시 균형을 이룬다. 특수한 경우는 새로운 노드가 이미 존재하는 노드와 동일한 t 값을 갖는 경우이고, 이러한 경우에 노드에 저장된 값들은 갱신된다.
각 노드는 트리 내의 자신의 위치에 의해 결정되는 연관 시간범위(associated time span)를 갖는다. 트리의 루트인 노드 Root에서는 f(t)의 전체 시간 범위, 즉 -∞에서 +∞까지인 "루트 시간 범위(root time span)"에 상응한다. 따라서, 루트 노드의 경우, -∞> t < +∞이다. 루트 노드는 이러한 시간 범위를 두 부분으로 분할하는데, 하나는 R의 왼쪽 하위 트리에 연관되고, 또 하나는 R의 오른쪽 하위 트리와 연관된다. 마찬가지로, 루트 노드 아래의 각 노드는 자신의 연관 시간 범위를 두 부분으로 분할한다. 따라서, 트리 아래로 내려감에 따라 노드들의 하위 트리들은 근 시간 범위의 하위분할보다 더 작게 나타난다. 노드 L4 및 R5와 같은 잎 노드들(leaf nodes)은 하위 트리가 없다.
구간 함수(interval function) I(N)는 어떤 노드들이 하위 트리에 있는지를 정의한다. 일반적으로, 임의의 노드에 대해 구간 함수 I(N)는 노드 N에서 시작하는 하위 트리에서 가장 왼쪽 노드에서 가장 오른쪽 노드까지의 구간이다.
앞서 기술한 바와 같이, 각 노드(N)는 다음의 연관된 값들을 저장한다:
t(N) = 변화량이 생성되는 시간
δ(N) = 시간 t에서의 변화량 값
Net(N) = 하위 트리의 변화량들의 합
Max(N) = 하위 트리의 최대 누적 변화(maximum cumulative change)
Min(N)= 하위 트리의 최소 누적 변화(minimum cumulative change)
끝에서부터 세 값은 노드 N의 하위 트리에 대한 구성요소들의 값으로부터 계산된다.
위에서 노드 자체의 변화량을 포함하는 하위 트리의 변화량들의 합으로 정의된 Net(N)은 하위 트리의 마지막 변화량 직후의 함수 값과 최초 변화량 직전의 함수 값의 차로서 계산될 수 있다. 다시 말하면, Net 값(net value)은 임의 노드 N의 하위 트리와 연관되는 "시작 값" S(N)와 "끝 값" E(N)로부터 결정된다. 어떤 노드의 "시작 값"은 그 노드의 하위 트리의 최초(가장 왼쪽 끝) 변화량 직전의 f(t) 값이다. "끝 값"은 그 노드의 하위 트리 내의 최후(가장 오른쪽 끝) 변화량 직후의 값이다. 또한 끝 값은 시작 값과 Net(N) 값의 합, 또는 E(N) + S(N) + Net(N)이다.
루트 노드의 경우, 시작 값은 영(zero), 즉 S(N) = 0 이다. 최후 변화량 이후에 f(t) 값은 항상 루트의 Net 값, Net(R) 이다. 이것은 루트에서 끝 값이 최후 값과 같고 시작 값은 영(zero)이기 때문이다. 잎 노드의 경우 Net 값은 변화량 값과 같다. 즉, Net(N) = δ(N)이다.
시작 값과 끝 값인 S(N)와 E(N)는 저장되지 않는다. 그러나 트리를 루트 노드에서 잎 노드로 트래버싱할 때 S(N)를 각 노드에서 계산할 수 있다. 만약 N이 부모 노드이고 L과 R이 N의 좌우 자식 노드이면, 그들은 가장 왼쪽 끝의 변화량이 동일하므로 S(L) = S(N)이다. S(R) 값은 알려지고 저장된 값들로부터 결정될 수 있다: S(R) = S(N) + Net(L) +δ(N).
Min(N)은 노드의 하위 트리 내의 임의의 점에서 계산되는 S(N)와 관련된 최저 함수 값이다. 다시 말하면, 노드 N과 연관된 시간 구간에서 얻은 최저 함수 값은 S(N) + Min(N)이다. Min(N)은 "약한(weak)" 하한(lower bound)―시간 구간에서 f(t) 값이 S(N) + Min(N)이 되는 것을 보증함-을 의미하지는 않는다. Max(N)은S(N)와 관련하여 계산된 최고 함수 값이라는 것을 제외하고는 Min(N)과 유사하다.
만약 노드가 잎 노드라면, Min(N)은 영(zero)과 δ(N) 중에서 최소 값이다. 그 이유는 δ(N)이 양(positive)의 값인 경우, 최소 값은 t(N) 이전의 값인 S(N)이기 때문이다. 유사하게, 잎 노드의 경우 Max(N)은 영(zero)과 δ(N) 중에서 최대 값이다.
좌우에 자식 L 및 R을 갖는 잎 노드가 아닌(non-leaf node) 임의의 노드 N의 경우:
Net(N) = Net(L) + Net(R) + δ(N)
Min(N) = Min(L)과 (Net(L) + δ(N) + Min(R)) 중 최소 값
Max(N) = Max(L)과 (Net(L) + δ(N) + Max(R)) 중 최대 값.
Min(N)의 계산은 다음과 같이 설명할 수 있다. 앞서 기술한 바와 같이, S(N) = S(L)이고, S(R) = S(L) + Net(L) + δ(N)이다. Min(R)은 S(R)와 관련이 있지만 Min(N)은 S(N)와 관련이 있기 때문에 Min(L)은 노드 R 아래에서 얻은 최소 값이 노드 N 아래에서 얻은 최소 값인지를 결정하기 위하여 S(R) - S(N)로 조정된다. S(R) - S(N) = Net(L) + δ(N). 따라서, Min(N)의 계산 결과는 시작 값들의 차이가 조정된 오른쪽 하위 트리 최소 값을 갖는 각 자식의 하위 트리 아래에서 계산된 최소 값으로 간주한다.
노드에 저장된 데이터의 특징은 노드의 하위 트리에 국한(local)된다는 것이다. 이 데이터는 해당 노드와 연관된 시간 구간의 이전 또는 이후의 값에 의존하지 않는다. 각 노드는 "하위 트리 값들", 즉 (Net(N), Min(N) 또는 Max(N))를 저장하는데, 이들 각각은 함수 값에 대한 하위 트리의 상대적인 기여도를 나타낸다.
이하에서 설명하는 바와 같이, 질의에 답하기 위하여 트리를 트래버싱할 때, 결정된 그 함수 값으로부터 절대 값들을 계산하기 위해 상기한 상대적인 하위 트리 값들을 이용한다. 더욱 자세하게는, Net(N) 하위 트리 값은 그 노드에서의 함수 값을 계산하기 위한 기초이다. Min(N) 및 Max(N) 하위 트리 값은 그 하위 트리 내의 함수 값에 대한 최대 및 최소 경계를 계산하기 위한 기초이다.
f(t)의 예
도 3은 6쌍의 (t, δt) 값들로 정의된 함수 f(t)의 일례를 도시한다. 각 t 값은 대응하는 δ값과 대응하는 δ 이후의 함수 값을 갖는다. t = 1에서 최초의 δ값 이전에 함수 값은 영(zero), 즉 f(t) = 0이다. 따라서, 음의 무한대(negative infinity)에서 t = 1까지 함수 값은 영이다. 최후의 δ 이후에, 함수는 최종 값을 유지하고, 따라서 t = 7에서 양의 무한대(positive infinity)까지 f(t) = 3이다. 임의의 특정시간 t에서, t 직전의 함수 값과 t 직후의 함수 값이 존재한다. 임의의 주어진 시점(time point)에서 δ는 존재할 수도 있고 존재하지 않을 수도 있으며, 변화량들은 특정 시간 증분들(time increment) 동안 일정하게 유지될 수 있다.
도 4는 도 3의 함수로부터 형성된 2진 트리를 도시한다. 각 노드는 자신이 저장하는 노드 값들, t(N), δ(N), Net(N), Min(N) 및 Max(N)과 함께 도시된다. 설명을 위하여, 노드의 하위 트리와 연관된 계산된 시간 구간 I와 계산된 시작 값 S도 또한 도시한다.
임의 시간에 함수 f(t)의 값은 소정의 저장된 값(Net 및 δ)과 계산된 시작 값 S로부터 결정될 수 있다. 시간 t, 노드 N에서의 함수 값을 검색 위하여 시간 t에 가장 근접하지만 t보다 크지 않은 시간을 함께 찾는다. 질의 동안에 트리가 시간에 대해 하강할 때 S(N)는 각 노드에서 계산된다. 시간 t에서 함수 값은 다음과 같이 표현된다: f(t) = S(N) + Net(L) + δ(N), 여기서 L은 N의 왼쪽 자식이다. 만약 N이 왼쪽 자식이 없으면 Net(L)은 영(zero)으로 정의된다.
도 3 및 도 4의 예를 참조하면, t = 6에서의 함수 값을 검색 위하여, 트리는 노드 B를 트래버싱하고, 방문한 각 노드에 대한 S(N)를 계산한다. S(Root) = 0으로 정의함으로써 루트 노드에서 시작한다. 도 2와 관련하여 설명한 바와 같이 B는 루트 노드의 오른쪽 자식이고, S(B) = S(Root) + Net(A) + δ(Root)이기 때문에 노드 B를 하강시킨다. 대입하면 S(B) = 0 + 4 + (-3) = 1. 다소 덜 공식적으로 표현하면 S(B)는 B 아래의 하위 트리 이전의 함수 값, 즉 t = 5에서 노드 B 직전의 함수 값이다. 노드 B, t = 6에서의 함수 값의 경우, f(t=6) = S(B) + Net(D) + δ(B) = 1 + (-3) + 7 = 5 이다.
이 예에 대한 변형예의 경우, D가 왼쪽 자식이어서 트리가 노드 B에서 노드 D로 하강되었다면 S(D) = S(B) = 1 이다. t = 5.5에서의 함수 값을 검색 위하여 트리가 노드 D로 트래버싱될 것이다. 노드 D에서 f(t=5.5) = S(D) + 0 + δ)D) = 1 + (-3) = -2 이다.
Max와 Min 필드는 f(t)가 y보다 다소 크거나/작은 때의 최초/최후 시간을 찾거나 지정된 시간 구간 사이의 최대/최소 값을 찾는 것과 같은 "검색" 형태의 질의에 사용된다. 이러한 질의들의 강화(enhancement)는 t보다 크거나, 같거나 또는 작은 시간과 같은 시간에 대한 한계를 지정할 수 있도록 한다.
일반적으로, Max 및 Min 필드는 <, >, ≤ 및 ≥ 연산(predicate)을 처리하기 위해 최초/최후 질의를 허용한다. 이를 효률적으로 실행하도록 하는 키(key)는 모든 노드에서 노드의 하위 트리가 커버하는 시간 구간과 그 노드 내에서 발생하는 최소 및 최대 함수 값(노드에 대한 시작 값에 관련됨)으로 정의되는 "경계 상자(bounding box)"가 존재한다. 노드 N의 시작 값이 S(N)이면 노드 N에 대한 시간 구간 내의 어딘 가에 S(N) + Max(N)인 최대 값과 S(N) + Min(N)인 최소 값이 존재한다. (최대 또는 최소 값은 S(N) 그 자체일 수 있다.) 루트에서 잎들(leaves) 쪽으로 트리를 트래버싱할 때, 해당 노드의 하위 트리 내에서 얻은 최소 및 최대 함수 값은 물론 각 노드에 대한 S(N)가 계산된다.
경계 상자는 종종 검색 질의를 만족시키는 시간이 하위 트리 내에 있는지 여부를 확실히 알 수 있도록 한다(guarantee). 그러나, 어떤 경우에는 경계 상자는 "불확실(maybe)"만을 제공할 수 있다. 도 3 및 도 4의 예를 이용하는 경우, "불확실" 상태는 질의가 " f(t) > 2일 때 t = 4 보다 큰 시간을 찾아라"인 경우 발생할 것이다. 루트 노드에서, 루트 노드의 경계 상자는 t = 0과 t= 7 사이의 어떤 시기에 함수 값이 2에 도달하는 것을 나타내지만, 그것이 t > 4 이전 또는 이후에 발생하는지를 나타내는 것은 아니다. 그러나 본 발명의 특징은 노드의 경계 상자가 답이 이 노드의 하위 트리 내에 있는지에 대한 "예" 또는 "아니오"를 나타낼 수 있는 가능성이다.
도 3 및 도 4의 예를 참조하면, "검색" 질의는 함수 값이 >2일 때 t = 4 이후의 가장 빠른 시간을 구하는 것인지도 모른다. 루트 노드의 경계 상자는 t = 1에서 t = 7까지의 시간들과 최소 값 -2부터 최대 값 +6까지의 함수 값들을 포함한다. (만약 질의가 함수 값이 > 10일 때의 최초 시간에 대한 것일 경우, 그 답이 경계 상자의 밖에 존재하므로 질의는 종료될 것이다.) t = 4가 t(Root) = 3보다 크므로 그 답은 루트 노드의 오른쪽 하위 트리에 있다. 노드 B에서 경계 상자는 t = 5에서 t = 7 까지의 시간들을 포함한다. 노드 B에서 하위 트리의 시작 값 S(B)이 1로 계산됨에 따라 노드 B에서 경계 상자에 대한 함수 값은 하한 -2와 상한 5를 갖는다. (각각 S(N) + Min 및 Max). 경계 상자 내의 어딘 가에 함수 값이 2보다 큰 t > 4가 존재한다. 이런 방식으로 검색을 계속하여 트리를 따라 내려가면서 작업하고 각 노드에서 경계 상자를 확인한다.
일반적으로, Min 및 Max 필드는 둘 다 저장되므로 "최초" 및 "최후" 검색 질의에 대한 답을 얻을 수 있다. 그러나 본 발명은 이러한 질의들 중 하나만 가능한 때에 유용할 것이다. 이 경우, 트리를 트래버싱할 때 그 하위 트리 내에 있는 함수 값들 중 하나의 경계만을 계산할 것이다.
이상의 설명은 변화량을 갖는 임의 시간에서 불연속인 계단 함수(step function) f(t)에 관한 것이다. 종래 일반적으로, 질의가 변화량의 시점에서 함수 값을 요구하면, 제공되는 값은 변화량 바로 이후의 값이다. 그러나, 제공되는 값은 이상에서 설명한 질의 응답 알고리즘을 적절히 변형함에 따라 변화량 바로 이전의 값일 수 있다.
데이터 구조 동작들과 효율(Data Structure Operations and Efficiency)
"갱신(update)" 동작(operation)은 노드의 변화량 변경에 따른 효과를 처리한다. 먼저, 변화량이 변경된 시간은 루트 노드를 거슬러서 시험된다. 변경된 변화량이 왼쪽(하위 트리의 왼쪽)이면 루트 노드의 오른쪽으로 하강하는 노드들을 변경할 필요는 없다. 이것은 각 노드에 저장된 값이 각 트리 브랜치(tree branch)에 국한되기 때문이다. 그 왼쪽 브랜치만 변경되었을 때, 오른쪽 브랜치와 그에 상응하는 모든 노드들은 변경되지 않는 채로 남는다. 변경된 노드가 오른쪽 하위 트리에 위치하는 경우에도 동일하게 적용된다.
루트 노드 자신은 갱신된 자신의 Net, Min 및 Max 값을 가질 것이다. 트리를 따라 내려가면서 변경된 노드에 도달할 때까지 방문한 노드들을 표시(mark)한다. 방문한 노드들은 갱신된 노드를 포함하는 시간 구간들에 대응하기 때문에 갱신이 필요한 바로 그 노드들이다. 이 동작은 n개의 변화량 노드들을 갖는 높이 균형 트리(height-balanced tree) 내에서 시간 O(log n) 동안에 수행될 수 있다.
"삽입(insert)" 동작은 새로운 변화량을 삽입하기 위해 사용된다. 예를 들어, 시간 t에서 값 δ(t)를 갖는 변화량이 삽입된다고 가정하자. 트리는 아래쪽으로 트래버싱되어, 트리 내의 시간 순서 관계(time-ordering relation)를 저장하기 위하여 아래에 노드가 삽입되어야 하는 잎 노드를 찾는다. 새로운 노드는 이전의 잎 노드 아래에 새로운 잎 노드로서 삽입된다. 이 새로운 노드가 잎 노드이기 때문에 이것의 Net, Min 및 Max를 계산할 수 있다. 그리고 나서 "갱신" 동작이 수행된다. 이 갱신 동작은 또한 n개의 변화량 노드를 갖는 높이 균형 트리 내에서 시간 O(log n) 동안에 수행될 수 있다.
도 3 및 도 4를 참조하여 예로 설명한 "함수 값 계산(calculate function value)" 동작은 주어진 시점에서의 함수 값을 돌려준다. 트리는 질의 시간 직전의 노드 N에 대해 트래버싱된다. 함수 값은 S(N) - Net(L) + δ(N)이고, 여기서 L은 N의 자식 노드이다. n개의 노드를 갖는 높이 균형 트리에서 복잡도(complexity)는 O(log n)이다.
도 3 및 도 4를 참조하여 예로 설명한 "최초 검색(find earliest)" 동작은 함수 값이 지정된 값 y보다 작은 경우, 이하인 경우, 초과한 경우, 이상인 경우 최초 시간 t를 돌려준다. 각노드에서, 노드의 왼쪽 자식을 먼저 방문하고, 그런 후에 오른쪽 자식을 방문하므로 좀더 빠른 시간을 갖는 노드들이 먼저 방문된다. 각 노드에서 이 동작은 앞서 설명한 Max 및 Min 값, 그리고 경계 상자를 사용한다. 경계 상자는 때때로 확실성(certainty)보다는 오히려 "불확실성"을 제공하기 때문에 때로는 왼쪽과 오른쪽 노드 모두 검색하여야 한다. 그럼에도 불구하고 n개의 노드를 갖는 높이 균형 트리에서의 검색 복잡도는 O(log n)이다.
"최후 검색(find latest)" 동작은 "최초 검색" 동작과 유사하고, 질의가 검색 기준들(search criteria)을 만족하는 최후 시점(latest time point)에 대한 것이기 때문에 오른쪽 자식이 먼저 방문되는 것이 상이하다. 검색 복잡도는 동일하다.
"최대 값 검색"와 "최소 값 검색" 동작은 지정된 시간 구간을 초과하는 최대 또는 최소 함수 값을 찾는다. 다른 "검색" 동작들처럼, 이들 동작은 각 노드에서Max 및 Min 필드를 사용하고, 시간 O(log n ) 동안에 수행될 수 있다.
다른 실시예들
이상에서 본 발명을 상세하게 설명하였지만 첨부된 청구범위에 의해 정의되는 바와 같은 본 발명의 사상과 범위를 벗어나지 않는 다양한 변경, 대체 및 교체가 가능함을 이해하여야 한다.

Claims (14)

  1. 변수를 시간 값들과 함수 값들을 갖는 시변 함수(time-varying function)로 나타내는 단계;
    트리(tree)의 각 노드(node)가 상기 함수 값의 변경과 연관되는 균형 2진 트리(balanced binary tree)를 생성하는 단계;
    각각의 노드에 대하여 시간 값, 변화량 값, 해당 노드에서 시작하는 하위 트리(subtree)의 상대적인 기여도를 나타내는 최대 하위 트리 값 및 최소 하위 트리 값을 저장하는 단계; 및
    임의의 노드에서 호출할 수 있고 하위 트리 내의 함수 값에 대한 하나 이상의 경계 값(bound)을 계산하기 위해 노드의 하위 트리 값을 사용수 있는 경계 상자 함수(bounding box function)를 제공하는 단계
    를 포함하는 시변 변수(time-varying variable)의 값을 저장하는 방법.
  2. 제1항에 있어서,
    상기 함수가 계단 함수(step function)이고 상기 변경이 일정한 변화량 값들(constant delta values)인 방법.
  3. 제1항에 있어서,
    상기 저장 단계가 각각의 노드에 대해 그 노드와 연관된 하위 트리의 변화량들의 합을 나타내는 네트 하위 트리 값(net subtree value)을 저장하는 단계를 추가로 포함함으로써 수행되는 방법.
  4. 시변 함수의 값들에 대한 최초/최후 검색 질의(find earliest/latest queries)에 대해 답하는 방법에 있어서,
    각각 변수 값의 변경을 나타내는 노드들을 가지며 상기 각 노드가 연관된 시간 값, 변화량 값, 하위 트리 최대 값 및 하위 트리 최소 값을 갖는 균형 2진 트리(balanced binary tree)로 상기 함수를 나타내는 단계;
    상기 하위 트리와 연관된 최대 및 최소 함수 값을 나타내는 함수 경계 값들과 상기 하위 트리와 연관된 시작 시간 범위(start of time span)에서의 함수 값을 나타내는 시작 값을 계산하는 각 노드에서 상기 트리를 트래버싱(traversing)하는 단계; 및
    각 노드에서, 그 답(solution)이 그 노드의 하위 트리에 있는지를 결정하기 위하여 연관된 함수 경계 값과 시작 값을 사용하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서,
    상기 질의가 양(quantity)에 대한 상한(upper bound)을 지정하고, 상기 트래버싱 단계가 그 양이 상기 상한을 만족하는 경우에 최초 시간을 찾아 상기 질의에 답하는 방법.
  6. 제4항에 있어서,
    상기 질의가 양에 대한 상한을 지정하고, 상기 트래버싱 단계가 그 양이 상기 상한을 만족하는 경우에 최후 시간을 찾아 상기 질의에 답하는 방법.
  7. 제4항에 있어서,
    상기 질의가 양에 대한 하한(lower bound)을 지정하고, 상기 트래버싱 단계가 그 양이 상기 하한을 만족하는 경우에 최초 시간을 찾아 상기 질의에 답하는 방법.
  8. 제4항에 있어서,
    상기 질의가 양에 대한 하한을 지정하고, 상기 트래버싱 단계가 그 양이 상기 하한을 만족하는 경우에 최후 시간을 찾아 상기 질의에 답하는 방법.
  9. 제4항에 있어서,
    상기 질의가 시간에 대한 하한 및 양에 대한 하한을 지정하고, 상기 트래버싱 단계는 그 양이 상기 지정된 양의 경계(quantity bound)를 만족하는 경우에 상기 지정된 시간 경계(time bound) 이후의 최초 시간을 결정하여 상기 질의에 답하는 방법.
  10. 제4항에 있어서,
    상기 질의가 시간에 대한 상한 및 양에 대한 하한을 지정하고, 상기 트래버싱 단계는 그 양이 상기 지정된 양의 경계를 만족하는 경우에 상기 지정된 시간 경계 이전의 최후 시간을 결정하여 상기 질의에 답하는 방법.
  11. 제4항에 있어서,
    상기 질의가 시간에 대한 하한 및 양에 대한 상한을 지정하고, 상기 트래버싱 단계는 그 양이 상기 지정된 양의 경계를 만족하는 경우에 상기 지정된 시간 경계 이후의 최초 시간을 결정하여 상기 질의에 답하는 방법.
  12. 제4항에 있어서,
    상기 질의가 시간에 대한 상한 및 양에 대한 상한을 지정하고, 상기 트래버싱 단계는 그 양이 상기 지정된 양의 경계를 만족하는 경우에 상기 지정된 시간 경계 이전의 최후 시간을 결정하여 상기 질의에 답하는 방법.
  13. 제4항에 있어서,
    상기 질의가 시간 구간을 지정하고, 상기 트래버싱 단계는 상기 시간 구간에서의 최대 값을 결정하여 상기 질의에 답하는 방법.
  14. 제4항에 있어서,
    상기 질의가 시간 구간을 지정하고, 상기 트래버싱 단계는 상기 시간 구간에서의 최소 값을 결정하여 상기 질의에 답하는 방법.
KR1020017001761A 1998-08-11 1999-08-11 기업 모델에서 시변 변수를 위한 데이터 구조 및 동작 KR20010092265A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US9608998P 1998-08-11 1998-08-11
US60/096,089 1998-08-11
PCT/US1999/018278 WO2000010109A1 (en) 1998-08-11 1999-08-11 Data structure and operations for time-varying variable in an enterprise model

Publications (1)

Publication Number Publication Date
KR20010092265A true KR20010092265A (ko) 2001-10-24

Family

ID=22255236

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020017001761A KR20010092265A (ko) 1998-08-11 1999-08-11 기업 모델에서 시변 변수를 위한 데이터 구조 및 동작

Country Status (8)

Country Link
US (1) US6374249B1 (ko)
EP (2) EP1110160A1 (ko)
JP (1) JP2002522848A (ko)
KR (1) KR20010092265A (ko)
AU (1) AU5479099A (ko)
CA (1) CA2339554A1 (ko)
TW (1) TW448375B (ko)
WO (1) WO2000010109A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100944756B1 (ko) * 2009-10-29 2010-03-03 주식회사 이지마루 대용량 레파지토리 구성을 위한 데이터 저장 구조

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100405043B1 (ko) * 2000-05-17 2003-11-07 김종우 1이상의 변수를 갖는 모델의 최적 변수 값 및 해를결정하는 방법
US7155450B2 (en) * 2001-05-10 2006-12-26 Automsoft R & D Limited Plant information management system
US6665683B1 (en) * 2001-06-22 2003-12-16 E. Intelligence, Inc. System and method for adjusting a value within a multidimensional aggregation tree
KR20040041882A (ko) * 2002-11-12 2004-05-20 주식회사 케이티 구간 이진 탐색 트리 자료 구조 생성방법과 이에 대한탐색 방법 및 그 기록매체
FR2850476A1 (fr) * 2003-01-28 2004-07-30 Cit Alcatel Procede et dispositif perfectionnes de gestion d'un calendrier de ressources
US20050119938A1 (en) * 2003-11-17 2005-06-02 Smith Richard T. Method for providing consumer benefits using a club program
US8335803B2 (en) * 2009-10-09 2012-12-18 Oracle International Corporation Hierarchical representation of time-related profiles
FR2954839B1 (fr) 2009-12-30 2016-11-18 Thales Sa Procede de gestion des ressources dans un reseau de telecommunication ou un systeme informatique
JP5191578B1 (ja) * 2012-07-30 2013-05-08 スキルアップジャパン株式会社 データ検索方法、およびデータ検索装置
CN105074689A (zh) * 2013-01-31 2015-11-18 惠普发展公司,有限责任合伙企业 编索引成形图创建
CN111311094B (zh) * 2020-02-14 2022-05-24 上海东普信息科技有限公司 供应链项目分析方法、装置、设备及存储介质
CN117472852A (zh) * 2022-07-20 2024-01-30 腾讯科技(成都)有限公司 日志数据查询方法、装置、设备和介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6003033A (en) * 1992-02-28 1999-12-14 International Business Machines Corporation System and method for describing and creating a user defined arbitrary data structure corresponding to a tree in a computer memory
US5778223A (en) * 1992-03-17 1998-07-07 International Business Machines Corporation Dictionary for encoding and retrieving hierarchical data processing information for a computer system
US5890166A (en) * 1992-07-16 1999-03-30 International Business Machines Corporation Versioned-database management system in which tasks are associated with promote groups which comprise a set of parts whose changes are to be promoted
US5628002A (en) * 1992-11-02 1997-05-06 Woodrum; Luther J. Binary tree flag bit arrangement and partitioning method and apparatus
US5434775A (en) 1993-11-04 1995-07-18 The General Hospital Corporation Managing an inventory of devices
US5787430A (en) * 1994-06-30 1998-07-28 International Business Machines Corporation Variable length data sequence backtracking a trie structure
CA2210982A1 (en) * 1995-01-26 1996-08-01 Hans Verner Thorsen Method and system for accessing data
US5778370A (en) * 1995-08-25 1998-07-07 Emerson; Mark L. Data village system
US5787274A (en) * 1995-11-29 1998-07-28 International Business Machines Corporation Data mining method and system for generating a decision tree classifier for data records based on a minimum description length (MDL) and presorting of records
US5893100A (en) * 1996-11-27 1999-04-06 Teralogic, Incorporated System and method for tree ordered coding of sparse data sets
US6292810B1 (en) * 1997-03-03 2001-09-18 Richard Steele Richards Polymorphic enhanced modeling
US6115716A (en) * 1997-03-14 2000-09-05 Nokia Telecommunications Oy Method for implementing an associative memory based on a digital trie structure
US6006196A (en) 1997-05-01 1999-12-21 International Business Machines Corporation Method of estimating future replenishment requirements and inventory levels in physical distribution networks
US5884300A (en) 1997-05-01 1999-03-16 At&T Wireless Services Inc. Inventory pipeline management system
US6081814A (en) * 1997-07-07 2000-06-27 Novell, Inc. Document reference environment manager
US6292797B1 (en) * 1997-08-07 2001-09-18 New York University Method for determining actionable patterns in a database
JP4004619B2 (ja) 1998-01-08 2007-11-07 富士通株式会社 自動在庫引当が可能な在庫管理装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100944756B1 (ko) * 2009-10-29 2010-03-03 주식회사 이지마루 대용량 레파지토리 구성을 위한 데이터 저장 구조

Also Published As

Publication number Publication date
EP1110160A1 (en) 2001-06-27
AU5479099A (en) 2000-03-06
US6374249B1 (en) 2002-04-16
TW448375B (en) 2001-08-01
JP2002522848A (ja) 2002-07-23
CA2339554A1 (en) 2000-02-24
WO2000010109A1 (en) 2000-02-24
EP2172889A1 (en) 2010-04-07

Similar Documents

Publication Publication Date Title
US6321230B1 (en) Binary tree with override nodes for representing a time-varying function in an enterprise model
US7752245B2 (en) Binary trees for detecting inventory problems in an enterprise model
KR20010092265A (ko) 기업 모델에서 시변 변수를 위한 데이터 구조 및 동작
US5899985A (en) Inference method and inference system
US6510457B1 (en) Data analysis method and apparatus for data mining
JP2004518226A (ja) データベースシステムおよびクエリオプティマイザ
CN105989015B (zh) 一种数据库扩容方法和装置以及访问数据库的方法和装置
CN112507354A (zh) 一种基于图数据库的权限管理的方法及系统
CN109635119A (zh) 一种基于本体融合的工业大数据集成系统
Karegar et al. Data-mining by probability-based patterns
CN110297874B (zh) 基于Voronoi的多尺度道路网skyline查询方法
Alves et al. Update rules in datalog programs
Torre-Bastida et al. Query rewriting for an incremental search in heterogeneous linked data sources
US7577649B2 (en) Engine for validating proposed changes to an electronic entity
Yang et al. Querying a collection of continuous functions
MXPA01000935A (en) Data structure and operations for time-varying variable in an enterprise model
Benferhat et al. On the Compilation of Stratified Belief Bases under Linear and Possibilistic Logic Policies.
JPS62191922A (ja) デ−タ・ベ−ス検索システム
Dressler Assumption-Based Truth Maintenance
KR100345445B1 (ko) 주기억장치 데이터베이스 관리시스템에서의 티-트리 인덱스 키 관리방법
Mouaddib et al. New directions in modeling and control of progressive processing
Karim et al. Attributed grammatical evolution with lookahead for the multiple knapsack problem
CN116644216A (zh) 一种索引处理的方法及系统、设备、介质
KR100319153B1 (ko) 사용자의 권한 등급에 따른 이미지 검색 시스템
CN116579303A (zh) Bom构建方法、处理器及机器可读存储介质

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid