IP Library › Granted Patent US 12,645,764
Granted Patent B2
US 12,645,764 · App. 18/082,041 · Granted Jun 2, 2026

Cyclic pattern detection and prediction execution

Inventor: Nai Minh Quach (Vitry sur Seine, FR)
Assignee: SAP SE
G06F18/26G06F16/215G06F16/2272G06F16/2365G06F16/24568G06F16/2477G06F18/10G06F18/214G06F18/2321G06N5/022G06N20/00
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,645,764
App. No.
18/082,041
Granted
Jun 2, 2026
Kind
B2
Abstract

The present disclosure relates to computer-implemented methods, software, and systems for identifying cyclic patterns in data observations collected as time series with irregular time spacing between each other. Distribution of the time occurrences associated with the data observations is analyzed to identify a cyclic pattern. A list of time gaps between each of the data observations is defined. Time gaps are defined according to a common time measure. The time gaps of the list of time gaps are evaluated using two reader operators that separately browse through the list of time gaps. A cyclic pattern is identified in the list of time gaps based on the iteratively evaluating. The identifying comprises identifying (i) a length of cycle within the cycle patterns and (ii) an index element of a time gap of the list of time gaps.

Claims (68)

1 . A computer-implemented method, the method comprising:

obtaining data observations associated with respective time occurrences associated with a monitored process executed on a platform system, wherein the respective time occurrences are spaced in time from each other with irregular time intervals;

analyzing a distribution of the respective time occurrences associated with the data observations to identify a cyclic pattern, wherein the analyzing comprises:

defining a list of time gaps, wherein a time gap is defined as a difference between each two consecutive data observations from a set of consecutive data observations, a number of consecutive data observations in the set being defined according to a time measure for the list, and wherein each time gap in the list of time gaps is associated with a respective data observation;

iteratively evaluating, as evaluated time gaps, lists of time gaps associated with data observations using two reader operators that separately browse through the lists of time gaps, wherein each of the two reader operators start from a respective position in the data observations, the respective positions where the two reader operators start being subsequent to one another, wherein each reader operator identifies, for each evaluated time gap of the evaluated time gaps, subsequent time gaps after each evaluated time gap of the evaluated time gaps, wherein the iteratively evaluating is performed to determine a cycle in the list of time gaps that comprises a cyclic set of the subsequent time gaps of the list of time gaps that is repetitive in the list of time gaps, and wherein the iterative evaluation of the time gaps using the two reader operators comprises:

performing iterative evaluation using two respective moving pointers through the time gaps of the list of time gaps to determine, at each iteration of each moving pointer, one or more sets of subsequent time gaps of the list of time gaps, wherein the two respective moving pointers are associated with a different iterative step between time gaps in the list of time gaps, and wherein the cycle is determined when the cyclic set of subsequent time gaps is identified at a correspondingly iteratively evaluated time gap by each of the two reader operators; and

identifying, as an identified cyclic pattern, a cyclic pattern in the list of time gaps based on the iteratively evaluating, wherein the identifying comprises identifying (i) a length of cycle within the cycle patterns and (ii) an index element of a time gap of the list of time gaps that is associated with a start element of a first cycle identified in the list of time gaps;

performing a data analysis over the data observations according to the identified cyclic pattern to generate a prediction model to predict future data observations;

in response to receiving a request to predict a future horizon,

executing the prediction model to obtain prediction result for the future horizon, and

generating instructions including an adjustment of the execution of the monitored process for the future horizon according to the prediction result; and

providing the instructions to the platform system.

2 . The computer-implemented method of claim 1 , the method comprising:

obtaining the data observations from a system monitoring the monitored process to identify availability of service resources associated with the process execution.

3 . The computer-implemented method of claim 1 , the method comprising:

obtaining the data observations as output from an execution of an instance of the monitored process on the platform system.

4 . The computer-implemented method of claim 1 , the method comprising:

predicting the future data observations based on executing the prediction model, wherein the future data observations are predicted for a future horizon defined according to the cyclic pattern.

5 . The computer-implemented method of claim 1 wherein performing the iterative evaluation using two respective moving pointers through the time gaps of the list of time gaps comprises:

iterating, using each of the moving pointers, over a respective set of time gaps of the list of time gaps, wherein a first iterative step associated with a first moving pointer of a first reader operator is twice as slow as a second iterative step associated with a second moving pointer of a second reader operator.

6 . The computer-implemented method of claim 1 , wherein identifying the cyclic pattern comprises:

identifying a first time gap in the list of time gaps that is iterated using a first reader operator that is associated with a first set of subsequent time gaps of the list of time gaps that matches a second time gap in the list of time gaps that is iterated using a second reader operator that is associated with a second set of subsequent time gaps, wherein the first set of subsequent time gaps is equivalent to the second set of subsequent time gaps, and wherein the first time gap is different than the second time gap;

identifying the length of cycle to correspond to a number of time gaps in the first set of subsequent time gaps; and

