2.1 定义
以下定义是相当标准的。 由于在数学,计算机科学和统计学的各种应用中,诸如关系之类的单词使用的方式有所不同,因此我们尝试尽可能地给它们一个通用的符号和结构。 这意味着我们的符号可能与某些专业领域中使用的符号不同。 选择抽象级别和细节级别并不容易。 当抽象不符合我们的目的时,我们已尝试避免抽象,并且仅在为了清楚起见需要它们时才包含这些术语。
2.1.1 Sets 集
集合是唯一对象的集合,我们用大写字母表示(例如)。 集合中的对象称为集合中的元素或成员。 我们用小写字母(例如
)表示元素,并用
表示状态“
是
的元素”。 我们用花括号(例如)
分隔集合中的元素。 我们将表示为的集合的补码定义为所有不在
中的元素的集合。
空集()是一个空集或没有元素的集。 我们用
表示实数集,用
表示整数,用
表示自然数(大于零的整数)。我们用
表示法表示“
是元素
的集合,每个
是一个成员 如果集合
的每个元素也是集合
的元素,则
是
的子集,表示为
如果
是
的子集,但
中至少有一个元素不在
中,则
是
的适当子集,表示为
。
如果将的每个元素与
的元素配对,从而
的每个元素恰好出现一次,而
的每个元素恰好出现一次,则在配对中,我们说
和
是等价的,表示为。 如果集合
等于整数集合的子集,我们说集合
是可数的。 如果
为
或等效于集合
,其中
为正整数,则我们说
为有限集。 有限集的基数为
,即元素的数量。 索引集是
形式的集合。
包是允许重复元素的集合。 我们用方括号对袋子中的元素进行定界,例如。 列表是有序的包。 定义列表的另一种方法是说它是一个索引集。 定义列表的另一种方法是说它是零个或多个元素的完全有序的序列。
两个实数和
确定
中的区间。两种类型的区间是:
我们也可能在左边关闭并在右边打开,或者在左边打开并在右边关闭。
用表示的两个集合A和B的交集是集合
如果且
,则
。如果两个集合不相交
两个集合A和B的并集(用
表示)是集合
举个例子,如果且
,则
。
由表示的两个集
和
的不相交并集产生了一个集合,其成员是带标签的元素。 带标签的元素是
x:$
形式之一,其中是元素,而符号
$
是标记。 标签有时称为标识符或颜色。 它可以是字符串,数字值或其他信息。 使用不相交的并集,我们用包含该元素的集合的名称标记一个元素。 例如,如果并且
,则
。标签只是标签,它们不参与数值计算。
集合的一个分区是其并集为
的非空、成对不相交子集的集合
。这些子集称为块。如果
的每个块都包含在
的某个块中,则一个分区
被称为细化另一个分区
。在关于聚类和决策树的文献中,连续细化(
细化
细化
…)被称为递归分割(e.g.,breiman et al.,1984)。
集合和
的(笛卡尔)乘积(用
表示)是集合
对于我们的例子,。
我们称有序对或元组。 尽管此表示法与开放区间的表示法相同,但从上下文中应清楚其含义。 我们称
为一个n元组。 我们将n元组中的项
称为条目。 n元组的度为n,我们用
表示实数对的乘积集。
2.1.2 关系
设和
。
和
之间的二进制关系
是
的子集。 给定
中的元组
,如果
我们说
通过
相关。 一个例子是实数集合
与本身给出的“小于或等于”关系通过
。 另一个例子是集合之间的性别名称关系
的某些成员可能不通过
与
的任何成员相关,
的某些成员可能不通过
与
的任何成员相关(除非我们假定某人可能被称为匹兹堡!)。
上的n元关系R是
的子集。一些作者通过标记来表示这种关系,例如:
当
2.1.3 函数
假设我们为集合的每个元素分配了集合
的唯一元素。这些分配的集合是一个函数,也称为从
到
的映射。表示
将
的元素分配给的元素
,我们写做
我们称为
的域,
为
的值域。 元素
是
中
分配给
的唯一元素。 我们将这些元素的集合
称为
下或
范围内的
的图像。描述函数的另一种方法(无需明确命名)是使用符号。 在这种用法中,“
”的意思是“将
分配给
的函数”。
像函数一样的对象可以看作是黑盒子,可以接收输入并返回输出。 对于每个输入,只有一个可能的输出。 该输出不必是单个数字或字符串。 输出是值域元素采用的任何形式。 许多不同的输入可能会产生相同的输出,但是对于给定的输入,我们可能不只有一个带标签的输出。 这个黑匣子定义包括函数
以及函数
(二叉树)= 其父子关系列表。
2.1.4 图
对于每个函数,都有一个
子集,
我们称之为的图。函数
的图形,其中
属于实数集,是所有元组
的集合,它是实数集与其自身交叉的子集。 函数
(二叉树)= 其父子关系列表的图是由(二叉树,其父子关系列表)定义的所有元组的集合,它是相交的子集 所有二叉树的集合与所有父子关系列表的集合。 函数图唯一地确定函数,反之亦然。 例如,如果
是
的图,则
。
2.1.5 组成
合成是由功能链形成的功能。 设和
是
的值域是
(即,
)的域的子集的函数。 由规则:
所定义的函数是
和
的组成或复合函数。
例如,如果和
是字符串函数,并且
的功能规则是<大写最左字母>,而
的规则是<大写字母数>,则将定义以下组成,因为所有输入都是集合的成员 字符串和
的任何输出是
的合法输入。
g(f("wow")) = 1
g(f("Wow")) = 1
g(f("123")) = 0
g(f("")) = 0
组成范围是的范围,即非负整数的集合。 同样,空字符串是字符串集的成员。 如果我们以C之类的语言实现这些功能,则必须确保正确处理null值。
2.1.6 转换
转换是将集合映射到自身的函数
。 所有转换都是函数,但并非所有函数都是转换。 因为转换将集合映射到自身,所以转换的组成就是转换。
例如,如果和
是文本字符串转换,并且
的规则是<大写最左字母>,而
的规则是<附加感叹号>,则以下组合都是转换。
g(f("wow")) = "Wow!"
f(f("wow")) = "Wow"
g(g("wow")) = "wow!!"
f(g(f("wow"))) = "Wow!"
g(f(g("wow"))) = "Wow!!"
f(g("")) = "!"
2.1.7 代数
代数是
- 集合
- 集合上的算子
- 这些算子组合的规则的集合。
该定义包含的代数比基于实数的普通算术的经典代数更通用,更受限或更抽象。
运算符概括了转换的概念。 集合上的运算符是在集合
上定义的函数,该函数在
中返回一个值。运算符为一元或一元的(具有一个参数,即在
上定义,因此有一个转换),二进制或二元函数(具有两个参数,即在
上定义)或n元(具有很多参数,即在
与自身的n倍积上定义)。 代数规则指定运算符的组成方式。 一个示例是由
定义的集合
上的运算符“
”。
2.1.8 变量
变量是映射
,我们将其视为三元组:
当
定义域是对象的集合,值域
是值的集合,函数
将
中的每一个元素分配给
中对应的值。
下的
图像包含
的值。我们将可能的值表示为
,其中
。 我们将对象的值表示为
,其中
。 如果
是一个间隔,则变量是连续的。 如果在
和整数的有限子集之间存在等价变量,则该变量为类别变量。
变量可以是多维的。是由
个一维变量组成的
维变量:
元素是
的
维值。
2.1.9 变量集
我们称这样的三元组:
为一个变量集。这个词代表变量集。
varset反转用于变量的映射。 也就是说,定义域是一组值,值域
是所有可能的对象包的集合,函数
为
的每个元素分配
中的一个元素。
为了简化变量集上图形代数运算的定义,我们将通常用于变量的映射进行了反转。 为此,我们还将变量的对象集替换为varset的包集。 我们在值域中使用包,因为一个值可能多次映射到一个对象(如重复测量)。
2.1.10 框架
框架是一组元组,范围覆盖
维变量集域中的所有可能值。因此框架依赖于代数表达式。框架作为计算美学的参考结构。通俗的作家常把框架称为用轴划分的矩形界限,类似于画框。这种流行的观念有几个问题。首先,轴是坐标系的参考线;它们不是空间的边界。第二,框架不仅仅是位置的;例如,我们可以用一个生成颜色空间的代数表达式构造一个颜色框架。第三,框架不是矩形;它们是元组的集合。