350 likes | 538 Views
一些抽象概念. 赵建华. 集合的概念. 没有定义 被认为 “ 具有某种 共同性质 ” 的若干不同的对象合在一起构成集合,而所谓 “ 共同性质 ” 也只不过是让你能将它们想到一起罢了。
E N D
一些抽象概念 赵建华
集合的概念 • 没有定义 • 被认为“具有某种共同性质”的若干不同的对象合在一起构成集合,而所谓“共同性质”也只不过是让你能将它们想到一起罢了。 • Georg Cantor的描述:“Unter einer Menge verstehen wir jede Zusammenfassung M von bestimmten wohlunterschiedenen Objeckten in unserer Anschauung oder unseres Denkens(welche die Elemente von M genannt werden) zu einem ganzen” [English traslation] A set is a collection into a whole of definite, distinct objects of our intuition or our thought. The objects are called elements (member) of the set. 作为数学模型的集合,其元素是抽象的数学对象 确定性 元素各不相同 本身是一个对象 元素的广泛性
集合的表示 • {x | P(x)}, P必须是“数学可定义”的性质 • “不存在任何 YX”是关于X的有效性质 • “对任意的 U, UZ iff. UX 且 UY”是关于X, Y 和 Z 的有效性质。 • 一个集合可以有多种表示 • {2, 3, 5} • [1, 7)区间内的所有质数 • 方程 x3-10x2+31x-30=0 的所有实根
子集 • “子集”关系是两个集合之间的关系,其中一个称为另一个的子集: • AB 定义为: “for all x, if xA, then xB” • 更符号化的描述:x (xA xB ) • 因此,AB 的意思是: 至少存在一个 x, 满足 xA, 但是xB • 更符号化的描述:x (xA xB )
真子集 • 如果集合A=B,当然A是B的子集,B也是A的子集。 • 既然A=B,A,B就是同一个集合. • 任何集合都是其自己的子集。 • 如果AB, 但BA, (即B中至少有一个元素是A中没有的),则A是B的真子集。
空集 • 空集是没有元素的集合 • 例. A={x|x 是整数且 x>x} • 空集是任何集合的子集。 • 假设 A 是空集, B 是任给的一个集合。命题 “存在某个元素x, 满足xA, 但 xB” 总是假。 • 空集是唯一的,可以用 Ø表示 • 如果 Ø1, Ø2都是空集,则Ø1Ø2 和Ø2Ø1 均为真。
幂集 • (A)={x|xA}, 其中A 是任意集合。 • ({a,b}) = {Ø,{a},{b},{a,b}} • (Ø) = {Ø} • 如果|A|=n, 则|(A)|=2n • 幂集的另一种记法: 2A
1 3 2 B A 运算的定义 • 运算定义的基本方式:将结果定义为一个新的集合 (这也可以看做是一种集合表示方法) • 并:AB={x|xA 或者xB} • 并集: 1, 2 和 3 • 交: AB={x|xA 并且xB} • 交集: 3
相对补 • 相对补:A-B={x|xA并且xB} • A-B: 1 • 证明:A-B1=A-B2 B1=B2 不成立 用反例证明“…不成立” 令A={1,2,3,4}, B1={2,5}, B2={2,6} 则A-B1 = A-B2 = {1,3,4} • 若A即我们关心的“所有”对象的集合,称为全集(常用E表示).E-B成为B的“绝对补集”,记为~B • x~B iff. xB 1 3 2 B A E B
对称差 • 对称差: AB=(A-B)(B-A) 即AB={x|xA且xB 或者 xB且xA} • 证明: AB=(AB)-(AB) I. AB (AB)-(AB) 任给x AB , x(A-B) 或 x(B-A) Ia. 假设x(A-B) ,即xA, xB, x (AB) 但 x(AB) x (AB)-(AB) Ib. 假设x(B-A) , …… B 穷举法 A
~A ~B (A-(BC))((BC)-A) 文氏图的更多例子
容斥原理(Principle of Inclusion and Exclusion ) 例如:4个子集的公式为: N - (|S1|+ |S2|+ |S3|+ |S4|) + (|S1S2|+|S1S2|+|S1S4|+|S2S3|+|S2S4|+|S3S4|) - (|S1S2S3|+|S1S2S4|+|S1S3S4|+|S2S3S4|) + |S1S2S3S4|
集合的实现方法 • 数组 • Tset[MAX];intcnt; • bitSet • 对于32/64个元素以下的集合,使用一个长整数表示; • 对于数量不多的集合也可以用整数数组表示; • 链表 • 当还需要考虑集合中的一些关系时,通常有其它的表示方法;比如图。
二元关系的定义 • 若A, B是任意的非空集合, 笛卡尔乘积AB的任意一个子集称为从A到B的一个关系. • 集合 • 集合的元素是有序对 • 或者是空集合 • 关系意味着什么? • 两类观察对象之间建立起来的联系!
从集合A到B的二元关系 • 笛卡尔乘积的子集 • “从A到B的关系”R;RAB • 可以有A=B: “集合A上的二元关系” • 例子 • 常用的数学关系:不大于、整除、集合包含等 • A={1,2,3,4}上的“倍数”、“(x-y)2A”、“x/y是素数”、不等于
特殊的二元关系 • 集合A上的空关系: 空关系即空集(记住:空集是唯一的) • 全域关系EA: EA ={<x,y>| x,yA } • 恒等关系IA : IA ={<x,x>| xA }
关系的表示 (假设A={a,b,c,d}, B={α,β,γ}) • 集合表示: R1={<a,β >,<b,α>,<c, α>,<c,γ>} • 关系矩阵 关系图(有向图) a a b c d b c d B A
二元关系和有向图 有向图 (VD, ED ) 顶点集: VD 有向边集: ED 顶点x,y相邻 图D中存在从 x1 到 xn的长度为 n-1的通路 关系 RAB 论域:AB 有序对集合 元素x,y满足关系R 若A=B, R中存在序列:<x1,x2>, <x2,x3>,…,<xn-1,xn>
有穷关系的实现方式 • 二元组集合的实现方式 • 如果关系是Map,即对于每个x,最多只有一个y使得R(x,y),那么R称为Map。 • 将定义域中的x编号,然后使用数组的方式实现 • 使用boolean矩阵的实现方式
关系的性质 • 关系的几类重要性质 • 自反 • 对称 • 传递 • 性质满足的充分必要条件 • 性质与运算之间的关系 • 等价关系 • 等价关系与集合划分的对应
自反性 • 集合A上的关系R: • 自反:定义为:对所有的aA, (a,a)R • 反自反:定义为:对所有的aA, (a,a)R 注意区分”非”与”反” • 设 A={1,2,3}, RAA • {(1,1),(1,3),(2,2),(2,1),(3,3)} 是自反的 • {(1,2),(2,3),(3,1)} 是反自反的 • {(1,2),(2,2),(2,3),(3,1)} 既不是自反的,也不是反自反的
对称性 • 集合A上的关系R: • 对称的:定义为:若 (a,b)R, 则 (b,a)R • 反对称的:定义为:若(a,b)R且(b,a)R ,则a=b • 强反对称的:定义为:若(a,b)R则 (b,a)R • 设 A={1,2,3}, RAA • {(1,1),(1,2),(1,3),(2,1),(3,1),(3,3)} 是对称的 • {(1,2),(2,3),(2,2),(3,1)} 是反对称的 • {(1,2),(2,3),(3,1)} 既是反对称的,也是强反对称的
传递性 • 集合A上的关系R: • 传递的:定义为:若 (a,b)R, (b,c)R, 则 (a,c) R • 设 A={1,2,3}, RAA • {(1,1),(1,2),(1,3),(2,1),(2,2),(2,3),(3,3)} 传递的 • {(1,2),(2,3),(3,1)} 是非传递的 • Both {(1,3)}和 均为传递关系
等价关系的定义 • 满足性质:自反、对称、传递 • “等于”关系的推广 • 例子 • 对3同余关系: RZZ, xRy当且仅当 是整数。 • RNN, xRy当且仅当 存在正整数k,l,使得xk=yl。 • 自反: 若x是任意正整数,当然xk=xk ; • 对称:若有k,l, 使xk=yl;也就有l,k, 使yl=xk; • 传递:若有k,l, 使xk=yl;并有l,m, 使yl=zm;则有k,m, 使xk=zm
等价类 • R是非空集合A上的等价关系,xA,等价类[x]R={y|yA xRy} • 每个等价类是A的一个非空子集。 • 例子:对3同余关系: RZZ, xRy当且仅当 是整数。 • 3个等价类:[0]={…, -6, -3, 0, 3, 6, 9, …}; [1]={…, -5, -2, 1, 4, 5, 7, …}; [2]={…, -4, -1, 2, 5, 8, 11, …}
等价类的代表元素 • 对于等价类[x]R={y|yA xRy},x称为这个等价类的代表元素. • 其实,该等价类的每个元素都可以做代表元素:若xRy,则[x]=[y] • 证明:对任意元素t, 若t[x], 则xRt, 根据R的对称性与传递性,且xRy, 可得yRt, 因此 t[y], [x][y]; 同理可得[y][x]
商集 • R是非空集合A上的等价关系,xA,则其所有等价类的集合称为商集,A/R • 集合A={a1,a2, …, an}上的恒等关系IA是等价关系,商集A/IA={{a1}, {a2},…, {an}} • 定义自然数集的笛卡儿乘积上的关系R: (a, b)R(c,d) 当且仅当 a+d=b+c 证明这是等价关系,并给出其商集.
等价关系的一个例子 • R1,R2分别是集合X1,X2上的等价关系。定义X1X2上的关系S如下: <x1,x2>S<y1,y2> 当且仅当 x1R1y1且 x2R2y2 • 证明:S是X1X2上的等价关系 • [自反性]对任意<x,y>X1X2, 由R1,R2满足自反性可知,<x,x> R1, <y,y> R2; <x,y>S<x,y>; S自反。 • [对称性]假设<x1,x2>S<y1,y2>, 由S的定义以及R1,R2满足对称性可知:<y1,y2>S<x1,x2>; S对称。 • [传递性]假设<x1,x2>S<y1,y2>, 且<y1,y2>S<z1,z2>, 则x1R1y1, y1R1z1, x2R2y2, y2R2z2, 由R1,R2满足传递性可知:x1R1z1, 且x2R2z2, 于是: <x1,x2>S<z1,z2>; S传递。
集合的分划 集合A的 分划, ,是A的一组非空子集的集合,即 (A), 且满足: 1. 对任意 xA, 存在某个 Ai, 使得 xAi. A A6 A1 A5 A2 A4 2. 对任意 Ai, Aj,如果 ij, 则: A3
由等价关系定义的分划 • 假设R是集合A上的等价关系,给定aA, R(a)是由R 所诱导的等价类。 • Q={R(x)|xA}是相应的商集。 • 容易证明,这样的商集即是A的一个分划: • 对任意 aA, aR(a) (R是自反关系) • 对任意 a,bA • (a,b) R当且仅当 R(a)=R(b), 同时 • (a,b) R当且仅当 R(a)R(b)=
商集即分划 – 证明 • 不相等的等价类必然不相交。换句话说,有公共元素的任意两个等价类必然相等。 • 证明: • 假设R(a)R(b)Ø, c是任一公共元素。 • 根据等价类的定义,<a,c>R, <b,c>R • 对任意xR(a), <a,x>R, 由R的传递性和对称性,可得<c,x>R, 由此可知<b,x>R, 即xR(b), R(a)R(b) • 同理可得:R(b)R(a)。因此: R(a)=R(b)
等价关系的应用 • 可以只处理等价类中的一个元素; • 具体用例 • 大部分的动态规划问题
有穷等级关系的实现 • 并查集 • 关系传递闭包的实现 • boolean矩阵 • Floyd算法
关系复合运算与矩阵相乘 定义集合A={a,b,c,d}上的关系: R1={(a,c),(b,c),(b,d),(c,b),(d,a),(d,d)} R2={(a,a),(b,a),(b,d),(c,c),(d,a),(d,b)} 则: R1◦R2= {(a,c),(b,a),(b,b),(b,c),(c,a),(c,d),(d,a),(d,b)}