モデル検査(1) 並行システムのモデリング 知能ソフトウェア特論 Intelligent Software

Slides:



Advertisements
Similar presentations
ベイズの定理と ベイズ統計学 東京工業大学大学院 社会理工学研究科 前川眞一. 2 Coffe or Tea 珈琲と紅茶のどちらが好きかと聞いた場合、 Star Trek のファンの 60% が紅茶を好む。 Star Wars のファンの 95% が珈琲を好む。 ある人が紅茶を好むと分かったとき、その人が.
Advertisements

だい六か – クリスマスとお正月 ぶんぽう. て form review ► Group 1 Verbs ► Have two or more ひらがな in the verb stem AND ► The final sound of the verb stem is from the い row.
VE 01 え form What is え form? え? You can do that many things with え form?
モデル検査の応用 徳田研究室 西村太一.
Model Checking (1) Modeling Concurrent Systems
Model Checking (1) Modeling Concurrent Systems
The Bar バー.
五段動詞の歌 ごだんどうしのうた.
Chapter 11 Queues 行列.
日本語... ジェパディー! This is a template for you to use in your classroom.
Recognise, ask about and talk about purpose
と.
3月6日(金曜日) 漢字 #6-10 Verbs! (continued) Particles Time References
ASE 2011 Software Model Checking
What did you do, mate? Plain-Past
プログラムの正当性(2) 正当性証明の基本原理
G: Objectives Can I read all the hiragana? Can I understand Japanese in a movie? Agenda A: Renshu N: らりるれろ、わをん A: Flashcards, えいが G: Can I test.
Object Group ANalizer Graduate School of Information Science and Technology, Osaka University OGAN visualizes representative interactions between a pair.
日本人の英語文章の中で「ENJOY」はどういうふうに使われているのか
Noun の 間(に) + Adjective Verb てform + いる間(に) during/while.
項書換え系(3) 合流性 Term Rewriting Systems(3) Confluence 知能ソフトウェア特論
Model Checking (2) Temporal Logic
How do you talk about Positions/ Locations?
Systems and Software Verification 10. Fairness Properties
CSP記述によるモデル設計と ツールによる検証
Tohoku University Kyo Tsukada
Licensing information
Chapter 4 Quiz #2 Verbs Particles を、に、で
The Sacred Deer of 奈良(なら)
モデル検査(1) 並行システムとモデル検査 1.並行システム 2.モデル検査 3.モデル検査の実施 4.システムとアルゴリズム
CONCURRENT PROGRAMMING
“You Should Go To Kyoto”
ストップウォッチの カード ストップウォッチの カード
モデル検査(2) プロセス代数に基づくモデリング
点素パス問題に対するアルゴリズム 小林 佑輔 東京大学 大学院情報理工学系研究科 組合せ最適化セミナー 2012 年 7月 13日
National adviser Japanese Yuriko Kayamoto
Causative Verbs Extensively borrowed from Rubin, J “Gone Fishin’”, Power Japanese (1992: Kodansha:Tokyo) Created by K McMahon.
モデル検査 状態遷移系 PLTL(propositional linear-time temporal logic) PLTLのモデル検査
7 ソフトウェア工学 Software Engineering モデル検査 MODEL CHECKING.
線形計画法に基づく逐次化を利用したシステムレベル設計での動作並列化前後での等価性検証手法
Model Checking (2) Temporal Logic
Term paper, Report (1st, first)
My Favorite Movie I will introduce my favorite movie.
Where is Wumpus Propositional logic (cont…) Reasoning where is wumpus
けいご 敬語 Polite speech.
論文紹介: Time Limited Model Checking
程度を表す表現を身につけよう どのくらいなのか?
逐次プログラムの正当性(2) 帰納的アサーション法(フロイド法)
受け身の疑問文 Practice ~ed・・・?.
Question Words….
モデル検査(3) 手続き型言語に基づくモデリング
プログラムの正当性(2) 正当性証明の基本原理
2019/4/22 Warm-up ※Warm-up 1~3には、小学校外国語活動「アルファベットを探そう」(H26年度、神埼小学校におけるSTの授業実践)で、5年生が撮影した写真を使用しています(授業者より使用許諾済)。
第1回レポートの課題 6月24日出題 今回の課題は1問のみ 第2回レポートと併せて本科目の単位を認定 第2回は7月に出題予定
関数型言語による Timed CSP 検証技法の提案
モデル検査(5) CTLモデル検査アルゴリズム
Tag question Aoyama Shogo.
北大MMCセミナー 第62回 附属社会創造数学センター主催 Date: 2016年11月4日(金) 16:30~18:00
知能ソフトウェア特論 Intelligent Software
知能ソフトウェア特論 Intelligent Software
ー生命倫理の授業を通して生徒の意識に何が生じたかー
The difference between adjectives and adverbs
Created by L. Whittingham
4 形式的設計検証技術 検証 verification 形式的検証 (4.1.2)
Cluster EG Face To Face meeting
Grammar Point 2: Describing the locations of objects
識別子の読解を目的とした名詞辞書の作成方法の一試案
アノテーションガイドラインの管理を行う アノテーションシステムの提案
Improving Strategic Play in Shogi by Using Move Sequence Trees
1.2 言語処理の諸観点 (1)言語処理の利用分野
Presentation transcript:

モデル検査(1) 並行システムのモデリング 知能ソフトウェア特論 Intelligent Software Model Checking (1) Modeling Concurrent Systems

1.並行システム (Concurrent systems) 並行システム:  複数のプロセス(逐次プログラムの実行)が並列(または擬似並列)に動作する計算システム A concurrent system is a computational system in which multiple processes (i.e., the executions of sequential programs) are run in parallel (or quasi-parallel).

インタリーブ (Interleaving) Process A a b Process B a b インターリーブは 予期できない 制御できない 膨大な数の実行経路を生じる Interleaving is ■ unpredictable, ■ uncontrollable, and ■ subject to yielding a huge number of computational paths.

デッドロック Copy (Deadlock) Scanner Process A Process B Printer acquire Scanner 1 acquire Printer 2 DEADLOCK acquire Printer acquire Scanner Copy Copy

ライブロック,飢餓,公平性 request request request acquire acquire request 公平性がない (Livelock, Starvation, Fairness) Resource Process A 優先順位が低い lower preference Process B Process C request request request acquire acquire request 公平性がない (no fairness) acquire request プロセスCは決して資源を獲得できない acquire Process C can never acquire the resource

2.モデル検査の概要 (Overview of model checking) 入出力関係に着目した「停止性+部分正当性」の解析のみでは並行システムの正当性を言えない →振る舞い(途中の状態遷移)の考慮が必要 Analysis of input-output relationships such as termination plus partial correctness is not enough to prove the correctness of concurrent systems. → Behaviors (i.e., transitions of intermediate states) need to be considered. モデル検査:   有限状態並行システム の振る舞い   の検証を自動で行う技術 Model checking is a technology that automatically verifies the behaviors of finite-state concurrent systems.

(primitive propositions) 状態遷移系(オートマトン) (State transition system; automaton) label (primitive propositions) 4-counter 1 1 event tick q p initial state tick p tick q tick p,q reset reset reset reset state 1 state 2 state 3 state 0 (p=1,q=0) (p=0,q=1) (p=q=1) (p=q=0) 状態数は数百万くらいはOK Millions of states are OK in practice.

検証できる主な性質 安全性 「悪いことは決して起こらない」 活性 (Major verifiable properties) モデル検査では主につぎの2つの性質を検証する Basically, the following two properties can be verified by model checking. 安全性  「悪いことは決して起こらない」 - safety, which ensures that the bad thing will never happen. Example: This elevator will never start to move while its door is still open. 例:このエレベータは,ドアが開いたまま昇降することは決してない 活性  「良いことはいつかは成り立つ」 - liveness, which ensures that the good thing will eventually happen. 例:資源を要求したら,いつか必ず取得できる Example: If you request a resource, you will eventually acquire it.

モデル検査の実施手順 (1)モデリング (2)性質の記述 (3)検査 (Model checking processes) モデル検査の実施手順   (Model checking processes) モデル検査はつぎの3ステップで実施する Model checking is conducted in the following three processes. (1)モデリング (modeling) (2)性質の記述 (description of properties) (3)検査 (verification)

(1) モデリング (Modeling) システムの振る舞いを表すモデル(状態遷移系)を記述する. 記述には一般に,モデル記述言語を用いる. プロセス代数に基づく言語やC言語風の言語などがある. Describe a model (i.e., state transition system) that defines the behavior of the system. A model description language is used for the description. Languages based on process algebra and C-like ones are available.

(2) 性質の記述 (Description of properties) システムが満たすべき性質(プロパティ)を記述する. (2) 性質の記述   (Description of properties) システムが満たすべき性質(プロパティ)を記述する. 記述には一般的に,時間の概念を扱う時相論理を用いる. 時相論理として,LTLとCTLがよく知られている. Describe properties the system is expected to satisfy. Temporal logics, which can represent the notion of time, are used for the description. Two well-known temporal logics are LTL and CTL. LTL (Linear Temporal Logic) CTL (Computation Tree Logic) Req 【LTL Example】 G(Req → F Ack) Ack Reqが真になると,その後いつか必ずAckが真になる Whenever Req is ON, then Ack will eventually become ON in the future. It is globally (always) true that if Req is true then in future Ack will be true.

(3) 検査 (Checking) モデルが,記述された性質を満たすかどうか,検査する. モデル検査器 モデル検査アルゴリズムの原理 (3) 検査   (Checking) モデルが,記述された性質を満たすかどうか,検査する. Check to see if the model satisfies the described properties. モデル検査器 A model checker is used for checking. 性質が成り立つ場合:検査終了 性質が成り立たない場合:   反例(エラートレース)を出力 ● if the properties hold, the check is finished. ● Otherwise, a counterexample (error trace) is output. モデル検査アルゴリズムの原理 The principle of model checking algorithms is to examine all possible computation paths for all possible input. すべての可能な入力について計算経路を網羅的に検査

モデル検査器の例 (Well-known model checkers) SMV, NuSMV カーネギーメロン大学 IEEE Futurebus+ standardのバグ発見 SPIN ベル研究所 ACM Software System Award受賞 LTSA ロンドン王立大学 FSP言語,アニメーション Java PathFinder (JPF) NASA Javaのバイトコードの検査 (Carnegie Mellon University) (Found bugs of an IEEE bus) (Bell Laboratories) (Received the ACM SS Award) (Imperial College London) (FSP Language, amination) (National Aero. & Space Admin.) (Checks Java byte code)

モデル検査器の概要 モデル検査器 モデル 検査結果result model 性質 property モデル検査器の概要   (Overview of model checker) モデル検査器 model checker モデル model 検査結果result 状態遷移系 OK/反例 性質 property (state transition system) The result is either OK or a counterexample (error trace). モデル記述言語 プロセス代数 C言語風言語 安全性,活性 (safety, liveness) 性質記述言語 時相論理 Model description language Process algebra C-like language Property description language Temporal logic

3.プロセス代数に基づく逐次プロセスのモデリング (Modeling sequential processes based on process algebra) プロセス代数とは: process algebra: an algebra consisting of processes and events as the universe together with operations such as process compositions. プロセスやイベント等の集合を台とし, プロセスの合成などの演算を定義した代数 a e Event P Process Process R Q Q = e ○ P

アクション接頭辞 (a-> P) 最初にアクション a を実行し,つぎにプロセス Pと同じ 振る舞いをするプロセス. (Action prefix) (a-> P) 最初にアクション a を実行し,つぎにプロセス Pと同じ 振る舞いをするプロセス. (a -> P) is a process that initially engages in the action a and then behaves exactly as described by the process P.

スイッチの例(1) ラベル付き遷移系 トレース : 実行可能なアクションの列のこと onoffonoffonoff ………. (Example of a binary switch) action initial state OFF ON ラベル付き遷移系 labeled transition system トレース : 実行可能なアクションの列のこと Trace: a possible action sequence onoffonoffonoff ……….

スイッチの例(2) SWITCH = OFF, OFF = (on -> ON), ON = (off -> OFF). Process name in capitals Action name in lower-case 代入によってより簡潔な表現を得る (Simplify the expressions by substitution) SWITCH = OFF, OFF = (on ->(off->OFF)). SWITCH = (on->off->SWITCH).

