判断NP完全问题的一些蛛丝马迹

一般来说我们没有简单的办法判断问题是不是NP完全问题,但还是有一些蛛丝马迹可寻(来自《算法图解》)

  • 元素较少时算法的运行速度非常快,但是随着元素数量的增加,速度会变得非常慢;
  • 涉及所有组合的问题通常都是NP完全问题;
  • 不能将问题分成小问题,必须考虑各种可能的情况。这可能是NP完全问题;
  • 如果问题涉及序列(如旅行商问题中的城市序列)且难以解决,它可能是NP完全问题;
  • 如果问题涉及集合(如广播台集合)且难以解决,它可能是NP完全问题;
  • 如果问题可转换为集合覆盖问题或旅行商问题,那么它肯定是NP完全问题。

对于NP完全问题,最佳的做法是使用近似算法,贪婪算法易于实现,运行速度快,是不错的近似算法。

典型NP问题——旅行商问题,引自百度百科:

假设有一个旅行商人要拜访N个城市,他必须选择所要走的路径,路径的限制是每个城市只能拜访一次,而且最后要回到原来出发的城市。路径的选择目标是要求得到的路径路程为所有路径之中的最小值。

典型NP问题——集合覆盖问题,引自百度百科:

给定全集U,以及一个包含n个集合且这n集合的并集为全集的集合S。集合覆盖问题要找到S的一个最小的子集,使得他们的并集等于全集。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ThetaQing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值