identifying the index element of a time gap of the list of time gaps as the start element of the cycle to correspond to a lowest index element of either a first index element corresponding to the first time gap or a second index element corresponding to the second time gap in the list of time gaps.

7 . The computer-implemented method of claim 1 , the method comprising:

generating a time series for distributing future data observations based on an initial time instance for the time series and the identified cyclic pattern.

8 . The computer-implemented method of claim 1 , wherein a first moving pointer associated with a first reader operator browses over each time gaps of the list of time gaps, wherein a second moving pointer associated with a second reader operator browses over every other time gap of the list of time gaps, wherein the first reader operator and the second reader operator terminate browsing when an evaluation occurs of two time gap instances associated with equivalent sets of subsequent time gaps within the list of time gaps.

9 . The computer-implemented method of claim 1 , wherein the time measure for the list is a unit of time selected from the group consisting of a day, a week, a month, a quarter, and a year.

10 . A computer-implemented system comprising:

one or more processors; and

one or more computer-readable memories coupled to the one or more processors and having instructions stored thereon that are executable by the one or more processors to perform operations comprising:

obtaining data observations associated with respective time occurrences associated with a monitored process executed on a platform system, wherein the respective time occurrences are spaced in time from each other with irregular time intervals;

analyzing a distribution of the respective time occurrences associated with the data observations to identify a cyclic pattern, wherein the analyzing comprises:

defining a list of time gaps, wherein a time gap is defined as a difference between each two consecutive data observations from a set of consecutive data observations, a number of consecutive data observations in the set being defined according to a time measure for the list, and wherein each time gap in the list of time gaps is associated with a respective data observation;

iteratively evaluating, as evaluated time gaps, lists of time gaps associated with data observations using two reader operators that separately browse through the lists of time gaps, wherein each of the two reader operators start from a respective position in the data observations, the respective positions where the two reader operators start being subsequent to one another, wherein each reader operator identifies, for each evaluated time gap of the evaluated time gaps, subsequent time gaps after each evaluated time gap of the evaluated time gaps, wherein the iteratively evaluating is performed to determine a cycle in the list of time gaps that comprises a cyclic set of the subsequent time gaps of the list of time gaps that is repetitive in the list of time gaps, and wherein the iterative evaluation of the time gaps using the two reader operators comprises:

performing iterative evaluation using two respective moving pointers through the time gaps of the list of time gaps to determine, at each iteration of each moving pointer, one or more sets of subsequent time gaps of the list of time gaps, wherein the two respective moving pointers are associated with a different iterative step between time gaps in the list of time gaps, and wherein the cycle is determined when the cyclic set of subsequent time gaps is identified at a correspondingly iteratively evaluated time gap by each of the two reader operators; and

identifying, as an identified cyclic pattern, a cyclic pattern in the list of time gaps based on the iteratively evaluating, wherein the identifying comprises identifying (i) a length of cycle within the cycle patterns and (ii) an index element of a time gap of the list of time gaps that is associated with a start element of a first cycle identified in the list of time gaps;

performing a data analysis over the data observations according to the identified cyclic pattern to generate a prediction model to predict future data observations;

in response to receiving a request to predict a future horizon,

executing the prediction model to obtain prediction result for the future horizon, and

generating instructions including an adjustment of the execution of the monitored process for the future horizon according to the prediction result; and

providing the instructions to the platform system.

11 . The computer-implemented system of claim 10 , wherein the one or more computer-readable memories further comprise instructions stored thereon, which when executed by the one or more processors perform operations comprising:

obtaining the data observations from a system monitoring the monitored process to identify availability of service resources associated with the process execution.

12 . The computer-implemented system of claim 10 , wherein the one or more computer-readable memories further comprise instructions stored thereon, which when executed by the one or more processors perform operations comprising:

obtaining the data observations as output from an execution of an instance of the monitored process on the platform system.

13 . The computer-implemented system of claim 10 , wherein the one or more computer-readable memories further comprise instructions stored thereon, which when executed by the one or more processors perform operations comprising:

predicting the future data observations based on executing the prediction model, wherein the future data observations are predicted for a future horizon defined according to the cyclic pattern.

14 . The computer-implemented system of claim 10 , wherein performing the iterative evaluation using two respective moving pointers through the time gaps of the list of time gaps comprises:

iterating, using each of the moving pointers, over a respective set of time gaps of the list of time gaps, wherein a first iterative step associated with a first moving pointer of a first reader operator is twice as slow as a second iterative step associated with a second moving pointer of a second reader operator.

15 . A non-transitory, computer-readable medium coupled to one or more processors and having instructions stored thereon which, when executed by the one or more processors, cause the one or more processors to perform operations comprising:

obtaining data observations associated with respective time occurrences associated with a monitored process executed on a platform system, wherein the respective time occurrences are spaced in time from each other with irregular time intervals;

analyzing a distribution of the respective time occurrences associated with the data observations to identify a cyclic pattern, wherein the analyzing comprises:

defining a list of time gaps, wherein a time gap is defined as a difference between each two consecutive data observations from a set of consecutive data observations, a number of consecutive data observations in the set being defined according to a time measure for the list, and wherein each time gap in the list of time gaps is associated with a respective data observation;

iteratively evaluating, as evaluated time gaps, lists of time gaps associated with data observations using two reader operators that separately browse through the lists of time gaps, wherein each of the two reader operators start from a respective position in the data observations, the respective positions where the two reader operators start being subsequent to one another, wherein each reader operator identifies, for each evaluated time gap of the evaluated time gaps, subsequent time gaps after each evaluated time gap of the evaluated time gaps, wherein the iteratively evaluating is performed to determine a cycle in the list of time gaps that comprises a cyclic set of the subsequent time gaps of the list of time gaps that is repetitive in the list of time gaps, and wherein the iterative evaluation of the time gaps using the two reader operators comprises:

performing iterative evaluation using two respective moving pointers through the time gaps of the list of time gaps to determine, at each iteration of each moving pointer, one or more sets of subsequent time gaps of the list of time gaps, wherein the two respective moving pointers are associated with a different iterative step between time gaps in the list of time gaps, and wherein the cycle is determined when the cyclic set of subsequent time gaps is identified at a correspondingly iteratively evaluated time gap by each of the two reader operators; and

identifying, as an identified cyclic pattern, a cyclic pattern in the list of time gaps based on the iteratively evaluating, wherein the identifying comprises identifying (i) a length of cycle within the cycle patterns and (ii) an index element of a time gap of the list of time gaps that is associated with a start element of a first cycle identified in the list of time gaps;

performing a data analysis over the data observations according to the identified cyclic pattern to generate a prediction model to predict future data observations;

in response to receiving a request to predict a future horizon,

executing the prediction model to obtain prediction result for the future horizon, and

generating instructions including an adjustment of the execution of the monitored process for the future horizon according to the prediction result; and

providing the instructions to the platform system.

16 . The non-transitory, computer-readable medium of claim 15 , wherein the non-transitory, computer-readable medium further comprise instructions stored thereon, which when executed by the one or more processors perform operations comprising:

obtaining the data observations from a system monitoring the monitored process to identify availability of service resources associated with the process execution.

17 . The non-transitory, computer-readable medium of claim 15 , wherein the non-transitory, computer-readable medium further comprise instructions stored thereon, which when executed by the one or more processors perform operations comprising:

obtaining the data observations as output from an execution of an instance of the monitored process on the platform system.

18 . The non-transitory, computer-readable medium of claim 15 , wherein performing the iterative evaluation using two respective moving pointers through the time gaps of the list of time gaps comprises:

iterating, using each of the moving pointers, over a respective set of time gaps of the list of time gaps, wherein a first iterative step associated with a first moving pointer of a first reader operator is twice as slow as a second iterative step associated with a second moving pointer of a second reader operator.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2022
From: QUACH, NAI MINH
To: SAP SE
Reel/Frame 062109/0446 →
Continuity (1)
Related Publication 20240202287A1 · Jun 20, 2024
References Cited (19)
US 11663290B2 · Vishwakarma · 2023 [cited by examiner]
US 20100031156A1 · Doyle · 2010 [cited by examiner]
US 20110119374A1 · Ruhl · 2011 [cited by examiner]
US 20140108640A1 · Mathis · 2014 [cited by examiner]
US 20160062950A1 · Brodersen · 2016 [cited by examiner]
US 20190228353A1 · Gefen · 2019 [cited by examiner]
US 20190392252A1 · Fighel · 2019 [cited by examiner]
US 20210319341A1 · Han · 2021 [cited by examiner]
US 20220292308A1 · Schwiep · 2022 [cited by examiner]
US 20230022401A1 · Amiri · 2023 [cited by examiner]
US 20230119568A1 · Wang · 2023 [cited by examiner]
US 20230122150A1 · Rawat · 2023 [cited by examiner]
US 20230185579A1 · Eranpurwala · 2023 [cited by examiner]
WO WO2020164740A1 · 2020 [cited by examiner]
WO WO2022046734A1 · 2022 [cited by examiner]
Yun Yang et al., “Efficient and robust time series prediction model based on REMD-MMLP with temporal-window”, Expert Systems with Applications, vol. 207, Nov. 30, 2022, 117979, pp. [cited by examiner]
Rohitash Chandra et al., “Evaluation of Deep Learning Models for Multi-Step Ahead Time Series Prediction”, IEEE Access ( vol. 9, May 2021, pp. 83105-83123. [cited by examiner]
Wikipedia.org [online], “Cycle detection” created on May 2004, retrieved on Dec. 15, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Cycle_detection#:˜: text=Floyd's%20cycle%2Dfinding%20algorithm%20is,The%20Tort… [cited by applicant]
Wikipedia.org [online], “Training, validation, and test data sets” created on Feb. 2005, retrieved on Dec. 15, 2022, retrieved from URL <https://en.wikipedia.org/wiki/Training,_validation,_and_test data sets#Validation … [cited by applicant]