问题抽象出来是这样的:
一个无向图G(V,E),每个图中的节点v有个给定的评价函数n(v)。n(v)是个自然数。
给定一个阈值T,也是一个自然数。
任给图中的两个节点s和d作为源和目的
判定是否存在一条从源s到目的d的路径v0,v1,v2,...,vk使得,对于i,j属于0到k
max(n(vi))-min(n(vj))<T
max(n(vi))表示这条路径上所有点最大的评价函数值,min(n(vj))表示这条路径上所有点最小的评价函数值
如果存在,给出任意一条满足条件路径。
这个问题是NP-complete的么?如果不是,如果有可能的解法能提示一下就最好了,不用太详细。
多谢Shuo Chen
至于NPC,应该是他没有描述清楚,这个问题只要有合理solution就行。估计是赶deadline赶昏头了。
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.forwind.cn
http://twitter.com/lk_517
2009/11/11 Shuo Chen <gian...@gmail.com>:
windstorm 写道:
我一开始也没仔细看他的问题,帮他发出来后就睡觉了。今天到实验室后想了一下,我有几个疑问:
1 Cheng, Long的方法应该可行,也是最直观证what明其不是NPC的算法。但算法复杂度是不是有点高?
2 我觉得Shuo Chen的第二个方法应该不错,中午给那哥们说说
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.forwind.cn
http://twitter.com/lk_517
2009/11/11 Cheng, Long <long.x...@gmail.com>:
可能一个节点并不能用low、high这一对值来表示。
比如说从原点到某个中间节点M有两条路,假设val(M) = 11,最大允许阈值是12
第一条路P1的(high,low)是(21,10)
第二条路P2的(high,low)是(15,5)
M又连接了两个还未访问过的节点E、F。val(E)=8,val(F)=18
这种情况下M必须记录两个high low的值。
从原点到节点E,必须通过P2、M、E,而通过P1、M、E,将会导致(high,low)是(21,8)从而违反阈值条件。
从原点到节点F,必须通过P1、M、F,而通过P2、M、F,将会导致(high,low)是(18,5)从而违反阈值条件。
而在这个算法中,如果更新M的值不当,可能导致找不到本来存在的路径。
如此说来,每个节点可能需要被访问多次,每条边也会访问多次,因而通过搜索来解决这个问题可能不是多项式时间的。
----------------------------------------------------------------------------------
Yours Sincerely
Kun
www.forwind.cn
http://twitter.com/lk_517
2009/11/11 windstorm <likunar...@gmail.com>:
On 11月12日, 上午10时46分, Shuo Chen <giantc...@gmail.com> wrote:
> 是的,有这个问题。我怀疑可以构造变态数据集让算法变成指数。
>
>
>
> windstorm wrote:
> > Shuo Chen的第二个方法有一个问题:
>
> > 可能一个节点并不能用low、high这一对值来表示。
>
> > 比如说从原点到某个中间节点M有两条路,假设val(M) = 11,最大允许阈值是12
>
> > 第一条路P1的(high,low)是(21,10)
> > 第二条路P2的(high,low)是(15,5)
>
> > M又连接了两个还未访问过的节点E、F。val(E)=8,val(F)=18
>
> > 这种情况下M必须记录两个high low的值。
>
> > 从原点到节点E,必须通过P2、M、E,而通过P1、M、E,将会导致(high,low)是(21,8)从而违反阈值条件。
>
> > 从原点到节点F,必须通过P1、M、F,而通过P2、M、F,将会导致(high,low)是(18,5)从而违反阈值条件。
>
> > 而在这个算法中,如果更新M的值不当,可能导致找不到本来存在的路径。
>
> > 如此说来,每个节点可能需要被访问多次,每条边也会访问多次,因而通过搜索来解决这个问题可能不是多项式时间的。
>
> > --------------------------------------------------------------------------- -------
> > Yours Sincerely
> > Kun
>
> >www.forwind.cn
> >http://twitter.com/lk_517
>
> > 2009/11/11 windstorm <likunarmstr...@gmail.com>:
> > > 多谢后面两位朋友
>
> > > 我一开始也没仔细看他的问题,帮他发出来后就睡觉了。今天到实验室后想了一下,我有几个疑问:
>
> > > 1 Cheng, Long的方法应该可行,也是最直观证what明其不是NPC的算法。但算法复杂度是不是有点高?
>
> > > 2 我觉得Shuo Chen的第二个方法应该不错,中午给那哥们说说
>
> > > --------------------------------------------------------------------------- -------
> > > Yours Sincerely
> > > Kun
>
> > >www.forwind.cn
> > >http://twitter.com/lk_517
>
> > > 2009/11/11 Cheng, Long <long.x.ch...@gmail.com>: