1 / 46

- 演算 — 动态耦合系统的模型

- 演算 — 动态耦合系统的模型. 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) 元语言,也称函数式语言

elroy
Download Presentation

- 演算 — 动态耦合系统的模型

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. -演算—动态耦合系统的模型 The - calculus of Robin Milner -a Tutorial 郝克刚 西北大学计算机科学系 软件工程研究所

  2. 罗宾. 米尔纳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. 移动进程演算 西北大学计算机科学系软件工程研究所

  3. 讲座提纲 • 多元 -演算 • 递归定义 • 带定义的 -演算 • 用重复实现递归 • 类型、对象和函数 • 等价性 • 带标号转移系统 • 强、弱互模拟、等价关系, • 进程代数 • 结束语 • 什么是演算 • 演算的三大要素 • 逻辑演算 • -演算 • -演算的基本概念 • 符号系统 • -表达式的语法 • -演算的演算规则 • 结构等同 • 规约 • π-演算的一个重要特点,动态耦合系统 西北大学计算机科学系软件工程研究所

  4. 演算系统 逻辑系统 逻辑思维 什么是演算? • 命题演算 – 命题逻辑 • 谓词演算 – 谓词逻辑 • 时态逻辑演算 – 时态逻辑 • -演算 – 可计算函数 西北大学计算机科学系软件工程研究所

  5. 构成演算的三大要素 • 符号系统 • 表达式的合式形成规则 • 演算(推演)规则 • 演算的表达能力、应用。 西北大学计算机科学系软件工程研究所

  6. 符号系统 • 系统中所用的符号,构成演算对象的基本元素。 • 例如,命题演算中的 • 命题变量:p,q,r,……命题连接词:  , ,, ,  • 谓词演算中的 • 个体变量:x,y,z,……谓词:P,Q,R,…… • 全称、存在量词: ,。 • 时态逻辑演算中的 • 下一时刻算子o,必然算子,终于算子<>等。 西北大学计算机科学系软件工程研究所

  7. 表达式的形成规则 • 形成合式表达式的语法规则。 • 通常使用BNF。例如,对于命题演算: <合式公式>:: <命题变量> |  <合式公式>| <合式公式>命题连接词<合式公式> <命题变量> :: <字母> | <命题变量><字母> <命题连接词> ::  |  |  |  如,p q p  q • 为避免歧义。合理使用括号和定义连接词优先。 西北大学计算机科学系软件工程研究所

  8. 演算、推演规则 例如命题演算的推演规则 p —————— p q q —————— p q —————— p p p ——————  p  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(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} 西北大学计算机科学系软件工程研究所

  11.  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 的所有出现。 西北大学计算机科学系软件工程研究所

  12. 表达自然数上的函数 • 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 西北大学计算机科学系软件工程研究所

  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. 注; (x=y) πP ∑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 的内部动作” 。 西北大学计算机科学系软件工程研究所

  17. ∑i∈Iπi Pi • 在这里, “和”的直观意思解释为在各个项中只选择一个项执行,其他选项将被抛弃。 • 选择是由“配对(redex)”来实现的. 例如,下面的x(y)和 z就构成一个配对 x(y).P + w(y).R | z.Q 后面将会讲到,上式将归约为 → P[z/y] | Q • 在 I =∧时把“和”定义为0。也就是说,0 也是一个过程,解释为“什么也不做” 的过程。 西北大学计算机科学系软件工程研究所

  18. P ::= ∑i∈Iπi  Pi |P|Q | !P | (νx)P • P |Q称为并行,解释为独立并行执行的过程,它们之间可以通过通道通信。 • !P 称为重复(replication),等同于很多个过程 P 在并行执行:P |P|… 数量不受限制,根据需要动态产生。一个最普通的例子是 ! zP ,它提供了一种需要时就产生的资源。 ! zP | x(y).Q | x(y).R →! zP | zP | zP | x(y).Q | x(y).R →! zP | P | P | Q[z/y] | R[z/y] 西北大学计算机科学系软件工程研究所

  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) 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. 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’ 西北大学计算机科学系软件工程研究所

  22. 注意,有些是规则不允许的! • 受动作约束的项以及和项不能单独规约,例如 a.( x(y).P | z.Q) → a.( P [z/y] | Q ) • 我们并没有这样的规则 而是用结构等同推出: !P≡P |…|P |!P→nP’ |…|P’ | !P X P → P’ ——————— !P → !P’ X 西北大学计算机科学系软件工程研究所

  23. 生产者 缓存器 消费者 !(ν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 西北大学计算机科学系软件工程研究所

  24. x(y). a.P | z.Q |z(w).R a.P | Q | z(w).R P | Q | R [a/w] π-演算的一个重要特点 • 通道名可以作为名字传送。 • 动态耦合系统的模型 西北大学计算机科学系软件工程研究所

  25. 动态耦合系统的模型 • 固定结构和动态耦合系统 • mail, -- Add • Internet,--URL • mobility,,移动通信。 • ……。 西北大学计算机科学系软件工程研究所

  26. x( ).P | < >.Q x(y).P | z.Q x(y1,y2,…,yn).P | <z1,z2,…,zn>.Q 多元(polyadic)π-演算 • 在上面的 π-演算系统中,沿着通道发送和接收的名字是单独的标量,所以称为单元(Monadic) π-演算。 • 如果沿着通道发送和接收的允许是名字组成的多维数组,则称系统为多元(polyadic) π- 演算。 西北大学计算机科学系软件工程研究所

  27. 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 √ 西北大学计算机科学系软件工程研究所

  28. 过程标识、过程定义和递归 • 在演算中引入过程标识、过程定义是很方便的。 • 将演算的语法和结构等同的定义扩充: P ::= A(x1,…,xk) | … … A(x1,…,xk) QA A(y1,…,yk) ≡ QA[(y1,…,yk) / (x1,…,xk) ] • 后面会看到-演算的表达能力很强,可以用重复和并行来表达过程定义,甚至递归定义。 • 例如,移动电话,布尔缓冲器等。 西北大学计算机科学系软件工程研究所

  29. 移动电话 mobile telephone network • Car1,…,Carn • Station1,…,Stationm • Control Car1|…|Carn | Station1|…|Stationm | Control 西北大学计算机科学系软件工程研究所

  30. → 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 西北大学计算机科学系软件工程研究所

  31. 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, 西北大学计算机科学系软件工程研究所

  32. 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 下面举例说明 西北大学计算机科学系软件工程研究所

  33. ! 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 | …… 西北大学计算机科学系软件工程研究所

  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 不可能具有相同的类型。 西北大学计算机科学系软件工程研究所

  35. -演算的表达能力相当强 • -演算虽然很简单,但是它的的表达能力相当强。除了前面所述的移动通信等动态耦合系统外,一般的系统功能也能表达。如: • -演算表达具体的数据, • -演算表达对象、对象的方法、继承、多态等。 • -演算表达函数。 • 非常有趣的是λ -演算在-演算中的表达。 西北大学计算机科学系软件工程研究所

  36. 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’ 西北大学计算机科学系软件工程研究所

  37. (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的例子。 西北大学计算机科学系软件工程研究所

  38. 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关系。 • 强模拟关系不是强互模拟关系的例子。 西北大学计算机科学系软件工程研究所

  39. 强互模拟关系的例子。 (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 西北大学计算机科学系软件工程研究所

  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 西北大学计算机科学系软件工程研究所

  41. -演算的标号转移规则 西北大学计算机科学系软件工程研究所

  42. ~ ~ τ τ λ τ λ 弱模拟、弱互模拟和弱等价。 • x 和 是可观察动作,τ是内部动作 • 二元关系S 称为是弱模拟关系,当且仅当对于任意 pSq 如果pp’ 则存在q’满足p’Sq’而且 qq’ 如果pp’ 则存在q’满足p’Sq’而且 qq’ 其中 • 如果弱模拟关系S 的逆关系S-1也是弱模拟关系,则称为是弱互模拟 Weak Bisimulation关系。 如果 pSq,称p和q 弱等价,记作: p q 西北大学计算机科学系软件工程研究所

  43. ~ ~ ~ ~ ~ ~ 进程代数 • A = ( P ,O1,...,On) • 结构等价≡,强等价 ~, 弱等价 • ≡→ ~ , ~→ • -演算 的规约规则:β-rule(作用): ( λx.E) N →E [N/x] ( λx.E) N E [N/x] 西北大学计算机科学系软件工程研究所

  44. 结束语 • -演算是米尔纳在众多的模型基础上建立的新模型,它非常简洁,但表达能力很强。 • 他开始是为移动通信系统建立的模型,但发现很适合作为各种动态耦合系统的模型。 • Internet 和在它上面运行的应用系统多是动态耦合系统。如面向服务的计算(SOC)等。 -演算为这种系统建模以及动态性能的分析和研究,提供了一个强有力的形式化的工具。 西北大学计算机科学系软件工程研究所

  45. 介绍下面两本书 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 西北大学计算机科学系软件工程研究所

  46. 谢谢大家! hkg@nwu.edu.cn http://mainpage.nwu.edu.cn/hkg/home/ 西北大学 软件工程研究所 所长 计算机科学系软件专业 教授、博导 西北大学计算机科学系软件工程研究所

More Related