1
Ichiro Satoh
計算モデル特論
国立情報学研究所
佐藤一郎 E-mail: [email protected]
Ichiro Satoh
並行・並列・分散計算を 論理学で扱えるのか n 論理学は対象(例えばシステム実装)が性質(例えばシステム仕様)を 満足するかを検証するときに有用
n 並行・並列・分散計算は非決定性があり、タイミングにより動作がかわる
n 通常の(古典)論理体系(例:命題論理や述語論理)は決定的な世界、さらに止まった世界(タイミングなどは扱わない)
n 通常の(古典)論理体系で並行・並列・分散計算を扱うのは難しい n 様相論理(時相論理)を利用することが多い
プロセスA プロセスB プロセスC
システム実装 システム仕様
通信するかもしれない(可能性)
通信するかもしれない(可能性)
受信順による非決定性
Ichiro Satoh
正しいシステムを作るためには
n 検証とは、事実を確かめること(法律用語的には)
n ソフトウェアの検証 n 実装したソフトウェアが仕様を満足するかを調べること
n 類似技術:ソフトウェアテスト n コンピュータのプログラムを実行して、正しく動作するかを確認する作業
n ソフトウェア検証は(プログラムを実行することなく)プログラムを何らかの方法で解析して正しく動作するかを確認
Ichiro Satoh
検証
n 全体検証 n システムと当たられた全体性質(仕様)と一致を判定
n 例:プロセス計算の等価関係
n 部分検証 n システムがある性質を満足することを判定
n 例:モデル検査(Model Checking)
システム
部分性質
全体性質(仕様) =
システム ⊃
2
Ichiro Satoh
モデル検査
n システムやプログラムの動作を表すグラフ(例:状態機械)に対して、調べたい性質(時相論理で記述)の成立するかを判定する
設計
性質(仕様)
状態機械
設計誤り
Ichiro Satoh
モデル検査の手順
n システム全体の状態遷移グラフを構成 n 各状態遷移グラフの積(カルテシアン積) n 到達不能状態とアークの削除
n 検証手法 n 調べたい性質を状態遷移に従って状態間を移動
n 到達した各状態で性質が成立するかを判定
n 様相論理(時相論理) n 検証したい性質の記述に時相論理を利用 することが多い
状態グラフ
グラフの探索
Ichiro Satoh
例題:踏切
n 列車が近づくと踏切(ゲート)をおろす
App1 App2 Exit far near on far
列車
ゲート
ゲート(raise, up, lower, down)
Ichiro Satoh
例題:列車の状態遷移
n 列車の状態遷移図
far near App1
on App2 Exit
up lower App1
raise
App2
Exit
down
Exit
Exit
App2
App2
App1
App2 App1
App1
Exit
3
Ichiro Satoh
検証
n プログラムが満足すべき性質 n safety : 初期状態から到達可能な状態Sで常に条件P(S)が成り立つ (always P)
n progress : 初期状態から有限回の遷移後に条件Qが成り立つ(eventually Q)
n モデルチェッキング(モデル検査) n プログラムの正しさの検査=
n 状態遷移グラフ(モデル)上で上記が満たされているかどうかの検査
Ichiro Satoh
様相論理
n 時間に関する様相を扱う論理体系(様相論理)
n 通常の(古典)論理体系(例:命題論理や述語論理)は真偽が明確な言明、または演繹できることが前提であり、現実世界とミスマッチ
n 現実世界における可能性や必然性
n 様相論理 n 「~でなければならない」「~でありうる」「~べきである」といった可能性や必然性に関わる論理体系
n 必然性演算子□:「~は必然的である」ことを、 n 可能性演算子◇:「~は可能である」ことを表す
Ichiro Satoh
様相論理式(命題)
φ ::= P | ¬P ¦ φ∧φ ¦ φ∨φ ¦ □φ φは必然的
¦ ◇φ φは可能である
P: 原子論理式
Ichiro Satoh
様相論理
n 必然性と可能性の論理 n 確実性: ~でなければならない ~かもしれない
n 時相論理 n 時間: いつでも~である ~であるときがある
n 知識と信念の論理 n 信念: ~を知っている ~を信じている
n 位置論理 n 場所: どこでも~である あるところで~である
◇P ☐P
4
Ichiro Satoh
時相論理
n 時相論理とは n 状態の遷移や時間の経過の観点よりシステムの性質を記述するための論理体系
n 代表的形式 n 線形時間時相論理
n LTL(Linear Time Temporal Logic) n 分岐時間時相論理
n CTL(Computation Tree Logic) n プロセス論理 n µ計算(µ-calculus)
Ichiro Satoh
プロセス論理
n Hennessy-Milner論理 n 構文:
P ::= true | false | P ∧ Q | ¬P | <a> | [a]
n 非形式的意味
n true 真を表す n false 偽を表す n P ∧ Q PかつQ n ¬P Pの否定 n <a> アクションaに関する可能様相演算子 n [a] アクションaに関する必然様相演算子
Ichiro Satoh
プロセス論理の充足関係
n プロセス論理式によるプロセス表現 n P |= F とはプロセスPは性質をFを満足(充足)
n 充足関係|= (|= ⊆ P×F)は以下のように定義される n P |= <α>F とは ∃P’:P–α→P’ かつ P’ |= F n P |= ¬F とは P |= F (つまりP|=Fとなることがない) n P |= F∧G とは P |= F かつ P |= G
Ichiro Satoh
プロセス論理の例
n 論理学手法を利用したプロセスの仕様記述と証明
a.(b.0+c.0) |= <a>(<b>true ∧<c>true) a.b.0+a.c.0 |= <a><b>true ∧ <a><c>true a.b.0+a.c.0 |= <a>(<b>true ∧<c>true)
a.(b.0+c.0) a.b.0+a.c.0
b.0+c.0 b.0 c.0
a a
b c
a
b c
5
Ichiro Satoh
可能世界意味論
n 現実世界は無数の可能世界のなかの一つであり、世界によって論理式の解釈は違ってもよい
n 真なる命題とは、現実世界において真となる命題
n 可能な命題とは、少なくとも一つの可能世界において真となる命題
n 必然的な命題とは、全ての可能世界で真となる命題
n 不可能な命題とは、全ての可能世界で偽となる命題
n 偶然的な命題とは、それが真となる可能世界も、偽となる可能世界も存在する命題
Ichiro Satoh
可能世界意味論
n □α … どこでもαである
n ◇α … どこかではαである
α
α
α
α
α α
場所1
場所2 場所3
場所n 現在の場所
¬ α
¬ α
¬ α
¬ α
α ¬ α
場所1
場所2 場所3
場所n 現在の場所
Ichiro Satoh
可能世界意味論
☐P ある可能世界wにおいて「☐P」とは、wから到達可能な 可能世界のすべてにおいても「P」が真であるとき
◇P ある可能世界wにおいて「◇P」とは、wから到達可能な
可能世界のうち少なくとも一つで「P」が真であるとき
P:F
可能世界w P:T
P:T
P:T
P:F P:T
P:T
P:T
P:F
可能世界w P:T
P:T
P:F
P:F P:T
P:F
P:F
Ichiro Satoh
状態グラフ (クリプキ構造) n 状態集合: S
n S = {s1, s2, s3, s4} n 初期状態集合: I ⊆S
n I = {s1} n 遷移関係: R ⊆S×S (注.必ず次状態が存在するものとする)
n R = {(s1, s2), (s2, s3), (s2, s4), (s3, s3), (s3, s4), (s4, s4)} n 原子命題の割当: L: S ↦ 2A
n 原子命題の集合 A = {p, q}
s1 s2 s3 s4
q p,q p q
K = 〈S, R, L〉
6
Ichiro Satoh
可能世界意味論
n □P … いつでもPである
n ◇P … いつかはPである
P P P P P P
時刻1 時刻3 時刻n
現在の時刻
¬ P ¬ P ¬ P P ¬ P ¬ P
時刻1 時刻3 時刻n
現在の時刻
Ichiro Satoh
時相論理
n 線形時相論理 n 次の瞬間(ステップ)は高々一つ n 一本の無限の時系列
n 分岐時相論理 n 次の瞬間(ステップ)は一つ以上 n 無限の時系分岐列
Ichiro Satoh
命題線形時間時相論理式
PLTL(命題線形時間時相論理)
φ ::= P | ¬P ¦ φ∧φ ¦ φ∨φ ¦ ○φ 次の状態でφが真
¦ □φ 今後φが常に真
¦ ◇φ 将来のいずれかの時点で真
P: 原子論理式
Ichiro Satoh
線形時相論理の可能世界意味論
n πi |= □α … πi移行は常にαである
n ◇α … いつかはαである
n ○α … 次の時点はαである
α α α α ¬ α α 時刻i 時刻πi+1 時刻πi+2 時刻πi+3 時刻πi+4 時刻πi-1
現在の時刻
¬ α ¬ α ¬ α α ¬ α ¬ α 時刻i 時刻πi+1 時刻πi+2 時刻πi+3 時刻πi+4 時刻πi-1
現在の時刻
¬α α ¬α ¬α ¬ α ¬α 時刻i 時刻πi+1 時刻πi+2 時刻πi+3 時刻πi+4 時刻πi-1
現在の時刻
7
Ichiro Satoh
意味論 n |= ¬P iff P ∈ L(s0) n |= P iff P ∈ L(s0) n |= φ1∧φ2 iff π |= φ1 and π |= φ2 n |= φ1∨φ2 iff π |= φ1 or π |= φ2 n ¦= ○φ iff π1 |= φ n ¦= □φ iff πi ¦= φ for any i³0 n ¦= ◇φ iff πi ¦= φ for some i³0
n |= φ --- π は φ のモデルである。
π ¦= □φ iff π ¦= φ∧○□φ π ¦= ◇φ iff π ¦= φ∨○◇φ
Ichiro Satoh
分岐時相論理
n CTL式の真偽値 n 状態グラフ(state graph)上の状態とそこから始まるパスを考える
s1! s2! s3! s4!
s2!s3!
s3!
s3!
s4!s4! s4!
s4! s4! s4!...!
...!
...! ...!
Ichiro Satoh
分岐時相論理の解釈
n CTL式の真偽値 n CTL式 が状態sで成立する( がsで真):
n 原子命題, ∨,∧,¬ (not), → :その状態だ けで真偽値が決まる
!=s
s1! s2! s3! s4!p! q!p,q!q!
Ichiro Satoh
分岐時相論理
Computational Tree Logic (CTL) n シンタックス (f,g はCTL式)
n 原子命題 atomic proposition n ¬f, f ∧ g , f ∨ g , f → g n EXf, EFf, EGf, E(f Ug) n AXf, AFf, AGf, A(fUg)
E: あるパスで A: すべてのパスで F: いずれ G: ずっと U: ~まで
s2
s3 s4
s3 s4
s4
s4
s3 s4 s4
計算木
パス
8
Ichiro Satoh
CTL例
n EXf n fがある次状態で成り立つ
n AXf n fがすべての次状態で成り立つ
f
f f
s1 s2 s3 s4
q p,q p q
EXp EXp EXp AXp
EXq, AXqは? Ichiro Satoh
CTL例
n EFf n fがあるパスでいずれ成り立つ
n AFf n fがすべてのパスでいずれ成り立つ
f
f
f
f
s1 s2 s3 s4 q p,q p q
EFp AFp
EFp AFp
EFp AFp
Ichiro Satoh
CTL例
n EGf n fがあるパスで常に成り立つ
n AGf n fがすべてのパスで常に成り立つ
f
f
f f
s1 s2 s3 s4
q p,q p q
EGp EGp
Ichiro Satoh
CTL例
n E(f Ug) n あるパスについて,どこかでgが 成り立ち,それまでfが成り立ち続けている
n A(f Ug) n すべてのパスについて,...
g
f f
f f
g f
g
g
s1 s2 s3 s4 q p,q p q
E(pUq) E(pUq) E(pUq) E(pUq) A(pUq) A(pUq)
9
Ichiro Satoh
例題:踏切
n 遷移系が満たすべき性質を時相論理 (Temporal Logic)で記述
n Safety: 今からずっと、 今からずっと、○○であり続ける であり続ける n AG (on AG (on ⇒ down) down) n いつでも、電車がゲート上にあれば、ゲートはおりている いつでも、電車がゲート上にあれば、ゲートはおりている
n AG AX true AG AX true n システムがデッドロックしない
n Liveness:将来のある時点で、 ○○ が成立する n AG( down AG( down ⇒ AF up) AF up) n ゲートがおりていれば、いつかはゲートがあがる ゲートがおりていれば、いつかはゲートがあがる
Ichiro Satoh
例題:列車の状態遷移
n 列車の状態遷移図
far near App1
on App2 Exit
up lower App1
raise
App2
Exit
down
Exit
Exit
App2
App2
App1
App2 App1
App1
Exit
Ichiro Satoh
相互排除問題
n 二つのプロセス間で共有変数を排他的にアクセス n 各プロセスは三つの状態をもつ
n Non-critical (N) n Trying (T) n Critical (C)
n 排他制御するためのフラグを導入(S0またはS1) n 初期状態両プロセスともにNon-critical状態(N1 N2)、フラグはS0とする
N1 → T1 T1 ∧ S0 → C1 ∧ S1 C1 → N1 ∧ S0
N2 → T2 T2 ∧ S0 → C2 ∧ S1 C2 → N2 ∧ S0
||
Ichiro Satoh
相互排除問題
N1N2S0
C1N2S1 T1T2S0
N1T2S0 T1N2S0
N1C2S1
T1C2S1 C1T2S1
K ╞ AG EF (N1 ∧ N2 ∧ S0)
No matter where you are there is always a way to get to the initial state
10
Ichiro Satoh
相互排除問題
N1N2S0
C1N2S1 T1T2S0
N1T2S0 T1N2S0
N1C2S1
T1C2S1 C1T2S1
K ╞ AG EF (N1 ∧ N2 ∧ S0)
Ichiro Satoh
相互排除問題
N1N2S0
C1N2S1 T1T2S0
N1T2S0 T1N2S0
N1C2S1
T1C2S1 C1T2S1
K ╞ AG EF (N1 ∧ N2 ∧ S0)
Ichiro Satoh
相互排除問題
N1N2S0
C1N2S1 T1T2S0
N1T2S0 T1N2S0
N1C2S1
T1C2S1 C1T2S1
K ╞ AG EF (N1 ∧ N2 ∧ S0)
Ichiro Satoh
相互排除問題
N1N2S0
C1N2S1 T1T2S0
N1T2S0 T1N2S0
N1C2S1
T1C2S1 C1T2S1
K ╞ AG EF (N1 ∧ N2 ∧ S0)
11
Ichiro Satoh
相互排除問題
N1N2S0
C1N2S1 T1T2S0
N1T2S0 T1N2S0
N1C2S1
T1C2S1 C1T2S1
K ╞ AG EF (N1 ∧ N2 ∧ S0)
Ichiro Satoh
状態爆発問題
n 「モデル規模の増大にともない,探索すべき状態数が急激に増大する」という問題
状態数10の構成要素10個からなるシステム 状態の総数 1010 = 100億
X
Ichiro Satoh
状態削減手法
n 部分順序簡約(Partial Order Reduction) n 遷移の独立性を考慮して検証する性質に無関係な状態を判断することで計算量を削減する手法
n 例.SPIN
n 記号モデル検査 n 論理関数で状態集合や遷移関係を表し,それらの操作によって検証を行う手法
n 例.SMV, NuSMV
Ichiro Satoh
アルゴリズムと計算可能性
n 検証命題を記述する論理体系ごとにアルゴリズムが相違
n CTL論理: n 効率的なアルゴリズムが存効率的なアルゴリズムが存在
n LTL論理: n 特定の実行系列に関する非常に複雑な命題を記述できるが、式のサイズに関して指数関数的にコストが上がるアルゴリズム
12
Ichiro Satoh
アルゴリズムと計算可能性
n PSPACE-complete n 問題のサイズに対して多項式オーダのメモリを使用して解ける問題の中で最も難しい問題のクラスに属するということである
n CTL* n 分岐時間と線形時間の操作を組み合わせた論理 n LTLとアルゴリズム的複雑さが等しい