Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
SENSOR CONTRIBUTION RANKING
Document Type and Number:
WIPO Patent Application WO/2021/071911
Kind Code:
A1
Abstract:
Methods and systems for detecting and correcting anomalies include detecting (202) an anomaly in a cyber-physical system, based on a classification of time series information from sensors that monitor the cyber-physical system as being anomalous. A similarity graph is determined (302) for each of the sensors, based on the time series information. A subset of the sensors that are related to the classification is selected (308), based on a spectral embedding of the similarity graphs. A corrective action is performed (206) responsive to the detected anomaly, prioritized according to the selected subset.

Inventors:
NICULESCU-MIZIL ALEXANDRU (US)
HAN SHUCHU (US)
Application Number:
PCT/US2020/054529
Publication Date:
April 15, 2021
Filing Date:
October 07, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
NEC LAB AMERICA INC (US)
International Classes:
G05B23/02; G05B19/418; G06Q50/10; H04L29/08; H04W84/18
Foreign References:
US20180181749A12018-06-28
US20190243739A12019-08-08
US20190042353A12019-02-07
US10223403B22019-03-05
KR20160042616A2016-04-20
Attorney, Agent or Firm:
BITETTO, James J. (US)
Download PDF:
Claims:
WHAT IS CLAIMED IS:

1. A method for detecting and correcting anomalies, comprising: detecting (202) an anomaly in a cyber-physical system, based on a classification of time series information from a plurality of sensors that monitor the cyber-physical system as being anomalous; determining (302) a similarity graph for each of the plurality of sensors, based on the time series information; selecting (308) a subset of the plurality of sensors that are related to the classification, based on a spectral embedding of the similarity graphs; and performing (206) a corrective action responsive to the detected anomaly, prioritized according to the selected subset.

2. The method of claim 1 , wherein each similarity graph includes a set of nodes that represent measurements from a respective sensor at different time segments.

3. The method of claim 2, wherein a weight between nodes in each similarity graph is determined according to a distance metric that compares pairs of the respective measurements.

4. The method of claim 2, wherein a structure of the similarity graph is determined as a ^-nearest neighbor graph that preserves a geometry structure of an original data distribution.

5. The method of claim 1, further comprising determining the spectral embedding of each of the plurality of similarity graphs, including a power iteration embedding of the similarity graph as a one-dimensional vector.

6. The method of claim 1 , wherein selecting the subset includes ranking the plurality of sensors includes determining a score for each sensor, based on a respective spectral embedding vector for the sensor and an entropy.

7. The method of claim 6, wherein determining the score includes calculating: where /(·) is a mutual information function, H(·) is an entropy function, vt is the spectral embedding vector, and y is a label vector.

8. The method of claim 1, wherein selecting the subset includes minimizing a degree of redundancy between the plurality of sensors.

9. The method of claim 8, wherein minimizing the degree of redundancy includes minimizing an objective function using a coordinate descent.

10. The method of claim 1, wherein performing the corrective action includes an action selected from the group consisting of changing a security setting for an application or hardware component, changing an operational parameter of an application or hardware component, halting an application, restarting an application, halting a hardware component, rebooting a hardware component, changing an environmental condition, and changing a network interface’s status.

11. A system for detecting and correcting anomalies, comprising: a hardware processor (602); and a memory (604), configured to store a computer program that, when executed by the hardware processor, implements: anomaly detection code (610) that detects an anomaly in a cyber physical system, based on a classification of time series information from a plurality of sensors that monitor the cyber-physical system as being anomalous; sensor selection code (608) that determines a similarity graph for each of the plurality of sensors, based on the time series information and selects a subset of the plurality of sensors that are related to the classification, based on a spectral embedding of the similarity graphs; and a controller (612) that performs a corrective action responsive to the detected anomaly, prioritized according to the selected subset.

12. The system of claim 11, wherein each similarity graph includes a set of nodes that represent measurements from a respective sensor at different time segments.

13. The system of claim 12, wherein the sensor selection code determines a weight between nodes in each similarity graph according to a distance metric that compares pairs of the respective measurements.

14. The system of claim 12, the sensor selection code determines a structure of the similarity graph as a k-nearest neighbor graph that preserves a geometry structure of an original data distribution.

15. The system of claim 11, wherein the sensor selection code further determines the spectral embedding of each of the plurality of similarity graphs, including a power iteration embedding of the similarity graph as a one-dimensional vector.

16. The system of claim 11, wherein the sensor selection code further determines a score for each sensor, based on a respective spectral embedding vector for the sensor and an entropy.

17. The system of claim 16, wherein the sensor selection code calculates a score as: where /(·) is a mutual information function, H(-) is an entropy function, vt is the spectral embedding vector, and y is a label vector.

18. The system of claim 11, wherein the sensor selection code minimizes a degree of redundancy between the plurality of sensors.

19. The system of claim 18, wherein the sensor selection code minimizes an objective function using a coordinate descent.

20. The system of claim 11, wherein the controller performs a corrective action selected from the group consisting of changing a security setting for an application or hardware component, changing an operational parameter of an application or hardware component, halting an application, restarting an application, halting a hardware component, rebooting a hardware component, changing an environmental condition, and changing a network interface’s status.

Description:
SENSOR CONTRIBUTION RANKING

RELATED APPLICATION INFORMATION

[0001] This application claims priority to U.S. Application Serial No. 62/912,129, filed on October 8, 2019, incorporated herein by reference entirety.

BACKGROUND

Technical Field

[0002] The present invention relates to analysis of multivariate time series, and, more particularly, to identifying sensors that contribute to a classification of a multivariate time series.

Description of the Related Art

[0003] Complex systems, such as in modern manufacturing industries, power plants, and information services, are difficult to monitor due to the large number of sensors that may be installed, each generating respective time series information. For example, temperature and pressure sensors may be distributed throughout a power plant. It is challenging to identify anomalous behavior across such complex systems, and it can be even more challenging to identify which particular sensors are the source of an anomalous reading.

SUMMARY

[0004] A method for detecting and correcting anomalies includes detecting an anomaly in a cyber-physical system, based on a classification of time series information from sensors that monitor the cyber-physical system as being anomalous. A similarity graph is determined for each of the sensors, based on the time series information. A subset of the sensors that are related to the classification is selected, based on a spectral embedding of the similarity graphs. A corrective action is performed responsive to the detected anomaly, prioritized according to the selected subset.

[0005] A system for detecting and correcting anomalies includes a hardware processor and a memory. The memory is configured to store a computer program that, when executed by the hardware processor, implements anomaly detection code, sensor selection code, and a controller. The anomaly detection code detects an anomaly in a cyber-physical system, based on a classification of time series information from a plurality of sensors that monitor the cyber-physical system as being anomalous. The sensor selection code determines a similarity graph for each of the plurality of sensors, based on the time series information and selects a subset of the plurality of sensors that are related to the classification, based on a spectral embedding of the similarity graphs. The controller performs a corrective action responsive to the detected anomaly, prioritized according to the selected subset.

[0006] These and other features and advantages will become apparent from the following detailed description of illustrative embodiments thereof, which is to be read in connection with the accompanying drawings.

BRIEF DESCRIPTION OF DRAWINGS

[0007] The disclosure will provide details in the following description of preferred embodiments with reference to the following figures wherein:

[0008] FIG. 1 is a diagram of a system for monitoring and maintaining a cyber physical system using a set of sensors, where sensors related to a determination of abnormal behavior are selected to prioritize a response, in accordance with an embodiment of the present invention; [0009] FIG. 2 is a block/flow diagram of a method of identifying and responding to behavior in a monitored system, based on a classification of the behavior, in accordance with an embodiment of the present invention;

[0010] FIG. 3 is a block/flow diagram of a method of identifying a sensor subset that contributes to a classification label, using similarity graphs for each of the sensors, in accordance with an embodiment of the present invention;

[0011] FIG. 4 is a block/flow diagram of a method of selecting sensors for the sensor subset, based on sensor ranking scores, in accordance with an embodiment of the present invention;

[0012] FIG. 5 is a block/flow diagram of a method of selecting sensors for the sensor subset, based on minimizing sensor redundancy, in accordance with an embodiment of the present invention; and

