CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  数据结构与算法

求解一道信息学竞赛中图的问题!

楼主yuequnfan(Canty)2005-06-12 11:04:00 在 专题开发/技术/项目 / 数据结构与算法 提问

一张由n个堡垒组成的交通图,任意两个堡垒之间只有一条通行路线。为了确保路线通畅,必须在某些堡垒上建立火力中心。每个火力中心都能够对其相连的所有交通线进行全天候的监控,防止敌人侵略。现在的问题是如何设置火力中心的布局,才能用最少的火力中心控制所有交通路线。  
  输入:堡垒数n(1<=n<=10000)。以下每行为i,j,表示堡垒i与堡垒j连接。以“0   0”标志结束  
   
   
  求算法! 问题点数:80、回复次数:23Top

1 楼yuequnfan(Canty)回复于 2005-06-12 11:06:32 得分 0

upTop

2 楼mmmcd(超超)回复于 2005-06-12 12:11:37 得分 10

是不是要找最小支配集啊?Top

3 楼mysword(一怒拔剑)回复于 2005-06-12 22:05:31 得分 10

最小覆盖集吧Top

4 楼yuequnfan(Canty)回复于 2005-06-19 09:08:57 得分 0

upTop

5 楼sitanda(yansida)回复于 2005-06-19 09:48:16 得分 0

关注Top

6 楼Zephyrzzz()回复于 2005-06-19 18:57:50 得分 30

最小覆盖集,由于是图比较特殊,是一棵树,可以用贪心的方法实现.每次寻找一个叶子结点,找出其父亲结点,将其设为中心点.然后将与该中心点连接的所有结点都删去.重复寻找叶子结点的过程,直到所有结点都删去,可以证明,该法所需中心点是最少的.Top

7 楼virm(查无此人)回复于 2005-06-19 23:03:49 得分 0

这个图未必是一棵树,用贪心算法未必能得到最优解  
  基本上这个问题的最终解是   NP   问题,求较优解倒是容易Top

8 楼Zephyrzzz()回复于 2005-06-20 10:15:55 得分 0

"任意两个堡垒之间只有一条通行路线"Top

9 楼yuequnfan(Canty)回复于 2005-06-20 13:53:46 得分 0

后来我阅读题目也发现,此题实际上的确应该是一颗树。既然是树,我想我能解决了。  
  现在是如果"任意两个堡垒之间只有一条通行路线"这句话没有,也就是说是一个图的话,有没有最优解?  
  请不吝指教Top

10 楼Zephyrzzz()回复于 2005-06-20 19:32:18 得分 0

任意图则是NP难问题了Top

11 楼minlingtianxia(敏凌天下)回复于 2005-06-25 21:40:29 得分 30

对于任意图问题不知道这样的算法行不行:  
  事实上我们可以把图的顶点分成两部分,一类是染色的顶点,另一类是不染色的顶点.易知对于不染色的点集中的任意两个顶点都不能有边相连.现在的问题就是去找这样的一个划分.把所有的顶点划成两类.而最优解就是要求那个被染色的集合的元素个数最少.  
  先构造一对集合A,B.其中A是被染色的点集.构造规则如下:  
  (1)把第一个顶点放入B.  
  (2)假定有K个顶点已被划分好,则对于第K+1个顶点,若放入B不与B中其他的顶点冲突,即这个顶点不与B中的任意一个顶点之间有边相连.则放入B,否则放入A.  
  当然,这样的顶点未必是最优的.但我们现对其做如下修改:  
  考察B中的每一个顶点,对与B中的某一顶点P,若所有的与P相连的顶点(必在A中),至少有两个顶点与B中的顶点只有一边相连(即B中除P外无顶点与这顶点相连),则把P放入到A中,把与所有与P相连的但不与B中其他任一顶点相连的顶点放到A中,这样可以优化这个解.  
  依这个规则不断地对解进行优化.直到不能再优化为止.  
  对于最后的这个解,我不知道是否符合要求,但有一点是肯定的,最优解一定不能再优化,而我不知道不能再优化的解是否是最优的,我没法有数学来证明,但凭直觉这似乎是对的.  
  请大家发表一下意见,给出反例也欢迎!  
   
   
   
   
  Top

12 楼jettylee(要学的还很多~~~)回复于 2005-06-25 21:43:52 得分 0

贪心      
  每次染色一个度最大的结点  
  然后去除这个结点和与这个结点有关的任何边  
  边的另一头的结点的度减一  
  循环  
  就是这样会比较慢   n^2级的Top

13 楼minlingtianxia(敏凌天下)回复于 2005-06-25 21:45:30 得分 0

...  
  则把P放入到A中,把与所有与P相连的但不与B中其他任一顶点相连的顶点放到A中,这样可以优化这个解.  
  ...  
  更正为:  
  ...  
  则把P放入到A中,把与所有与P相连的但不与B中其他任一顶点相连的顶点放到B中,这样可以优化这个解.  
  ...  
   
   
   
   
  Top

14 楼minlingtianxia(敏凌天下)回复于 2005-06-25 21:52:16 得分 0

to:   jettylee(要学的还很多~~~)    
  你的算法显然错了.反例:一棵深度为3的树,根有5个子女,每个子女又都有一个子女,对于这张图  
  根虽然度最大,但不必染色.Top

15 楼yuequnfan(Canty)回复于 2005-06-26 09:18:32 得分 0

支持Top

16 楼Zephyrzzz()回复于 2005-06-26 20:49:12 得分 0

to   minlingtianxia(敏凌天下):  
      说一下你的解法对于完全图的情况.Top

17 楼minlingtianxia(敏凌天下)回复于 2005-06-30 19:25:55 得分 0

to   Zephyrzzz()   :  
      对于完全图,按规则构造出的那个解是染色集有N-1个顶点,非染色集则有1个顶点.而且不能再优化了.(这很明显,你可以按规则模仿一下)而事实上最优解的确是这个,因为假如有两个顶点未被染色,由于它是完全图,那么这条边的两个顶点就都未被染色,这个解就不符合!Top

18 楼minlingtianxia(敏凌天下)回复于 2005-06-30 19:51:52 得分 0

...  
  考察B中的每一个顶点,对与B中的某一顶点P,若所有的与P相连的顶点(必在A中),至少有两个顶点与B中的顶点只有一边相连(即B中除P外无顶点与这顶点相连),则把P放入到A中,把与所有与P相连的但不与B中其他任一顶点相连的顶点放到A中,这样可以优化这个解.  
  ...  
  对于这里,忘了加上一个条件:"至少有两个顶点与B中的顶点只有一边相连(即B中除P外无顶点与这顶点相连),则把P放入到A中"这里的放入B几个顶点任两点不能有边相连,否则的话放入B后B集合中的顶点就会出现有边相连的两个顶点,而这是不能被允许的.Top

19 楼languagec(各有所求)回复于 2005-07-01 16:33:55 得分 0

 
  Top

20 楼Zephyrzzz()回复于 2005-07-01 23:00:59 得分 0

。。。。。。你不是说“最优解就是要求那个被染色的集合的元素个数最少”吗?   后面的“对于完全图,按规则构造出的那个解是染色集有N-1个顶点,非染色集则有1个顶点.而且不能再优化了.”不是矛盾?染色集不是应该只有一个顶点吗?Top

21 楼minlingtianxia(敏凌天下)回复于 2005-07-02 17:06:36 得分 0

可能是我没说清楚,在操作时染色集是确定的,就是A.“最优解就是要求那个被染色的集合的元素个数最少”指的是解与解之间集合A元素之间的比较.而在一个解中,染色集的元素个数可以多于非染色集的个数,因为有时这是必须的.例如在这完全图的情况下,A可以多于B(且是必须的).而如果你拿出其它的解,只要这可行,那这个解的A集(染色集)的元素个数肯定多于N-1.不知道这样说你是否能理解我的意思.Top

22 楼ihsgnep(石头->信心最重要 努力是王道)回复于 2005-07-03 00:12:21 得分 0

Mark   学习Top

23 楼minlingtianxia(敏凌天下)回复于 2005-07-06 19:11:32 得分 0

up  
  Top

相关问题

  • 求解一道题
  • 一道摸拟题求解!
  • 一道面试题,求解。
  • 求解一道高程题
  • 求解一道笔试题
  • 求解一道编程题
  • 一道面试题,求解
  • 一道笔试题,求解
  • 一道面试题求解
  • 九宫图求解

关键词

  • 堡垒
  • 路线
  • 火力中心
  • 问题
  • 所有

得分解答快速导航

  • 帖主:yuequnfan
  • mmmcd
  • mysword
  • Zephyrzzz
  • minlingtianxia

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo