- 演算 — 动态耦合系统的模型
DESCRIPTION
- 演算 — 动态耦合系统的模型. The - calculus of Robin Milner - a Tutorial. 郝克刚 西北大学计算机科学系 软件工程研究所. 罗宾 . 米尔纳 Robin Milner. 1991 年 ACM 图灵奖获得者 professor of computation theory University of Edinburgh, University of Cambridge. LCF (logic for computable functions) ML (Metalanguage) 元语言,也称函数式语言 - PowerPoint PPT PresentationTRANSCRIPT
1
- 演算 —动态耦合系统的模型
郝克刚
西北大学计算机科学系 软件工程研究所
The - calculus of Robin Milner
-a Tutorial
西北大学计算机科学系软件工程研究所 2
罗宾 . 米尔纳 Robin Milner
LCF(logic for computable functions)ML (Metalanguage) 元语言,也称函数式语言CCS (calculus for communicating systems) 通信系统演算1989 年提出 - calculus Milner, R., Parrow, J. and Walker, D. A calculus of mobile processes. 移动进程演算
1991 年 ACM 图灵奖获得者professor of computation theory University of Edinburgh, University of Cambridge
西北大学计算机科学系软件工程研究所 3
讲座提纲一. 什么是演算
演算的三大要素 逻辑演算 - 演算
二二 - 演算的基本概念 符号系统 - 表达式的语法
二二 - 演算的演算规则 结构等同 规约
四. π-演算的一个重要特点,动态耦合系统
五. 多元 -演算六. 递归定义
带定义的 -演算 用重复实现递归
七. 类型、对象和函数八. 等价性
带标号转移系统 强、弱互模拟、等价
关系, 进程代数
九. 结束语
西北大学计算机科学系软件工程研究所 4
什么是演算? 命题演算 – 命题逻辑 谓词演算 – 谓词逻辑 时态逻辑演算 – 时态逻辑 - 演算 – 可计算函数
演算系统 逻辑思维逻辑系统
西北大学计算机科学系软件工程研究所 5
构成演算的三大要素 符号系统 表达式的合式形成规则 演算(推演)规则
演算的表达能力、应用。
西北大学计算机科学系软件工程研究所 6
符号系统 系统中所用的符号,构成演算对象的基本元素。 例如,命题演算中的
命题变量: p,q,r,…… 命题连接词: , ,, ,
谓词演算中的 个体变量: x,y,z,…… 谓词: P,Q,R,…… 全称、存在量词: ,。
时态逻辑演算中的 下一时刻算子 o ,必然算子,终于算子 <> 等。
西北大学计算机科学系软件工程研究所 7
表达式的形成规则 形成合式表达式的语法规则。 通常使用 BNF 。例如,对于命题演算:< 合式公式 > :: < 命题变量 > | < 合式公式 > |
< 合式公式 > 命题连接词 < 合式公式 >
< 命题变量 > :: < 字母 > | < 命题变量 >< 字母 >
< 命题连接词 > :: | | |
如, p q p q 为避免歧义。合理使用括号和定义连接词优先。
西北大学计算机科学系软件工程研究所 8
演算、推演规则 例如命题演算的推演规则
p——————
p q
p——————
p
——————p p
q——————
p q
p——————
p
西北大学计算机科学系软件工程研究所 9
- 演算 – 可计算函数
语法规则< -term> ::= <variable> | <variable> . < -term>
| (< -term> < -term>)<variable> ::= x | y | z | …
语法规则可更简捷地写为:E ::= V | V.E | (E1 E2) V :: = x | y | z | …其中 V 是任意一个变量 , E i 是任意一个 - 表达式。我们称 V 是 - 表达式的 head , E 是 - 表达式的
body.
西北大学计算机科学系软件工程研究所 10
自由变量的集合 fv(E) 表示 E 中自由变量的集合
fv(x) = {x}fv(E1 E2) = fv (E1) U fv (E2) fv(λx.E) = fv (E) -{x}
例如: f . x . f(nfx)fv (f . x . f(nfx))= fv (x . f(nfx)) –{f}= fv (f(nfx)) –{x} –{f}= fv (f) U fv (nfx) –{x} –{f}={f} U {n} U {f} U {x} –{x} –{f}= {f,n,x} –{x} –{f} = {n}
西北大学计算机科学系软件工程研究所 11
演算规则 规约规则 Reduction Rule
α-rule (换名) : x.E →y.E [y/x] if y fv (E) β-rule (作用) : ( x.E) Ea →E [Ea/x] if x fv (E) ηrule (消去) : ( x.E ) Ea →E if x fv (E)
其中 E[Ea /x] 对表达式 E ,用 Ea 替换其中自由变量 x 的所有出现。
f . x . f (f x)→ g. x . g (g x)→ g. y . g (g y)
g. y . g (g y) f x→ y . f (f y) x
→ f (f x)y . f (f z) x
→ f (f z)
西北大学计算机科学系软件工程研究所 12
表达自然数上的函数 定义自然数(用 - 表达式 来表达)
define 0 = f . x . x
define 1 = f . x . f x
define 2 = f . x . f (f x)
define 3 = f . x . f (f (f x))
……
定义后继函数define Succ = n . f . x . f (n f x)
验证 Succ 2 = 3
Succ 2 ( n . f . x . f (n f x))
( g . y . g (g y)) f . x . f (g. y . g (g y) f x) f . x . f (y . f (f y) x) f . x . f (f (f x))
= 3
西北大学计算机科学系软件工程研究所 13
- 演算理论的重要贡献 定义如此简捷的一个演算,它的功能竟然等同于所有的可计算函数( - 演算等价于图灵机、递归函数、正规算法等)
这是 20 世纪计算机科学理论最重要的成就之一。
欣赏和品味抽象之美,简约之美。
西北大学计算机科学系软件工程研究所 14
罗宾 . 米尔纳 的 π演算 The π-calculus 是 Robin Milner 在下述演算系统的基础上建立的。 Church’s λ-calculus 等价于 Turing Machines CCS (calculus for communicating systems)
- Robin Milner CSP (communicating sequential processes)
- Anthony Hoare
西北大学计算机科学系软件工程研究所 15
π- 演算的基本概念: 符号、表达式、归约
在 π- 演算中最基本的元素是名字 (name) ,名字有无穷多,记作:
x,y,…∈ N 再一个概念就是过程 ( process) ,过程是由名字按照下属语法 (BNF) 构成的表达式
P ::= ∑i∈Iπi Pi | P | Q | !P | (νx)P
其中 Pi ,P,Q, 都是过程。 下面对它的语法和直观语义分别作些解释
西北大学计算机科学系软件工程研究所 16
∑i∈Iπi Pi
这是一个 “和型 (Summution) ” 式,这里 I 是一个自然数的有穷集 I N . 也就是说,它是由有穷个形如 π P 的项相加而成的表达式。自然它也可以写成
π1 P1 + π2 P2 +…+ πn Pn
其中 π P 的前缀 π 有以下三种形式。直观地讲,前缀 π 表示一个动作 (action), 它是执行 π P 的第一个动作。 x(y) P ,它将 y 绑定到过程 P ,解释为:“在通道 x 上接
受信息并交给过程 P 的某个名字 y ” 。 y P ,它不绑定 y 到过程 P ,解释为:“将名字 y 输出
到通道 x 上”。如果只是同步,而不传送信息, y 可省略。
P ,解释为:“执行 P 的内部动作” 。
x
注 ; (x=y) π P
西北大学计算机科学系软件工程研究所 17
∑i∈Iπi Pi
在这里 , “ 和”的直观意思解释为在各个项中只选择一个项执行,其他选项将被抛弃。
选择是由“配对 (redex)” 来实现的 .
例如,下面的 x(y) 和 z 就构成一个配对x(y).P + w(y).R | z.Q
后面将会讲到,上式将归约为→ P[z/y] | Q
在 I =∧ 时把“和”定义为 0 。也就是说, 0 也是一个过程,解释为“什么也不做” 的过程。
xx
西北大学计算机科学系软件工程研究所 18
P ::= ∑i∈Iπi Pi | P | Q | !P | (νx)P
P |Q 称为并行,解释为独立并行执行的过程,它们之间可以通过通道通信。
!P 称为重复 (replication), 等同于很多个过程 P 在并行执行: P |P | … 数量不受限制,根据需要动态产生。一个最普通的例子是 ! zP ,它提供了一种需要时就产生的资源。
! zP | x(y).Q | x (y).R
→! zP | zP | zP | x(y).Q | x (y).R→! zP | P | P | Q[z/y] | R[z/y]
x
xx x x
x
西北大学计算机科学系软件工程研究所 19
P ::= ∑i∈Iπi Pi | P | Q | !P | (νx)P
最后 , (νx)P, 称为限制 (restriction) 或新名字(new) 它限制名字 x 只在 P 中有效,或者说它声明了一个只在 P 中使用的名字 x ,它区别于 P 以外的任何名字,即使它同样叫 x 也于此 x 不同。P = ( νa)((a.Q1+b.Q2)| .0 )|( .R1+ .R2)
P → ( νa)(Q1)|( .R1+ .R2)
或 P → ( νa)(Q2)| )|(R1)
P ? → ( νa)(Q1)| )|(R2)
aba
a
a
b a
X
西北大学计算机科学系软件工程研究所 20
结构等同 structural congruence
我们称 两个过程 R1 ,R2 是结构等同的 (structural congruence ) ,记作 R1 ≡ R2 ,如果 R1 是由 R2 经过若干次下属转换或等式替换得来的:
改变绑定名字(α 转换)。 P+Q ≡ Q+P P|0 ≡P, P|Q ≡Q|P , (P|Q)|R ≡ P|(Q|R) !P ≡ P |!P (νx)0 ≡ 0, (νx) (νy) P ≡ (νy) (νx)P 如果 x 不在 P 中自由出现 (νx) (P |Q) ≡ P | (νx) Q
西北大学计算机科学系软件工程研究所 21
归约 (reduction) 规则在过程表达式 P, P’ 之间建立归约关系 : P → P’ 两条公理
三条推理规则 P → P’ P → P’PAR 并行 : ———————— RES 限制 : ————————— P | Q → P’ | Q (ν x) P → (ν x) P’
P ≡ Q P → P’ P’ ≡ Q’STRUCT 结构 : ———————————————— Q → Q’
TAU 内动 .P + M → P
REACT 交互 ( x(y).P +M) | ( z.Q + N) → P [z/y] | Qx
西北大学计算机科学系软件工程研究所 22
注意,有些是规则不允许的! 受动作约束的项以及和项不能单独规约,例如
a.( x(y).P | z.Q) → a.( P [z/y] | Q ) 我们并没有这样的规则
而是用结构等同推出:! P ≡ P |…| P |! P →n P’ |…| P’ | ! P
x
P → P’———————! P → ! P’
X
X
西北大学计算机科学系软件工程研究所 23
一个例子 :缓存器
生产者 缓存器 消费者
!(νa) a.0 | !x(z) (z).0 | !y(w).Px y
!(νa) a.0|(νa) a.0 |!x(z). (z).0| x(z). (z).0 |!y(w).P| y(w).Px yx y
!(νa) a.0 |!x(z) (z).0 |(νa) (a).0 |!y(w).P| y(w).Px yy
!(νa) a.0 |!x(z) (z).0 |!y(w).P |(νa) P[a/w]x y
!P ≡ !P |P
存量不受限制,不保序!
西北大学计算机科学系软件工程研究所 24
π-演算的一个重要特点 通道名可以作为名字传送。
x(y). a.P | z.Q | z (w).R
a.P | Q | z(w).R
P | Q | R [a/w]
y x
zx
x
y
zx
x
z
z
动态耦合系统的模型
西北大学计算机科学系软件工程研究所 25
动态耦合系统的模型 固定结构和动态耦合系统
mail, -- Add Internet , --
URL mobility, ,移动通信。
……。
西北大学计算机科学系软件工程研究所 26
多元 (polyadic) π- 演算 在上面的 π- 演算系统中,沿着通道发送和接收的名字是单独的标量,所以称为单元 (Monadic) π- 演算。
如果沿着通道发送和接收的允许是名字组成的多维数组,则称系统为多元 (polyadic) π- 演算。
x(y1,y2,…,yn).P | <z1,z2,…,zn>.Qx
x(y).P | z.Qx
x( ).P | < >.Qxy
z
西北大学计算机科学系软件工程研究所 27
在单元 π- 演算中的表达
x(y1). x(y2 ).…x(yn).P | z1. z2.… zn.Qx x x
x(y1,y2,…,yn).P | <z1,z2,…,zn>.Qx
x(y1). x(y2 ). P | z1. z2. Q | z’1. z’2.Rx x xx
x(t).t(y1). t(y2 ).…t(yn).P | (ν w)( w. z1. z2.… zn.Q)x w w w
X
√
西北大学计算机科学系软件工程研究所 28
过程标识、过程定义和递归 在演算中引入过程标识、过程定义是很方便的。 将演算的语法和结构等同的定义扩充: P ::= A(x1,…,xk) | … …
A(x1,…,xk) QA
A(y1,…,yk) ≡ QA [(y1,…,yk) / (x1,…,xk) ]
后面会看到 - 演算的表达能力很强,可以用重复和并行来表达过程定义,甚至递归定义。
例如,移动电话,布尔缓冲器等。
def
西北大学计算机科学系软件工程研究所 29
移动电话 mobile telephone network
Car1,…,Carn
Station1,…,Stationm Control
Car1|…|Carn | Station1|…|Stationm | Control
西北大学计算机科学系软件工程研究所 30
移动电话的 π- 演算表示
Station-j
IdSta-j (tku,tkd,los) tj <tku,tkd,los> . Sta-j (tku,tkd,los)
Sta-j (tku,tkd,los) tku . . Sta-j (tku,tkd,los)+los.! IdSta-j (tku,tkd,los)
Car-i ! . tkdi tkui
Control命令 Car-i 进入 Station-j < tkui,tkdi,losi >命令 Car-i退出 Station-j
tjlosi
def
deftkd
! IdSta-j (tku,tkd,los) → ! IdSta-j (tku,tkd,los) | IdSta-j (tku,tkd,los)
→ tj <tku,tkd,los> . Sta-j (tku,tkd,los)
→ Sta-j (tkui,tkdi,losi) → tkui . . Sta-j (tkui,tkdi,losi)+losi.tkdi
西北大学计算机科学系软件工程研究所 31
布尔缓冲器(容量为 2 ,先进先出)
定义七个过程如下B x0.B0+x1.B1
B0 x0.B00+x1.B01+ .B
B1 x0.B10+x1.B11+ .B
B00 .B0
B01 .B1
B10 .B0
B11 .B1
def
def
defdef
def
def
def
0y0y
0y
1y
1y
1y
布尔缓冲器x0
x1
0y
1y
B→B0→B01→B1→BB→B0→B01→B1→B11→B1→B
B
B1B0
00 01 10 11
x0x10y 1y
输入 0 :通道 x0 ,输入 1 :通道 x1 ,输出 0 :通道 y0 ,输出 1 :通道 y1,
西北大学计算机科学系软件工程研究所 32
在 - 演算中实现过程标识、递归定义
为每个过程标识创建新名字,例如 ai 。 将所有过程 (包括定义右边 QA) 中出现的标识 Ai(y1,
…,yk) 替换为:< y1,…,yki>
将替换后的 QAi 写成 ai (x1,…,xk). QAi, 加重复和并行同原有的过程并行放在一起:
P | ! a1 (x1,…,xk1). QA1 |……| ! an (x1,…,xkn). QAn
下面举例说明
Ai(x1,…,xki) QAi
P = … Ai(y1,…,yki) …
def
ai
西北大学计算机科学系软件工程研究所 33
标识定义的布尔缓冲器直接用 - 演算表达
B x0.B0+x1.B1
B0 x0.B00+x1.B01+ .B
B1 x0.B10+x1.B11+ .B
B00 .B0
B01 .B1
B10 .B0
B11 .B1
def
def
defdef
def
def
def
0y0y
0y
1y
1y
1y
! b.(x0. +x1. )|
! b0.(x0. +x1. + . )|
! b1.(x0. +x1. + . )|
! b00. . |
! b01. . |
! b10. . |
! b11, . |
0y0y
0y
1y1y
1y b
0b
00b
1b
01b11b10b
0b
0b
1b
1bb
…… | B | …… …… | | …… b
在 - 演算中实现过程标识、递归定义。可见 - 演算表达能力很强。
西北大学计算机科学系软件工程研究所 34
类型 (sort) 和归类 (sorting)
同各种算法语言变量有类型一样, - 演算的名字也可以有类型,这里称名字的类型为 sort ,区别于 type 。
记类型的集合为 Σ ,类型列表的集合为 Σ* 。 称函数 ob: Σ→ Σ* 为归类 (sorting) 称某过程(或一组过程)具有归类 ob ,如果对于过程
中所有形如 x(y).P 或 <y>.Q 的子项,当 x 的类型是 σ 时,则 y 的类型一定是 ob(σ).
例如 R = x(y). <u,v> S = <z>.z(w) R | S 就不具有任何归类。因为 y 和 z 不可能具有
相同的类型。
xy
x
西北大学计算机科学系软件工程研究所 35
- 演算的表达能力相当强 - 演算虽然很简单,但是它的的表达能力相当强。除了前面所述的移动通信等动态耦合系统外,一般的系统功能也能表达。如:
- 演算表达具体的数据, - 演算表达对象、对象的方法、继承、多态等。 - 演算表达函数。 非常有趣的是 λ - 演算在 - 演算中的表达。
西北大学计算机科学系软件工程研究所 36
标号转移系统 (LTS) 。 设有一个标号集合 L ,一个状态集合 Q ,和一个三元关系 T Q X L X Q, T 也称为标号转移的集合,如果有 (q,α,q’) T ,也记作 q q’α
q0
q3
q1
q2
ab
cp0
p3
p1 p2
p1’
a
a
b
c
西北大学计算机科学系软件工程研究所 37
强模拟 Strong Simulation
设有一 LTS=(L,Q,T) , Q 上的二元关系 S 称为是强模拟关系,当且仅当:对于任意 pSq
如果 p p’ 则存在 q’ 满足 p’Sq’ 而且 q q’
如果有强模拟关系 S 使得 pSq ,则称 q 强模拟 p 。
q 强模拟 p 的例子。
αα
q0
q3
q1
q2
ab
cp0
p3
p1 p2
p1’
a
a
b
c
(p0,q0)(p1,q1)(p1’,q1)(p2,q2)(p3.q3)
西北大学计算机科学系软件工程研究所 38
强互模拟 Strong Bisimulation 关系和强等价
q0
q3
q1
q2
ab
cp0
p3
p1 p2
p1’
a
a
b
c
(p0,q0)(p1,q1)(p1’,q1)(p2,q2)(p3.q3)
q1 S-1 p1q1 q3p1 ?
c
c
如果强模拟关系 S 的逆关系 S-1也是强模拟关系 , 则称为是强互模拟 Strong Bisimulation 关系。
强模拟关系不是强互模拟关系的例子。
S-1 不是强模拟关系
西北大学计算机科学系软件工程研究所 39
如果 pSq, 称 p 和 q 强等价,记作: p ~ q ~ 是等价关系,即满足自反、对称和传递律:p ~ p ; p ~ q→ q ~ p ; p ~ q , q ~ r → p ~ r
如果这里是 c
如果没有这个转移
q0
q1 q2
abap0
P2’
p1 p2
p1’
a
a
b
b
强互模拟关系的例子。
q0’aa
a
(p0,q0)(p0,q0’)(p1,q1)(p1’,q1)(p2,q2)(p2’,q2)
强互模拟 Strong Bisimulation 关系和强等价
西北大学计算机科学系软件工程研究所 40
- 演算的标号转移系统 以 Action 为标号,在 - 演算中引入标号转移规则。 把 Process 扩展为 Agent 。举例说就是 x(y),P
<z>.Q 。通道名后面部分 x(y),P , <z>.Q (分别称为 Abstraction 和 concretion )
定义 x(y),P @ (νz)<z>.Q (νz)( P[z/y] |Q) - 演算的标号转移规则称为 commitment rules.
(x F+M) | ( C+N) F@C x
x
x
def
西北大学计算机科学系软件工程研究所 41
- 演算的标号转移规则
西北大学计算机科学系软件工程研究所 42
弱模拟、弱互模拟和弱等价。 x 和 是可观察动作, τ 是内部动作 二元关系 S 称为是弱模拟关系,当且仅当对于任意
pSq
如果 p p’ 则存在 q’ 满足 p’Sq’ 而且 q q’
如果 p p’ 则存在 q’ 满足 p’Sq’ 而且 q q’
其中 如果弱模拟关系 S 的逆关系 S-1也是弱模拟关系 , 则称为是弱互模拟 Weak Bisimulation 关系。
如果 pSq, 称 p 和 q 弱等价,记作: p q
x
τ
τλ τdef
λ
~~
西北大学计算机科学系软件工程研究所 43
进程代数 A = ( P ,O1,...,On) 结构等价 ≡ ,强等价 ~ , 弱等价 ≡→ ~ , ~ → - 演算 的规约规则: β-rule (作用) :
( x.E) N →E [N/x]
( x.E) N E [N/x]
~~
~~
~~
西北大学计算机科学系软件工程研究所 44
结束语 - 演算是米尔纳在众多的模型基础上建立的新模型,它非常简洁,但表达能力很强。
他开始是为移动通信系统建立的模型,但发现很适合作为各种动态耦合系统的模型。
Internet 和在它上面运行的应用系统多是动态耦合系统。如面向服务的计算 (SOC) 等。 - 演算为这种系统建模以及动态性能的分析和研究,提供了一个强有力的形式化的工具。
西北大学计算机科学系软件工程研究所 45
The π-CalculusA Theory of Mobile Processes
Davide Sangiorgi, David Walker Published December 2001
592 pages
Communicating and Mobile SystemsThe π-CalculusRobin Milner
Published June 1999 174 pages 58 line diagrams 230 exercises
介绍下面两本书
西北大学计算机科学系软件工程研究所 46
西北大学 软件工程研究所 所长
计算机科学系软件专业 教授、博导
[email protected]://mainpage.nwu.edu.cn/hkg/home/