当前位置: 代码迷 >> 综合 >> 【形式语言】第一章绪论
  详细解决方案

【形式语言】第一章绪论

热度:80   发布时间:2024-02-19 16:06:31.0

集合

集合:一定范围内的、确定的、并且彼此可以区分的对象汇集在一起形成的整体叫做集合(set),简称为集(set)
元素:集合的成员为该集合的元素(element)
基数:集合中元素个数
集合的描述形式有列举法命题法两种

集合的运算

  1. 并(∪\cup)
  2. 交(∩\cap)
  3. 差(?-?)
  4. 对称差(?\oplus?)
  5. 笛卡尔积(×\times×)
    A×B={(a,b)∣a∈A&b∈B}A\times B =\{ (a,b) | a \in A \& b \in B\}A×B={ (a,b)aA&bB}
  6. 幂集(2A2^A2A)
    所有集合子集(包含本身和空集)
  7. 补集(A?\overline AA)

令A = {1,2,3},B = {2,3,4},U = {1,2,3,4}
A∪B={1,2,3,4},A∩B={2,3},A?B={1},A?B={1,4},A×B={(1,2),(1,3),(1,4),(2,2),(2,3),(2,4),(3,2),(3,3),(3,4)},2A={?,{1},{2},{3},{1,2},{1,3},{2,3},{1,2,3}},A?={4}A\cup B=\{1,2,3,4\},A\cap B=\{2,3\},A-B=\{1\},A\oplus B=\{1,4\},A\times B = \{(1,2),(1,3),(1,4),(2,2),(2,3),(2,4),(3,2),(3,3),(3,4)\},2^A=\{\empty , \{1\},\{2\},\{3\},\{1,2\},\{1,3\},\{2,3\},\{1,2,3\}\},\overline A = \{4\}AB={ 1,2,3,4},AB={ 2,3},A?B={ 1},A?B={ 1,4},A×B={ (1,2),(1,3),(1,4),(2,2),(2,3),(2,4),(3,2),(3,3),(3,4)},2A={ ?,{ 1},{ 2},{ 3},{ 1,2},{ 1,3},{ 2,3},{ 1,2,3}},A={ 4}

关系

二元关系

二元关系:任意的R?A×BR\subseteq A\times BR?A×B ,称RRRAAABBB上的二元关系。
表示(a,b)∈R(a,b)\in R(a,b)R也可表示为aRbaRbaRb
两个域:A称为定义域,B称为值域
A=BA = BA=B时称RRRAAA上的二元关系

几种二元关系性质

  1. 自反性 2.反自反 3.对称性 4. 反对称性 5. 传递性
    ps:对称和反对称并不是互斥的

等价关系与等价类

等价关系:具有自反性、对称性、传递性的二元关系称为等价关系。
等价类:S的满足如下要求的划分:S1S_1S1?S2S_2S2?S3S_3S3?、…、SnS_nSn?、…称为S关于R的等价划分,SiS_iSi?称为等价类。
(1) S=S1∪S2∪S3∪...∪Sn∪...S = S_1\cup S_2\cup S_3\cup...\cup S_n\cup...S=S1?S2?S3?...Sn?...
(2)如果i=?ji\not =ji??=j,则Si∩Sj=?S_i\cap S_j = \emptySi?Sj?=?
(3)对于任意的iiiSiS_iSi?中的任意两个元素aaabbbaRbaRbaRb恒成立。
(4)对于任意的iiijjji=?ji\not =ji??=jSiS_iSi?中的任意元素aaaSjS_jSj?中的任意元素bbbaRbaRbaRb恒不成立

关系的合成

R1?A×BR_1\subseteq A\times BR1??A×BAAABBB 的关系、R2?B×CR_2\subseteq B\times CR2??B×CBBBCCC的关系,R1R_1R1?R2R_2R2?的合成R1R2R_1R_2R1?R2?AAACCC的关系:
R1R2={(a,c)∣?(a,b)∈R1且(b,c)∈R2}R_1R_2= \{(a,c)|\exists(a,b)\in R_1且(b,c)\in R_2\}R1?R2?={ (a,c)?(a,b)R1?(b,c)R2?}

关系的闭包

设P是关于关系的性质的集合,关系R的P闭包(closure)是包含R并且具有P中所有性质的最小关系。

正闭包(传递闭包)

(1)R?R+R\subseteq R^+R?R+
(2)如果(a,b)(a,b)(a,b)(b,c)∈R+(b,c)\in R^+(b,c)R+,则(a,c)∈R+(a,c)\in R^+(ac)R+
(3)除(1)、(2)外,R+R^+R+不再含有其他任何元素。
具有传递性
对于任意的关系R,有
R+=R∪R2∪R3∪...∪Rn∪....R^+ = R\cup R^2 \cup R^3\cup ... \cup R^n \cup ....R+=RR2R3...Rn....
当S为有穷集(元素所属于的集合)时,有
R+=R∪R2∪R3∪...∪R∣S∣R^+ = R \cup R^2 \cup R^3\cup ... \cup R^{|S|}R+=RR2R3...RS
提供一种求出R+R^+R+的一套算法(S为有穷集时,这是我自己想的,还没有证明)
step1:
求出R2R^2R2,令ΔR=R2?R,R=R2∪R\Delta R = R^2-R,R = R^2\cup RΔR=R2?R,R=R2R
step2:
R′=ΔRR∪RΔR∪ΔRΔRR' = \Delta RR\cup R\Delta R \cup \Delta R \Delta RR=ΔRRRΔRΔRΔR
ΔR′=R′?R\Delta R' = R' - RΔR=R?R
R=R∪R′R = R\cup R'R=RR
ΔR′==?\Delta R'==\emptyΔR==?,则结束算法,此时R+==RR^+==RR+==R
ΔR′=??\Delta R'\not=\emptyΔR??=?,则令ΔR=ΔR′\Delta R=\Delta R'ΔR=ΔR,转step2
PS:“=”均表示赋值

# python代码实现
def getmutify(set1,set2):s = set()for item1 in set1:for item2 in set2:if item1[1] == item2[0]:s.add(item1[0]+item2[1])return sdef getPositiveClosure(R):R_2 = getmutify(R,R)detR = R_2 - RR = R.union(R_2)while True:Rc = getmutify(detR,R).union(getmutify(R,detR)).union(detR,detR)detRc = Rc - RR = R.union(Rc)if len(detRc) == 0:return RdetR = detRcs = getPositiveClosure({
    "ab","bb","bc"})
print(s)
克林闭包

(1)R0?R?,R?R?R^0\subseteq R^*,R\subseteq R^*R0?R?,R?R?
(2)如果(a,b)(a,b)(a,b)(b,c)∈R+(b,c)\in R^+(b,c)R+,则(a,c)∈R+(a,c)\in R_+(ac)R+?
(3)除(1)、(2)外,R+R_+R+?不再含有其他任何元素。
具有自反性、传递性

未完待续。。。

  相关解决方案