Functions for timed pattern matching.
More...
#include <boost/variant.hpp>
#include <chrono>
#include <climits>
#include <cmath>
#include <iostream>
#include <unordered_set>
#include "ans_vec.hh"
#include "intermediate_zone.hh"
#include "intersection.hh"
#include "kmp_skip_value.hh"
#include "sunday_skip_value.hh"
#include "ta2za.hh"
#include "word_container.hh"
#include "utils.hh"
Go to the source code of this file.
|
bool | isValidConstraint (const Bounds &upperConstraint, const Bounds &lowerConstraint) |
| Check if the given constraint is non empty.
|
|
void | updateConstraint (std::pair< double, bool > &upperConstraint, std::pair< double, bool > &lowerConstraint, const Constraint &delta, const double comparedValue) |
| update the assuming interval to satisfy the constraint
|
|
template<class InputContainer , class OutputContainer > |
void | monaa (WordContainer< InputContainer > word, TimedAutomaton A, AnsContainer< OutputContainer > &ans) |
| Execute the timed FJS algorithm. More...
|
|
template<class InputContainer , class OutputContainer > |
void | monaaDollar (WordContainer< InputContainer > word, TimedAutomaton A, AnsContainer< OutputContainer > &ans) |
| Execute the timed FJS algorithm. This is the original timed FJS algorithm. More...
|
|
template<class InputContainer , class OutputContainer > |
void | monaaNotNecessaryDollar (WordContainer< InputContainer > word, TimedAutomaton A, AnsContainer< OutputContainer > &ans) |
| Execute the timed FJS algorithm. More...
|
|
Functions for timed pattern matching.
- Author
- Masaki Waga
Currently, we have three functions: monaa, monaaDollar, and monaaNotNecessaryDollar. All of them looks very similar but they have some differences on the accepting conditions.
- monaaDollar: Same as our original paper [WHS17]. Namely, all the transitions to an accepting state must be labelled with '$' and we try to insert '$' between the given events.
- monaaNotNecessaryDollar: Similar to monaaDollar, but the transitions to the accepting state do not have to be labelled with '$'. The transitions to an accepting state but not labelled with '$' is used in the same way as the usual transitions.
- monaa: All the transitions cannot be labelled with '$'. For the transitions to an accepting state, we move the next event forward instead of inserting '$'. This looks like a monitoring of signals rather than timed words.
◆ monaa()
template<class InputContainer , class OutputContainer >
Execute the timed FJS algorithm.
- Parameters
-
[in] | word | A container of a timed word representing a log. |
[in] | A | A timed automaton used as a pattern. |
[out] | ans | A container for the answer zone. |
◆ monaaDollar()
template<class InputContainer , class OutputContainer >
Execute the timed FJS algorithm. This is the original timed FJS algorithm.
- Parameters
-
[in] | word | A container of a timed word representing a log. |
[in] | A | A timed automaton used as a pattern. |
[out] | ans | A container for the answer zone. |
◆ monaaNotNecessaryDollar()
template<class InputContainer , class OutputContainer >
Execute the timed FJS algorithm.
- Parameters
-
[in] | word | A container of a timed word representing a log. |
[in] | A | A timed automaton used as a pattern. |
[out] | ans | A container for the answer zone. |
- Note
- The labels of the transitions to the accepting states are not necessary $