形式概念分析(Formal Concept Analysis,FCA)是Wille提出的一种从形式背景进行数据分析和规则提取的强有力工具,形式概念分析建立在数学基础之上,对组成本体的概念、属性以及关系等用形式化的语境表述出来,然后根据语境,构造出概念格(concept lat-tice),即本体,从而清楚地表达出本体的结构。这种本体构建的过程是半自动化的,在概念的形成阶段,需要领域专家的参与,识别出领域内的对象、属性,构建其间的关系,在概念生成之后,可以构造语境,然后利用概念格的生成算法CLCA,自动产生本体。形式概念分析强调以人的认知为中心,提供了一种与传统的、统计的数据分析和知识表示完全不同的方法,成为了人工智能学科的重要研究对象,在机器学习、数据挖掘、信息检索等领域得到了广泛的应用。
本体,从而清楚地表达出本体的结构。在形式概念分析中,概念的外延被理解为属于这个概念的对象的集合,而内涵则被认为是所有这些对象所共有的特征或属性集,这实现了对概念的哲学理解的形式化。所有的概念连同它们之间的泛化/例化关系构成一个概念格。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
概念格是FCA的核心数据结构。概念格的每个节点是一个概念,由外延和内涵组成。外延是概念所覆盖的实例;而内涵是概念的描述,是该概念所覆盖实例的共同特征。概念格可以通过其Hasse图生动简洁地体现概念之间的泛化和例化关系。概念格结构模型是形式概念分析理论中的核心数据结构。其本质上描述了对象和特征之间的联系,表明了概念之间的泛化与例化关系。这种概念格构建的过程是半自动化的。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
应用实例 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
排序算法是数据结构学科经典的内容,其中内部排序现有的算法有很多种,究竟各有什么特点呢?本文主要是对内排序的冒泡排序、交换排序、选择排序、插入排序,希尔排序、基数排序、快速排序、归并排序、堆排序九种算法为对象集,把算法的平均时间复杂度,最好时间复杂度,最差时间复杂度,稳定性,辅助空间为属性集构建形式背景。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
表1 形式背景 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
注:基数排序的复杂度中,r代表关键字的基数,d代表长度,n代表关键字的个数 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
此形式背景为多值的,为了简便,把平均时间复杂度,最好时间复杂度,最差时间复杂度为O(n)的算法认为其时间复杂度高,其余的认为时间复杂度低。存储空间为O(1)的算法认为其存储空间小,其余的认为存储空间大。并且把时间复杂度低,算法稳定,存储空间小用1表示,把时间复杂度高,算法不稳定,存储空间大用0表示,简化后的形式背景如表2。 表2 简化的形式背景 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
可以依据基于约简意义的概念格构造方法对其进行简约。把属性值相同的对象进行合并。通过观察,可以看出冒泡排序和插入排序可以合并,交换排序和选择排序可以合并,基数排序和归并排序可以合并。约简后的形式背景如表3。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
表3 约简后的形式背景 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
把对象的属性值为1的作为默认值。把简约后的形式背景变为单值的形式背景。并用1,2,3,4,5依次代表各属性,用a,b,c,d,e,f依次代表个对象。则有对象集{a,b,c,d,e,f},属性集{1,2,3,4,5},单值形式背景如表4。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
表4 单值形式背景 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
为了方便构造形式背景的概念格,将单值形式背景转换为带有父子关系(继承关系)的单值形式背景,也就是基于属性个数比较的排序。例如,表4中对象b有1个属性,属性个数最少,将其放在第一位。对象a,c,e有两个属性,放在第二位。对象d,f有四个属性,放在最后两位。这样由表4得到的带有父子关系的单值形式背景如表5所示。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
表5 带有父子关系的单值形式背景 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||||||||||
利用此表通过Chein算法生成概念格,其概念格如图1所示。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
图1 排序算法的概念格 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
通过该概念格,可以发现一些规律: | |||||||||||||||||||||||||||||||||||||||||||||||||||||
(1)If1 Then 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
1代表算法的平均时间复杂度,2代表算法的最好时间复杂度。也就是说算法的平均时间复杂度低的时候,它的最好时间复杂度一般也是低的。这和实际意义是相符的,因为算法的最好时间复杂度一般都小于或等于算法的平均时间复杂度,当它的平均时间复杂低的时候,它的最好时间复杂度必然也是低的。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
(2)If3 Then1, 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
3代表最坏时间复杂度,该规则说明当算法的最坏时间复杂低的时候,它的最好时间复杂度和平均时间复杂度也是低的。这是因为一个算法的平均时间复杂度和最好时间复杂度都是小于或等于它的最坏时间复杂度的,当最坏时间复杂度低的时候,它的平均时间复杂度和最好时间复杂度也必然是低的。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
(3)If4 Then 2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
4代表算法的稳定性。该规则表明,当算法是稳定的时候,它的最好时间复杂度是低的。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
结束语 | |||||||||||||||||||||||||||||||||||||||||||||||||||||
排序算法是数据结构的重要内容,也对编程人员有着重要作用,选择一个合适的算法能提高程序的运行效率。形式概念分析是获得飞速发展的一种分析数据的工具。本文将形式概念分析引入到排序算法的研究,构建9种算法的概念格,从而全面的分析它们的特征和关系,能帮助大家更好的理解和运用这些算法。 |