10语言和有限状态机离散数学讲义海南大学共十一讲.docx

上传人:b****1 文档编号:1759674 上传时间:2022-10-23 格式:DOCX 页数:27 大小:341.95KB
下载 相关 举报
10语言和有限状态机离散数学讲义海南大学共十一讲.docx_第1页
第1页 / 共27页
10语言和有限状态机离散数学讲义海南大学共十一讲.docx_第2页
第2页 / 共27页
10语言和有限状态机离散数学讲义海南大学共十一讲.docx_第3页
第3页 / 共27页
10语言和有限状态机离散数学讲义海南大学共十一讲.docx_第4页
第4页 / 共27页
10语言和有限状态机离散数学讲义海南大学共十一讲.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

10语言和有限状态机离散数学讲义海南大学共十一讲.docx

《10语言和有限状态机离散数学讲义海南大学共十一讲.docx》由会员分享,可在线阅读,更多相关《10语言和有限状态机离散数学讲义海南大学共十一讲.docx(27页珍藏版)》请在冰豆网上搜索。

10语言和有限状态机离散数学讲义海南大学共十一讲.docx

10语言和有限状态机离散数学讲义海南大学共十一讲

10.语言和有限自动机

LanguageandFinite-StateMachine

§10.1语言Languages

由符号以一定规则组成单词word,

由单词以一定规则(语法)组成句子sentences。

以一定规则给句子的含义作出解释叫语义。

Grammars文法

G=(V,S,v0,→)短语结构文法phrasestructuregrammar

V是有限符号集,

S⊆V,S终止符号集

v0∈V-S,初始符号,

→是V*上的有限产生关系productrelation。

w,w’∈V*,w→w’是产生规则,

w叫左边,w’叫右边。

N=V-S,非终止符号集。

例1.S={John,Jill,drives,jogs,carelessly,

rapidly,frequently}

N={sentence,noun,verbphrase,verb,

adverb}

V=N∪S,v0=sentence.

sentence→nounverbphrase

noun→John

noun→Jill

verbphrase→verbadverb

verb→drives

verb→jogs

adverb→carelessly

adverb→rapidly

adverb→frequently

sentence

nounverbphrase

Jillverbphrase

Jillverbadverb

Jilldrivesadverb

Jilldrivesfrequently

例2.正则文法,3型文法。

G=(V,S,v0,→),

V={v0,w,a,b,c},S={a,b,c},

1.v0→aw.2.w→bbw.3.w→c.

G能接受的语句是

v0→aw→ab2w→……→ab2nw→ab2nc.

简记为v0⇒ab2nc

G确定的语言L(G)={ab2nc|n∈N}=a(bb)*c.

例3.0型文法。

G=(V,S,v0,→),

V={v0,w,a,b,c},S={a,b,c},

1.v0→av0b.2.v0b→bw.3.abw→c.

v0→av0b→aav0bb→anv0bn→anbwbn-1

=an-1abwbn-1→an-1cbn-1

简记为v0⇒an-1cbn-1

G能接受的语句是ancbn,n≥0.

L(G)={ancbn|n≥0}

形式文法的分类

0型文法type0:

规则无限制.无限制文法。

1型文法type1:

每条规则左边的长度小于等于右边的长度。

lwr→lw’r,上下文有关文法。

2型文法type2:

A→α,A∈N,左边只含单个非终结字符。

上下文无关文法。

3型文法type3:

正则文法。

A→α或A→αB,A,B∈N,左边只含单个非终结字符,右边最右端可以有一个非终结符号。

右线性文法。

A→α或A→Bα,A,B∈N,左边只含单个非终结字符,右边最右端可以有一个非终结符号。

左线性文法。

语言

2型文法生成的语言叫2型语言,上下文无关语言。

3型文法生成的语言叫3型语言,正则语言。

L(G)={anbn|n≥3}

求文法G?

L(G)={xnym|n,m≥2}

求文法G?

§10.2特殊文法和语言的表示

BNF记号notation(Bachus-Naur形式)

例1.〈sentence〉:

:

=〈noun〉〈verbphrase〉,

〈noun〉:

:

=John|Jill

〈verbphrase〉:

:

=〈verb〉〈adverb〉

〈verb〉:

:

=drives|jogs

〈adverb〉:

:

=carelessly|rapidly|frequently

例2.〈v0〉:

:

=a〈w〉

〈w〉:

:

=bb〈w〉|c

左边记号在右边出现,叫做递归recursive

例3.程序设计C语言

〈十进制数〉:

:

=〈无符号整数〉|〈十进分数〉|

〈无符号整数〉〈十进分数〉

〈十进分数〉:

:

=.〈无符号整数〉

〈无符号整数〉:

:

=〈十进数字〉|

〈十进数字〉〈无符号整数〉

〈十进数字〉:

:

=0|1|2|3|4|5|6|7|8|9

23.14

例4.

G=(V,S,identifier,→)

N={identifier,remaining,digit,letter}

S={a,b,c,……,z,0,1,2,……,9}

V=N∪S

1.〈identifier〉:

:

=〈letter〉|

〈letter〉〈remaining〉

2.〈remaining〉:

:

=〈letter〉|〈digit〉|

〈letter〉〈remaining〉|

〈digit〉〈remaining〉

3.〈letter〉:

:

=a|b|……|z

4.〈digit〉:

:

=0|1|2|3|4|5|6|7|8|9

语法图SyntaxDiagrams

〈w〉:

:

=〈w1〉〈w2〉〈w3〉

〈w〉:

:

=〈w1〉〈w2〉|〈w1〉a|bc〈w2〉

〈w〉:

:

=ab〈w〉

