日記(2019年7月3日)
Wed Jul 3 18:48:14 JST 2019 (modified: Wed Jul 3 22:46:15 JST 2019)
views: 1462, keywords:日記,ROS この記事は最終更新日が5年以上前のものです。
本日は午前に研究関係でロボットのコード書き。午後は講義資料書き。
ROSいじり1
昨日立てた予定どおり、amclをチューニングして、ロボットにあるアルゴリズムで行動をとらせる。雑だがだいたい動くようになったので次のフェーズに行く。
まーとりあえずこんなもんか。 pic.twitter.com/kQIyBdjJUN
— 上田 隆一 (@ryuichiueda) July 3, 2019
ROSいじり2
ロボットとPC側でlaunchファイルが別れているので両方を叩くシェルスクリプトを作った。が、たぶん一つのlaunchファイルにまとめられるんじゃないかなー、調べてないのは怠慢だなーと思って調べるとちゃんとあった。明日やる。こういうものは本書くときに漏れがないように一通り勉強しなきゃいけないので完全に怠慢。アカン。
あーなるほど。こうすればよいのか。https://t.co/tQVlJVseE0
— 上田 隆一 (@ryuichiueda) July 3, 2019
ありがとうございます。
DFA、NFA
昨日、某企業で正規表現が暴走したそうで、シェル芸bot上でも時間のかかる正規表現について実験が行われていました。
real0m2.365s
— シェル芸bot (@minyoruminyon) 2019年7月3日
user0m2.360s
sys0m0.000s https://t.co/Ic6mHXthaD
real0m0.002s
— シェル芸bot (@minyoruminyon) 2019年7月3日
user0m0.000s
sys0m0.000s https://t.co/qYps07Blw1
real0m11.440s
— シェル芸bot (@minyoruminyon) 2019年7月3日
user0m9.472s
sys0m0.044s https://t.co/SgigkIjSTZ
$x="a*a*a*a*a*a*a*a*a*a*a*a*[bc]";$s = "aaaaaaaaaaaaaaaaaaaaa"; [regex]::Replace($s,$x,{$args})
— シェル芸bot (@minyoruminyon) 2019年7月3日
real0m0.767s
user0m0.844s
sys0m0.088s https://t.co/ot1FTKmcQR
この話、実は2017年12月にシェル芸勉強会で鳥海さんがとりあげていました。DFAを使った正規表現のマッチングは1文字1文字状態遷移させるだけなので受理か不受理が決められた時間で出てきますが、NFAだと探索みたいなこと(バックトラック)が発生して場合によっては異常に時間がかかるという現象があるとのこと。
あった。DFAとNFA扱った時の鳥海さんのスライド https://t.co/pu8tiaMfMI
— 上田 隆一 (@ryuichiueda) July 3, 2019
もしかしたらこのサイトの検索機能(grep
を使用)にも問題があるかもしれませんので、いろいろ挑戦してみていただければと。なるべくテストすると宣言してからお願いします。コードはこの本にのってます(宣伝)。
grepは-P使わなければDFA型(決定性有限オートマトン)なので正規表現のマッチは早いすね。Cloudflareは裏でNFA型の何かを使ってたのかな。
— ぐれさん (@grethlen) July 3, 2019
DFA(決定性有限オートマトン)とNFA(非決定性有限オートマトン)については、次の教科書が詳しいです。
- 計算理論の基礎 [原著第2版] 1.オートマトンと言語
- [Michael Sipser]
- 共立出版 2008-05-21
(powered by amazon-item v0.2.1)
著作権とライセンスについて
これもいろいろ昨日から話題になってますが、私も講義で毎年90分話をしているのでおさらいをしました。
こちら、度々参考にさせていただいております。
知る、読む、使う! オープンソースライセンス - 達人出版会 https://t.co/TsciUjAGLH
— 上田 隆一 (@ryuichiueda) July 3, 2019
寝る。