[0013] FIG. 6 is a block diagram of a monitoring system for a cyber-physical system, which may identify anomalous behavior and may identify particular sensors from the cyber-physical system for a response, in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS [0014] Embodiments of the present invention provide automatic detection, diagnosis, and correction of anomalous behavior in a complex system. When identifying the specific sensors that are important to the classification of a multivariate time series as anomalous, the distance between time series can be used to avoid feature extraction. Toward this end, a filter model can be used to select features, based on the spectral embedding of each sensor’ s similarity graph. A wrapper model can select the optimal subset of sensors for the classification outcome. [0015] A similarity graph can be constructed for each sensor, across different multivariate time series. A label graph describes the group relationship of different labels. The cluster structural information of each sensor’s similarity graph can be represented as an embedded vector. Sensor ranking can then be performed by comparing the similarity between the embedding vector and labels, with sensor subset selection being performed by minimizing the approximation error between a linear combination of selected sensor graphs and the similarity of graph labels.

[0016] Thus, features of the multivariate time series can be extracted, without extracting features for each sensor’s output. Sensor ranking, using the filter model, can use graph spectral embedding to represent the cluster structure of a graph. Sensor subset selection, using the wrapper model, limits the redundancy of the subset using the graph- based process described herein, with a constraint.

[0017] Referring now in detail to the figures in which like numerals represent the same or similar elements and initially to FIG. 1, a maintenance system 106 in the context of a monitored system 102 is shown. The monitored system 102 can be any appropriate system, including physical systems such as manufacturing lines and physical plant operations, electronic systems such as computers or other computerized devices, software systems such as operating systems and applications, and cyber physical systems that combine physical systems with electronic systems and/or software systems.

[0018] One or more sensors 104 record information about the state of the monitored system 102. The sensors 104 can be any appropriate type of sensor including, for example, physical sensors, such as temperature, humidity, vibration, pressure, voltage, current, magnetic field, electrical field, and light sensors, and software sensors, such as logging utilities installed on a computer system to record information regarding the state and behavior of the operating system and applications running on the computer system. The information generated by the sensors 104 can be in any appropriate format and can include sensor log information generated with heterogeneous formats.

[0019] In particular embodiments, the sensor data 104 can also include a KPI measurement. In some embodiments, the KPI measurement may be the result of an inspection of a physical output of the monitored system 102, or can represent a determination of a quality of the physical output by any appropriate measurement or characteristic.

[0020] The sensors 104 may transmit the logged sensor information to an anomaly maintenance system 106 by any appropriate communications medium and protocol, including wireless and wired communications. The maintenance system 106 can, for example, identify abnormal behavior by monitoring the multivariate time series that are generated by the sensors 104. Once anomalous behavior has been detected, the maintenance system 106 communicates with a system control unit to alter one or more parameters of the monitored system 102 to correct the anomalous behavior. Exemplary corrective actions include changing a security setting for an application or hardware component, changing an operational parameter of an application or hardware component (for example, an operating speed), halting and/or restarting an application, halting and/or rebooting a hardware component, changing an environmental condition, changing a network interface’s status or settings, etc. The maintenance system 106 thereby automatically corrects or mitigates the anomalous behavior. By identifying the particular sensors 104 that are associated with the anomalous classification, the amount of time needed to isolate a problem can be decreased.

[0021] Referring now to FIG. 2, a method for identifying and responding to anomalous activity in a monitored system 102 is shown. Block 202 labels a multivariate time series. It is specifically contemplated that the label may identify the time series as being “normal” or “anomalous,” but it should be understood that any appropriate label may be used instead. Any process for selecting the label may be used, such as manual labeling or by a trained machine learning classifier. It is specifically contemplated that the labeling of block 202 may be performed using a neural network classifier, for example one that identifies patterns in multivariate time series inputs, and associates those patterns with anomalous activity.

[0022] Once a label has been generated, for example identifying anomalous activity within the monitored system 102, block 204 identifies a subset of sensors that contributes most to the classification. Additional detail on how this subset may be selected is described below. Notably, the identification of the relevant sensor subset need not be based on the operation of the classifier. Instead, the sensor subset identification may be based on the content of the multivariate time series itself. Once the sensor subset is identified, block 206 performs a responsive action based on the selection, for example prioritizing the selected sensors.

