优质解答
最小树形图,就是给有向带权图中指定一个特殊的点v,求一棵有向生成树T,使得该有向树的根为v,并且T中所有边的总权值最小.最小树形图的第一个算法是1965年朱永津和刘振宏提出的复杂度为O(VE)的算法.
判断是否存在树形图的方法很简单,只需要以v为根作一次图的遍历就可以了,所以下面的算法中不再考虑树形图不存在的情况.
在所有操作开始之前,我们需要把图中所有的自环全都清除.很明显,自环是不可能在任何一个树形图上的.只有进行了这步操作,总算法复杂度才真正能保证是O(VE).
首先为除根之外的每个点选定一条入边,这条入边一定要是所有入边中最小的.现在所有的最小入边都选择出来了,如果这个入边集不存在有向环的话,我们可以 证明这个集合就是该图的最小树形图.这个证明并不是很难.如果存在有向环的话,我们就要将这个有向环所称一个人工顶点,同时改变图中边的权.假设某点u在 该环上,并设这个环中指向u的边权是in[u],那么对于每条从u出发的边(u, i, w),在新图中连接(new, i, w)的边,其中new为新加的人工顶点; 对于每条进入u的边(i, u, w),在新图中建立边(i, new, w-in[u])的边.为什么入边的权要减去in[u],这个后面会解释,在这里先给出算法的步骤.然后可以证明,新图中最小树形图的权加上旧图中被收缩 的那个环的权和,就是原图中最小树形图的权.
上面结论也不做证明了.现在依据上面的结论,说明一下为什么出边的权不变,入边的权要减去in [u].对于新图中的最小树形图T,设指向人工节点的边为e.将人工节点展开以后,e指向了一个环.假设原先e是指向u的,这个时候我们将环上指向u的边 in[u]删除,这样就得到了原图中的一个树形图.我们会发现,如果新图中e的权w'(e)是原图中e的权w(e)减去in[u]权的话,那么在我们删除 掉in[u],并且将e恢复为原图状态的时候,这个树形图的权仍然是新图树形图的权加环的权,而这个权值正是最小树形图的权值.所以在展开节点之后,我们 得到的仍然是最小树形图.逐步展开所有的人工节点,就会得到初始图的最小树形图了.
如果实现得很聪明的话,可以达到找最小入边O(E),找环 O(V),收缩O(E),其中在找环O(V)这里需要一点技巧.这样每次收缩的复杂度是O(E),然后最多会收缩几次呢?由于我们一开始已经拿掉了所有的 自环,我门可以知道每个环至少包含2个点,收缩成1个点之后,总点数减少了至少1.当整个图收缩到只有1个点的时候,最小树形图就不不用求了.所以我们最 多只会进行V-1次的收缩,所以总得复杂度自然是O(VE)了.由此可见,如果一开始不除去自环的话,理论复杂度会和自环的数目有关.
1、Tag总的来说是一种分类系统,有人把他称为大众分类(Folksonomy).但是tag又不同于一般的目录结构的分类方法,首先tag能以较少的代价细化分类,想像一下,一篇涉及面比较广的文章,比如一篇谈论20世纪以来物理学的成就的文章,可能会涉及到相对论、量子力学、黑洞理论、大爆炸宇宙理论,可能涉及到爱因斯坦、普朗克等科学家,甚至可能涉及到诺贝尔奖.如果你用目录结构的分类方法的话,根本不可能按这篇文章涉及到的各个方面来分类,因为要细化分类,将使整个目录结构异常庞大,更加不利于资料的组织以及查找.而tag则不同,他可以自由地不考虑目录结构的给文章进行分类,各个tag之间的关系是一种平行的关系,但是又可以根据相关性分析,将经常一起出现的tag关联起来,而产生一种相关性的分类. 2、Tag也可以说是一种关键词标记,利于搜索查找.但是tag也不同于一般的关键词,用关键词进行搜索时,只能搜索到文章里面提到了的关键词,但tag却可以将文章中根本没有的关键词做为tag来标记,比如上面那篇文章,我可以标记为“资料”或者“历史”,当然更多的时候是标记为“物理”,不过,我如果标记上“资料”的tag,则可以将所有资料性的文章全部关联起来,便于查找. 参考:真·踏网无痕 那么,什么是Tags?很简单,往下看; ·经典的信息构成模式; 在传统的网页组成中,我们通常使用Taxonomy(分类法)来归纳、整理和存放我们的信息,图书馆是一个绝好的例子,所有的信息从一个点开始,形成树状的分类,由此构成一个完整的、相互联系起来逻辑体系; 这个体系从一开始就是人为分类形成的,在我们需要检索的时候,几乎不需要费多大的劲; [例子]比如我们的Blog,首先有一个主标题,然后下分若干分类,实际的文章则分类储存在这些不同的分类中;在一般情况下,我们不允许一个文章同时存在于多个分类中,以便于我们管理的方便和检索的唯一性; 在网络上,dmoz和wiki都算是比较典型和知名的例子; ·散秩的信息构成模式; 看似无序的浩渺信息,其中的绝大部分是通过“语言”来描述的,这表明了这些信息的指向性,因此我们通过提取这些语言(文字、文本)的相同部分,以此获得相关的信息;这些信息平时是完全松散、互不联系的,当且仅当我们对其加以提取的时候才呈现相对紧凑的组织结构,即便如此,这个结构和经典的分类结构相比,仍然是足够散秩的. [例子]你可能已经想到了,Google嘛.目前绝大部分的搜索引擎所依赖的正是这一点,因此对于分词的研究是这些搜索引擎始终的重点和痛苦,其他的不说,仅仅逻辑实证主义和日常语言学派这两个当代的流派就足够他们折腾到下个世纪去了. 举一个恶搞点的例子:当我说:“他妈”的时候,仅仅检索关键字而并不关心其在日常语言中实际运用的搜索引擎怎么知道我是在骂人还是在陈诉一个归属性事实呢?更何况我们经常面对google上数万和关键字原本语义要求完全不同的搜索结果长声叹息. [简介] 逻辑实证主义:认为人类的日常语言充满的谬误,需要彻底厘平,重构一个像数学一样完美的逻辑语言体系; 日常语言学派:认为人类的日常语言是非常合理而符合现实的,“完美”的逻辑语言并不存在而且也不符合现实;唯一的问题在于人们使用日常语言的时候出了一些方法上的问题,这需要我们加以重视和研究. (后者正是我倾向赞同的结论) ·符合未来发展的信息构成模式; 现在我们综合起来考察以上两种在我们日常生活中显得日益重要的信息构成模式,会发现他们各有优点和缺陷; 对于前者而言,语言所表达和内涵的思想是广博的,构造简单的分类逻辑无法诠释和标识某一篇文章所设计的全部重点,复杂的分类则将陷入无限微观的悖论逻辑; 对于后者而言,除开分词的烦恼,Google们也许还希望承天下之大义担负起教导每一个人重修日常语言学分的重任,并且要求每一个人都能达到维特根斯坦的高度. 路德维奇·维特根斯坦?对了,这终于回到我们的重点. 维特根斯坦本人正是逻辑实证主义和日常语言学派先后的奠基人,而在他的后期的日常语言思想中,他提出了一个大家相对比较熟悉的观点:家族相似. 以下引用一段话作大致的解释: 维特根施坦从“反本质主义”立场出发反对语词的定义化.本质主义者认为同一类事物之所以成为该类事物,是由于它们具有共同的本质(共相),定义就是规定事物的这种本质.维特根施坦则认为事
最小树形图,就是给有向带权图中指定一个特殊的点v,求一棵有向生成树T,使得该有向树的根为v,并且T中所有边的总权值最小.最小树形图的第一个算法是1965年朱永津和刘振宏提出的复杂度为O(VE)的算法.
判断是否存在树形图的方法很简单,只需要以v为根作一次图的遍历就可以了,所以下面的算法中不再考虑树形图不存在的情况.
在所有操作开始之前,我们需要把图中所有的自环全都清除.很明显,自环是不可能在任何一个树形图上的.只有进行了这步操作,总算法复杂度才真正能保证是O(VE).
首先为除根之外的每个点选定一条入边,这条入边一定要是所有入边中最小的.现在所有的最小入边都选择出来了,如果这个入边集不存在有向环的话,我们可以 证明这个集合就是该图的最小树形图.这个证明并不是很难.如果存在有向环的话,我们就要将这个有向环所称一个人工顶点,同时改变图中边的权.假设某点u在 该环上,并设这个环中指向u的边权是in[u],那么对于每条从u出发的边(u, i, w),在新图中连接(new, i, w)的边,其中new为新加的人工顶点; 对于每条进入u的边(i, u, w),在新图中建立边(i, new, w-in[u])的边.为什么入边的权要减去in[u],这个后面会解释,在这里先给出算法的步骤.然后可以证明,新图中最小树形图的权加上旧图中被收缩 的那个环的权和,就是原图中最小树形图的权.
上面结论也不做证明了.现在依据上面的结论,说明一下为什么出边的权不变,入边的权要减去in [u].对于新图中的最小树形图T,设指向人工节点的边为e.将人工节点展开以后,e指向了一个环.假设原先e是指向u的,这个时候我们将环上指向u的边 in[u]删除,这样就得到了原图中的一个树形图.我们会发现,如果新图中e的权w'(e)是原图中e的权w(e)减去in[u]权的话,那么在我们删除 掉in[u],并且将e恢复为原图状态的时候,这个树形图的权仍然是新图树形图的权加环的权,而这个权值正是最小树形图的权值.所以在展开节点之后,我们 得到的仍然是最小树形图.逐步展开所有的人工节点,就会得到初始图的最小树形图了.
如果实现得很聪明的话,可以达到找最小入边O(E),找环 O(V),收缩O(E),其中在找环O(V)这里需要一点技巧.这样每次收缩的复杂度是O(E),然后最多会收缩几次呢?由于我们一开始已经拿掉了所有的 自环,我门可以知道每个环至少包含2个点,收缩成1个点之后,总点数减少了至少1.当整个图收缩到只有1个点的时候,最小树形图就不不用求了.所以我们最 多只会进行V-1次的收缩,所以总得复杂度自然是O(VE)了.由此可见,如果一开始不除去自环的话,理论复杂度会和自环的数目有关.
1、Tag总的来说是一种分类系统,有人把他称为大众分类(Folksonomy).但是tag又不同于一般的目录结构的分类方法,首先tag能以较少的代价细化分类,想像一下,一篇涉及面比较广的文章,比如一篇谈论20世纪以来物理学的成就的文章,可能会涉及到相对论、量子力学、黑洞理论、大爆炸宇宙理论,可能涉及到爱因斯坦、普朗克等科学家,甚至可能涉及到诺贝尔奖.如果你用目录结构的分类方法的话,根本不可能按这篇文章涉及到的各个方面来分类,因为要细化分类,将使整个目录结构异常庞大,更加不利于资料的组织以及查找.而tag则不同,他可以自由地不考虑目录结构的给文章进行分类,各个tag之间的关系是一种平行的关系,但是又可以根据相关性分析,将经常一起出现的tag关联起来,而产生一种相关性的分类. 2、Tag也可以说是一种关键词标记,利于搜索查找.但是tag也不同于一般的关键词,用关键词进行搜索时,只能搜索到文章里面提到了的关键词,但tag却可以将文章中根本没有的关键词做为tag来标记,比如上面那篇文章,我可以标记为“资料”或者“历史”,当然更多的时候是标记为“物理”,不过,我如果标记上“资料”的tag,则可以将所有资料性的文章全部关联起来,便于查找. 参考:真·踏网无痕 那么,什么是Tags?很简单,往下看; ·经典的信息构成模式; 在传统的网页组成中,我们通常使用Taxonomy(分类法)来归纳、整理和存放我们的信息,图书馆是一个绝好的例子,所有的信息从一个点开始,形成树状的分类,由此构成一个完整的、相互联系起来逻辑体系; 这个体系从一开始就是人为分类形成的,在我们需要检索的时候,几乎不需要费多大的劲; [例子]比如我们的Blog,首先有一个主标题,然后下分若干分类,实际的文章则分类储存在这些不同的分类中;在一般情况下,我们不允许一个文章同时存在于多个分类中,以便于我们管理的方便和检索的唯一性; 在网络上,dmoz和wiki都算是比较典型和知名的例子; ·散秩的信息构成模式; 看似无序的浩渺信息,其中的绝大部分是通过“语言”来描述的,这表明了这些信息的指向性,因此我们通过提取这些语言(文字、文本)的相同部分,以此获得相关的信息;这些信息平时是完全松散、互不联系的,当且仅当我们对其加以提取的时候才呈现相对紧凑的组织结构,即便如此,这个结构和经典的分类结构相比,仍然是足够散秩的. [例子]你可能已经想到了,Google嘛.目前绝大部分的搜索引擎所依赖的正是这一点,因此对于分词的研究是这些搜索引擎始终的重点和痛苦,其他的不说,仅仅逻辑实证主义和日常语言学派这两个当代的流派就足够他们折腾到下个世纪去了. 举一个恶搞点的例子:当我说:“他妈”的时候,仅仅检索关键字而并不关心其在日常语言中实际运用的搜索引擎怎么知道我是在骂人还是在陈诉一个归属性事实呢?更何况我们经常面对google上数万和关键字原本语义要求完全不同的搜索结果长声叹息. [简介] 逻辑实证主义:认为人类的日常语言充满的谬误,需要彻底厘平,重构一个像数学一样完美的逻辑语言体系; 日常语言学派:认为人类的日常语言是非常合理而符合现实的,“完美”的逻辑语言并不存在而且也不符合现实;唯一的问题在于人们使用日常语言的时候出了一些方法上的问题,这需要我们加以重视和研究. (后者正是我倾向赞同的结论) ·符合未来发展的信息构成模式; 现在我们综合起来考察以上两种在我们日常生活中显得日益重要的信息构成模式,会发现他们各有优点和缺陷; 对于前者而言,语言所表达和内涵的思想是广博的,构造简单的分类逻辑无法诠释和标识某一篇文章所设计的全部重点,复杂的分类则将陷入无限微观的悖论逻辑; 对于后者而言,除开分词的烦恼,Google们也许还希望承天下之大义担负起教导每一个人重修日常语言学分的重任,并且要求每一个人都能达到维特根斯坦的高度. 路德维奇·维特根斯坦?对了,这终于回到我们的重点. 维特根斯坦本人正是逻辑实证主义和日常语言学派先后的奠基人,而在他的后期的日常语言思想中,他提出了一个大家相对比较熟悉的观点:家族相似. 以下引用一段话作大致的解释: 维特根施坦从“反本质主义”立场出发反对语词的定义化.本质主义者认为同一类事物之所以成为该类事物,是由于它们具有共同的本质(共相),定义就是规定事物的这种本质.维特根施坦则认为事