選択 (Choice) (a-> P | b->Q) 最初にアクション a ,b のいずれかを実行する. そのアクションが a ならつぎにプロセス P を実行し, b ならつぎにプロセス Q を実行するプロセス. (a->P | b->Q) is a process which initially engages in either a or b. The subsequent behavior is described by P if the first action was a, and Q if the first action was b.

自動販売機の例 DRINKS = ( red->coffee->DRINKS | blue->tea->DRINKS (Example of a vending machine) DRINKS = ( red->coffee->DRINKS | blue->tea->DRINKS ). ボタンの色で飲み物を指定 Select a drink by the color of the button

4.並行プロセスのモデリング プロセスの並列合成 (P||Q) プロセス P と Q の並行実行を表すプロセス. || は並列合成演算子. (Modeling concurrent processes) プロセスの並列合成 (parallel composition of processes) (P||Q) プロセス P と Q の並行実行を表すプロセス. || は並列合成演算子. This expression means the process in which processes P and Q are executed in parallel. The symbol || denotes the parallel composition operator.

アクションのインタリーブ (Action interleaving) ITCH = (scratch->STOP). かゆいところをかくプロセス a process that itches ITCH = (scratch->STOP). CONVERSE = (think->talk->STOP). || CONVERSE_ITCH = (ITCH || CONVERSE). 共有アクション無し no shared actions 会話するプロセス a process that converses 並列合成は || で書き始める 並列合成されたプロセス the process created by parallel composition A parallel composition statement starts with ||. インタリーブによって 可能となるトレース thinktalkscratch thinkscratchtalk scratchthinktalk プロセス間で共有されないアクションはインタリーブされる the traces made possible by interleaving Actions not shared among the processes will be interleaved.

ラベル付き遷移系の並列合成 3 states 2 states 2 x 3 states (Parallel composition of labeled transition systems) 2 states 3 states Pの状態pとQの状態qの組(p,q)が,P||Qの状態となる The pair (p, q) of states of processes P and Q is defined as a state of the composed process P || Q. 2 x 3 states (0,0) (0,1) (0,2) (1,2) (1,1) (1,0) from ITCH from CONVERSE

共有アクションとインタラクション 共有アクション:並列合成されたプロセスがもつ共通のアクション. (Shared action and interaction) 共有アクション:並列合成されたプロセスがもつ共通のアクション. 共有アクションによってプロセスのインタラクションをモデル化. 共有アクションは,それを共有するすべてのプロセスにおいて同時に同期して実行されなければならない. A shared action is an action shared among the parallel processes. Shared actions are used to model interactions among those processes. Shared actions must be executed at the same time by all processes that share them. In other words, those executions must be synchronized.

shared actions: ready, used インタラクションの例 shared actions: ready, used (Example of interactions) MAKER = (make->ready->used->MAKER). USER = (ready->use->used ->USER). || MAKER_USER = (MAKER || USER). 3 状態 3 状態 3 x 3 状態? 4 状態 インタラクションは 振舞いを制約する Interactions constrain the behavior.

演習問題 3 EXERCISE 3 二人のユーザーを表すプロセスUSER_A,USER_B,および共有資源を表すプロセスRESOURCE,およびそれらを並列合成したプロセスRESOURCE_SHAREが,つぎのように定義されている.これら4つのプロセスのラベル付き遷移系を描画せよ. ヒント: a_acquire,a_release,b_acquire,b_release は共有アクションである. The processes USER_A and USER_B, which represent two users, and RESOURCE , which represents a shared resource, are combined by the pallarel composition to define RESOURCE_SHARE. Draw the labeled transition systems for these four processes. Hint: a_acquire,a_release,b_acquire,b_release are shared actions. USER_A = (a_acquire -> a_use -> a_release -> USER_A). USER_B = (b_acquire -> b_use -> b_release -> USER_B). RESOURCE = IDLE,    IDLE = ( a_acquire -> BUSY  | b_acquire -> BUSY ),    BUSY = ( a_release -> IDLE | b_release -> IDLE ). || RESOURCE_SHARE = (USER_A || USER_B || RESOURCE).