社区
数据结构与算法
帖子详情
问一个关于无向图的子图的算法
kurokawa
2009-05-20 01:15:19
问题是这样:已知一个无向图。
现从图中选取若干个顶点,构成一个连通子图(若无法构成则可以再添加顶点)。要求添加最少的顶点构成连通子图,并返回子图。
只要思路就行了,或者有相似的问题的帖子链接给我也好,期待各位的帮忙
...全文
252
12
打赏
收藏
问一个关于无向图的子图的算法
问题是这样:已知一个无向图。 现从图中选取若干个顶点,构成一个连通子图(若无法构成则可以再添加顶点)。要求添加最少的顶点构成连通子图,并返回子图。 只要思路就行了,或者有相似的问题的帖子链接给我也好,期待各位的帮忙
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kurokawa
2009-06-03
打赏
举报
回复
时间紧张,先用删点法处理了,虽然不是最优解,不过至少解里面没有冗余,时间复杂度也还可以接受。
这个算法是用在数据库里面的,就是在两个任意的数据表中间补全一些表,建立起关联条件。一般来说数据表也有百余个,效率上不是很慢。
结贴散分,谢谢大家参与。
lvjaio5241
2009-05-24
打赏
举报
回复
学习
kurokawa
2009-05-22
打赏
举报
回复
[Quote=引用 9 楼 allen303allen 的回复:]
我的方法其实要反复循环直到出现无法删除的情况,如果原来图的连通情况比较好的话,节点间彼此依赖不大,效率应该可以不错。最坏情况就很难说了。
如果这个题从局部去考虑的话有点像NP的最小顶点覆盖了。貌似也可以用近似算法,但是要最优解的话暂时没想到 好的算法。这几天有点忙,都没时间来看贴了。 [/Quote]
呵呵,后来我考虑了一下,正如7楼所说,这个受删除点的顺序影响。
举例来说,最后的解除了最优解以外还有别的解。那么如果第一步就删除了最优解中的一个点,还是可以得到联通子图,但却不是最优解。
苦恼啊,我想了好几天也还是没好的思路……
allen303allen
2009-05-21
打赏
举报
回复
我的方法其实要反复循环直到出现无法删除的情况,如果原来图的连通情况比较好的话,节点间彼此依赖不大,效率应该可以不错。最坏情况就很难说了。
如果这个题从局部去考虑的话有点像NP的最小顶点覆盖了。貌似也可以用近似算法,但是要最优解的话暂时没想到 好的算法。这几天有点忙,都没时间来看贴了。
[Quote=引用 7 楼 litaoye 的回复:]
其实如果真能达到1楼所说的效率,那么应该算是一个还不错的方法,不过1楼所给的方法所求的解依赖于节点删除的顺序,
因此有很大可能得不到最优解。如果找不到什么有效的办法的话,这题求最优解恐怕计算量会是指数级的!
引用 6 楼 kurokawa 的回复:
引用 5 楼 litaoye 的回复:
呵呵,不用BS你的数据结构老师,直接BS我就行,我基础不扎实,有些概念经常弄混。
不知是否可以转为最小费用最大流的问题?
我对算法研…
[/Quote]
allen303allen
2009-05-21
打赏
举报
回复
你的图应该是无权的,那所谓的到其他顶点的最短距离就是中间经过的顶点数吧。因为要考虑到具体经过的顶点跟原顶点间的关系,还是要遍历顶点,所以我认为记录顶点间的最短距离不会有太大的帮助。
[Quote=引用 2 楼 kurokawa 的回复:]
恩,题目的意思就是给定一个无向图,和该图上的若干顶点,尝试加入最少顶点构造一个连通子图。
现在追加一点:一开始给的无向图就是全连通的,所以可以省去算最大连通子图的步骤。
1楼的方法,在“顶点很多,选取的点很少”时,效率会受影响吧?
有没有从给定的点向外推算的方法?(每个顶点是一个对象,可以获得与它相邻的顶点)
如果需要,我可以在初始化无向图的时候,在每个顶点对象里面存储它到其他所有顶点的最短…
[/Quote]
绿色夹克衫
2009-05-20
打赏
举报
回复
其实如果真能达到1楼所说的效率,那么应该算是一个还不错的方法,不过1楼所给的方法所求的解依赖于节点删除的顺序,
因此有很大可能得不到最优解。如果找不到什么有效的办法的话,这题求最优解恐怕计算量会是指数级的!
[Quote=引用 6 楼 kurokawa 的回复:]
引用 5 楼 litaoye 的回复:
呵呵,不用BS你的数据结构老师,直接BS我就行,我基础不扎实,有些概念经常弄混。
不知是否可以转为最小费用最大流的问题?
我对算法研究不深,刚去查了一下最小费用最大流问,感觉好像那样更复杂化了……
[/Quote]
kurokawa
2009-05-20
打赏
举报
回复
[Quote=引用 5 楼 litaoye 的回复:]
呵呵,不用BS你的数据结构老师,直接BS我就行,我基础不扎实,有些概念经常弄混。
不知是否可以转为最小费用最大流的问题?
[/Quote]
我对算法研究不深,刚去查了一下最小费用最大流问,感觉好像那样更复杂化了……
绿色夹克衫
2009-05-20
打赏
举报
回复
呵呵,不用BS你的数据结构老师,直接BS我就行,我基础不扎实,有些概念经常弄混。
不知是否可以转为最小费用最大流的问题?
[Quote=引用 4 楼 kurokawa 的回复:]
引用 3 楼 litaoye 的回复:
全连通的意思是强连通?
如果强连通的话,就不用加点了。
2个点的话,应该可以转化为最短路径的问题。
2个点以上,印象中有多项式解法,具体记不太清了,谁让咱图论不行呢!
明天有空的话,帮LZ查查!
强连通是任意两点可直达,全连通是任意两点可达,如果我的理解错误,请BS我的数据结构老师……
多项式解法啊,我去查查,谢谢你!
[/Quote]
kurokawa
2009-05-20
打赏
举报
回复
[Quote=引用 3 楼 litaoye 的回复:]
全连通的意思是强连通?
如果强连通的话,就不用加点了。
2个点的话,应该可以转化为最短路径的问题。
2个点以上,印象中有多项式解法,具体记不太清了,谁让咱图论不行呢!
明天有空的话,帮LZ查查!
[/Quote]
强连通是任意两点可直达,全连通是任意两点可达,如果我的理解错误,请BS我的数据结构老师……
多项式解法啊,我去查查,谢谢你!
绿色夹克衫
2009-05-20
打赏
举报
回复
全连通的意思是强连通?
如果强连通的话,就不用加点了。
2个点的话,应该可以转化为最短路径的问题。
2个点以上,印象中有多项式解法,具体记不太清了,谁让咱图论不行呢!
明天有空的话,帮LZ查查!
kurokawa
2009-05-20
打赏
举报
回复
恩,题目的意思就是给定一个无向图,和该图上的若干顶点,尝试加入最少顶点构造一个连通子图。
现在追加一点:一开始给的无向图就是全连通的,所以可以省去算最大连通子图的步骤。
1楼的方法,在“顶点很多,选取的点很少”时,效率会受影响吧?
有没有从给定的点向外推算的方法?(每个顶点是一个对象,可以获得与它相邻的顶点)
如果需要,我可以在初始化无向图的时候,在每个顶点对象里面存储它到其他所有顶点的最短路径。这样每次构造子图的时候效率会不会高?
我希望能有一个高效的算法。
allen303allen
2009-05-20
打赏
举报
回复
如果全都自己选取的话,那任意一个点或者两个相邻的点都是原无向图的连通子图吧。
那题目的意思是不是给定一个无向图和给定的几个点,要在这些点的基础上自己加顶点构成一个连通子图?
我觉得可以先求出这个无向图的各个连通分量,即最大连通子图,如果这些给定的点不在同一个连通子图内的话,那就肯定不存在所求的连通子图。如果存在,就在该最大连通子图的基础上,枚举不在给定点范围内的其他顶点,如果去掉该顶点后图形仍然连通,就去掉该顶点,到无法再去掉顶点的时候,所得的连通子图就是要求的连通子图,多出来的顶点就是要加上的最少的顶点。
基于对gSpan改进的有向频繁
子图
挖掘
算法
(2011年)
提出的新
算法
对gSpan
算法
做了适用性改进,
算法
所采用的图编码技术与传统的频繁
子图
挖掘(FSG),快速频繁
子图
挖掘(FFSM),基于先验的图挖掘(AGM)等
算法
对图结构的编码均不同,由于对有向图进行了新的二维特征定义,因此可使
算法
适用范围有效地扩展至对有向图的学习,称之为基于对gSpan改进的有向频繁
子图
挖掘
算法
(DFSS);因目前为止,一系列频繁
子图
的挖掘大都是基于
无向图
上的知识发现,对直接作用于有向图的挖掘尚且很少。并且所设计
算法
较先前基于Apriori思想的FSG,AGM等一系列频繁图挖掘
算法
,在时
贪婪
算法
Prim
算法
找到
无向图
的最小生成树python代码示例
prim
算法
求最小生成树 Prim
算法
是一种用于找到
无向图
的最小生成树(Minimum Spanning Tree, MST)的贪婪
算法
。MST是
一个
包含所有图节点的
子图
,使得
子图
中的边权重之和最小。Prim
算法
从
一个
起始节点开始,然后逐步扩展这个
子图
,直到包含了所有节点为止。
java实战
算法
数据
程序 = 数据结构 +
算法
程序是为了解决实际
问
题而存在的。然而为了解决
问
题,必定会使用到某些数据结构以及设计
一个
解决这种数据结构的
算法
。如果说各种编程语言是程序员的招式,那么数据结构和
算法
就相当于程序员的内功。编程实战
算法
,不是念PPT,我们讲的就是实战与代码实现与企业应用。程序 = 数据结构 +
算法
——图灵奖得主,计算机科学家N.Wirth(沃斯)作为程序员,我们做机器学习也好,做python开发也好,java开发也好。有一种对所有程序员无一例外的刚需 ——
算法
与数据结构日常增删改查 + 粘贴复制 + 搜索引擎可以实现很多东西。同样,这样也是没有任何竞争力的。我们只可以粘贴复制相似度极高的功能,稍复杂的逻辑没有任何办法。语言有很多,开发框架更是日新月异3个月不学就落后我们可以学习很多语言,很多框架,但招聘不会考你用5种语言10种框架实现同
一个
功能。真正让程序员有区分度,企业招聘万年不变的重点 ——
算法
与数据结构。
算法
代表程序员水平的珠穆朗玛。 本视频由微软全球最有价值专家尹成录制,拒绝念PPT,代码实战数据结构与
算法
导论。除了传统数据结构
算法
,加入高并发线程安全数据结构,分布式负载均衡
算法
,分布式哈希表,分布式排序等等现代
算法
。
算法
,晦涩难懂,却又是IT领域受重视的素养之一。可以说,
算法
能力往往决定了
一个
程序员能够走多远。因此,BAT/FLAG等国内外各大名企非常喜欢在面试环节考核求职者的
算法
编程,这也成为了无数准程序员们过不去的一道“坎”。如何入门并成为一名出色的
算法
工程师?但无论半路出家还是科班出身,除学生时代搞
算法
竞赛的同学外真正用心学习过
算法
与数据结构太少太少。对于后期想要学习
算法
与数据结构却不得不面对以下
问
题:没有自己的知识框架,无法关联知识点,学习效率低有疑
问
而无人解答,有
问
题无法理解全靠猜测,
一个
问
题卡好几天市面上资料题解质量参差不齐,正确性未可知Google
算法
-工程师尹成大哥学习
算法
。
MATLAB源码:图挖掘
算法
论文的解析
人类基因组计划的基本完成表明后基因组时代的到来。 人类积累的大量的生物信息数据为揭开生命奥秘提供了数据基础,生物学研究的热点由对细胞内个别基因或蛋白质功能的局部性研究,转移到以细胞内全部的基因、蛋白质及代谢产物为整体对象的系统研究。对基因调控网络、蛋白质相互作用网络、代谢路径网络等结构及功能模块的检测技术的研究,逐步把分子生物学推入系统生物学时代。 基因与蛋白质通过网状的相互作用产生更高一级的功能模块,所以,通过数学建模来设计有效的
算法
,在生物网络中进行功能模块的挖掘和分析,将有助于更好地研究生物体自身的功能和不同生物体之间的进化关系,为分析理解生命基本规律提供依据。 本文对基于图论的经典频繁
子图
挖掘
算法
进行了系统的研究和全面的总结,在此基础上提出了一种新的挖掘频繁
子图
的
算法
,该
算法
包含
子图
的搜索
算法
及同构分类
算法
。 对
子图
搜索
问
题,提出了环分布的概念,并构造了基于环分布的
子图
搜索
算法
ESR(EnumerateSubgraphs based on Ring);对
子图
同构
问
题,利用度序列和特征值构造了两种
算法
,分别用于对有向图和
无向图
的同构判别;利用同构
算法
对搜索出的
子图
进行同构分类,根据分类结果得到频繁
子图
。 管理毕业论文网www.yifanglunwen.com;音乐毕业论文www.xyclww.com;经济论文www.youzhiessay.com 教育论文www.hudonglunwen.com;医学论文网www.kuailelunwen.com;英语毕业论文www.vipvo.com 当网络规模比较大时,
子图
数量非常庞大,同构分类的工作量很大,为此又提出了随机归类
算法
和Hamilton
子图
的挖掘
算法
,以减少同构分类的运算量。 随机归类
算法
是通过从
子图
集中随机地抽取一定数量的
子图
进行同构分类,是一种近似的
算法
;Hamilton
子图
的挖掘
算法
旨在挖掘特定类型(具有Hamilton回路)的
子图
,以减少搜索结果集。最后对5个真实生物网络进行了仿真实验研究,找出了不同规模的频繁
子图
,实验结果表明本文提出的
算法
优于现有的
算法
。
5、图论与贪心
算法
1
图论与贪心
算法
基本概念构成点集V端点邻接点边集E
子图
无向图
ne关系连通图极大连通
子图
/连通分量有向图边->弧弧头顶点弧尾顶点ne关系强连通图极大强连通
子图
强连通
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章