[0023] Referring now to FIG. 3, additional detail on the identification of a sensor subset, which contributes to the label determined in block 204, is shown. Block 302 builds a similarity graph for each sensor 104 in a given multivariate time series. The multivariate time series may be input as a set of time segment pairs, {(Ai, yi), ( Xi.Yi ), (A n ,y n )}, where X is a multivariate time series segment and yi is a corresponding label. Each time series segment includes a set of m sensor outputs over a corresponding time period. Each label may be a discrete label value, for example a numerical value, an alphanumerical value, a string of characters, or any other appropriate value. In one particular example, the labels may include a designation for “normal” behavior, and a designation for “anomalous” behavior. [0024] Block 302 thus may build a set of similarity graphs G* , with t k identifying a corresponding sensor, and with x denoting that it is a similarity graph. Block 302 may also build a set of label graphs G y , with y denoting that it is a label graph.

[0025] For the label graph, an initial graph G y may be defined with n nodes. For each node pair block 302 creates an edge in the label graph if, and only if, y t equals y such that the two nodes have the same label. The edge weight may be set to any appropriate value, with ‘G being specifically contemplated as a weight for all edges. Thus, the label graph G y connects time segments together that have the same labels. [0026] For the similarity graph, block 302 may construct m such graphs, one for each sensor 104 in the multivariate time series. An initial graph Gf may be defined for each sensor 104, denoted as t k . Each respective similarity graph may have n nodes, corresponding to the n time segments at which the respective sensor 104 was measured. For each pair of nodes (i,j) in the similarity graph, block 302 calculates a distance W tk (i,j) between the measurements of sensor t k in the corresponding time segments, X i and X j . This distance may be calculated according to a dynamic time warping distance between the two time segments, X i and X j . Thus, W tk (i,j) =

DTW (Xi(t k ), X j (t k )). It should be noted that, while the dynamic time warping distance is particularly appropriate for real-valued time series data, the use of non-real valued data is also contemplated, and may be implemented with any appropriate distance metric, such as the Levenshtein distance for string representations.

[0027] Once the distance matrix is calculated for all pairs, the similarity graph can be determined by building a k-nearest neighbor graph W by setting k (for the :- nearest neighbors) equal to an appropriate value and performing a transposition to enforce symmetry, according to, e.g.: The k-nearest neighbor graph may be used to preserve the geometry structure of the original data’s distribution. This may generate an undirected similarity graph, defined by the symmetric adjacency matrix. The diagonal may then be set to zero. The output of block 302 may thus include a set of matrices 1 G 2 , ... , G m , G y }, with G 1 , G 2 , ... , G m representing the m similarity graphs, and with G y representing a similarity graph for the labels of the time segments. The value of k may be set to any appropriate number. [0028] Block 304 may form vector representations of the similarity graphs, for example, using spectral embedding vectors that cluster structure information of the similarity graphs. Power iteration embedding may be used, though other approaches, such as a top-/: spectral clustering embedding and heat kernel embedding may be used instead.

[0029] The embedding vector may be an early stopping approximation of the largest eigenvector of a normalized similarity graph G, which may equal D _1 G, where D is a degree matrix of G. The power iteration embedding vector may be determined as: v t · = cD _1 Gv t_1 where c is a normalizing constant that limits the value of v, and may be set to c = . The power iteration embedding may approximate the cluster structure of the graph by using a one-dimensional vector.

[0030] In particular, to determine an embedding vector v t , an initial vector v 0 is initialized. At each iteration, the following operations may be performed:

[0031] [0032]

[0033] [0034] These iterations may be performed until , and the final vector v t may be output d is the change in the vector from one iteration to the next. The threshold for determining when the difference between successive d values is sufficiently small can be any appropriate value. The vector v £ is the spectral embedding of the corresponding similarity graph.

[0035] Block 308 selects a subset of the m sensors 104. Any appropriate selection process can be used to select the sensors, as will be described in greater detail below. [0036] Referring now to FIG. 4, additional detail on a way to implement the selection of sensors in block 308, based on sensor ranks, is shown. Block 404 first calculates a score for each of the spectral embedding vectors. Score may include a calculation of a normalized mutual information between the spectral embedding vector and the ground truth label vector y. The score may be calculated as: where /(·,·) denotes a mutual information function and where H(.) denotes an entropy function, such as H (v t ) = Σip(yi) log(p(yi)) ∀y i ∈ v t . A k-means clustering may be used to put the real values of v t into different bins. The number of bins may equal the number of different labels in y. Higher ranking score values reflect greater proximity of the spectral embedding vector to the label’s distribution. Block 406 may then generate a top rank with multiple sensors 104 that are highly correlated with one another. Selecting sensors by score is an efficient approach, but does not necessarily make use of the redundancy between sensors.

