算法课笔记系列(九)——近似算法(Part1)

本文介绍了近似算法的概念,它是针对NP难问题的一种解决方案,特别是用于解决最优化问题。通过定义NP优化问题,阐述了近似算法的性质、性能比和多项式时间近似模式(PTAS)。讨论了贪心算法在集合覆盖问题、最大背包问题和最大独立集问题中的应用,展示了近似算法的实际效果和近似比。
摘要由CSDN通过智能技术生成

这一周的内容是近似算法(Approximation Algorithm)。

对于许多的问题的算法,我们通常目标在于设计一个可以在多项式时间内运行的算法。然而,上一节的NP问题告诉我们这样的算法不一定存在。近似算法其实是针对NP难问题的一种退让,对于许多P不等于NP的最优化问题,无法在多项式时间内找到最优解。因此,如果可以只求一个我们可以接受的解,而不是非要最优解,那么可能存在一个多项式时间的算法。


因此,这里的“近似”其实就是针对最优化问题而言的。其主要应用也是用来解决最优化的问题,并且要求其时间花销为多项式级别的时间。

首先,提出一个NP的优化问题,即NPO问题。

        

不同的NOP问题的相似程度可能有非常大的差别。

一个NP优化问题P可以用一个四元组(I, Sol, m, goal)来表示,也就是:

I : I是P的实体的集合,可以在多项式时间内被识别;

Sol: 给定一个x∈  I, Sol(x)表示x的可能的解的集合;对于任意的y∈  Sol(x), |y|是|x|的多项式;给定任何|x|的多项式x和y,如果有y∈  Sol(x),那么这个问题可以在多项式时间内决定。

m: 给定一个实例x∈  I,y∈  Sol(x), y是x的一个可行解,m(x,y)表示y的值,并且,可以在多项式时间内被解决的函数

Goal ∈ {max, min}。表示这是一个最大化问题还是最小化问题。

下面定义一个NPO类:

类NPO是所有NP优化问题的集合。NPO问题的目标是,对于一个实体x,找到一个最优解,也就是一个可行解y使

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值