The present disclosure relates to root cause diagnostics. More particularly, it relates to performing root cause diagnostics of machine and/or system faults using temporal data mining for fault data correlation.
In a manufacturing or other machine-based environment, faults often occur during normal operation of the machines. In order to maximize productivity and lower costs, it is important to quickly and accurately remedy faults, and return to a normal operating state. As faults occur over a period of time, the sequence of events surrounding each fault can be monitored and recorded in data series, including preconditions that lead to a fault, and post conditions that follow the fault.
In many event sequences, individual time-ordered events in the data series are associated with time durations. In many instances, the time durations may carry useful information. For example, in line status logs of manufacturing plants, the durations of various events carry important information. Looking to immediate preconditions before a fault occurs can be helpful to diagnose the cause of the fault, but may not accurately determine the root cause of the fault, as some faults are the result of a series of events. It would be beneficial to develop a process to extract useful information from temporal data in a manufacturing or machine-based environment to assist in fault diagnostics and root cause analysis for a series of faults or events. Accordingly, there is a need in the art for root cause diagnostics of machine and system faults using temporal data mining for fault data correlation.
An embodiment of the invention includes a method for fault data correlation in a diagnostic system. The method includes receiving the fault data including a plurality of faults collected over a period of time, and identifying a plurality of episodes within the fault data, where each episode includes a sequence of the faults. The method further includes calculating a frequency of the episodes within the fault data, calculating a correlation confidence of the faults relative to the episodes as a function of the frequency of the episodes, and outputting a report of the faults with the correlation confidence.
A further embodiment of the invention includes a system for fault data correlation in a diagnostic system. The system includes a host system and a data storage device, holding fault data, in communication with the host system. A temporal data mining (TDM) diagnostics tool executes on the host system. The TDM diagnostics tool includes computer instructions for receiving the fault data including a plurality of faults collected over a period of time, and identifying a plurality of episodes within the fault data, where each episode includes a sequence of the faults. The TDM diagnostics tool further includes computer instructions for calculating a frequency of the episodes within the fault data, calculating a correlation confidence of the faults relative to the episodes as a function of the frequency of the episodes, and outputting a report of the faults with the correlation confidence.
Another embodiment of the invention includes a computer program product for fault data correlation in a diagnostic system. The computer program product includes a storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for implementing a method. The method includes receiving the fault data including a plurality of faults collected over a period of time, and identifying a plurality of episodes within the fault data, where each episode includes a sequence of the faults. The method further includes calculating a frequency of the episodes within the fault data, calculating a correlation confidence of the faults relative to the episodes as a function of the frequency of the episodes, and outputting a report of the faults with the correlation confidence.
Other methods, systems, and/or computer program products according to embodiments will be or become apparent to one with skill in the art upon review of the following drawings and detailed description. It is intended that all such additional methods, computer program products, and/or systems be included within the description, be within the scope of the present invention, and be protected by the accompanying claims.
Referring to the exemplary drawings wherein like elements are numbered alike in the accompanying figures:
Exemplary embodiments, as shown and described by the various figures and the accompanying text, provide systems, methods, and computer program products for performing root cause diagnostics of machine and/or system faults using temporal data mining for fault data correlation. A manufacturing process, or other machine-based process, can be divided into a sequence of controlled events involving multiple machines. Each event has duration, from a start time to an end time, as well as preconditions and post conditions. A sequence of events can vary in length and complexity from one machine to another within a given process. Machines in manufacturing systems may enter a faulted state if one of the events in the sequence exceeds its maximum allowed duration or one of the event's preconditions changes after the start of the event, etc. Thus, machine faults can be viewed as a type of temporal data. In exemplary embodiments, temporal data mining is applied to find hidden sequences, such as episodes of faults, which are noteworthy in identifying likely root causes of machine faults.
Turning now to the drawings, it will be seen that in
The IT network 106 and the controller network 107 may be any type of communications networks known in the art. For example, the IT network 106 and/or the controller network 107 may be intranets, extranets, or internetworks, such as the Internet, or a combination thereof. The IT network 106 and/or the controller network 107 can be wireless and/or wired networks. Although the IT network 106 and the controller network 107 are depicted as separate networks, it will be understood that the networks can be combined or further subdivided within the scope of the invention.
The machine controllers 108 may be any type of programmable logic controller (PLC), programmable controller (PC), computer numerical control (CNC), or any type of embedded controller hardware that hosts software to control a machine and diagnose machine faults. In exemplary embodiments, each machine controller 108 interfaces with sensors and/or other data collection means (not depicted) to report machine faults and other events to the host system 102. While only two machine controllers 108 are depicted in the system 100 of
In exemplary embodiments, the host system 102 accesses and stores information to a data storage device 110. The data storage device 110 refers to any type of storage and may comprise a secondary storage element, e.g., hard disk drive, tape, or a storage subsystem that is external to the host system 102. In alternate exemplary embodiments, the data storage device 110 is internal to the host system 102. It will be understood that the data storage device 110 shown in
In exemplary embodiments, the host system 102 executes various applications, such as a temporal data mining (TDM) diagnostics tool 114. The TDM diagnostics tool 114 processes the fault data 112 and outputs one or more reports 116. The reports 116 can be stored on the data storage device 110 for future access and archival purposes. In exemplary embodiments, the TDM diagnostics tool 114 employs temporal data mining on the fault data 112 as detailed herein and described in U.S. patent application Ser. No. 11/068,498, entitled SYSTEM AND METHOD FOR MINING OF TEMPORAL DATA, filed on Feb. 28, 2005, of common assignment herewith and incorporated by reference herein in its entirety. While the TDM diagnostics tool 114 is depicted as a single application executing upon the host system 102, it will be understood that any module, sub-component, or portion of the TDM diagnostics tool 114 may be executed or stored on any combination of the user systems 104, e.g., a distributed application architecture. Other applications, e.g., business applications, a web server, etc., may also be implemented by the host system 102 as dictated by the needs of the enterprise of the host system 102.
In exemplary embodiments, the TDM diagnostics tool 114 analyzes the sequence and duration of machine faults in the fault data 112 for episodes. An episode is a sequence of faults or other events that appear as a pattern within the data. The faults or events in an episode may be identified by a single machine controller 108 or across multiple machine controllers 108 in a sequence. For example, as depicted in
The TDM diagnostics tool 114 may also support, categorizing, sorting and filtering of episodes to remove episode types that are known or expected from further analysis. For example, in a typical manufacturing system, machine faults can be classified as well-known episodes, expected episodes, and unexpected episodes. Well-known episodes include fault states that the system 100 or machine controllers 108 are designed to enter in response to a known event. For example, an emergency stop event may trigger machines controllers 108 to place their associated machines in an emergency stop faulted state. Expected episodes include faults within the same component of a machine, and the subsequent faults happen as a result of an incomplete or inappropriate recovery process of the root cause fault. Unexpected episodes include faults that are reported by machine controllers 108 for multiple machines or in different components of the same machine, where correlation between the events or faults may not otherwise be known. As users analyze the reports 116 generated by the TDM diagnostics tool 114, the TDM diagnostics tool 114 can be reconfigured to block reporting of well-known and expected episodes such that only unexpected episodes are reported. Thus, a user's attention can be focused on troubleshooting unexpected episodes and identifying the root cause thereof.
In exemplary embodiments, the TDM diagnostics tool 114 correlates faults and calculates a confidence value of the correlations. For example, the TDM diagnostics tool 114 may analyze the fault data 112 and determine the number of times within a sequence, such as the sequence 202 of
The TDM diagnostics tool 114 may generate multiple reports 116 to assist in diagnosing the root cause of faults collected in the fault data 112. An exemplary report 300 is depicted in
Turning now to
At step 404, the TDM diagnostics tool 114 identifies a plurality of episodes within the fault data 112, where each episode includes a sequence of the faults. The process of identifying episodes is described in greater detail further herein. The TDM diagnostics tool 114 may also identify an initial fault in the sequence of faults in one of the episodes as a root cause, and report the root cause. Furthermore, the TDM diagnostics tool 114 may calculate a downtime as time duration between an initial fault and a final fault in the sequence of faults in one of the episodes, and report the downtime.
At step 406, the TDM diagnostics tool 114 calculates a frequency of the episodes within the fault data 112. The frequency of the episodes may be a count of a number of episode instances within the fault data 112. The TDM diagnostics tool 114 may additionally categorize each of the episodes as an episode type, where the episode type is one of a well-known episode, an expected episode, and an unexpected episode. Sorting or filtering based on the episode type may be performed to further enhance reporting options.
At step 408, the TDM diagnostics tool 114 calculates a correlation confidence of the faults relative to the episodes as a function of the frequency of the episodes. The correlation confidence may be calculated as a confidence that a first fault caused a second fault. Alternatively or additionally, the correlation confidence may be calculated as a confidence that the second fault was caused by the first fault.
At step 410, the TDM diagnostics tool 114 outputs a report of the faults with the correlation confidence, such as the report 300 of
The process used by the TDM diagnostics tool 114 of
Successive passes are made through the temporal data series to iteratively find all frequent principal episodes. This is shown at steps 518 to 524. In step 518, in the first iteration, all frequent principal episodes of length l are computed; in an iteration, in general, all frequent principal episodes of the particular length are computed at step 518. This is typically done by identifying one or more occurrences of a candidate episode in the temporal data series, incrementing a count for each identified occurrence, and determining frequent episodes from the counts of occurrence in comparison to the threshold frequency. A test for whether a frequent episode is principal is made, and if the episode passes the test it is included in successive steps. Next, at step 520, frequent principal episodes of the particular length are combined in specific ways to produce combined episodes of an increased length. Typically, the increased length may be one more than the particular length. The combined episodes are tested, and those having appropriate subepisodes which are not frequent principal episodes are removed, to leave a set of candidate episodes for the next iteration. The iteration index is incremented at step 522, and may match the value of the increased length. The particular length may be reset to the increased length for the next iterative pass through the temporal data series. If no new candidate episodes are left after removing combined episodes having subepisodes which are not frequent principal episodes, iteration terminates at a step 524. The method continues at step 526 to compute the collection of all frequent principal episodes (i.e. frequent principal episodes of all lengths) by combining all the sets of frequent principal episodes found in the iteration steps 518 to 524. In a step 528, the set of all frequent principal episodes is provided as output of the method.
Also shown in
To describe mathematical details that are referenced herein, first is a description of some of the terms used.
Temporal data series discussed in this disclosure are made up of triplets (Ei, ti, τi), in which an event Ei begins at a start time ti and ends at an end time τi, with τi>ti. Both ti and τi may be integers. Events in the temporal data series are not instantaneous and thus require for their specification both start and end times. Temporal data series discussed in this disclosure are typically ordered so that events are arranged in order of increasing (or at least, nondecreasing) end time value. An example generic temporal data series as described herein may be denoted <(E1, t1, τ1), . . . (En, tn, τn)>.
The temporal data series may also be denoted an event sequence (s, Ts, Te) with Ts and Te fixing the lower and upper extremities of the event sequence. For the sake of notational succinctness this triple is denoted by s. The length n of the temporal data series may be denoted |s|. The events Ei may be drawn from a set E of possible event types which may be provided as an input at step 512, as described above.
The dwelling time or time duration of event Ei is the difference Δi=τi−ti. The events in the temporal data series may have varying dwelling times. Often, in event sequences as discussed herein where the events have associated time durations, the time durations of events can carry useful information.
Example events may also be denoted herein by A, B, C, and so on. The associated time/duration value(s) may be suppressed when the order of events is clear from the context, or when the order is not relevant to the discussion. An example event sequence of a temporal data series may be (A, 1, 2), (B, 3, 4), (C, 4, 5), (E, 12, 13), (A, 14, 16), (B, 15, 19), (C, 16, 22).
A particular event type may be of interest for frequent episode discovery when its dwelling time lies within a certain range or time interval, e.g., 1 to 10 minutes, or in a set of time intervals. For example, in manufacturing plant data, downtime events of short duration, say, between 10 and 30 minutes, may be of interest. In another example, downtime events of either very short (between 1 and 10 minutes) or very long duration (between 30 and 180 minutes) may be of interest.
The set of all allowable dwelling times for events may be a design choice made by the user of a temporal data mining method. This set is denoted herein as B={B1, . . . , BK}. B is a collection of time intervals. That is, B is a discrete set with a finite number of elements, but each element is a time interval. In the instances discussed above of manufacturing plant data. B may be taken as the set containing the single interval [10-30] in the first episode, B={[10-30]}. In the other example above, B may be taken as B={[1-10], [30-180]}.
It may be the case that an event in an episode may be of interest for frequent episode discovery only for some, and not all, intervals in B. Thus, an episode includes an associate between a node of the episode and possible durations that are allowed as dwelling times for that node in the episode. An episode therefore includes an ordered set of nodes, each node having an associated event type and an associated set of intervals (in B) that are allowed as durations for that node. The length or size of an episode is the number of nodes in it. For an episode denoted by, e.g., α, its length may be denoted by |α|.
An ordered sequence of events, e.g., (A→B→C), may be denoted an episode, but this specification is not complete, in the context of this disclosure, without the association between nodes and allowed dwelling times. This association may be specified by providing a map dα which associates with each node of the episode α a collection of intervals in B, that is, a subset of B.
For purposes of discussion in this disclosure, the associated subsets of B may also be specified directly in the ordered sequence of events, for short sequences. If, for instance B={[1-2], [30-100]}, a three node episode may be specified as (A([1-2])→B([1-2], [30-100])→C([1-2])). An episode occurs in the temporal data series if the events of the episode occur in the temporal data series in the same order as in the episode, and have durations allowed by the association between nodes of the episode and intervals in B.
Returning to discussion of the example seven-event sequence above, consider the three-node episode (A([1-2])→B([1-2], [30-100])→C([1-2])). The sequence of event-time value pairs (A, 1, 2), (B, 3, 4), (C, 4, 5) is an occurrence of the episode. The sequence (A, 14, 16), (B, 3, 4), (C, 4, 5) is not an occurrence of the episode, since A occurs later than B and C. Nor is the sequence (A, 1, 2), (B, 3, 4), (C, 16, 22) an occurrence of the episode, since C has a duration longer than allowed for a dwelling time. There is only one occurrence of the episode (A([1-2])→B([1-2], [30-100])→C([1-2])) in the example event sequence.
The specification of B allows the user to direct the search for frequent episodes of the kind that are of interest to the user. Towards this end, it may be preferable to specify event-specific B-sets. The set of all possible time intervals, B, would then be a function of the event type associated with the node under consideration.
For example, if an episode α is defined formally as a set of nodes Vα={v1, . . . , vn} on which is defined a total order <α, the association between each node and an event type may be provided by a map gα from the set Vα to the set of event types E. Thus an event specific B-set may be denoted as Bgα(v). Also, as previously discussed, the allowed dwelling times may be provided by a map dα from the set Vα to a subset of B.
In the case where event-specific allowable dwelling times are used, then, for each node vεVα, the set of allowed dwelling times may be regarded as a subset of Bgα(v), i.e. dα(v)ε2Bgα(v) (where 2Bgα(v) is the set of all subsets of Bgα(v), the power set of Bgα(v)). Thus, embodiments of the method described herein would be able to handle such event-specific B-sets. However, for the sake of notational convenience, the set of time intervals is denoted herein simply as B.
Consider the episode α specified as α=(Vα, <α, gα, da). An episode β specified as β=(Vβ, <β, gβ, dβ), is a subepisode of the episode α, and written β≦α, if there is a 1-to-1 map from the set of nodes of β into the set of nodes of α, ƒβα; Vβ→Vα with the following three properties: First, for each node v in β, the associated event is the same as the event associated with the node in α to which v is mapped by ƒβα, that is, gα(ƒβα(v))=gβ(v). Second, for each node v in β, every allowed dwelling time for the event associated with the node in α to which v is mapped by ƒβα is also an allowed dwelling time for the event associated with the node v, that is, dα(ƒβα(v))⊂dβ(v). Finally, the ordering of nodes is preserved under the mapping between α and β; that is, for each pair of nodes v and w in β, with v<βw under the order relation <β, the nodes in α to which v and w are mapped have the same ordering under the order relation <α, i.e., ƒβα(v)<αƒβα(w).
According to the definition of the subepisode, it does not suffice if just the relative ordering of events in the candidate subepisode matches that of the episode. In addition, the dwelling time constraints on the events of the candidate subepisode are to be consistent with those that the episode itself would allow.
A strict subepisode β of an episode α is a subepisode for which equality with α does not hold, i.e. β≦α and β≠α. A strict subepisode may be denoted by βα. When β≦α, α may also be denoted a superepisode of β, and written α≧β. Similarly, a strict superepisode may be denoted α
β.
An episode α is said to occur in the temporal data series if events of the proper event type occur in the proper order in the temporal data series, with allowed dwelling times, as defined by the set of nodes, ordering, and maps specified by the episode α=(Vα, <α, gα, dα). The occurrence of episode α in the event sequence (s, Ts, Te) is written as αs. An occurrence of an episode in the temporal data series is also an occurrence of each of its subepisodes. That is, if β≦α, then α
(s, Ts, Te)=>β
(s, Ts, Te).
A measure λs(α) of how often α occurs in the event sequence s may be defined. This may be any reasonable notation of frequency, in particular, the frequency measures defined below for non-overlapping and non-interleaved occurrences.
One way of defining the frequency of occurrence of an episode in a temporal data series may be by counting the number of occurrences. In the example event sequence (A, 1, 2), (B, 3, 4), (C, 4, 5), (E, 12, 13), (A, 14, 16), (B, 15, 19), (C, 16, 22), the episode (A([1-10])→B([1-10])→C([1-10])), occurring 4 times in the event sequence, results in a frequency 4. Often, the frequency threshold is expressed as a fraction of data length. Thus, if the threshold input is the fraction, th, then, the above episode would become frequent in the given event sequence (which is of length of 7) if 4/7 is greater than th.
A non-overlapping occurrence of an episode is one where no event of the episode occurs between two events of another occurrence of the episode. For example, there are two non-overlapping occurrences of the episode (A([1-10])→B([1-10])→C([1-10])) in the event sequence (A, 1, 2), (B, 3, 4), (C, 4, 5), (E, 12, 13), (A, 14, 16), (B, 15, 19), (C, 16, 22). It suffices to track only the innermost occurrence of (A([1-10])→B([1-10])→C([1-10])) in an event sequence like (A, 1, 2), (B, 2, 3), (A, 3, 4), (B, 4, 6), (A, 7, 9), (B, 8, 10), . . . , and this forestalls arbitrarily large memory and processor time consumption.
A non-interleaved occurrence of an episode may be defined as follows. Each occurrence of an episode is may be considered as a 1-to-1 map, h, from the nodes of the episode to events in the temporal data series. For an episode α, the number of nodes in α may be denoted by |α| and the ordered sequence of nodes of α may be referred to as v1, v2, . . . . The jth node of the episode α may also be denoted herein as α.g[j].
Let h1 and h2 denote two different occurrences of α. Thus, h1(vi) denotes the event in the temporal data series that corresponds to the node vi of the episode α in the occurrence represented by h1. By h1(vi)<h2(vj) is meant that the event (in the temporal data series) corresponding to node vi in occurrence h1 has an earlier occurrence time than that of the event corresponding to node vj in occurrence h2.
Two occurrences, h1 and h2 of an episode α are said to be non-interleaved if either
h2(vj)>h1(vj+1) ∀j, 1≦j<|α|
or
h1(vj)>h2(vj+1) ∀j, 1≦j<|α|.
As an example, the event sequence (A, 1, 3), (B, 2, 4), (D, 4, 5), (A, 5, 6), (C, 7, 10), (B, 11, 13), (C, 15, 18) contains two non-interleaved occurrences of the episode (A([1-2])→B([2])→C([3])) namely, <(A, 1, 3), (B, 2, 4), (C, 7, 10)> and <(A, 5, 6), (B, 11, 13), (C, 15, 18)>. The A event of the second non-interleaved occurrence occurs in the event sequence after the B event of the first non-interleaved occurrence, and the B event of the second non-interleaved occurrence occurs in the event sequence after the C event of the first non-interleaved occurrence.
In the embodiments discussed below, automata are used to identify and recognize occurrences of candidate episodes. In terms of the automata that recognize each occurrence, this definition of non-interleaved means the following. An instance of the automaton for a candidate episode α can transit into the state corresponding to a node, say v2, only if an earlier instance (if any) of the automaton has already transited into state v3 or higher. Non-interleaved occurrences would include some overlapped occurrences though they do not include all occurrences.
The definition introduced above for frequency of occurrences of an episode in a temporal data series can be refined by considering an episode to have occurred only if its occurrence meets the criteria for a non-overlapping occurrence, or meets the criteria for a non-interleaved occurrence. Which of these two different criteria are intended is clear from the context in the discussion below. The definitions of non-overlapping occurrences and non-interleaved occurrences thus provide two frequency measures to apply to episode occurrence in a temporal data series.
The general procedure for discovering frequent episodes is as follows. First all frequent 1-node episodes in the temporal data series are found. Then these are combined in all possible ways to make candidate 2-node episodes. By calculating the frequencies of these candidates, all frequent 2-node episodes are obtained. These are then used to obtain candidate 3-node episodes and so on. The general method provides a reduced number of passes over the data series. The main computationally intensive step in frequent episode discovery is that of calculating the frequency of sets of candidate episodes.
Temporal data mining of frequent episodes described herein can be adapted to detect frequent or repetitive patterns in the form of sequential episodes in time stamped data series. As explained above, an episode or pattern is frequent if its detected occurrences meet or exceed a frequency value specified by a user or from a preprogrammed value.
Two episodes are said to be similar if they are identical except for the fact that one allows some more time intervals (for the event dwelling times) than the other, and if their frequencies of occurrence are equal in the given event sequence. Thus, unlike episodes or subepisodes, similar episodes are always defined with respect to a given event sequence and a given frequency count.
Formally, two episodes α and β are said to be similar in the event sequence s (written α≡β in s) if all of the following conditions are met. First, either α is a subepisode of β or β is a subepisode of α, α≦β or β≦α. Second, the two episodes have the same length (same number of nodes), |α|=|β|. Third, α and β occur in s with the same frequency, λs(α)=λs(β).
An episode α* is said to be principal in an event sequence s if the following two conditions hold: (1) the episode α* occurs in s, α*s, and (2) there is no strict superepisode of it which is similar to it (in the event sequence s), i.e., there is no α
α* such that α≡α* in s.
Given a principal episode, all episodes similar to it can be generated by appending time intervals (that do not contribute to the eventual episode frequency) to the event duration sets of the principal episode.
Subepisodes of principal episodes are in general not principal. Indeed, all the non-principal episodes that are similar to a given principal episode are after all subepisodes of the given principal episode. However, all subepisodes generated by dropping nodes (rather than by appending time intervals to the d(·) sets) of a principal episode are most certainly principal.
Returning now to
Also in step 512, a set B of allowed dwelling times, and a threshold frequency λ are received as inputs. An expiry time tx and a confidence threshold ρmin may also be received as inputs. A set E of event types may be provided as well in the input at step 512.
Data structures of use in implementing the method may be initialized in a step 514. These data structures may include, but are not limited to, arrays, lists, flags, etc. as appropriate. In particular a variable Fs* to hold frequent principal episodes found in the temporal data series is initialized to be empty.
After steps of receiving inputs 512 and initializing data structures 514, the iterative process of scanning through the temporal data series starts with the set C1 of all possible 1-node episodes, at step 516. This may be determined by first finding the set of all distinct event types occurring in the temporal data series.
Let F1* be the collection of frequent principal episodes in C1. Once F1* is obtained, the collection C2 of candidate 2-node episodes is generated from it. This incremental process of first obtaining Fk* from the candidates in Ck and then generating Ck+1 from Fk* is repeated till the set of new candidates generated is empty. Generation of frequent principal episodes Fk* from candidates Ck is explained below in connection with
In order to describe episodes with event durations, for each episode α, α.g[i] denotes the event type associated with its ith node and α.d[i] denotes the set of time intervals associated with its ith node. The waits list, which links together all automata that accept a particular event, is indexed by an ordered pair (E,δ) where E is an event type (i.e., element of E) and δ is an allowed duration (i.e., element of B). The set waits(E,δ) stores (α, i) pairs, indicating that an automaton for episode α is waiting in its ith state for the event type E to occur with a duration in the δ time interval so that it can make a transition to the next node of the episode.
The temporal data sequence includes a start and end time for each event in the sequence. An event is regarded as completed (and hence is ready for consideration as input to the automata) after its end time, so the iteration loop may be indexed by τ, i.e. the event end time.
Now turning to
In step 518, as will be discussed below, the temporal data series is traversed one event at a time. In an embodiment of step 518 as described herein, a single pass of sequentially scanning through the temporal data series may suffice. While this detailed discussion presents certain opportunities to attain the results described herein, other steps in place of those described are possible, without exceeding the scope of this disclosure.
Additional data structures of use in implementing the method are initialized in a step 604. In this way a set of automata may be generated and initialized to provide for tracking whether a candidate episode occurs in the temporal data series. In addition, for each candidate episode, a count of occurrences may be initialized to zero.
To handle cases in which an event type occurs in consecutive positions in a candidate episode, a variable bag may be initialized to be empty of contents. The variable bag may be a list, an array of pointers, or other appropriate data structure. During practice of an embodiment of the method, the variable bag may hold elements denoted herein by (α, j), denoting an automaton of the episode α is waiting for a particular event type as its jth event.
There may be many candidate episodes and for each candidate episode there may be multiple occurrences. Thus, at any time there may be many automata waiting for many event types to occur. In order to traverse and access the automata efficiently, for each event type E in the set Ck the automata that accept E are linked together in the list waits(E,δ).
The variable waits(E,δ) is preferably a list, but any other appropriate data structure may be employed. Like the variable bag, the waits(E,δ) list may contain entries of the form (α,j). In the case of waits(E,δ), an entry (α,j) means that an automaton of the episode α is waiting for event type E as its jth event. That is, if the event type E occurs now in the event sequence, this automaton would accept it and transit to the jth state. At any time (including at the start of the counting process) there may be automata waiting for the event types corresponding to first nodes of all the candidate episodes. Accordingly, the waits(·) list is initialized as described below.
Further initialization takes place in step 604 by initializing a plurality of automata adapted to detect whether an episode of the set Ck occurs in the temporal data series. Each episode α of Ck may have |α| automata initialized, one for each node of the episode. The initialization of the automata includes adding an entry (α,j) to waits(α[1], δ), setting the episode count, α.freq, to zero, and setting the initialization time α.init[j], to zero for each α-automaton. The initialization time is the time at which the first event of the episode occurred, for each instance of the automaton (for a given episode).
Further, it may be useful to prescribe an expiry time for episode occurrences, so that very widely spread out events would not be counted as an occurrence of some episode. This condition may be enforced in the method by testing the time taken to reach the new state before permitting a transition into it. This expiry time condition is an added facility in the method and the condition can easily be dropped. It may be noted that the scheme of retaining only the latest initialization time for the automata in a given state is consistent with this expiry time restriction. The expiry time may be provided as an additional input as shown in step 602 above.
Identifying occurrences of candidate episodes in the temporal data sequence is accomplished by sequentially searching through the data series with the plurality of automata at 606. This step is discussed in further detail below in connection with
In an embodiment disclosed herein for counting non-overlapping occurrences, as described below, an automaton that reaches a common state most recently is retained, with other automata reaching the same state being discarded. A variable α.init[j] may be used to store |α| initialization times for automata for the episode α. The variable α.init[j] indicates when an automaton for the episode α that is currently in its jth state, becomes initialized, as previously discussed. If multiple instances transit to the same state j, only the most recent initialization time is stored. When a complete occurrence of an episode is identified by an automaton for that episode, all other automata that might have been initialized for that episode are reset, in this embodiment for counting non-overlapping occurrences. Accordingly, a collection of overlapping occurrences increments the frequency for the episode by exactly one.
In an embodiment disclosed herein for counting non-interleaved occurrences, as described below, all automaton that reach a common state may be retained, in general. The exception to this is when the state corresponds to the final event of a candidate episode. An automaton reaching that state is reset and the occurrence count for the episode is reset. As is done for counting non-overlapping occurrences, the variable α.init[j] may be used to store |α| initialization times for automata for the episode α, with the variable α.init[j] indicating when an automaton for the episode α that is currently in its jth state, becomes initialized. For non-interleaved occurrences, if multiple instances transit to the same state j, multiple initialization times are stored. Also, when a complete occurrence of an episode is identified by an automaton for that episode, other automata that might have been initialized for that episode are retained, in general.
The step of producing results is shown in step 608. These results, including a determination of frequent principal episodes found in step 606, are for use in step 520 of
In brief summary, referring to
Continuing with description of
While
With (α,j), the method proceeds to a query 710 as to whether the state index j is 1 or not. If j=1, the method executes a step 712 in which the initialization time of the automaton for the episode is set to t. Also in step 712, the flag transition is set to indicate a state transition has occurred. If j is not 1, the method conditionally transits automaton α from state (j−1) (in which it was awaiting an event α.g[j], that is, E) to a state j (in which it awaits an event α.g[j+1]) at 714. Step 714, and the condition for a state transition in step 714, will be discussed more fully in connection with
If a state transition has taken place in step 712 or step 714 so that the transition flag is set 715, a query 716 is made as to whether the state index j is less than the number of nodes in the episode or not (if not, then j equals the number of nodes in the episode, by the logic disclosed herein). If j=|α|, then an occurrence of episode α is recognized 718. Step 718 is discussed more fully below in connection with
In an embodiment adapted to count non-overlapping occurrences of candidate episodes, a step 720 is executed in which automata in states corresponding to partial occurrences of the episode α are removed. Step 720 is discussed more fully below in connection with
Returning to discussion of step 716, if j<|α|, then a further query 722 is made as to whether the next event of episode α might also be an event of type E. If not, then as entry (α, j+1) is added to waits(α.g[j+1], δ), ∀δ is α.d[j+1] (which is a distinct waits(·) list, since either α.g[j+1]≠E or D is not in α.d[j+1]).
If, on the contrary, the next event of episode α is again an event of type E, that is, α.g[j+1]=E, then an entry (α,j+1) is added to the variable bag. Since the method retrieves entries in waits(E, D) in turn (at step 706), and sets the initialization time (at step 712), sequestering the entry (α,j+1) in bag instead of simply adding it to waits(α.g[j+1], D), which would be waits(E, D) in this case, precludes incorrectly overwriting the initialization time for the episode. In step 726 an entry (α,j+1) is added as well to the variable waits(E, δ) for all δ in α.d[j+1] but not in D.
Following 718 (for an embodiment counting non-interleaved occurrences), step 720 (for an embodiment counting non-overlapping occurrences), step 724, or step 726, the system at 728 may branch to step 706 to retrieve the next entry in waits(E, D) if one is available. Returning to step 715 above, if a state transition has not taken place in step 712 or step 714, the method branches to step 728.
If a next entry is not available in waits(E, D), the method instead branches to a step 730 in which the contents of the variable bag are transferred into waits(E, D). Note that bag may be empty under some circumstances. Following that, the method returns to step 705. As discussed above, at step 706, the method retrieves the next element D of B containing the interval τ−t. When all elements D of B have been retrieved, the method may branch at 709 to step 704 to retrieve the next element (E, t, τ) in the temporal data series.
If the temporal data series is exhausted upon return to step 704, execution of step 606 finishes, and the method may continue with step 608 in
Turning now to
Steps 804 and 806 occur unconditionally, in contrast to step 802. Although step 806 is shown as following step 804, step 806 may instead occur before step 802, or between step 802 and step 804. The significant order of steps in
Turning now to
There may be many sets of non-interleaved occurrences of an episode in the event sequence. The embodiment as disclosed herein for counting non-interleaved occurrences counts that set of non-interleaved occurrences, which includes the first occurrence of the episode in the event sequence.
In an embodiment where an expiry time is input, the condition may also include a test that less than the prescribed expiry time has transpired since the automaton was initialized, as also shown in
Steps 804′ and 806′ are conditional, along with step 802′. Although step 806′ is shown as following step 804′, step 806′ may instead occur before step 802′, or between step 802′ and step 804′. The significant order of steps in
Turning now to
Turning now to
In brief summary now, discussion of
Turning now to further discussion of step 608 of
The check for whether α may be principal is made by finding all strict k-node superepisodes β of α that occur in the temporal data series. If no βα is similar in s to α, then α is principal in s. Because the test is restricted to strict k-node superepisodes β that occur in the temporal data series, the test for similarity involves solely a test that the frequencies of occurrence of α and β are identical. If the frequencies differ, then α is principal in s and added to Fk*.
One arrangement of episodes in Fk* is shown in
Episodes in Fk* are sorted in some order. One possible order is lexicographic order. This may be appropriate when event types are considered as symbols and the symbols can be ordered as if listed in a dictionary. Any specific order will suffice, provided where an event is to be positioned in a set of events subject to the order is unambiguous. This definition of order may also include ordering an event according to its allowed duration information, i.e., its interval set.
The k-node frequent principal episodes may thus be arranged as a lexicographically sorted collection Fk* of k-length arrays. The ith episode in the collection has two components for its specification—the first is Fk*[i].g[j] which refers to the event type association for jth node, and the second is Fk*[i].d[j] which stores the collection of intervals (which specify the dwelling times allowed) associated with the jth node. Fk*[i].d[j] is a list of intervals and the kth element of this list is denoted by Fk*[i].d[j][k]. The episode collection is viewed as constituted in blocks such that within each block in Fk* the first (k−1) nodes are identical, i.e., both the event type as well as the timing information of the first (k−1) nodes are the same for the episodes in a block. Potential (k+1)-node candidates are constructed by combining two episodes within a block as will be discussed below. The newly constructed (k+1)-node episode is declared a candidate only if every subepisode generated by dropping one of its nodes is already known to be principal and frequent (and hence is in Fk*).
When the episodes are ordered, Fk* typically has the structure shown in
Adopting episode ordering as the structuring principle for Fk* has a benefit that when a new principal episode α is determined, it readily may be inserted into Fk* in the appropriate block.
The block structure of Fk* also facilitates generation of new candidate episodes from frequent principal episodes.
Candidate episodes 1502 and 1504 have their first k−1 entries in common. In the example shown, they have their first three entries in common. For their last two entries, one each is drawn from the last entry of 1402, 1404, or 1406. As shown, candidate episode 1502 includes the last entries of episode 1402 and 1406, and candidate episode 1504 includes the last entries of 1406 and 1404.
Thus, at step 1606, for each (k+1)-node candidate episode, k+1 k-node subepisodes are constructed by omitting one of the nodes of the (k+1)-node candidate episode. If each of these k+1 k-node subepisodes are in Fk*, the (k+1)-node candidate episode is added to Ck+1. At step 1608, the collection Ck+1 is returned as a result or output, and method 500 continues with step 522.
Returning now to step 530 of α* and α*, β*εFs*. To obtain such rules all the frequent principal episodes in the event sequence s are first computed (see step 526). For each such frequent episode-subepisode pair, α*, β*εFs*, with β*
α*, the subepisode is said to imply the episode if the ratio of their frequencies of occurrence in the event sequence exceeds a confidence threshold ρmin.
The TDM diagnostics tool 114 may also include an automata generation and initialization module 1704 to provide a sufficient number of automata, properly initialized, for tracking occurrences of candidate episodes in the temporal data series. As discussed previously, in general, as many as |α| automata for a particular episode α may be used to track all partial occurrences of the episode α.
A tracking module 1706 manages, in an update module 1708, the automata tracking events of the data series through the transitions they make, and counts detected occurrences of candidate episodes in counting module 1710. Candidate identification module 1711 provides for detection of the occurrences. Tracking module 1706 may branch back to module 1704 for continued generation and/or initialization of automata.
An output module 1712 provides for output for candidate episodes whose frequency of occurrence in the data series meets of exceeds the threshold frequency provided to input module 1702. The output module 1712 may also generate the reports 116 of
In summary, the temporal data mining technology as described herein can search for patterns of interest in time series fault data in support of root cause diagnostic analysis. As described in detail above, the TDM diagnostics tool 114 of
Technical effects of exemplary embodiments include applying temporal data mining for fault data correlation in a diagnostic system. The fault data correlation may support root cause diagnostics of machine and/or system faults. Further technical effects may include reporting fault episode frequency and confidence levels of correlation between faults. Advantages include elimination of misleading troubleshooting theories through reporting the existence of correlations between faults, as well as the absence of correlations between faults. Further technical effects may include identifying the root cause of an episode of faults and calculating the associated downtime for the episode. Reporting the downtime for an episode can be advantageous, particularly for well-known and expected episodes, as this information can be used to improve planning and reaction strategies for common episodes.
As described above, the embodiments of the invention may be embodied in the form of computer-implemented processes and apparatuses for practicing those processes. Embodiments of the invention may also be embodied in the form of computer program code containing instructions embodied in tangible media, such as floppy diskettes, CD-ROMs, hard drives, or any other computer-readable storage medium, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. The present invention can also be embodied in the form of computer program code, for example, whether stored in a storage medium, loaded into and/or executed by a computer, or transmitted over some transmission medium, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the computer program code is loaded into and executed by a computer, the computer becomes an apparatus for practicing the invention. When implemented on a general-purpose microprocessor, the computer program code segments configure the microprocessor to create specific logic circuits.
While the invention has been described with reference to exemplary embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted for elements thereof without departing from the scope of the invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the invention without departing from the essential scope thereof. Therefore, it is intended that the invention not be limited to the particular embodiment disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments falling within the scope of the appended claims. Moreover, the use of the terms first, second, etc. do not denote any order or importance, but rather the terms first, second, etc. are used to distinguish one element from another.
Number | Name | Date | Kind |
---|---|---|---|
5819266 | Agrawal et al. | Oct 1998 | A |
6301503 | Hsu et al. | Oct 2001 | B1 |
20050107840 | Conley et al. | May 2005 | A1 |
20060195444 | Sastry et al. | Aug 2006 | A1 |
20060224186 | Ziegler et al. | Oct 2006 | A1 |
20070112276 | Simms, Jr. | May 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
20090049338 A1 | Feb 2009 | US |