NP-C问题的由来以及一些调度的基本概念

P问题和NP问题:P问题是多项式时间内可以解决的问题,NP问题是多项式时间内可以验证一个解的问题(可以说NP问题躲开了求解所需要多久时间这样的问题,而仅仅是强调验证一个解需要多长时间)。
P问题和NP问题的标准定义应该分别是:确定式图灵机上可以解决的问题和非确定式图灵机上可以解决的问题。(刚开始的时候我错以为P是指多项式时间,NP就是指非多项式时间,其实是Deterministic Turing Machine Problem和Non-Deterministic Turing Machine Problem)
那么对于P问题来说,就设计一些精确算法就可以了,因为是多项式时间内的问题;而对于NP问题来说,就比较复杂一些。
我们要先确定P和NP的联系:
首先P问题肯定是NP问题,因为可以在多项式时间内求解的问题肯定可以在多项式时间内验证一个解。那么P是否等于NP呢?明显只要NP问题也是P问题就可以了,但是可以在多项式时间内验证一个解的问题一定可以在多项式时间内求解吗?如果可以的话,那么你所设的密码就可以在验证密码的时间量级上找到你的密码,这好像是无法实现的。但是问题就是问题,不经过证明谁也无法说NP问题是否等于P问题。因此根据这种特例就划分出了NP问题中的NP-C问题,它的定义是:目前无法在多项式时间内找到解,但可以在多项式时间内验证解的正确性。
NP-C问题是如何找到的,就先要了解NP-C问题的概念是如何提出的,所有的NP问题都归约(A归约到B上,证明B比A难)到一个NP-C问题上,那么这个NP-C问题就是NP问题中最难的问题。只要这个NP-C问题被解决,那么所有的NP问题也就被解决了。可能有人很难相信所有的NP问题真的能归约的一个NP-C问题上吗?答案是可以。感兴趣的可以查找相关的文献,有详细的证明。
怎么去解决NP-C问题呢?因为它是多项式时间内无法解决的(时间复杂度随问题规模增大呈现指数型增长),所以对于中和大规模问题可以采用近似算法(近似解),而小规模问题还是可以使用精确算法的(精确解)。
分类如下图所示:
在这里插入图片描述(可以再根据需求细分,但在这篇博客里,上图的分类就足够了)
对于P和NP的概念分清之后,那么我们就聊调度。在调度中大部分研究的问题就是NP-C问题,因为多项式时间内可解的问题直接暴力搜索精确解就可以了。作者研究的是近似算法。
现在介绍调度研究中一些入门的基本概念:
一个调度问题通常用三符号表示法(α|β|γ)来定义(1979年提出的)。
α:机器环境;
β:工件特性;
γ:优化目标。
机器环境分为以下几种:
1.平行机环境 Parallel machine:
(1)同型机 identical machine; (2)同类机 uniform machine; (3)非同类机 unrelated machine.
2.流水机环境 Flow shop;
3.开放车间环境 Open shop;
4.异序车间环境 Job shop.
工件特性就不讲了,太多种了,保不齐哪个任务或者机器有特性就需要写上去。
优化目标就提两个(原因也是太多,有兴趣可以查资料,很容易找到详细资料):
1.Cmax:最长完工时间;
2.Lmax:最大误工损失。

结尾语:写到这里也基本上写完了,因为这篇博客只是对调度的一些基本概念和问题背景的简介。以上只是作者的一些拙见,而且是作者的第一篇博客,写的不好请见谅。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值