形式语言与自动机理论
关系
具有某种性质的一些对象可以组成一个集合。这就是说,集合描述的是事物。但世界上的事物是运动的、变化的,它们既相互区别,又相互联系。
关系这一概念被用来反映对象(集合元素)之间的联系和性质。
01 二元关系
关系的概念是建立在日常生活中存在的各种关系的基础上,用来形式化地表达这些关系。例如,一个班的同学中存在有同龄、同乡、成绩好、兴趣不同等各种关系;集合\(\{1,3,4,8\}\)和集合\(\{0,3,5,7\}\)的元素之间存在大于、大于等于、小于等关系。下面从通常意义下的大于、小于关系的描述开始,逐步给出二元关系的描述。
集合\(\{1,3,4,8\}\)和集合\(\{0,3,5,7\}\)的元素之间存在的小于关系有:
\(1<3, 1<5, 1<7, 3<5, 3<7, 4<5, 4<7\)
存在的大于关系有:
\(1>0, 3>0, 4>0, 4>3, 8>0, 8>3, 8>5, 8>7\)
现在将小于关系换一种表示方法,如\(1<3\)表示成\((1,3)\),这样可以将集合\(\{1,3,4,8\}\)和集合\(\{0,3,5,7\}\)的元素之间存在的小于关系表示为:
\(\{(1, 3), (1, 5), (1, 7), (3, 5), (3, 7), (4, 5), (4, 7)\}\)
这是一个集合,可以将其记作\(R_<\),类似可得到\(R_>\)。
显然:
\(R_< \subseteq \{1,3,4,8\} × \{0,3,5,7\}\)
\(R_> \subseteq \{1,3,4,8\} × \{0,3,5,7\}\)
可见,集合\(\{1,3,4,8\}\)到集合\(\{0,3,5,7\}\)的不同关系实际上是\(\{1,3,4,8\} × \{0,3,5,7\}\)的不同子集。
于是有如下定义:
def-定义1-12
设\(A\),\(B\)是两个集合,任意的\(R \subseteq A×B\),\(R\)是\(A\)到\(B\)的二元关系(binary relation)。
\((a, b) \in R\),表示\(a\)与\(b\)满足关系\(R\),按照中缀形式,也可以表示为\(aRb\)。\(A\)称为定义域(domain),\(B\)称为值域(range)。当\(A=B\)时,则称\(R\)是\(A\)上的二元关系。
note:------------------笛卡尔积------------------
def-定义1-9
设\(A\),\(B\)是两个集合,\(A\)与\(B\)的笛卡尔积(Cartesian product)是一个集合,该集合由所有这样的有序对\((a,b)\)组成,其中,\(a\in A\),\(b\in B\),记作\(A×B\)。
\(A×B=\{(a,b) | a\in A 且b\in B\}\)
eg:\(A=\{1,2,3\}\),\(B=\{4,5,6\}\),\(A×B=\{(1,4),(1,5),(1,6),(2,4),(2,5),(2,6),(3,4),(3,5),(3,6)\}\)
02 幂集
def-定义1-10
设\(A\)是一个集合,\(A\)的幂集(power set)是一个集合,该集合由\(A\)的所有子集组成,记作\(2^A\)
\(2^A = \{B | B \subseteq A\}\)
\(2^A\)读作\(A\)的幂集。
eg:
\(A=\{1,2,3\}\),则\(2^A=\{∅,\{1\},\{2\},\{3\},\{1,2\},\{1,3\},\{2,3\},\{1,2,3\}\}\)
语言
03 字母表
def-定义1-33
字母表(alphabet)是一个非空有穷集合,字母表中的元素称为该字母表的一个字母(letter),也可叫做符号(symbol) 或者字符(character)。
note:字母表具有非空性和有穷性,通常用\(∑\)表示字母表。
eg:
- \(\{a, b, c, d\}\)
- \(\{a, b, c, d,...,z\}\)
- \(\{0,1\}\)
- \(\{aa, ab, bb\}\)
- \(\{a, a', b, b'\}\)
- \(\{∞, ≥, ≤\}\)
note:字母表中的字母是组成字母表上的语言中的任何句子的最基本元素,所以,字母表中的字符必须具有如下两个特点:
- 整体性(monolith),也叫不可分性。
eg:\(\{aa, ab, bb\}\)中的aa、ab、bb均是单个字符,aa不能拆分成两个a...
- 可辨认性(distinguishable),也叫可区分性。这一点要求字母表中的字符是两两不相同的,必须明确区分。
eg:\(\{a, b, a\}\)就不是字母表。
def-定义1-34
设\(∑_1\),\(∑_2\)是两个字母表,\(∑_1\)与\(∑_2\)的乘积(product):
\(∑_1∑_2 = \{ab | a\in ∑_1,b\in ∑_2\}\)
eg:\(\{0, 1\} \{a, b, c, d\}=\{0a, 0b, 0c, 0d, 1a, 1b, 1c, 1d\}\)
def-定义1-35
设\(∑\)是一个字母表,\(∑\)的\(n\)次幂(power)递归地定义为:
(1) \(∑^0 = \{ε\}\)。
(2) \(∑^n = ∑^{n-1}∑,n≥1\)。
其中,\(ε\)是由\(∑\)中的0个字符组成的。
04 闭包
def-定义1-36
设\(∑\)是一个字母表,\(∑\)的正闭包:
\(∑^+ = ∑\bigcup ∑^2 \bigcup ∑^3 \bigcup ∑^4 \bigcup...\)
\(∑\)的克林闭包:
\(∑^* = ∑^0\bigcup ∑^+ = ∑^0\bigcup ∑\bigcup ∑^2\bigcup ∑^3\bigcup ...\)
eg:
\(\{0, 1\}^+ = \{0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100,...\}\)
\(\{0, 1\}^* = \{ε, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, 100,...\}\)
通常,有
\(∑^* = \{x | x是∑中的若干个(包括0个)字符连接而成的字符串\}\)
\(∑^+ = \{x | x是∑中的至少一个字符连接而成的字符串\}\)
05 句子
def-定义1-37
设\(∑\)是一个字母表,\(∀ x \in ∑^*\),\(x\)叫作\(∑\)上的一个句子(sentence)。两个句子称为相等的,如果它们对应位置上的字符都对应相等。
def-定义1-39
设\(∑\)是一个字母表,\(∀ x \in ∑^*\),句子中字符出现的总个数叫作该句子的长度(length),记作\(|x|\)。
eg:\(|abaabb|=6\);\(|ε|=0\)
note:
(1) \(ε\)是一个句子。
(2) \(\{ε\}≠∅\)。这是因为\(\{ε\}\)不会一个空集合,它是含有一个空句子\(ε\)的集合。\(|\{ε\}|=1\),而\(|∅|=0\)。
06 语言
def-定义1-43
设\(∑\)是一个字母表,\(L \subseteq ∑^*\),\(L\)称为字母表\(∑\)上的一个语言(language);\(x \in L\),\(x\)叫作\(L\)的一个句子。
eg:\(\{00, 11\}, \{0, 1, 00, 11\}, \{0, 1\}, \{00, 11\}^*,...\)都是字母表\(\{0, 1\}\)上的不同语言。

浙公网安备 33010602011771号