460 likes | 683 Views
- 演算 — 动态耦合系统的模型. 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) 元语言,也称函数式语言
E N D
-演算—动态耦合系统的模型 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)元语言,也称函数式语言 • CCS (calculus for communicating systems)通信系统演算 • 1989年提出- calculus Milner, R., Parrow, J. and Walker, D. A calculus of mobile processes. 移动进程演算 西北大学计算机科学系软件工程研究所
讲座提纲 • 多元 -演算 • 递归定义 • 带定义的 -演算 • 用重复实现递归 • 类型、对象和函数 • 等价性 • 带标号转移系统 • 强、弱互模拟、等价关系, • 进程代数 • 结束语 • 什么是演算 • 演算的三大要素 • 逻辑演算 • -演算 • -演算的基本概念 • 符号系统 • -表达式的语法 • -演算的演算规则 • 结构等同 • 规约 • π-演算的一个重要特点,动态耦合系统 西北大学计算机科学系软件工程研究所
演算系统 逻辑系统 逻辑思维 什么是演算? • 命题演算 – 命题逻辑 • 谓词演算 – 谓词逻辑 • 时态逻辑演算 – 时态逻辑 • -演算 – 可计算函数 西北大学计算机科学系软件工程研究所
构成演算的三大要素 • 符号系统 • 表达式的合式形成规则 • 演算(推演)规则 • 演算的表达能力、应用。 西北大学计算机科学系软件工程研究所
符号系统 • 系统中所用的符号,构成演算对象的基本元素。 • 例如,命题演算中的 • 命题变量:p,q,r,……命题连接词: , ,, , • 谓词演算中的 • 个体变量:x,y,z,……谓词:P,Q,R,…… • 全称、存在量词: ,。 • 时态逻辑演算中的 • 下一时刻算子o,必然算子,终于算子<>等。 西北大学计算机科学系软件工程研究所
表达式的形成规则 • 形成合式表达式的语法规则。 • 通常使用BNF。例如,对于命题演算: <合式公式>:: <命题变量> | <合式公式>| <合式公式>命题连接词<合式公式> <命题变量> :: <字母> | <命题变量><字母> <命题连接词> :: | | | 如,p q p q • 为避免歧义。合理使用括号和定义连接词优先。 西北大学计算机科学系软件工程研究所
演算、推演规则 例如命题演算的推演规则 p —————— p q q —————— p q —————— p p p —————— p p —————— p 西北大学计算机科学系软件工程研究所
-演算 – 可计算函数 • 语法规则 < -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. 西北大学计算机科学系软件工程研究所
自由变量的集合 • fv(E) 表示E中自由变量的集合 fv(x) = {x} fv(E1E2) = 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} 西北大学计算机科学系软件工程研究所
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) • 规约规则 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 的所有出现。 西北大学计算机科学系软件工程研究所
表达自然数上的函数 • 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 • 定义自然数(用 -表达式 来表达) 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 西北大学计算机科学系软件工程研究所
-演算理论的重要贡献 • 定义如此简捷的一个演算,它的功能竟然等同于所有的可计算函数(-演算等价于图灵机、递归函数、正规算法等) • 这是 20世纪计算机科学理论最重要的成就之一。 • 欣赏和品味抽象之美,简约之美。 西北大学计算机科学系软件工程研究所
罗宾. 米尔纳 的π演算 • The π-calculus是 Robin Milner在下述演算系统的基础上建立的。 • Church’s λ-calculus 等价于 Turing Machines • CCS (calculus for communicating systems) - Robin Milner • CSP (communicating sequential processes) - Anthony Hoare 西北大学计算机科学系软件工程研究所
π- 演算的基本概念: 符号、表达式、归约 • 在π-演算中最基本的元素是名字(name),名字有无穷多,记作: x,y,…∈ N • 再一个概念就是过程( process),过程是由名字按照下属语法(BNF)构成的表达式 P ::= ∑i∈IπiPi |P|Q | !P | (νx)P 其中Pi,P,Q,都是过程。 • 下面对它的语法和直观语义分别作些解释 西北大学计算机科学系软件工程研究所
注; (x=y) πP ∑i∈Iπi Pi • 这是一个 “和型 (Summution) ” 式,这里 I是一个自然数的有穷集 I N . 也就是说,它是由有穷个形如π P的项相加而成的表达式。自然它也可以写成 π1P1+ π2P2+…+πnPn • 其中 π P的前缀 π有以下三种形式。直观地讲,前缀 π表示一个动作(action), 它是执行 π P的第一个动作。 x(y)P,它将 y绑定到过程P,解释为:“在通道x上接受信息并交给过程 P 的某个名字 y ”。 yP,它不绑定y到过程P,解释为:“将名字y 输出到通道x上”。如果只是同步,而不传送信息, y 可省略。 P,解释为:“执行 P 的内部动作” 。 西北大学计算机科学系软件工程研究所
∑i∈Iπi Pi • 在这里, “和”的直观意思解释为在各个项中只选择一个项执行,其他选项将被抛弃。 • 选择是由“配对(redex)”来实现的. 例如,下面的x(y)和 z就构成一个配对 x(y).P + w(y).R | z.Q 后面将会讲到,上式将归约为 → P[z/y] | Q • 在 I =∧时把“和”定义为0。也就是说,0 也是一个过程,解释为“什么也不做” 的过程。 西北大学计算机科学系软件工程研究所
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] 西北大学计算机科学系软件工程研究所
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) X 西北大学计算机科学系软件工程研究所
结构等同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 西北大学计算机科学系软件工程研究所
TAU内动 .P + M → P REACT 交互( x(y).P+M) | ( z.Q + N) →P [z/y] | Q 归约(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’ 西北大学计算机科学系软件工程研究所
注意,有些是规则不允许的! • 受动作约束的项以及和项不能单独规约,例如 a.( x(y).P | z.Q) → a.( P [z/y] | Q ) • 我们并没有这样的规则 而是用结构等同推出: !P≡P |…|P |!P→nP’ |…|P’ | !P X P → P’ ——————— !P → !P’ X 西北大学计算机科学系软件工程研究所
生产者 缓存器 消费者 !(νa) a.0 | !x(z) (z).0 | !y(w).P !(νa) a.0|(νa) a.0|!x(z). (z).0|x(z). (z).0|!y(w).P|y(w).P !(νa) a.0 |!x(z) (z).0 |(νa) (a).0|!y(w).P|y(w).P !(νa) a.0 |!x(z) (z).0 |!y(w).P |(νa)P[a/w] 存量不受限制,不保序! 一个例子 :缓存器 !P ≡ !P|P 西北大学计算机科学系软件工程研究所
x(y). a.P | z.Q |z(w).R a.P | Q | z(w).R P | Q | R [a/w] π-演算的一个重要特点 • 通道名可以作为名字传送。 • 动态耦合系统的模型 西北大学计算机科学系软件工程研究所
动态耦合系统的模型 • 固定结构和动态耦合系统 • mail, -- Add • Internet,--URL • mobility,,移动通信。 • ……。 西北大学计算机科学系软件工程研究所
x( ).P | < >.Q x(y).P | z.Q x(y1,y2,…,yn).P | <z1,z2,…,zn>.Q 多元(polyadic)π-演算 • 在上面的 π-演算系统中,沿着通道发送和接收的名字是单独的标量,所以称为单元(Monadic) π-演算。 • 如果沿着通道发送和接收的允许是名字组成的多维数组,则称系统为多元(polyadic) π- 演算。 西北大学计算机科学系软件工程研究所
x(y1). x(y2).…x(yn).P | z1. z2.… zn.Q x(y1). x(y2). P | z1. z2. Q | z’1. z’2.R x(t).t(y1). t(y2).…t(yn).P | (νw)( w. z1. z2.… zn.Q) x(y1,y2,…,yn).P | <z1,z2,…,zn>.Q 在单元π-演算中的表达 X √ 西北大学计算机科学系软件工程研究所
过程标识、过程定义和递归 • 在演算中引入过程标识、过程定义是很方便的。 • 将演算的语法和结构等同的定义扩充: P ::= A(x1,…,xk) | … … A(x1,…,xk) QA A(y1,…,yk) ≡ QA[(y1,…,yk) / (x1,…,xk) ] • 后面会看到-演算的表达能力很强,可以用重复和并行来表达过程定义,甚至递归定义。 • 例如,移动电话,布尔缓冲器等。 西北大学计算机科学系软件工程研究所
移动电话 mobile telephone network • Car1,…,Carn • Station1,…,Stationm • Control Car1|…|Carn | Station1|…|Stationm | Control 西北大学计算机科学系软件工程研究所
→ Sta-j (tkui,tkdi,losi) → tkui. . Sta-j (tkui,tkdi,losi)+losi. ! IdSta-j (tku,tkd,los) → ! IdSta-j (tku,tkd,los) | IdSta-j (tku,tkd,los) 移动电话的π-演算表示 →tj <tku,tkd,los> . Sta-j (tku,tkd,los) Car-i ! .tkdi 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) Control 命令Car-i进入Station-j < tkui,tkdi,losi> 命令Car-i退出Station-j 西北大学计算机科学系软件工程研究所
B x1 x0 B0 B1 00 01 10 11 x0 布尔缓冲器 x1 布尔缓冲器(容量为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 B→B0→B01→B1→B B→B0→B01→B1→B11→B1→B 输入0:通道x0,输入1:通道x1, 输出0:通道y0,输出1:通道y1, 西北大学计算机科学系软件工程研究所
Ai(x1,…,xki) QAi P = … Ai(y1,…,yki) … 在-演算中实现过程标识、递归定义 • 为每个过程标识创建新名字,例如 ai。 • 将所有过程(包括定义右边QA)中出现的标识Ai(y1,…,yk) 替换为: < y1,…,yki> • 将替换后的 QAi 写成ai (x1,…,xk). QAi,加重复和并行同原有的过程并行放在一起: P | ! a1 (x1,…,xk1). QA1 |……| ! an (x1,…,xkn). QAn 下面举例说明 西北大学计算机科学系软件工程研究所
! b.(x0.+x1. )| ! b0.(x0.+x1.+ . )| ! b1.(x0.+x1.+ . )| ! b00. .| ! b01. .| ! b10. .| ! b11, .| …… | | …… 在-演算中实现过程标识、递归定义。 可见-演算表达能力很强。 标识定义的布尔缓冲器直接用-演算表达 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 …… | B | …… 西北大学计算机科学系软件工程研究所
类型(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 不可能具有相同的类型。 西北大学计算机科学系软件工程研究所
-演算的表达能力相当强 • -演算虽然很简单,但是它的的表达能力相当强。除了前面所述的移动通信等动态耦合系统外,一般的系统功能也能表达。如: • -演算表达具体的数据, • -演算表达对象、对象的方法、继承、多态等。 • -演算表达函数。 • 非常有趣的是λ -演算在-演算中的表达。 西北大学计算机科学系软件工程研究所
b p1 p2 q2 b a a q0 p0 q1 c a c p1’ q3 p3 标号转移系统(LTS)。 • 设有一个标号集合L,一个状态集合Q,和一个三元关系T QXLXQ, T也称为标号转移的集合,如果有(q,α,q’) T,也记作 qq’ 西北大学计算机科学系软件工程研究所
(p0,q0) (p1,q1) (p1’,q1) (p2,q2) (p3.q3) b p1 p2 q2 b a a p0 q0 q1 c a c p1’ q3 p3 强模拟 Strong Simulation • 设有一 LTS=(L,Q,T),Q上的二元关系S 称为是强模拟关系,当且仅当:对于任意 pSq 如果pp’ 则存在q’满足p’Sq’而且 qq’ • 如果有强模拟关系 S 使得 pSq ,则称 q 强模拟p。 • q 强模拟p的例子。 西北大学计算机科学系软件工程研究所
q1 S-1p1 q1 q3 p1 ? (p0,q0) (p1,q1) (p1’,q1) (p2,q2) (p3.q3) b p1 q2 p2 b a a p0 q0 q1 c a c p1’ q3 p3 S-1不是强模拟关系 强互模拟 Strong Bisimulation关系和强等价 • 如果强模拟关系S 的逆关系S-1也是强模拟关系,则称为是强互模拟 Strong Bisimulation关系。 • 强模拟关系不是强互模拟关系的例子。 西北大学计算机科学系软件工程研究所
强互模拟关系的例子。 (p0,q0)(p0,q0’) (p1,q1)(p1’,q1) (p2,q2)(p2’,q2) b p1 p2 a q0 a a b a q1 p0 q2 a b a a p1’ P2’ q0’ 如果没有这个转移 强互模拟 Strong Bisimulation关系和强等价 • 如果 pSq,称p和q 强等价,记作: p ~ q • ~ 是等价关系,即满足自反、对称和传递律: p ~ p;p ~ q→q ~ p ;p ~ q,q~ r →p~ r 如果这里是 c 西北大学计算机科学系软件工程研究所
-演算的标号转移系统 • 以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 和 是可观察动作,τ是内部动作 • 二元关系S 称为是弱模拟关系,当且仅当对于任意 pSq 如果pp’ 则存在q’满足p’Sq’而且 qq’ 如果pp’ 则存在q’满足p’Sq’而且 qq’ 其中 • 如果弱模拟关系S 的逆关系S-1也是弱模拟关系,则称为是弱互模拟 Weak Bisimulation关系。 如果 pSq,称p和q 弱等价,记作: p q 西北大学计算机科学系软件工程研究所
~ ~ ~ ~ ~ ~ 进程代数 • A = ( P ,O1,...,On) • 结构等价≡,强等价 ~, 弱等价 • ≡→ ~ , ~→ • -演算 的规约规则:β-rule(作用): ( λx.E) N →E [N/x] ( λx.E) N E [N/x] 西北大学计算机科学系软件工程研究所
结束语 • -演算是米尔纳在众多的模型基础上建立的新模型,它非常简洁,但表达能力很强。 • 他开始是为移动通信系统建立的模型,但发现很适合作为各种动态耦合系统的模型。 • Internet 和在它上面运行的应用系统多是动态耦合系统。如面向服务的计算(SOC)等。 -演算为这种系统建模以及动态性能的分析和研究,提供了一个强有力的形式化的工具。 西北大学计算机科学系软件工程研究所
介绍下面两本书 Communicating and Mobile Systems The π-Calculus Robin Milner Published June 1999 174 pages 58 line diagrams 230 exercises The π-Calculus A Theory of Mobile Processes Davide Sangiorgi, David Walker Published December 2001 592 pages 西北大学计算机科学系软件工程研究所
谢谢大家! hkg@nwu.edu.cn http://mainpage.nwu.edu.cn/hkg/home/ 西北大学 软件工程研究所 所长 计算机科学系软件专业 教授、博导 西北大学计算机科学系软件工程研究所