Sign inSign up

maswag/monaa

By maswag

•Updated 12 months ago

Tool for timed patten matching with automata-based acceleration

Image
0

3.7K

maswag/monaa repository overview

⁠MONAA --- A Tool for Timed Patten Matching with Automata-Based Acceleration

Boost.Test Documentation Status License: GPL v3 Docker Automated build

This is the source code repository for MONAA --- A Tool for Timed Patten Matching with Automata-Based Acceleration.

Demo on Google Colab is HERE⁠ and HERE⁠!!

⁠Usage

⁠Synopsis
monaa [OPTIONS] PATTERN [FILE]
monaa [OPTIONS] -e PATTERN [FILE]
monaa [OPTIONS] -f FILE [FILE]
⁠Options

-h, --help Print a help message.
-q, --quiet Quiet mode. Causes any results to be suppressed.
-a, --ascii Ascii mode. (default)
-b, --binary Binary mode.
-V, --version Print the version
-E, --event Event mode (default)
-S, --signal Signal mode
-i file, --input file Read a timed word from file.
-f file, --automaton file Read a timed automaton from file.
-e pattern, --expression pattern Specify a pattern by a timed regular expression.

⁠Installation

MONAA is tested on Arch Linux, Ubuntu (18.04 and 20.04), and macOS 10.15 Catalina. We also provide a docker image⁠.

⁠Requirements
  • C++ compiler supporting C++14 and the corresponding libraries.
  • Boost (>= 1.59)
  • Eigen
  • CMake
  • Bison (>= 3.0)
  • Flex
⁠Instructions
mkdir build
cd build && cmake -DCMAKE_BUILD_TYPE=Release .. && make && make install
⁠Usage of the docker image

You can use monaa via docker by docker run -it maswag/monaa ... instead of monaa ....

⁠Examples

See Getting Started⁠ for an example usage.

⁠Syntax of Timed Automata

You can use DOT language⁠ to represent a timed automaton. For the timing constraints and other information, you can use the following custom attributes.

attributevaluedescription
vertexinit0 or 1init=1 if the state is initial
vertexmatch0 or 1match=1 if the state is accepting
edgelabel[a-z], [A-Z]the value represents the event on the transition
edgereseta list of integersthe set of variables reset after the transition
edgeguarda list of inequality constraintsthe guard of the transition

⁠Syntax of Timed Regular Expressions

expr : c (An event)
     | ( expr ) (Grouping)
     | expr + (Kleene Plus)
     | expr * (Kleene Star)
     | expr expr (Concatenation)
     | expr | expr (Disjunction)
     | expr & expr (Conjunction)
     | expr % (s,t) (Time Restriction)

⁠References

  • A Boyer-Moore Type Algorithm for Timed Pattern Matching. Masaki Waga, Takumi Akazaki, and Ichiro Hasuo
  • Efficient Online Timed Pattern Matching by Automata-Based Skipping. Masaki Waga, Ichiro Hasuo, and Kohei Suenaga
  • MONAA: a Tool for Timed Patten Matching with Automata-Based Acceleration. Masaki Waga, Ichiro Hasuo, and Kohei Suenaga

Tag summary

Content type

Image

Digest

sha256:c862f3808…

Size

167.4 MB

Last updated

12 months ago

docker pull maswag/monaa