〈w〉:

:

=ab|ab〈w〉

例5.

例6.

 

正则文法和正则表达式

RegularGrammarandRegularExpressions

设A是一个字符集,由如下产生规则生成的字符串叫做A的正则表示,不引起歧义时简称正则表示,省略A:

Re1.空串是正则表示。

Re2.如果,则x是正则表示。

Re3.如果α,β是正则表示,则αβ,即α∙β,是正则表示。

Re4.如果α,β是正则表示,则(α∨β)是正则表示。

Re5.如果α是正则表示,则(α)*是正则表示。

定理1.S有限集,L⊆S*,则L正则当且仅当存在正则文法G=(V,S,v0,→),L=L(G)。

将正则文法用BNF图表示,合成一个图,只含一个v0,其他都是终结符号,称为G的主图。

通过这个图,正则文法和正则表示式有一个对应:

1.终结符对应自己。

2.两个片断D1和D2串连成D,D对应α1⋅α2。

3.两个片断D1和D2并连成D,

D对应α1∨α2。

4.一个片断D由D1的环构成,D对应α1*.

例8.

§10.3有限状态自动机

Finite-StateMachine

有限状态集S={s0,s1,s2,……,sn}。

有限输入集I,每个x∈I,有一个

状态转换函数fx:

S→S。

F={fx|x∈I}.

M=(S,I,F)叫有限状态自动机。

状态si,输入x,fx(si)下一个状态。

 

M=(S,I,F)与M’=(S,I,F)等价:

F:

S×I→S,

F(si,x)=fx(si).

例1.

S={s0,s1},I={0,1}.

f0(s0)=s0,f0(s1)=s1,

f1(s0)=s1,f1(s1)=s0,

状态变换表:

0

1

s0

s0

s1

s1

s1

s0

例2.I={a,b},S={s0,s1,s2},

fa(s0)=s0,fa(s1)=s2,fa(s2)=s1,

fb(s0)=s1,fb(s1)=s0,fb(s2)=s2,

定义S上关系RM,

siRMsj当且仅当存在一个输入x,fx(si)=sj.

M的图:

MooreMachine识别机recognitionmachine

M=(S,I,F,s0,T),

s0初始状态,T可接受状态集。

自动机同余和商自动机

MachineCongruenceand

QuotientMachine

设M=(S,I,F),R是M上同余关系:

R是S上等价关系,且对任意s,t∈S,sRt当且仅当对任意x∈I,fx(s)Rfx(t).

令=S/R={[s]|s∈S}

对任意x∈I,令

由R是同余关系,是上的函数。

令,

称有限自动机=(,I,)为M对应R的商,记做=M/R.

如果M=(S,I,F,s0,T),R是M上的同余关系,=(,I,,s0,),

={[t]|t∈T}。

称为M的商MooreMachine.

例6.令S={s0,s1,s2,s3,s4,s5},T={s1,s3,s4}.

状态变换表:

S上同余关系R:

a

b

s0

s0

s4

s1

s1

s0

s2

s2

s4

s3

s5

s2

s4

s4

s3

s5

s3

s2

 

[s0]={s0,s2}=[s2]

[s1]={s1,s3,s5}=[s3]=[s5]

[s4]=[s4]

=S/R={[s0],[s1],[s4]}

a

b

[s0]

[s0]

[s4]

[s1]

[s1]

[s0]

[s4]

[s4]

[s1]

例7.I={0,1},

S={s0,s1,s2,s3,s4,s5,s6,s7},

M={S,I,F}

S/R={{s0,s4},{s1,s2,s5},{s6},{s3,s7}}

0

0

1

§10.4.半群,自动机和语言semigroups,machinesandlanguages

M={S,I,F}

S={s0,s1,s2,……,sn}。

F={fx|x∈I}.

I*是一个独异点,空串Λ是单位元。

S上所有函数的集合SS,关于复合组成独异点,恒等变换1s是单位元。

任意x∈I,fx∈SS,设w=x1x2……xn∈I*,

令fw=fxn◦fxn-1◦…◦fx1,fΛ=1s,

对每个w∈I*,fw∈SS,称fw是w对应的状态变换函数。

例1.M={S,I,F},S={s0,s1,s2},I={0,1}。

状态变换表F:

0

1

s0

s0

s1

s1

s2

s2

s2

s1

s0

设w=011∈I*,

fw(s0)=f1◦f1◦f0(s0)=f1◦f1(s0)=f1(s1)=s2.

fw(s1)=f1◦f1◦f0(s1)=f1◦f1(s2)=f1(s0)=s1.

fw(s2)=f1◦f1◦f0(s2)=f1◦f1(s1)=f1(s2)=s0.

例2.上例Moor机

0

fw(s0)=s2,fw(s1)=s1,fw(s2)=s0.

w’=01011

fw’(s0)=s1,fw’(s1)=s2,fw’(s2)=s0.

令M={S,I,F},定义函数

T:

I*→SS,

对任意w∈I*,T(w)=fw∈SS。

定理1.

(a)T(w1⋅w2)=T(w2)⋅T(w1).

(b)M=T(I*)构成SS的子独异点。

a

例3.

b

S0

S2

S1

d

d

b,d

a,b

a

则fadd◦fbad=fbadadd.

证明.

fadd(s0)=s0,fadd(s1)=s0,fadd(s2)=s0,

fbad(s0)=s1,fbad(s1)=s1,fbad(s2)=s1,

fadd◦fbad(s0)=fadd(s1)=s0

fadd◦fbad(s1)=fadd(s1)=s0.

fadd◦fbad(s2)=fadd(s1)=s0.

fbadadd(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1