热烈庆贺西北大学 信息科学与技术学院成立五周年...
DESCRIPTION
热烈庆贺西北大学 信息科学与技术学院成立五周年 计算机科学系成立三十周年!. 郝克刚. 2010.6.20. 我写给 各位同仁的 一封信. 推荐一本书: 2009.9 由科学院软件所林惠民院士翻译出版的 “通信与移动系统: π - 演算” 。 该书作者图灵奖得主 Robin Milner 为中译本所写的序言中,对中国学者给与了很大的期待:“作为在世界上发挥日益重要作用的伟大国家,中国具有引领 为新技术建立科学基础 的机会 …… 。” 我们西北大学一向具有 重视基础理论的优良传统 ,我衷心希望大家能够继续坚持这点优势,并向你们的学生强调学习理论的重要性。 - PowerPoint PPT PresentationTRANSCRIPT
1
热烈庆贺西北大学信息科学与技术学院成立五周年
计算机科学系成立三十周年!
郝克刚
2
2010.6.20. 我写给各位同仁的一封信
• 推荐一本书: 2009.9 由科学院软件所林惠民院士翻译出版的 “通信与移动系统: π- 演算”。
• 该书作者图灵奖得主 Robin Milner 为中译本所写的序言中,对中国学者给与了很大的期待:“作为在世界上发挥日益重要作用的伟大国家,中国具有引领为新技术建立科学基础的机会……。”
• 我们西北大学一向具有重视基础理论的优良传统,我衷心希望大家能够继续坚持这点优势,并向你们的学生强调学习理论的重要性。
• 我愿意同大家共享学习心得。
3
读几本经典的书
• 如果问中文系的老师、学生,你读过几遍红楼梦 ?
• 计算机系的学生要读几本甚么样的经典图书?
• 计算机科学是 20 世纪人类历史上最伟大的科技成就。
• 承担为新技术建立科学基础的重任。
4
实践和理论的关系
• 不能把这个循环简单化。这个循环可能要由很多人,甚至几代人分工来完成。
• 要允许理论研究暂时离开实践活动。
实践 理论
5
对学理论的几点心得
• 学理论的大敌,就是“急用先学、立竿见影”的功利主义。
• 不要在学理论时,总是不断地问:有什么用?有用才学,没用就不学。而是要下力气先学懂弄通。
• 要能静下心来,不是去简单背诵理论的结论,而是要顺着作者的逻辑,仔细品味理论背后的真谛,学习如何提出问题和解决问题的方法。
• 学理论要试着提出些问题,通过对问题的解决加深对理论的理解。
6
Pi 演算 (π-calculus) 模型介绍及其
表达能力 (Expressiveness) 的研究
郝克刚
7
Pi 演算 (π-calculus)
• Pi 演算起源于上世纪 80 年代末,由图灵奖得主 Robin Milner 提出。
• 它是一种描述和分析并发系统的演算模型,用演算中的归约表示由进程间的相互通信形成的动态演化。
8
罗宾 . 米勒 Robin Milner
• LCF(logic for computable functions)• ML (Metalanguage) 元语言,也称函数式语言• CCS (calculus for communicating systems) 通信系统演算• 1989 年提出 - calculus ( Milner, R., Parrow, J. and Walke
r, D. A calculus of mobile processes. 移动进程演算 )
1991 年 ACM 图灵奖获得者professor of computation theory University of Edinburgh, University of Cambridge
9
- 演算介绍提纲
一.什么是演算 演算的三大要素 逻辑演算 - 演算
二二 - 演算的基本概念 符号系统 - 表达式的语法
二二 - 演算的演算规则 结构等同 规约
四.π-演算的一个重要特点,动态耦合系统
10
什么是演算?
• 演算的起源,• 17 世纪后期,德国哲学家莱布尼茨首先明确地提出了数理逻辑的指导思想。他设想能建立一“普遍的符号语言”,这种语言包含着“思想的字母”,每一基本概念应由一表意符号来表示。一种完善的符号语言又应该是一个“思维的演算”,他设想,论辩或争论可以用演算来解决。
11
演算的例子• 命题演算 – 命题逻辑• 谓词演算 – 谓词逻辑• 时态逻辑演算 – 时态逻辑- 演算 – 可计算函数
演算系统 逻辑思维逻辑系统
12
构成演算的三大要素• 符号系统• 表达式的合式形成规则• 演算(推演)规则
• 演算的表达能力、应用。
13
符号系统( Signature)• 系统中所用的符号,构成演算对象的基本元素。
• 例如,命题演算中的命题变量: p,q,r,……命题连接词: , ,, ,
• 谓词演算中的个体变量: x,y,z,……谓词: P,Q,R,……全称、存在量词: , 。
• 时态逻辑演算中的下一时刻算子 o ,必然算子,终于算子 <>等。
14
表达式的形成规则• 形成合式表达式的语法规则。• 通常使用 BNF, EBNF 。例如对于命题演算:<合式公式 > :: =<命题变量 > | <合式公式 > |
<合式公式 > <命题连接词 > <合式公式 > <命题变量 > ::= <字母 > | <命题变量 ><字母 ><命题连接词 > ::= | | | <字母 > ::= a | b |… | z
如, p q p q• 为避免歧义。合理使用括号和定义连接词优先。
终结符 非终结符
15
演算、推演规则 例如命题演算的推演规则
p——————
p q
p——————
p
——————p p
q——————
p q
p——————
p
16
- 演算 – 可计算函数 语法规则< -term> ::= <variable> | <variable> . < -term>
| (< -term> < -term>)
<variable> ::= f | g | h | … x | y | z | … 语法规则可更简捷地写为:E ::= V | V.E | (E1 E2)
V :: = f | g | h | … x | y | z | …
其中 V 是任意一个变量 , E i 是任意一个 - 表达式。我们称 V 是 - 表达式的 head , E 是 - 表达式的
body.
f . x .( f (f x))
17
自由变量的集合• fv(E) 表示 E 中自由变量的集合
fv(x) = {x}fv( (E1 E2) ) = fv (E1) U fv (E2) fv(λx.E) = fv (E) -{x}
• 例如: f . x . f(n (fx) )fv (f . x . f(n (fx) )) = fv (x . f(n (fx) )) –{f}= fv (f(n (fx) )) –{x} –{f}= fv (f) U fv (n (fx) ) –{x} –{f}={f} U {n} U fv ((fx) ) –{x} –{f}={f} U {n} U {f} U {x} –{x} –{f}= {f,n,x} –{x} –{f} = {n}
18
演算规则• 归约规则 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 的所有出现。
h . x . ( h (h 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)
h换成 gx换成 y
19
表达自然数上的函数• 定义自然数(用 - 表达式 来表达)
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
20
- 演算理论的重要贡献• 定义如此简捷的一个演算,它的功能竟然等同于所有的可计算函数( - 演算等价于图灵机、递归函数、正规算法等)
• 这是 20 世纪计算机科学理论最重要的成就之一。
• 欣赏和品味抽象之美,简约之美。
21
罗宾 . 米勒 的 π演算• The π-calculus是 Robin Milner 在下述演算系统的基础上建立的。Church’s λ-calculus 等价于 Turing Machine
sCCS (calculus for communicating systems)
- Robin MilnerCSP (communicating sequential processes)
- Anthony Hoare
22
π- 演算的基本概念:
• 符号、表达式、归约• 在 π- 演算中最基本的元素是名字 (name) ,名字有无穷多,记作:
x,y,…∈ Name
• 再一个概念就是进程 ( process, 过程 ) ,进程是由名字按照下属语法 (BNF , EBNF)构成的表达式
23
pi 演算表达式的语法:
• 进程 P ::= M | P | Q | !P | (vx)P
• 和型 M ::= 0 | π ۰P | M + M
• 前缀 π ::= <y> | x(z) | τ
下面对它的语法和直观语义分别作些解释
x
24
前缀 π ::= <y> | x(z) | τ
• 其中 π P 的前缀 π 有以下三种形式。直观地讲,前缀 π 表示一个动作 (action), 它是执行 π P 的第一个动作。 x(y) P ,它将 y 绑定到进程 P ,解释为:“在通道 x 上接受信息并交给进程 P 的某个名字 y ” 。
<y> P ,也可写为 y P ,它不绑定 y到进程 P ,解释为:“将名字 y 输出到通道 x 上”。如果只是同步,而不传送信息, y 可省略。
P ,解释为:“执行 P 的内部动作” 。
x
x x
25
M ::= 0 | π ۰P | M +M
• M 称为 “和型 (Summation) ” 式,是进程的最基本的形式。 M 用递归的方式定义。
• 0 是什么都不做的空进程,(若在和型式中,常被省略掉。)
• 形如 π P 的项也是和型式。• 有穷个 0 或形如 π P 的项相加而成的表达式,也
是和型式。自然它也可以写成∑i∈Iπi Pi =π1 P1 + π2 P2 +…+ πn Pn
26
π1 P1 +…+ πn Pn
• 在这里 , “ 和”的直观意思解释为在各个项中只选择一个项执行,其他选项将被抛弃。
• 选择是由“配对 (redex) 归约基”来实现的 .
例如,下面的 x(y) 和 z 就构成一个配对x(y).P + w(y).R | z.Q
后面将会讲到,上式将归约为→ P[z/y] | Q
• P[z/y]指 用 z 替换表达式 P 中自由变量 x 的所有出现。
xx
27
进程 P ::= M | 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
x x xx
x
28
P ::= M | 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)| .0 )|(R1)
P ? → ( νa)(Q1)| .0 )|(R2)
aba
aa
b a
X
29
结构等同 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
30
归约 (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
31
注意,有些是规则不允许的!• 受动作约束的项以及和项不能单独规约,例如
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
32
π-演算的一个重要特点• 通道名可以作为名字传送。
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
zP
R
Q
x
x
z
动态耦合系统的模型
z
33
动态耦合系统的模型• 固定结构和动态耦合系统
• E-mail, -- Add
• Internet, SOA --URL
• mobility, ,移动通信。• ……。
34
Petri网模型• 诞生于上世纪六十年代,由德国学者 C.A.P
etri 在其博士论文中首次提出。它是面向并行系统建模的一种非常好的形式化。 Petri网可以采用图形化的表示方法,具有直观的特点,另一方面它又有严格的数学定义,和一系列进行系统属性分析的方法。
35
用 pi 演算和 Petri网模型作为基础。
• 随着面向服务的计算( SOC , SOA)技术和业务流程管理 (BPM) 技术的发展和应用,不少学者用 pi 演算和 Petri 网模型作为服务组合和工作流模式的严格的理论基础。
• 可信( Dependability)软件必须要以严格的理论作为基础。
• 但是究竟哪个更合适更好,存在者很大的争论。
36
best foundation
Pi calculus or Petri nets ?
Pi calculus or Petri nets ?
SOA
SOC BPEL
BPM
Workflow
37
表达能力 (expressiveness)
• 这就引起学术界关注探讨和研究这两个模型之间在表达能力 (expressiveness) 和适用性 (suitability)等方面的关系和差异的问题。
• 因为只有研究清楚了模型的表达能力,才能更准确地确定它们的适用范围。
38
expressiveness
Pi calculus Petri nets
39
用 pi 演算表达 Petri网的研究
• 开展用 pi 演算表达 Petri网的研究的目的是研究两个模型的表达能力 (expressiveness) 。
• 用相互表达的方法,可以细致地分析他们表达能力的差异。能表达的部分说明表达能力强的一面,不能表达的部分说明表达能力弱的一面。
40
研究的结论• 研究的结论是两个模型各有所长各有所短。• 某些 Petri网的子集可以直接用 Pi 演算表达,一般的 Petri网只要将 Pi 演算扩展到 Pi+ 演算就可表达,甚至带抑止弧的 Petri网也可用 Pi+ 演算的某种扩展(加优先机制)表达。
• 但是由于 Pi 演算中通道名可以作为名字传送,因而能够表达结构松散的动态耦合系统,而 Petri网模型中由于位置和转移的连接是固定的,较适合于表达结构固定的耦合系统,很难表达松散的动态耦合系统。
• 是否有倾向性呢,有,那就是,我们说 Pi 演算表达能力比 Petri网强。
41
承认各有所长各有所短。• 我们当前的研究的目的和结论仍然只能是尊重模型的多样性,承认各有所长各有所短。
• 研究表达能力的目的是明确各自模型的优势和劣势,确定模型的适应范围。这样的研究有助于应用中针对不同的要求,选择不同的模型。
• 但是表达能力的强弱只是模型属性的一个方面,例如 Petri网虽然表达能力不强,但是它在简单、直观、有严格的分析方法等方面有其优势,所以仍然有其存在和应用的空间。
• 当前的研究结论绝不是选择一个而抛弃一个,或创造一个新的统一的模型去适应所有的情形。
42
Petri 网的某些子集可以用 pi 演算直接表达
• 定理 1. 容量不限的不加权的 S-网系统、自由选择网系统可以用 Pi 演算表达。
• 定理 2. 容量不限的加权 T-网系统可以用Pi 演算表达。
• 现在简单介绍 Petri 网
43
Petri网( P/T网)系统
• N =( P , T , F , W , K , q0),
• 其中 P = {P1,…,Pm}( 位置集 ) , T = { T1,…,Tn }
(转移集 ) ,满足 P∩T = ∧,
• F ⊆( P T)∪( T P) (边集 )• W: F →N+ (边的权重 ) N+ = { 1,2,…}• K: P →N+ { } (∪ ∝ 容量 )• q0 : P →N (初始标识 ) N = { 0,1,2,…}
44
Wil van der Aalst 的挑战• 定理的证明就不具体陈述。关于用 Pi 演算的表达仅用下面的例子给以简单说明。
• Wil van der Aalst 在他的文章 [11] 对于力主使用 Pi演算的人给出了 7 个挑战,其中第 4 个挑战就是具体给出了一个例子如图 2 ,问如何容易地用 Pi演算对它描述。
a
p2 p9
p3
p7b cp4 d
p10p8e fp5 g
p6 h p11
p1
45
!f1۰ 1۰0
!f4۰ 4۰0
!f3۰ 3۰0
!f2۰ 2۰0
g
g g
T= g1۰ g2 ۰ 3۰ 4۰Tff
g
用 p 演算表达 Petri 网系统
| 1۰0g
| 2۰0g | 4۰0g
| 3۰0g
Q0= 1 ۰ 2۰0f f
46
• 每一位置 Pi 表示为:• Pi=! f i ۰ i۰0( i=1 , 2 ,… 11)• 转移 a,…, h 描述如下:• A= g1 ۰ 2 ۰ 3. A • B= g2 ۰ 4۰B • C= g3 ۰ 6 ۰ 7۰C
• D= g7 ۰ 9۰D • E= g3 ۰ 5۰E • F= g5۰ g6 ۰ 8۰F • G= g8 ۰ 10۰G • H= g9۰g10۰. 11۰H• 初始标识: Q0 = 1.0• P1|…| P11| A|…| H| Q0
a
p2 p9
p3
p7b cp4 d
p10p8e fp5 g
p6 h p11
p1
fff
ff
f
g ff
ff
f
47
P1
P2
P5
P4
P3
T1
T2
T3
T1 = g1 ۰ 3 ۰ T1
T2 = g1۰ g2۰g2 ۰ 4 ۰ T2
T3 = g2۰ g2 ۰ 5 ۰ T3
f
f
f
一般 Petri 网的表达
• 如果按照前面描述的方法表达,有可能出现阻塞。这与 Petri网的激发规则不相符合。
48
pi+ 演算 , 一种对 pi 演算的扩展
• pi 演算 (π-calculus) 是一个表达能力相当强的模型。然而在考虑如何用它来表示 Petri网时,发现pi 演算功能仍不够强,很难用其准确地描述 Petri网中同步和竞争的组合,以及权重、容量等特性。
• 我们提出了一种对 pi 演算的扩展,称为 pi+ 演算,增加了多原语同步通信机制。用 pi+ 演算可以较准确地表示 Petri网系统的动态行为,而且能更加细致地描述它丰富的动态语义。
49
pi 演算的扩展
• pi+ 演算是在传统的 pi 演算的基础上,增加多原语同步通信机制 。
• pi 演算中 <y>۰P | x (z)۰R → P | R [y/z]
• 我们称 <y> 为发送原语( send primitive),x (z) 为接收原语( receive primitive),x 是通道名, y 是沿通道发送的数据, z 是
接收变量。
xxx
x
x
50
单对原语同步通信机制
<u>۰P | <v>۰ Q | x (z)۰y (w)۰R | y (z)۰
S → P | <v>۰ Q | y (w)۰ R[u/z] | y (z)۰ S
→ P | Q | R[u/z, v/w] | y (z)۰ S
或者
→ P | Q | y (w)۰ R[u/z] | S [v/z]
x y
y
51
多对原语同步通信机制
<u>۰P | <v>۰ Q | x (z)y (w)۰R | y (z)۰ S
→ P | Q | R [u/z, v/w] | y (z)۰ S
或者
→ <u>۰P | Q | x (z)y (w)۰ R | S [v/z]
x y
x
52
pi+ 演算的语法表达式
• pi+ 演算的语法表达式:P ::= M | P|P | νzP | !P M ::= 0 | π ۰P | τ ۰P | M +Mπ ::= <y> | x (z) | ππ
• π 是一个由若干个发送原语和接收原语组成的同步通信原语组合。
• pi+ 演算增加的结构等价规则1. π1π2 ≡ π2π12. (π1π2) π3 ≡ π1(π2 π3)3. 如果 π1 ≡ π2 ,则 π1 ۰P ≡ π2۰P
x
53
完全匹配 (fully complementary)
• 定义 设 S 是由若干个 π组成的集合 S={π1,…, πn} ,我们考虑其中所有 π含的发送原语和接收原语,如果满足下述条件则称 S 是完全匹配的对何任通道 x , S 中以 x 为通道的发送原语的个数和以
x 为通道的接收原语的个数相同所有通道相同的发送和接收原语或者全带参数,或者全不带参数。
所有通道相同的带参数的发送原语,其发送的数据必须相同。
在任何 πi 中,如果带参数的接收原语有多个,则其接收变量不得相同
54
归约规则 (π)
• 设 S={π1,…, πn} 是完全匹配的,则
π1۰P1 +Q1 | … | πn۰Pn+Qn
→ P’ 1 | … | P’ n
• 其中 P’i (i=1,…,n) 定义如下
如果 πi中的接收 / 发送原语全不带参数,则 P’ i=Pi
否则, P’ i=Pi [y1/z1, … , yk /zk] 。
55
归约的例子
• <y> w (u) ۰P + Q | x (z) <v>۰R → P[v/u] | R[y/z]
• <y> <y> ۰P | x (z) ۰ Q | x (z) ۰ R → P | Q[y/z] | R[y/z]
• 但是,下面的例子不能归约 <y> <y> ۰P | x (z) ۰ Q <y> ۰P | x ۰ Q <y > <v> ۰P | x (z) ۰ Q | x (z) ۰ R <y> <v>۰P | x (z) w (z)۰ Q
x
x
x
w
xxxx xx w
56
!f1۰ 1۰0
!f4۰ 4۰0
!f3۰ 3۰0
!f2۰ 2۰0
g
g g
T= g1 g2 3 4 ۰Tf f
g
用 pi+ 演算表达 Petri 网系统
1۰0g
2۰0g
3۰0g
4۰0g
Q0= 1 2۰0f f
57
一般 Petri 网的 pi+ 演算表达式
• P = P1 |…| Pm | T1 |…| Tn | q0
• 如果 K( Pi) = , ∝ 则Pi = ! fi ۰R i, R i = i۰0 ,
• 如果 K( Pi) = k, 则Pi = |k Q i 即 Pi = Q i | … | Q i ( 共 k 个 )
Q i = fi ۰R i, R i = i۰Q i + i fi ۰R i,
g
gg
58
与转移 对应的表达式 Tj
• 我们先把 W扩展为 A:(PT) (T∪ P)→N ,如果 e F∈ ,则 A(e) = W(e) ,否则 A(e)=0 。
• 令 uij=A(Pi ,Tj) , vji=A(Tj , Pi)
• 与转移对应的表达式 Tj 定义如下
59
将 pi 演算扩展成 pi+ 演算的理由
• 也许有人会问,如果把
中多原语同步通信换成串行通信,即
不是就没有必要引入多原语同步通信机制和 pi+ 演算了吗。
60
实现容量限制的需要。
另外,为什么要把 T 中的发送原语也同接收原语一起同步通信呢。这是由于实现容量限制的需要。
P1
P2
P5
P4
P3
T1
T2
T32
2
1
1
61
可以用 pi 演算表达的 Petri网的子集
• 定理 1 。容量不限的不加权的 S-网系统、自由选择网系统可以用 pi 演算表达。
• 定理 2 。容量不限的加权 T-网系统可以用 pi 演算表达。
• 定理 3 。一般的,允许容量限制的加权的 Petri网系统可以用 pi+ 演算表达。
62
Petri网在 pi+ 演算中更细致地描述
即使某转移满足能够激发若干次的条件,也必须一个个串行地顺序执行,而不能并行执行。
只要满足条件,可产生多个转移实例并行执行。
限制最多产生 k 个转移实例并行执行。
63
pi+ 演算对带抑止弧的 Petri网的表示
• 定理 1 。对于带抑制弧的 Petri网,如果所有引出抑制弧的位置的容量是有穷的,则可以用 Pi+ 演算表达。
• 定理 2 。对于带抑制弧的 Petri网,如果有引出抑制弧的位置的容量是无穷的,则可以用具有优先原语功能的 Pi+ 演算表达。
64
优先原语
• 这里的优先原语指的是下面加了下划线的原语,在归约中让优先原语先归约。
x (y) ۰P | x ( u ) ۰Q | <z>۰R
→ x (y) ۰P | Q [z/u] | R
而不能→ P [z/y] | x <u>۰Q | R
x
65
结束语 -1 :
• 之所以一般的 Petri网不能用原有的 Pi 演算直接表达,是由于 Petri网的转移可以有多个输入边,从而允许多个流程的同步。可是原有的 Pi 演算一次只允许一个发送进程和一个接受进程进行通信,所以只允许两个进程的同步。这是 Petri网模型的一个优势,也可以说是原有的 Pi 演算的不足,也正是我们引入 Pi+ 演算的原由。
66
结束语 -2 :
• Petri网模型在简单、直观、有严格的分析方法等方面有其优势。但是由于 Pi 演算中通道名可以作为名字传送,因而能够表达结构松散的动态耦合系统, 如 Mobile 系统, 在 E-mail 系统中 mail 地址可以传送,可以根据接受到的 mail 地址进行通信;
面向服务的结构中可以查询服务提供方的 URL ,然后按照选择的URL 进行绑定和链接,
• 这都属于动态耦合。然而, Petri网模型中由于位置和转移的连接是固定的,较适合于表达结构固定的耦合系统,很难表达松散的动态耦合系统。这又是 Pi 演算的优势。
67
结束语 -3 :
• 我们只是证明了“把 pi 演算扩展成 pi+ 演算,就能表达一般的 Petri网,”并没有证明 “对 pi 演算不加扩展,就不能表达一般的 Petri网。”
• 因为要证明“不能”是相当困难的事。所以对这个论断只是我们的猜想。但是要推翻我们的猜想就要给出具体的表达来,这也是我们提出的挑战。
68
结束语 -4 :
• 我们用相互表达的方法分析模型表达能力的差异的研究工作并没有最后完成,只作了一半。另一半“用 Petri网模型表达 Pi 演算”还没有做。
• 我们还不知道 Pi 演算的怎样的子集可以直接用Petri网模型表达。我初步猜想不知可否证明:“限制通道名不能传送和不用重复算子“!”的 Pi 演算可以用 Petri网模型直接表达”。
• 至于对 Petri网模型做怎样的扩展就能表达一般的 Pi 演算,现在还想不出个眉目来。
69
参考文章• 郝克刚 郭小群 pi+ 演算及其对 Petri 网的表示 2009.
10.已投《计算机学报》• 这篇文章是我们承担的十一五 863 计划重点项目“可信
软件生产工具及集成环境”第五课题“面向流程管理的软件生产线” (课题编号 2007AA010305)理论研究的部分成果。
• 文章的早期版本形成于 2008.10 。见西北大学信息学院软件工程研究所技术报告 http://mainpage.nwu.edu.cn/hkg/docs/epaper/Pi+v-2-7.pdf 。这个版本叙述了研究的结论和思路,但不足之处是没有给出完整的、严格的推论和证明。
• 现在的这篇文章给出了完整详细严格的定义和证明。
70
参考文章• 郝克刚:介绍我们最近所作的一项工作。 2008.11.15 中
国计算机学会 Petri 网专委会 2008 年度工作会议(深圳) 。 http://mainpage.nwu.edu.cn/hkg/docs/epaper/20081115.pps
• 郭小群 郝克刚 Petri 网和 Pi 演算模型表达能力的研究《中国计算机学会通讯》第 5 卷 第 10 期 。
• 郭小群 郝克刚 pi+ 演算对带抑止弧的 Petri 网的表示 西北大学信息学院软件工程研究所技术报告 2008.11.6. http://mainpage.nwu.edu.cn/hkg/docs/epaper/SEITR081112.pdf
• 郝克刚 郭小群 Pi 演算对图灵机的表达全国理论计算机科学学术年会 2009.08. 《计算机工程与科学》 2009 年 31卷 10 期 53-55 。
71
中国计算机学会通讯 5卷 10 期 2009.10
72
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
介绍下面两本书
73
中译本已经出版