Skip to content
This repository has been archived by the owner on Aug 1, 2024. It is now read-only.

sandialabs/pypm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pypm

Process-informed detection of patterns in time series data.

Overview

Pypm supports the analysis of time series data to identify patterns that reflect the execution of a known process. Pypm uses a process model to identify patterns, where the execution of a process is decomposed into a sequence of related activities. A process model describes the activities used in the process, dependencies between activities that constrain their execution, resources needed to execute each activity and information about the activities that are observable.

Pypm implements process matching algorithms that infer a schedule of the activities in a process model to maximize the alignement of the process with observational data. Pypm uses numerical optimization to search for a maximal match score. When data is labeled and associated with the resources in the process model, then integer programming methods are used to find an optimal match. For unlabeled data, tabu search methods are used to predict data labels, which can then be used by integer programming methods.

Pypm solvers address a variety of complicating concerns, including variable-duration process activities, gaps in activity execution, preferences for compact matches, and tailored methods that depend on data characteristics.

Installation For Development

  • git clone git@github.com:sandialabs/pypm.git
  • cd pypm
  • pip install -e .

Testing

  • cd pypm
  • pytest
  • pytest --cov=pypm --cov-report term-missing

Acknowledgements

The initial release of pypm was developed by Dylan Anderson, William Hart and Vitus Leung.