[0037] Referring now to FIG. 5, additional detail on a way to implement the selection of sensors in block 308, based on minimizing redundancy, is shown. In particular, block 308 selecting sensors with less redundancy may help a user identify the importance of different features. For example, redundancy may be measured by a normalized mutual information score between the spectral embedding vectors of the sensors 104.

[0038] Block 502 determines an objective function to characterize the redundancy. The following objective function may be used to calculate a sensor subset with low redundancy: where l > 0 and b > 0 may be user-specified Lasso penalty and redundancy control parameters. The first term of the function represents the approximation of the label graph by a linear combination of sensor graphs, with a being a weight for each sensor to be inferred by the optimization problem. The second term of the function applies a sparsity constraint to the coefficients of the linear combination. The third term of the function applies a redundancy constraint to the selection of the sensor graph in the final subset.

[0039] Written in matrix form, the objective function can be expressed as:

This objective function is non-convex, as the matrix G ; is not positive semi-definite. The diagonal elements of G ; also lets the objective function penalize the self redundancy terms G ; (i, i) and to create selection bias in favor of sensor graph embedding vectors that have lower entropy.

[0040] The matrix Q may be defined as:

This may be used to re-express the objective function as: where I is the identity matrix and y is a user-defined parameter.

[0041] The calculation of the mutual information can be computationally intensive, particularly if the number of sensors is large. To solve this scaling challenge, a Nystrom matrix approximation can be used, with an approximate matrix being expressed as: where A and B are sub-matrices used for the approximation. This approximation can be pre-processed by adjusting the value of y.

[0042] Block 504 then solves the objective function, for example using a coordinate descent. For a large dataset, with many sensors 104, a stochastic coordinate descent can be used, to improve scalability, as follows. Each matrix W can be expressed as a vector representation x, with the objective function being re-expressed as: where X is a matrix having dimension n 2 x m and where each column X j - of X is a vector representation of Wj· .

[0043] The objective function can then be split into parts:

Each term can be separated into a part α k and a part α_ k , where —k denotes the set that does not include the k th item. The function/can then be expressed as:

[0044] The derivative of/ over one coordinate α k is:

[0045] The component-wise proximal operator of g{α i ) is the norm: and where the solution is:

[0046] For a large dataset, with many sensors 104, a stochastic coordinate descent can be used to improve scalability. The result of block 504 is a set of sensors with low redundancy.

[0047] Embodiments described herein may be entirely hardware, entirely software or including both hardware and software elements. In a preferred embodiment, the present invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.

[0048] Embodiments may include a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. A computer-usable or computer readable medium may include any apparatus that stores, communicates, propagates, or transports the program for use by or in connection with the instruction execution system, apparatus, or device. The medium can be magnetic, optical, electronic, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. The medium may include a computer-readable storage medium such as a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk, etc.

[0049] Each computer program may be tangibly stored in a machine-readable storage media or device (e.g., program memory or magnetic disk) readable by a general or special purpose programmable computer, for configuring and controlling operation of a computer when the storage media or device is read by the computer to perform the procedures described herein. The inventive system may also be considered to be embodied in a computer-readable storage medium, configured with a computer program, where the storage medium so configured causes a computer to operate in a specific and predefined manner to perform the functions described herein.

[0050] A data processing system suitable for storing and/or executing program code may include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code to reduce the number of times code is retrieved from bulk storage during execution. Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) may be coupled to the system either directly or through intervening I/O controllers.

