ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

テニスをモデル検査する方法を聞いてきた!

2016-03-18 15:45:45 | Weblog
昨日(3月17日)、プロセス分析ツールPATによるモデリングとモデル検査を聞いてきた!その内容をメモメモ




■ごあいさつ 石川先生(日本語)
・今日は2部構成
・第一部は、大御所Jin-Song Dong先生
・テニスにつかってみよう!という話

■Event-Strategy Analytics based on formal analystic and verification with a new application domain on sports analytics
講師:Jin-Song Dong先生(英語)
・PATの紹介と新しい適用(スポーツ分析)
・形式使用の例
 宇宙
 がんちりょう
・形式仕様の初期の論文
  アランチューリング
  ホーア
  E.クラーク:モデルちぇっキング→インテルなんかもつかってるよね
・PATの8年間
  日本のユーザーグループ
・はじめの例:(車の)キーレスシステム(KCSとするみたい)
 キーの問題:
  鍵を車において、ロックしちゃったとき
  買い物などで、手にいっぱい物持っているとき
 →中にキーがあるなら、ロックできないようにすればいい!
  PATを使ってといてみよう!

・PATにおけるKCSの変数と定数
  #define
 var
しなりお:平行に流れる
 オーナーの状態とシナリオ
 キーの状態とシナリオ
 ドアの状態とシナリオ
 モーターの状態とシナリオ

・Reasoning
 鍵が中にあるケース
 奥さんが車、自分が遠くで、かぎもっている
 →これらをないようにしたいassertで調べる

・デモ
 PATで実行
 →PATはエレガントなストーリーを生成してくれる

・AIのプランニング、問題解決としてのモデルチェッキング
 数字のパズルの例
  AIプランニングツール、PAT,NuSMVとの比較

・学生さんがやった、旅行プランについて
  確率的モデルチェッキング
  モンティホール問題
  3つのドアのうち、1つに車が入っている
  選ぶ
  1つあける=くるまない
  そのあと選択を変えたほうがいい、わるい?
 (→説明してくれたけど、よくわかんない)
 PATでといてみる

・モデルチェッキングが意思決定にやくだつ

新しいドメインへの適用-スポーツ分析

・2014年、ブラジル VS ドイツ 
 ドイツが勝った理由、13人目の選手は・・・SAP

・スポーツ分析にモデルチェッキングを適用する
 →モンティホールのように
 →テニス
 シナリオ:フェドラーとナダル
  数字ならフェドラー
  ところが、このくみあわせ、ナダルが23勝10敗
 →ストラテジーの問題
   ナダルの戦略
   フェドラーの戦略
  モデル記述
  →パブリックドメインのオンラインデータを使う
 デモ(このPATプログラムはパブリックではない?)
  ナダルが勝つが、ここの数字を2かえると、フェドラーがかつ

・確率的モデルチェッキングのケーススタディ:4人のKuhnポーカー

・イベント分析
  意思決定のモデルチェッキングに基づいている
   データ分析は内部ブラックボックス

・スポーツ分析を超えて

Q&A
・プロジェクトの予測に使える?
・どのくらいの抽象度で記述する?
  テニスはドメイン知識があった

■PATハンズオン~PATによるモデリングとモデル検査の実際~
藤本さん(日本語)

PATの概要
・モデル検査の対象と表現・ツール
 振る舞いモデル
   オートマトン
    ・とりえる状態の遷移:SPIN
   プロセス代数
    ・プロセスを数式として定義:CSPなdp

・通信しながら並行動作するシステム
  スレッドができる言語でないとできないけど
  →車載システム:ECU
  これから重要:バグの再現性

・CSPについて
  こみゅにけーてぃんぐ・しーけんしゃる・プロセスの略
  ホーアさんがつくった
  TOPSE:並列システムの検証と実装

・式としての並行プロセス
 CSPではプロセスを式で表す
 式は演算子と被演算子で構成される
 プロセスP,Qの並行合成 P || Q (PとQが並行で動く)

・PATとは
 ぷろせす あなりしす つーるきっとの略
 CSPの方言(CSP#)
   →だけど、CSP以外の言語も入れられる(拡張モジュール)
 モデル検査:
   時相論理式のモデル検査
   詳細化関係を使った検査

・PATのアーキテクチャ
  コンカレントモジュール
  リアルタイムモジュール;時間要素を含む
  確立つきモジュール
  Webサービス記述用

  いったんまとめる

  エンジン

・PATを利用したモデル検査の流れ
  モデリング
  シミュレーションによる妥当性検討
  モデル検査による動作の証明
 →凡例:トレース情報

・PAT基本演算子
 PATデータの宣言

エディタ
・モデル編集:画面の各部分
 モデル編集:作成 File→New→CSP

シミュレーション機能
・適当なタイミングに戻ってみることができる
  →デバッグ

・演習
モデル1:硬貨を1ついてると、壊れる自動販売機
  VM1=(coin->Stop);
モデル2:2回利用すると壊れる
  VM2=(coin->(choc->(coin->(choc->Stop))));
モデル3:こまがいけるところ
  CTR=right->up->right->right->down->Stop;
Stop:デッドロック、異常終了

・トレースグラフの編集

・選択、再起を含むモデル
  選択により、プロセスの実行が制御される
  選択には、外部選択、内部選択がある
   P=a->b->Stop[]c->d->Stop;

  再帰:繰り返し構造
   P=a->b->P;

・決定的な選択と非決定的な選択

・モデル4:選択を含む例
VMCT=coin->(choc->VMCT[]toffee->VMCT);

・並行動作する複数プロセス
  P||Q 並行:同期する
  P|||Q インターリーブ:同期関係ない

・チャネル通信する並行プロセス
  ch!x 送信
  ch?y 受信

・演習3.1

P1 = a->x->b->Skip;
Q1= a->y->b->Skip;
Spar=P1||Q1;
Sint=P1|||Q1;
Sseq=P1;Q1;

・例:ギア制御の(ドライバ)モデル(状態遷移図)
絵を見ながら、モデルは機械的にかけます

モデル検査
・2つの流儀
 1:詳細化関係:プロセスの等価性→CSPでは伝統的
 2:時相論理による検査
・その他:よく使うもの
  deadlockfree,reachesなど

#assert P1 deadlockfree;

・モデル7:ドリンク ディスペンサー

DD=(setorange->O [] setlemon->L);
O=(orange->O[]setlemon->L[]setorange->O);
L=(lemon->L[]setorange->O[]setLemon->L);

#assert DD deadlockfree;

・哲学者の食事
 資源共有、排他制御、スケジューリング
 隠蔽することができる

・状態遷移モデルとの対応

時間制約付きモデル Timed CSP
・デッドライン、タイムアウト
 2つある
  Timed Automaton:時間変数
  Timed CSP:演算子、プロセスの導入

 RTSモデルを選ぶ

・プロセス
  Delay
  Timeout
  割り込み interrupt[t]
  デッドライン
  開始時間 within[t]
  Urgency ->>
   e1->P2() 時間はわからない(0~無限大)
   e1->>P2() ただちに実行

確率的過程モデル
この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 超高速開発GeneXusとMagicの... | トップ | ”「パスワードの強制定期変更... »
最新の画像もっと見る

Weblog」カテゴリの最新記事