https://github.com/maswag/monaa MONAA: a Tool for Timed Pattern Matching with Automata-Based Acceleration Masaki Waga 1, Ichiro Hasuo 1, and Kohei Suenaga 2 National Institute of Informatics 1 and Kyoto University 2 10 Apr. 2018, MT-CPS 2018 The authors are supported by ERATO HASUO Metamathematics for Systems Design Project (No. JPMJER1603), JST, Grants-in-Aid No. 15KT0012, JSPS, and JST PRESTO Grant Number JPMJPR15E5, Japan. 1
Timed Pattern Matching Input Time-series data (Logs of a car/ a robot) e.g., The gear of a car is high at 0.1s, at 0.3s, Timed Words high high (Sequence of events with timestamps) w = t Real-time spec. (Spec. useful for debugging) Output [Ulus et al., FORMATS 14] e.g., The gear of a car changes too frequently high,x<1 A = s 0 Timed Automata [Alur & Dill, TCS 94] The intervals where the spec. is satisfied in the data e.g., The gear M(w, changes A) ={(t, too frequently t 0 ) w (t,t0 in ) 20.3s-0.7s L(A)} 0 0.1 0.3 0.5 0.7 $,x<1 start s 1 s 2 s 3,x<1 2
MONAA Overview Command Line Interface (MONAA) Command line tool for timed pattern matching We can inspect a log The log is read lazily online monitor Text-based I/O C++ API (libmonaa) Execute timed pattern matching in a user s code Accelerated by Skipping [Waga et al., FORMATS 17] I/O by function/class 3
Outline 1. Algorithm in MONAA Skipping for timed pattern matching [Waga et al., FORMATS 17] 2. Frontend of MONAA Command line interface (CLI) / C++ API 3. Experiments 4
Skipping for String Matching STRONG_STRING STRING Find STRING (pattern) STRING from STRONG_STRING (target) STRING Brute-Force Search KMP Search [Knuth+, SIAM J. Comput. 77] S T R Match until the 3rd char. Table for length 3 partial match I N G * S T R I N * * S T R I * * * S T R 5 STRONG_STRING STRING STRING STRING STRING STRING Skip 2 trials!!
<latexit sha1_base64="loncgrluure2kisvschqhwwjl5g=">aaacnhicbzdlssqwfizt79bbqes3wufu0kh1gi4h3qhurnbumjyhzzwzg2laklnhkpnqbnwqnyk4umstz2cmduhtqodn+89jcv4olckg5z05i6nj4xotu9puzozc/ejlcencjjnm0osjtprvxaxioacjaivcprpyhem4jg6oh/7llwgjenwo/rtcmpwu6aro0kj25tsiocduzu0dzuaidysilw/lq/mbqediege2vnqurfthgbaxhfv+phua6ptt7urvq3lf0b/cl0wvlnvovx6ctskzgbryyyxp+v6kyc40ci5h4aazgztxg9adlpwkxwdcvfh6qncs6dbuou1rsav6fsjnsth9olkdmcnr89sbwv+8vobdwzaxks0qfp96qjtjigkdjkg7qgnh2beccs3sxym/zppxtdm7ngt/98p/xcvozbcrn+1v60dlhfnkhaysdekta1inj6rbmosto/jixsirc+88o2/o+1frifpoljmf5xx8aqyzpfk=</latexit> <latexit sha1_base64="loncgrluure2kisvschqhwwjl5g=">aaacnhicbzdlssqwfizt79bbqes3wufu0kh1gi4h3qhurnbumjyhzzwzg2laklnhkpnqbnwqnyk4umstz2cmduhtqodn+89jcv4olckg5z05i6nj4xotu9puzozc/ejlcencjjnm0osjtprvxaxioacjaivcprpyhem4jg6oh/7llwgjenwo/rtcmpwu6aro0kj25tsiocduzu0dzuaidysilw/lq/mbqediege2vnqurfthgbaxhfv+phua6ptt7urvq3lf0b/cl0wvlnvovx6ctskzgbryyyxp+v6kyc40ci5h4aazgztxg9adlpwkxwdcvfh6qncs6dbuou1rsav6fsjnsth9olkdmcnr89sbwv+8vobdwzaxks0qfp96qjtjigkdjkg7qgnh2beccs3sxym/zppxtdm7ngt/98p/xcvozbcrn+1v60dlhfnkhaysdekta1inj6rbmosto/jixsirc+88o2/o+1frifpoljmf5xx8aqyzpfk=</latexit> <latexit sha1_base64="loncgrluure2kisvschqhwwjl5g=">aaacnhicbzdlssqwfizt79bbqes3wufu0kh1gi4h3qhurnbumjyhzzwzg2laklnhkpnqbnwqnyk4umstz2cmduhtqodn+89jcv4olckg5z05i6nj4xotu9puzozc/ejlcencjjnm0osjtprvxaxioacjaivcprpyhem4jg6oh/7llwgjenwo/rtcmpwu6aro0kj25tsiocduzu0dzuaidysilw/lq/mbqediege2vnqurfthgbaxhfv+phua6ptt7urvq3lf0b/cl0wvlnvovx6ctskzgbryyyxp+v6kyc40ci5h4aazgztxg9adlpwkxwdcvfh6qncs6dbuou1rsav6fsjnsth9olkdmcnr89sbwv+8vobdwzaxks0qfp96qjtjigkdjkg7qgnh2beccs3sxym/zppxtdm7ngt/98p/xcvozbcrn+1v60dlhfnkhaysdekta1inj6rbmosto/jixsirc+88o2/o+1frifpoljmf5xx8aqyzpfk=</latexit> <latexit sha1_base64="loncgrluure2kisvschqhwwjl5g=">aaacnhicbzdlssqwfizt79bbqes3wufu0kh1gi4h3qhurnbumjyhzzwzg2laklnhkpnqbnwqnyk4umstz2cmduhtqodn+89jcv4olckg5z05i6nj4xotu9puzozc/ejlcencjjnm0osjtprvxaxioacjaivcprpyhem4jg6oh/7llwgjenwo/rtcmpwu6aro0kj25tsiocduzu0dzuaidysilw/lq/mbqediege2vnqurfthgbaxhfv+phua6ptt7urvq3lf0b/cl0wvlnvovx6ctskzgbryyyxp+v6kyc40ci5h4aazgztxg9adlpwkxwdcvfh6qncs6dbuou1rsav6fsjnsth9olkdmcnr89sbwv+8vobdwzaxks0qfp96qjtjigkdjkg7qgnh2beccs3sxym/zppxtdm7ngt/98p/xcvozbcrn+1v60dlhfnkhaysdekta1inj6rbmosto/jixsirc+88o2/o+1frifpoljmf5xx8aqyzpfk=</latexit> <latexit sha1_base64="8br93aflhb56zwn2tfrpjlld5z8=">aaacnhicbzbbsxtbfmdny2t1rrr12mvquiwqlx0pxkpyi+bfwaiqxcls5cuomz1dzt4kycmh8uih8skfhiritz/bybqh1vtbwj/f/72zef8kv9jigp70gksfpi5/wln11z6vb2w2t7yvbvyyat2rqcxcj9yckhp6kfhbdw6ap4mcq2tyy+5f3ykxmtmxom0htvlyy5euhb0ane+jbmzsl8ldywc+0khq2g87ycd2osjh3qq0w6dbyqglk7spneywpt8cpaynb81wgirv0uxbateidz0nmg/rmbnfchqf4tb2wzhjxhkduiiy+vfhiediwsfqd1lzfgxcvkvp6ddhhnsugxc00or+pvhy1nppmrjoloonfe/n4f+8fogjw7iuoi8qthh7afqoihmdj0ih0obanxwccypdx6m44yylddn7lgt2fuvfcxkqmbfx+ffw0xedxwr5qr6snmgks47ictkjpslihxkkv8mtd+/98p69l7fwhlfp7jb/yvvzcqfnpfo=</latexit> <latexit sha1_base64="8br93aflhb56zwn2tfrpjlld5z8=">aaacnhicbzbbsxtbfmdny2t1rrr12mvquiwqlx0pxkpyi+bfwaiqxcls5cuomz1dzt4kycmh8uih8skfhiritz/bybqh1vtbwj/f/72zef8kv9jigp70gksfpi5/wln11z6vb2w2t7yvbvyyat2rqcxcj9yckhp6kfhbdw6ap4mcq2tyy+5f3ykxmtmxom0htvlyy5euhb0ane+jbmzsl8ldywc+0khq2g87ycd2osjh3qq0w6dbyqglk7spneywpt8cpaynb81wgirv0uxbateidz0nmg/rmbnfchqf4tb2wzhjxhkduiiy+vfhiediwsfqd1lzfgxcvkvp6ddhhnsugxc00or+pvhy1nppmrjoloonfe/n4f+8fogjw7iuoi8qthh7afqoihmdj0ih0obanxwccypdx6m44yylddn7lgt2fuvfcxkqmbfx+ffw0xedxwr5qr6snmgks47ictkjpslihxkkv8mtd+/98p69l7fwhlfp7jb/yvvzcqfnpfo=</latexit> <latexit sha1_base64="8br93aflhb56zwn2tfrpjlld5z8=">aaacnhicbzbbsxtbfmdny2t1rrr12mvquiwqlx0pxkpyi+bfwaiqxcls5cuomz1dzt4kycmh8uih8skfhiritz/bybqh1vtbwj/f/72zef8kv9jigp70gksfpi5/wln11z6vb2w2t7yvbvyyat2rqcxcj9yckhp6kfhbdw6ap4mcq2tyy+5f3ykxmtmxom0htvlyy5euhb0ane+jbmzsl8ldywc+0khq2g87ycd2osjh3qq0w6dbyqglk7spneywpt8cpaynb81wgirv0uxbateidz0nmg/rmbnfchqf4tb2wzhjxhkduiiy+vfhiediwsfqd1lzfgxcvkvp6ddhhnsugxc00or+pvhy1nppmrjoloonfe/n4f+8fogjw7iuoi8qthh7afqoihmdj0ih0obanxwccypdx6m44yylddn7lgt2fuvfcxkqmbfx+ffw0xedxwr5qr6snmgks47ictkjpslihxkkv8mtd+/98p69l7fwhlfp7jb/yvvzcqfnpfo=</latexit> <latexit sha1_base64="8br93aflhb56zwn2tfrpjlld5z8=">aaacnhicbzbbsxtbfmdny2t1rrr12mvquiwqlx0pxkpyi+bfwaiqxcls5cuomz1dzt4kycmh8uih8skfhiritz/bybqh1vtbwj/f/72zef8kv9jigp70gksfpi5/wln11z6vb2w2t7yvbvyyat2rqcxcj9yckhp6kfhbdw6ap4mcq2tyy+5f3ykxmtmxom0htvlyy5euhb0ane+jbmzsl8ldywc+0khq2g87ycd2osjh3qq0w6dbyqglk7spneywpt8cpaynb81wgirv0uxbateidz0nmg/rmbnfchqf4tb2wzhjxhkduiiy+vfhiediwsfqd1lzfgxcvkvp6ddhhnsugxc00or+pvhy1nppmrjoloonfe/n4f+8fogjw7iuoi8qthh7afqoihmdj0ih0obanxwccypdx6m44yylddn7lgt2fuvfcxkqmbfx+ffw0xedxwr5qr6snmgks47ictkjpslihxkkv8mtd+/98p69l7fwhlfp7jb/yvvzcqfnpfo=</latexit> <latexit sha1_base64="g8/sgkr0wuuzx9mbyjbujor1qve=">aaacnnicbzbbt9swfmcdbhslbhtjymwimgcpi5xueztwcogcxcqkse1uoc5lseo4kf0yqyr6qxbz59itfw6gadd9bnyqw4a9ydjfv/97tt8/kzw0ynjcw3mxuvby1fprf2pzzdutzrv3f7aojichkfrhrhjuquknq5so4ko0wpnewwuypv76l9/bwfnoc5yveod8omumbuehxp3tkigj1lvwd9i5jzssmo5y8knhgi8huetjxop2wxdyc4n+3kcp2mjeeobhonn2ftzpsoa1rz+lsbvd0tbzupmrsgtr5abrkg7tkgqlxju3kiwcur9vfkoupnwciyc1z8hgdbp2nh5wjkvzydzrsbv670tnc2tneei6c47x9qm3hp/zrhvmx+na6rjc0olhoaxsfau6zjcm0obanxoccypdx6m45oylden7lotw6crpxuu/cfkqfvvchry1caythbjl9klidsmanjazmisc/calckvuvj/ejffb+/pquuk1m9vkuxl/7wgykaz0</latexit> <latexit sha1_base64="g8/sgkr0wuuzx9mbyjbujor1qve=">aaacnnicbzbbt9swfmcdbhslbhtjymwimgcpi5xueztwcogcxcqkse1uoc5lseo4kf0yqyr6qxbz59itfw6gadd9bnyqw4a9ydjfv/97tt8/kzw0ynjcw3mxuvby1fprf2pzzdutzrv3f7aojichkfrhrhjuquknq5so4ko0wpnewwuypv76l9/bwfnoc5yveod8omumbuehxp3tkigj1lvwd9i5jzssmo5y8knhgi8huetjxop2wxdyc4n+3kcp2mjeeobhonn2ftzpsoa1rz+lsbvd0tbzupmrsgtr5abrkg7tkgqlxju3kiwcur9vfkoupnwciyc1z8hgdbp2nh5wjkvzydzrsbv670tnc2tneei6c47x9qm3hp/zrhvmx+na6rjc0olhoaxsfau6zjcm0obanxoccypdx6m45oylden7lotw6crpxuu/cfkqfvvchry1caythbjl9klidsmanjazmisc/calckvuvj/ejffb+/pquuk1m9vkuxl/7wgykaz0</latexit> <latexit sha1_base64="g8/sgkr0wuuzx9mbyjbujor1qve=">aaacnnicbzbbt9swfmcdbhslbhtjymwimgcpi5xueztwcogcxcqkse1uoc5lseo4kf0yqyr6qxbz59itfw6gadd9bnyqw4a9ydjfv/97tt8/kzw0ynjcw3mxuvby1fprf2pzzdutzrv3f7aojichkfrhrhjuquknq5so4ko0wpnewwuypv76l9/bwfnoc5yveod8omumbuehxp3tkigj1lvwd9i5jzssmo5y8knhgi8huetjxop2wxdyc4n+3kcp2mjeeobhonn2ftzpsoa1rz+lsbvd0tbzupmrsgtr5abrkg7tkgqlxju3kiwcur9vfkoupnwciyc1z8hgdbp2nh5wjkvzydzrsbv670tnc2tneei6c47x9qm3hp/zrhvmx+na6rjc0olhoaxsfau6zjcm0obanxoccypdx6m45oylden7lotw6crpxuu/cfkqfvvchry1caythbjl9klidsmanjazmisc/calckvuvj/ejffb+/pquuk1m9vkuxl/7wgykaz0</latexit> <latexit sha1_base64="g8/sgkr0wuuzx9mbyjbujor1qve=">aaacnnicbzbbt9swfmcdbhslbhtjymwimgcpi5xueztwcogcxcqkse1uoc5lseo4kf0yqyr6qxbz59itfw6gadd9bnyqw4a9ydjfv/97tt8/kzw0ynjcw3mxuvby1fprf2pzzdutzrv3f7aojichkfrhrhjuquknq5so4ko0wpnewwuypv76l9/bwfnoc5yveod8omumbuehxp3tkigj1lvwd9i5jzssmo5y8knhgi8huetjxop2wxdyc4n+3kcp2mjeeobhonn2ftzpsoa1rz+lsbvd0tbzupmrsgtr5abrkg7tkgqlxju3kiwcur9vfkoupnwciyc1z8hgdbp2nh5wjkvzydzrsbv670tnc2tneei6c47x9qm3hp/zrhvmx+na6rjc0olhoaxsfau6zjcm0obanxoccypdx6m45oylden7lotw6crpxuu/cfkqfvvchry1caythbjl9klidsmanjazmisc/calckvuvj/ejffb+/pquuk1m9vkuxl/7wgykaz0</latexit> Find from Brute-Force Algorithm for Timed Pattern Matching w = 1st trial 2nd trial A = high,x<1 start s $,x<1 0 s 1 s 2 s 3 high 0 0.1 0.3 s 3,x<1 high 0.5 0.7 s 0 s 1 s 2 s 1 s 2 s 0 8 >< t 2 [0, 0.1) t >: 0 2 (0.3, 0.5] t 0 t 2 (0, 1) s 3 (pattern) (target) 1.2 t 8 >< t 2 [0, 0.1) t >: 0 2 (0.7, 1.1] t 0 t 2 (0, 1) 3rd trial s 0 s 1 s 2 s 1 8 >< t 2 [0.3, 0.5) s 3 t >: 0 2 (0.7, 1.2] M. t 0 Waga t 2 (0, (NII) 1) 6
<latexit sha1_base64="loncgrluure2kisvschqhwwjl5g=">aaacnhicbzdlssqwfizt79bbqes3wufu0kh1gi4h3qhurnbumjyhzzwzg2laklnhkpnqbnwqnyk4umstz2cmduhtqodn+89jcv4olckg5z05i6nj4xotu9puzozc/ejlcencjjnm0osjtprvxaxioacjaivcprpyhem4jg6oh/7llwgjenwo/rtcmpwu6aro0kj25tsiocduzu0dzuaidysilw/lq/mbqediege2vnqurfthgbaxhfv+phua6ptt7urvq3lf0b/cl0wvlnvovx6ctskzgbryyyxp+v6kyc40ci5h4aazgztxg9adlpwkxwdcvfh6qncs6dbuou1rsav6fsjnsth9olkdmcnr89sbwv+8vobdwzaxks0qfp96qjtjigkdjkg7qgnh2beccs3sxym/zppxtdm7ngt/98p/xcvozbcrn+1v60dlhfnkhaysdekta1inj6rbmosto/jixsirc+88o2/o+1frifpoljmf5xx8aqyzpfk=</latexit> <latexit sha1_base64="loncgrluure2kisvschqhwwjl5g=">aaacnhicbzdlssqwfizt79bbqes3wufu0kh1gi4h3qhurnbumjyhzzwzg2laklnhkpnqbnwqnyk4umstz2cmduhtqodn+89jcv4olckg5z05i6nj4xotu9puzozc/ejlcencjjnm0osjtprvxaxioacjaivcprpyhem4jg6oh/7llwgjenwo/rtcmpwu6aro0kj25tsiocduzu0dzuaidysilw/lq/mbqediege2vnqurfthgbaxhfv+phua6ptt7urvq3lf0b/cl0wvlnvovx6ctskzgbryyyxp+v6kyc40ci5h4aazgztxg9adlpwkxwdcvfh6qncs6dbuou1rsav6fsjnsth9olkdmcnr89sbwv+8vobdwzaxks0qfp96qjtjigkdjkg7qgnh2beccs3sxym/zppxtdm7ngt/98p/xcvozbcrn+1v60dlhfnkhaysdekta1inj6rbmosto/jixsirc+88o2/o+1frifpoljmf5xx8aqyzpfk=</latexit> <latexit sha1_base64="loncgrluure2kisvschqhwwjl5g=">aaacnhicbzdlssqwfizt79bbqes3wufu0kh1gi4h3qhurnbumjyhzzwzg2laklnhkpnqbnwqnyk4umstz2cmduhtqodn+89jcv4olckg5z05i6nj4xotu9puzozc/ejlcencjjnm0osjtprvxaxioacjaivcprpyhem4jg6oh/7llwgjenwo/rtcmpwu6aro0kj25tsiocduzu0dzuaidysilw/lq/mbqediege2vnqurfthgbaxhfv+phua6ptt7urvq3lf0b/cl0wvlnvovx6ctskzgbryyyxp+v6kyc40ci5h4aazgztxg9adlpwkxwdcvfh6qncs6dbuou1rsav6fsjnsth9olkdmcnr89sbwv+8vobdwzaxks0qfp96qjtjigkdjkg7qgnh2beccs3sxym/zppxtdm7ngt/98p/xcvozbcrn+1v60dlhfnkhaysdekta1inj6rbmosto/jixsirc+88o2/o+1frifpoljmf5xx8aqyzpfk=</latexit> <latexit sha1_base64="loncgrluure2kisvschqhwwjl5g=">aaacnhicbzdlssqwfizt79bbqes3wufu0kh1gi4h3qhurnbumjyhzzwzg2laklnhkpnqbnwqnyk4umstz2cmduhtqodn+89jcv4olckg5z05i6nj4xotu9puzozc/ejlcencjjnm0osjtprvxaxioacjaivcprpyhem4jg6oh/7llwgjenwo/rtcmpwu6aro0kj25tsiocduzu0dzuaidysilw/lq/mbqediege2vnqurfthgbaxhfv+phua6ptt7urvq3lf0b/cl0wvlnvovx6ctskzgbryyyxp+v6kyc40ci5h4aazgztxg9adlpwkxwdcvfh6qncs6dbuou1rsav6fsjnsth9olkdmcnr89sbwv+8vobdwzaxks0qfp96qjtjigkdjkg7qgnh2beccs3sxym/zppxtdm7ngt/98p/xcvozbcrn+1v60dlhfnkhaysdekta1inj6rbmosto/jixsirc+88o2/o+1frifpoljmf5xx8aqyzpfk=</latexit> <latexit sha1_base64="8br93aflhb56zwn2tfrpjlld5z8=">aaacnhicbzbbsxtbfmdny2t1rrr12mvquiwqlx0pxkpyi+bfwaiqxcls5cuomz1dzt4kycmh8uih8skfhiritz/bybqh1vtbwj/f/72zef8kv9jigp70gksfpi5/wln11z6vb2w2t7yvbvyyat2rqcxcj9yckhp6kfhbdw6ap4mcq2tyy+5f3ykxmtmxom0htvlyy5euhb0ane+jbmzsl8ldywc+0khq2g87ycd2osjh3qq0w6dbyqglk7spneywpt8cpaynb81wgirv0uxbateidz0nmg/rmbnfchqf4tb2wzhjxhkduiiy+vfhiediwsfqd1lzfgxcvkvp6ddhhnsugxc00or+pvhy1nppmrjoloonfe/n4f+8fogjw7iuoi8qthh7afqoihmdj0ih0obanxwccypdx6m44yylddn7lgt2fuvfcxkqmbfx+ffw0xedxwr5qr6snmgks47ictkjpslihxkkv8mtd+/98p69l7fwhlfp7jb/yvvzcqfnpfo=</latexit> <latexit sha1_base64="8br93aflhb56zwn2tfrpjlld5z8=">aaacnhicbzbbsxtbfmdny2t1rrr12mvquiwqlx0pxkpyi+bfwaiqxcls5cuomz1dzt4kycmh8uih8skfhiritz/bybqh1vtbwj/f/72zef8kv9jigp70gksfpi5/wln11z6vb2w2t7yvbvyyat2rqcxcj9yckhp6kfhbdw6ap4mcq2tyy+5f3ykxmtmxom0htvlyy5euhb0ane+jbmzsl8ldywc+0khq2g87ycd2osjh3qq0w6dbyqglk7spneywpt8cpaynb81wgirv0uxbateidz0nmg/rmbnfchqf4tb2wzhjxhkduiiy+vfhiediwsfqd1lzfgxcvkvp6ddhhnsugxc00or+pvhy1nppmrjoloonfe/n4f+8fogjw7iuoi8qthh7afqoihmdj0ih0obanxwccypdx6m44yylddn7lgt2fuvfcxkqmbfx+ffw0xedxwr5qr6snmgks47ictkjpslihxkkv8mtd+/98p69l7fwhlfp7jb/yvvzcqfnpfo=</latexit> <latexit sha1_base64="8br93aflhb56zwn2tfrpjlld5z8=">aaacnhicbzbbsxtbfmdny2t1rrr12mvquiwqlx0pxkpyi+bfwaiqxcls5cuomz1dzt4kycmh8uih8skfhiritz/bybqh1vtbwj/f/72zef8kv9jigp70gksfpi5/wln11z6vb2w2t7yvbvyyat2rqcxcj9yckhp6kfhbdw6ap4mcq2tyy+5f3ykxmtmxom0htvlyy5euhb0ane+jbmzsl8ldywc+0khq2g87ycd2osjh3qq0w6dbyqglk7spneywpt8cpaynb81wgirv0uxbateidz0nmg/rmbnfchqf4tb2wzhjxhkduiiy+vfhiediwsfqd1lzfgxcvkvp6ddhhnsugxc00or+pvhy1nppmrjoloonfe/n4f+8fogjw7iuoi8qthh7afqoihmdj0ih0obanxwccypdx6m44yylddn7lgt2fuvfcxkqmbfx+ffw0xedxwr5qr6snmgks47ictkjpslihxkkv8mtd+/98p69l7fwhlfp7jb/yvvzcqfnpfo=</latexit> <latexit sha1_base64="8br93aflhb56zwn2tfrpjlld5z8=">aaacnhicbzbbsxtbfmdny2t1rrr12mvquiwqlx0pxkpyi+bfwaiqxcls5cuomz1dzt4kycmh8uih8skfhiritz/bybqh1vtbwj/f/72zef8kv9jigp70gksfpi5/wln11z6vb2w2t7yvbvyyat2rqcxcj9yckhp6kfhbdw6ap4mcq2tyy+5f3ykxmtmxom0htvlyy5euhb0ane+jbmzsl8ldywc+0khq2g87ycd2osjh3qq0w6dbyqglk7spneywpt8cpaynb81wgirv0uxbateidz0nmg/rmbnfchqf4tb2wzhjxhkduiiy+vfhiediwsfqd1lzfgxcvkvp6ddhhnsugxc00or+pvhy1nppmrjoloonfe/n4f+8fogjw7iuoi8qthh7afqoihmdj0ih0obanxwccypdx6m44yylddn7lgt2fuvfcxkqmbfx+ffw0xedxwr5qr6snmgks47ictkjpslihxkkv8mtd+/98p69l7fwhlfp7jb/yvvzcqfnpfo=</latexit> <latexit sha1_base64="g8/sgkr0wuuzx9mbyjbujor1qve=">aaacnnicbzbbt9swfmcdbhslbhtjymwimgcpi5xueztwcogcxcqkse1uoc5lseo4kf0yqyr6qxbz59itfw6gadd9bnyqw4a9ydjfv/97tt8/kzw0ynjcw3mxuvby1fprf2pzzdutzrv3f7aojichkfrhrhjuquknq5so4ko0wpnewwuypv76l9/bwfnoc5yveod8omumbuehxp3tkigj1lvwd9i5jzssmo5y8knhgi8huetjxop2wxdyc4n+3kcp2mjeeobhonn2ftzpsoa1rz+lsbvd0tbzupmrsgtr5abrkg7tkgqlxju3kiwcur9vfkoupnwciyc1z8hgdbp2nh5wjkvzydzrsbv670tnc2tneei6c47x9qm3hp/zrhvmx+na6rjc0olhoaxsfau6zjcm0obanxoccypdx6m45oylden7lotw6crpxuu/cfkqfvvchry1caythbjl9klidsmanjazmisc/calckvuvj/ejffb+/pquuk1m9vkuxl/7wgykaz0</latexit> <latexit sha1_base64="g8/sgkr0wuuzx9mbyjbujor1qve=">aaacnnicbzbbt9swfmcdbhslbhtjymwimgcpi5xueztwcogcxcqkse1uoc5lseo4kf0yqyr6qxbz59itfw6gadd9bnyqw4a9ydjfv/97tt8/kzw0ynjcw3mxuvby1fprf2pzzdutzrv3f7aojichkfrhrhjuquknq5so4ko0wpnewwuypv76l9/bwfnoc5yveod8omumbuehxp3tkigj1lvwd9i5jzssmo5y8knhgi8huetjxop2wxdyc4n+3kcp2mjeeobhonn2ftzpsoa1rz+lsbvd0tbzupmrsgtr5abrkg7tkgqlxju3kiwcur9vfkoupnwciyc1z8hgdbp2nh5wjkvzydzrsbv670tnc2tneei6c47x9qm3hp/zrhvmx+na6rjc0olhoaxsfau6zjcm0obanxoccypdx6m45oylden7lotw6crpxuu/cfkqfvvchry1caythbjl9klidsmanjazmisc/calckvuvj/ejffb+/pquuk1m9vkuxl/7wgykaz0</latexit> <latexit sha1_base64="g8/sgkr0wuuzx9mbyjbujor1qve=">aaacnnicbzbbt9swfmcdbhslbhtjymwimgcpi5xueztwcogcxcqkse1uoc5lseo4kf0yqyr6qxbz59itfw6gadd9bnyqw4a9ydjfv/97tt8/kzw0ynjcw3mxuvby1fprf2pzzdutzrv3f7aojichkfrhrhjuquknq5so4ko0wpnewwuypv76l9/bwfnoc5yveod8omumbuehxp3tkigj1lvwd9i5jzssmo5y8knhgi8huetjxop2wxdyc4n+3kcp2mjeeobhonn2ftzpsoa1rz+lsbvd0tbzupmrsgtr5abrkg7tkgqlxju3kiwcur9vfkoupnwciyc1z8hgdbp2nh5wjkvzydzrsbv670tnc2tneei6c47x9qm3hp/zrhvmx+na6rjc0olhoaxsfau6zjcm0obanxoccypdx6m45oylden7lotw6crpxuu/cfkqfvvchry1caythbjl9klidsmanjazmisc/calckvuvj/ejffb+/pquuk1m9vkuxl/7wgykaz0</latexit> <latexit sha1_base64="g8/sgkr0wuuzx9mbyjbujor1qve=">aaacnnicbzbbt9swfmcdbhslbhtjymwimgcpi5xueztwcogcxcqkse1uoc5lseo4kf0yqyr6qxbz59itfw6gadd9bnyqw4a9ydjfv/97tt8/kzw0ynjcw3mxuvby1fprf2pzzdutzrv3f7aojichkfrhrhjuquknq5so4ko0wpnewwuypv76l9/bwfnoc5yveod8omumbuehxp3tkigj1lvwd9i5jzssmo5y8knhgi8huetjxop2wxdyc4n+3kcp2mjeeobhonn2ftzpsoa1rz+lsbvd0tbzupmrsgtr5abrkg7tkgqlxju3kiwcur9vfkoupnwciyc1z8hgdbp2nh5wjkvzydzrsbv670tnc2tneei6c47x9qm3hp/zrhvmx+na6rjc0olhoaxsfau6zjcm0obanxoccypdx6m45oylden7lotw6crpxuu/cfkqfvvchry1caythbjl9klidsmanjazmisc/calckvuvj/ejffb+/pquuk1m9vkuxl/7wgykaz0</latexit> Find from KMP-Style Algorithm for Timed Pattern Matching w = 1st trial Skip 1 trial!! 2nd trial A = high,x<1 start s $,x<1 0 s 1 s 2 s 3 high 0 0.1 0.3 s 3,x<1 high 0.5 0.7 s 0 s 1 s 2 s 1 s 2 s 0 8 >< t 2 [0, 0.1) t >: 0 2 (0.3, 0.5] t 0 t 2 (0, 1) s 3 (pattern) (target) 1.2 t 8 >< t 2 [0, 0.1) t >: 0 2 (0.7, 1.1] t 0 t 2 (0, 1) 2nd trial s 0 s 1 s 2 s 1 8 >< t 2 [0.3, 0.5) s 3 t >: 0 2 (0.7, 1.2] M. t 0 Waga t 2 (0, (NII) 1) 7
Problems in Skipping for Timed Pattern Matching The length of partial match is unbounded. String Matching Table for length 3 partial match S T R I N G * S T R I N * * S T R I * * * S T R Length 3 partial match in string matching S T R We construct for each length Infinitely many timestamps String Matching 8 Timed Pattern Matching Infinitely Many Tables!! Timed Pattern Matching Length 2 partial match in timed pattern matching 0 high Infinitely many timestamps t
Problems in Skipping for Timed Pattern Matching The length of partial match is unbounded. String Matching Table for length 3 partial match S T R I N G * S T R I N * * S T R I * * * S T R Infinitely many timestamps String Matching Length 3 partial match in string matching S T R Construct for each state Represent by a timed automaton Timed Pattern Matching Table for state s2 partial match 0 0 high 0 Timed Pattern Matching t high t high State s2 partial match in timed pattern matching high,x<1 s start 0 s 1 s 2,x<1 t 9
Problems in Skipping for Timed Pattern Matching The length of partial match is unbounded. Table for length 3 partial match S T R I N G * S T R I N * * S T R I * * * S T R Infinitely many timestamps Length 3 partial match in string matching S T R Construct for each state Represent by a timed automaton Table for state s2 partial match 0 0 high 0 State s2 partial match in timed pattern matching t high t high high,x<1 s start 0 s 1 s 2,x<1 t 10
Skipping for Timed Pattern Matching Table for state s2 partial match high,x<1 s start 0 s 1 s 2 high/x := 0,x<1 start s 1 s 0 s 1 s 2 /x := 0 high,x<1,x<1 We want to compare them high high/x := 0 high,x<1 start s 2 s 1 s 0 s 1 s 2 /x := 0,x<1 11
Skipping for Timed Pattern Matching Table for state s2 partial match high,x<1 s start 0 s 1 s 2 high/x := 0,x<1 start s 1 s 0 s 1 s 2 /x := 0 high,x<1,x<1 Product Emptiness Checking high high/x := 0 high,x<1 start s 2 s 1 s 0 s 1 s 2 /x := 0,x<1 12
Emptiness Checking by Zone Construction Labelled by a set of similar clock valuations represented by a zone s 1 a, x < 1 $,x>1 construct an NFA a s 1 0 <x<1 $ s 3 x>1 start s 0 s 3 start s 0 x =0 b b, x =1/x := 0 s 2 $, x<1 s 2 x =0 $ s 3 0 <x<1 Thm. (soundness and completeness) Zone automata maintain state reachability. 13
Outline 1. Algorithm in MONAA Skipping for timed pattern matching [Waga et al., FORMATS 17] 2. Frontend of MONAA Command line interface (CLI) / C++ API 3. Experiments 14
Input of MONAA (CLI) 15
Output of MONAA (CLI) 16
C++ API (libmonaa) User s Program e.g., online runtime verification C++ API (libmonaa) Get feedback Give Logs Execute timed pattern matching in a user s code Accelerated by Skipping I/O by function/class 17
Better Performance by libmonaa MONAA libmonaa Compile monaa TA/TRE Exec. Result Timed Word libmonaa (TA is hard-coded) libmonaa Compile Monitor TA Exec. Result More optimization!! Timed Word 18
Outline 1. Algorithm in MONAA Skipping for timed pattern matching [Waga et al., FORMATS 17] 2. Frontend of MONAA Command line interface (CLI) / C++ API 3. Experiments 19
Comparison with Montre MONAA Use timed automata We can also construct a TA from a TRE Accelerated by skipping Both command line and C++ interface Existing Tool (Montre) [Ulus, CAV 17] Use timed regular expression (online) On-the-fly construction of a state machine from TRE Only command line interface Our algorithm should work faster because of skipping
Experiments Monitoring of a Simulink model of an automatic transmission in a car. Model and spec. are from an automotive benchmark paper [Hoxha et al., ARCH 15] Events: gears: g1,g2,g3,g4 velocity: v >v, v v RPM: ω > ω, ω ω 21
Experiments Gear changes from g1 to g4 in 10 sec. and RPM changes to high enough, but velocity is still. g 1 g 2, true g 2 g 3, true g 3 g 4,xapple 10 /x := 0 g 4 3 g 1, true start?!!, true!!, true!!, true!!, true $,x>1!!, true? g 1, true g 2, true g 3, true g 1 g 2 g 3 g 4 g 4,xapple 10 /x := 0 22
Result of the Comparison Length of timed word Table 1. Execution time (sec.) MONAA (TRE) MONAA (TA) libmonaa (TA is hard coded) Montre (online) Montre (offline) 306 7.03 0.80 0.20 0.13 0.03 127,552 7.55 1.27 0.31 37.45 1.56 255,750 8.05 1.73 0.42 75.93 3.13 383,168 8.54 2.21 0.53 115.88 4.69 508,756 9.16 2.69 0.64 153.71 6.21 632,484 9.53 3.14 0.75 189.55 7.75 758,500 10.05 3.60 0.85 216.92 9.33 894,692 10.53 4.06 0.97 260.77 10.88 1,011,426 11.05 4.56 1.07 289.63 12.39 Efficient and online B up!! Efficient but offline only 23
Conclusion MONAA can inspect logs with timestamps fast (skipping) simple (text-based I/O) flexible (C++ API) 24
Future Works Theoretical Side: Investigate other techniques for efficient monitoring Practical Side: Case study of timed pattern matching https://github.com/maswag/monaa 25