[0051] Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters. [0052] As employed herein, the term “hardware processor subsystem” or “hardware processor” can refer to a processor, memory, software or combinations thereof that cooperate to perform one or more specific tasks. In useful embodiments, the hardware processor subsystem can include one or more data processing elements (e.g., logic circuits, processing circuits, instruction execution devices, etc.). The one or more data processing elements can be included in a central processing unit, a graphics processing unit, and/or a separate processor- or computing element-based controller (e.g., logic gates, etc.). The hardware processor subsystem can include one or more on-board memories (e.g., caches, dedicated memory arrays, read only memory, etc.). In some embodiments, the hardware processor subsystem can include one or more memories that can be on or off board or that can be dedicated for use by the hardware processor subsystem (e.g., ROM, RAM, basic input/output system (BIOS), etc.).

[0053] In some embodiments, the hardware processor subsystem can include and execute one or more software elements. The one or more software elements can include an operating system and/or one or more applications and/or specific code to achieve a specified result.

[0054] In other embodiments, the hardware processor subsystem can include dedicated, specialized circuitry that performs one or more electronic processing functions to achieve a specified result. Such circuitry can include one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), and/or programmable logic arrays (PL As).

[0055] These and other variations of a hardware processor subsystem are also contemplated in accordance with embodiments of the present invention.

[0056] Referring now to FIG. 6, additional detail regarding the monitoring system 106 is shown. The system 106 includes a hardware processor 602 and a memory 604. A network interface 606 communicates with one or more sensors 104 in a monitored system 102, and may also provide the ability to send instructions the monitored system, for example to control one or more operational parameters. The network interface 606 may communicate with the sensors 104 and the monitored system 102 by any appropriate wired or wireless communications medium and using any appropriate protocol.

[0057] Anomaly detector 610 may assess the multivariate time series generated by the sensors 104, and may classify segments of the time series according to whether they are, e.g., normal or abnormal. A controller 612 automatically responds to the flagged anomalies by triggering a corrective action using the network interface 606. The corrective action can include diagnostics designed to acquire more information regarding the anomaly from the sensors 104. The corrective action can include sending an instruction to one or more sub-systems of the monitored system 102, to bring the sensor readings back to a “normal” state.

[0058] Sensor selection 608 may be used to determine which of the sensors 104 to respond to, thereby prioritizing the automatic response. As noted above, there are multiple approaches that may be taken to selecting the subset of sensors. For example, the sensors 104 can be polled in ranked order to obtain diagnostic information. Sensors may be selected according to their redundancy, to reduce the amount of work needed to identify an underlying cause of the abnormal behavior.

[0059] In other embodiments, corrective actions can include changing a setting or state of devices associated with the respective sensors 104. The sensor ranking 608 may be determined by the processor 602 and may be stored in the memory 604. The sensor ranking 608 identifies particular sensors 104 according to similarity graphs for each sensor 104 in a given time segment. [0060] Reference in the specification to “one embodiment” or “an embodiment” of the present invention, as well as other variations thereof, means that a particular feature, structure, characteristic, and so forth described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, the appearances of the phrase “in one embodiment” or “in an embodiment”, as well any other variations, appearing in various places throughout the specification are not necessarily all referring to the same embodiment. However, it is to be appreciated that features of one or more embodiments can be combined given the teachings of the present invention provided herein.

[0061] It is to be appreciated that the use of any of the following “/”, “and/or”, and “at least one of’, for example, in the cases of “A/B”, “A and/or B” and “at least one of A and B”, is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of both options (A and B). As a further example, in the cases of “A, B, and/or C” and “at least one of A, B, and C”, such phrasing is intended to encompass the selection of the first listed option (A) only, or the selection of the second listed option (B) only, or the selection of the third listed option (C) only, or the selection of the first and the second listed options (A and B) only, or the selection of the first and third listed options (A and C) only, or the selection of the second and third listed options (B and C) only, or the selection of all three options (A and B and C). This may be extended for as many items listed.

[0062] The foregoing is to be understood as being in every respect illustrative and exemplary, but not restrictive, and the scope of the invention disclosed herein is not to be determined from the Detailed Description, but rather from the claims as interpreted according to the full breadth permitted by the patent laws. It is to be understood that the embodiments shown and described herein are only illustrative of the present invention and that those skilled in the art may implement various modifications without departing from the scope and spirit of the invention. Those skilled in the art could implement various other feature combinations without departing from the scope and spirit of the invention. Having thus described aspects of the invention, with the details and particularity required by the patent laws, what is claimed and desired protected by Letters Patent is set forth in the appended claims.