近似算法
近似算法与性能分析

近似算法与性能分析
局部搜索的原理与应用
局部搜索的原理与应用
▪ 局部搜索原理
1.局部搜索是一种在解决方案空间中寻找近似最优解的方法, 通过在当前解周围进行邻域搜索,逐步改进解的质量。 2.局部搜索的原理主要包括两个核心步骤:产生新解和接受新 解。通过对当前解的邻域进行探索,生成新的候选解,并根据 一定接受准则决定是否接受新解作为当前解。 3.局部搜索的有效性取决于邻域结构和接受准则的设计。合适 的邻域结构能够产生质量更好的新解,而合理的接受准则能够 保证搜索过程向更好的方向进行。
近似算法与性能分析
线性规划的原理与应用
线性规划的原理与应用
线性规划原理
1.线性规划是一种求解最优化问题的数学方法,其目标函数和约束条件均为线性函数。 2.线性规划的原理包括单纯形法和内点法等求解方法,能够高效地解决线性规划问题。 3.线性规划的应用范围广泛,包括生产计划、货物运输、资源分配等领域。
动态规划应用
1.动态规划在计算机科学和工程领域有广泛应用,如计算机网 络中的路由协议、语音识别、生物信息学中的序列比对等。 2.在解决实际问题时,首先需要确定问题是否具有“最优子结 构”性质,即问题的最优解能否由其子问题的最优解组合而成 。 3.动态规划的应用需要充分考虑问题的约束条件和目标函数, 以确保算法的正确性和效率。 以上内容仅供参考,建议查阅专业书籍或咨询专业人士获取更 全面和准确的信息。
▪ 贪心算法的优缺点
1.贪心算法的优点是简单、高效,适用于大规模数据的处理。 2.缺点是不一定能够得到全局最优解,只能得到近似最优解。
贪心算法的原理与应用
▪ 贪心算法的经典案例
1.活动选择问题:选择尽可能多的互不冲突的活动。 2.货郎担问题:经过若干个城市,选择最短的一条路径。
数学中的近似算法

数学中的近似算法近似算法是指通过一系列计算步骤,近似地求解某个数学问题。
在数学领域中,我们经常会遇到一些难以精确求解的问题,这时候,近似算法就能帮助我们在可接受的误差范围内获得近似的解。
一、近似算法简介近似算法通常是在充分利用已知信息和资源的情况下,通过适当的逼近和调整,得出一个接近于准确解的结果。
它的优势在于其可行性和实用性,虽然无法保证完全准确,但却能在较短的时间内给出一个比较好的解。
二、常见的近似算法1. 近似求解函数极值的方法在数学中,我们经常会面临求函数的极值问题,通常可以通过近似求解的方法得到一个较优的解。
例如,梯度下降法、模拟退火算法等都是常用的近似求解函数极值的方法。
这些算法通过调整函数的自变量,以逐步优化目标函数的值,最终得到一个极值点。
2. 近似计算积分的方法计算复杂函数的积分往往是一项具有挑战性的任务,而近似计算积分的方法可以大大简化计算过程。
例如,辛普森法则、梯形法则等都是常用的近似计算积分的方法。
这些方法通过将区间分割为若干个小段,并在每个小段上做线性或非线性逼近,从而得到整个区间上的近似积分值。
3. 近似求解方程的方法求解非线性方程在数学中也是一项困难的任务,而近似求解方程的方法可以提供一个接近准确解的答案。
例如,牛顿迭代法、二分法等都是常用的近似求解方程的方法。
这些方法通过不断迭代的方式,逐步逼近方程的根,从而得到一个近似解。
4. 近似计算特殊函数值的方法特殊函数在数学中广泛应用,但其计算常常十分复杂。
而近似计算特殊函数值的方法可以在保证一定精度的情况下,大大简化计算。
例如,泰勒展开、二项式展开等都是常用的近似计算特殊函数值的方法。
这些方法通过将函数在某一点展开为幂级数或多项式,再仅计算有限项,从而得到特殊函数的近似值。
三、近似算法的应用案例1. 图像压缩图像压缩是一种常见的应用场景。
在图像压缩中,我们可利用近似算法,通过降低图像色彩的精度或其他方法,以减少图像文件的大小,同时尽量保留图像的质量。
高考数学应试技巧之近似算法

高考数学应试技巧之近似算法数学被誉为一门科学的基础学科,也被称作是最具有钻研性的学科之一。
在高中学习过程中,数学知识的学习和掌握对于每一个学生来说都至关重要。
在高考中,数学成绩的好坏可以决定一个学生的考取去向。
因此,在备考阶段掌握一些高考数学应试技巧是至关重要的。
本文将着重介绍一种高考数学中非常常见的近似算法。
一、近似算法的定义近似算法是一种利用简单的数学方法,将实际问题简化为可以计算的近似值,从而迅速得出高精度答案的方法。
在数学竞赛和高考中,很多问题都需要使用近似算法来解决,因为高次方程、三角函数的精确值都不易求解。
所以,掌握近似算法对于高考数学的学习是至关重要的。
二、近似算法的分类(一)上取整和下取整法当我们计算除法时,如果希望得到的结果更加精确,可以尝试使用上取整或者下取整法。
例如,当我们需要计算 $ \frac{7}{3} $ 的值时,近似算法可以选择上取整法将其转化为 $ \lceil\frac{7}{3} \rceil =3 $ 或下取整法将其转化为 $ \lfloor \frac{7}{3}\rfloor =2 $ 。
这样计算出来的结果是相对精确的。
但是,在应用这种算法时,需要注意一些特殊情况。
例如,当被除数为正数,而除数为负数时,需要使用下取整法。
(二)牛顿迭代法牛顿迭代法是一种高级的近似算法,可以用于求解各种方程的根。
比如,我们需要求解$x$的平方根的问题,可以使用如下的迭代公式:$ x_{n+1} = \frac{1}{2}( x_{n} + x_{0} / x_{n}), n\ge0 $ ,其中 $x_{0}$表示要求解的值。
当$n$足够大时,$x_{n}$则可以视作$x$的平方根。
三、近似算法的应用近似算法在高考数学中,常常被用于解决求解三角函数值、计算级数的问题。
例如,在计算三角函数的时候,我们可以使用泰勒公式来进行近似计算。
泰勒公式表达式如下:$ \sin x = x-\frac{x^3}{3!} +\frac{x^5}{5!}-\frac{x^7}{7!}+\cdots$ ,$ \cos x =1-\frac{x^2}{2!} +\frac{x^4}{4!}-\frac{x^6}{6!}+\cdots$ 。
运筹学中整数规划问题的近似算法

运筹学中整数规划问题的近似算法运筹学是一门研究如何在有限资源下做最优决策的学科,其中整数规划是其中一种重要的决策方法。
整数规划问题是指在线性规划问题的基础上,对决策变量的取值加以限定,限定为整数值。
整数规划问题在实际应用中非常常见,例如优化生产计划、物流配送、资源分配等。
然而,整数规划问题的解空间通常是离散的,由于整数规划问题的NP难解性质,寻找准确解的效率很低,因此近似算法成为解决整数规划问题的重要手段。
一、近似算法的概念近似算法是指在可接受的误差范围内,通过有效的计算方法得到问题的近似最优解。
在整数规划问题中,近似算法主要通过松弛约束条件、局部搜索等方法寻找问题的近似解。
二、近似算法的分类近似算法可以根据问题的特性和解决方法的不同进行分类,下面介绍几种常见的近似算法。
1. 线性松弛算法(Linear Relaxation)线性松弛算法是整数规划问题中常用的近似算法之一。
该算法的基本思想是将整数规划问题的整数约束放宽为实数约束,得到一个线性规划问题。
然后通过求解线性规划问题的松弛解,并将松弛解的整数部分作为整数规划问题的一个近似解。
2. 近似局部搜索算法(Approximate Local Search)近似局部搜索算法通过在整数规划问题的解空间中进行局部搜索,通过一系列的改进和优化策略来逐步提高解的质量。
该算法在每一步都根据某种准则选择当前最优解,并通过局部搜索来寻找局部最优解。
然后,通过重复进行局部搜索和改进操作,逐渐向全局最优解靠近。
3. 启发式算法(Heuristic Algorithm)启发式算法是一种基于经验和直觉的算法,通过在可行解空间中搜索一组近似解,并根据某种评价准则选择最优解。
在解决整数规划问题时,启发式算法通过寻找有效的近似解,来替代寻找准确解,从而节省计算资源和时间。
三、近似算法的应用案例近似算法在实际问题中有广泛的应用,下面以物流配送问题为例,介绍近似算法的应用。
假设某物流公司需要将一批货物从仓库分配到多个客户,其中仓库和客户的位置已知,货物的需求和供应量也已知。
算法复杂度分析中的近似算法

算法复杂度分析中的近似算法随着计算机科学的发展,算法复杂度分析成为了评估算法效果和性能的重要方法之一。
在算法复杂度分析中,近似算法是一种重要的技术手段,用于解决NP-难问题或其他无法在多项式时间内求解的问题。
本文将介绍算法复杂度分析中的近似算法及其应用。
一、近似算法的基本概念近似算法是一类用于求解问题近似解的算法,其核心思想是在有限时间内找到一个接近最优解的解。
近似算法常用于求解优化问题,例如旅行商问题、背包问题等。
近似算法的输出称为近似解,与最优解的差距被称为近似比。
二、近似算法的分类根据问题的性质和求解过程的策略,近似算法可以分为以下几种类型:1. 贪心算法:贪心算法通过每一步都选择当前最优的解决方案来逐步求解问题。
尽管贪心算法不一定总能得到最优解,但它具有高效性和简单性的优势,常常应用于实际问题的求解。
2. 近似随机算法:近似随机算法通过引入随机性来求解问题,其中最著名的算法是马尔科夫链蒙特卡洛方法。
该方法通过在状态空间中的随机游走来逼近问题的最优解,其近似比与马尔科夫链的收敛速度有关。
3. 近似启发式算法:近似启发式算法通过结合问题的特点和启发信息来搜索问题的解空间。
典型的近似启发式算法包括模拟退火算法、遗传算法等。
这些算法通常具有较好的近似性能,但在计算复杂度上较高。
4. 近似线性规划算法:近似线性规划算法通过对问题进行线性规划松弛来获得问题的近似解。
该方法可以用于求解整数规划问题,并且具有较好的性能保证。
三、近似算法的性能评估在使用近似算法时,一个关键的问题是评估其解的质量和性能。
为此,我们引入了近似比的概念。
近似比是近似算法输出解与最优解之间的比值。
对于最大化问题,我们希望近似比越大越好;而对于最小化问题,我们则希望近似比越小越好。
通常情况下,我们希望近似算法具有多项式时间复杂度,并且能够输出具有较好近似比的近似解。
四、近似算法的应用近似算法在实际问题中具有广泛的应用,以下是其中一些典型的应用:1. 旅行商问题:旅行商问题是一个经典的组合优化问题,目标是找到一条经过所有城市且总长度最短的路径。
近似算法理论分析

近似算法理论分析近似算法是在计算问题的解决过程中,通过一定的近似策略来寻找问题的近似解,这样可以在多项式时间内得到一个接近最优解的解决方案。
近似算法理论分析是对近似算法性能进行理论上的衡量和评估。
在近似算法的理论分析中,通常使用近似比或近似比界来衡量算法的近似程度。
对于最优化问题,其最优解为OPT,而近似算法得到的解为APX,并且存在一个常数c,使得算法得到解APX满足以下条件:APX≤c×OPT近似比的取值范围在[1,+∞]之间,当近似比为1时,算法得到的解与最优解相等或非常接近;当近似比为大于1的常数时,算法得到的解与最优解的差距会相应增大。
近似比界是指近似算法的最优近似比的上界。
对于一个问题,最优的近似比界往往很难确定,因此通常通过设计近似算法,通过实际求解问题来得到一个近似比界的估计值。
在进行近似算法的理论分析时,通常会涉及到以下几个方面:1.算法的设计思路:描述算法的整体框架和核心思想,通过简洁明了的描述来阐述算法的设计思路。
2.问题的数学表示和形式化定义:将问题转化为严格的数学表示,明确问题的输入和输出,以及问题的约束条件。
3.问题的最优解的定义:明确问题的最优解的定义和求解目标,为后续的理论分析提供准确的基础。
4.算法的正确性证明:通过数学推导和严密的推理,证明算法的输出符合问题的要求,即算法的解是问题的一个合法解。
5.算法的近似性分析:通过数学推导和估计,分析算法得到的解与最优解之间的近似程度。
通常使用近似比或近似比界来衡量算法的性能。
6.算法的时间复杂度和空间复杂度:分析算法的时间复杂度和空间复杂度,评估算法的运行效率和资源消耗情况。
近似算法的理论分析是为了对算法的性能进行客观评估和比较,并为实际应用场景中的问题提供解决方案。
通过近似算法的理论分析,可以知道算法在实际应用中的优劣势,为问题求解提供一个可接受的解决方案。
同时,理论分析也可以指导算法的改进和优化,使得算法在实际应用中能够更好地适应各种特殊情况和约束条件。
常见的随机算法、近似算法和启发式算法的案例

常见的随机算法、近似算法和启发式算法的案例常见的随机算法、近似算法和启发式算法的案例有:
随机算法:
1. 随机洗牌算法:用于打乱一组数据的顺序,常用于实现随机排列或游戏中的洗牌操作。
2. 蒙特卡洛算法:通过随机采样的方法,来估计一个问题的解或某个数值的概率分布,例如蒙特卡洛模拟的方法用于计算圆周率π的值。
近似算法:
1. 近似最近邻算法:快速搜索给定查询点最近邻的点,而不需要对所有数据点进行完全搜索,例如kd树算法。
2. 近似最小覆盖问题的算法:在给定一组区域的情况下,选择尽可能少的区域来覆盖所有点,例如贪心算法。
启发式算法:
1. 蚁群算法:模拟蚂蚁在寻找食物时的行为,通过信息素的释放和感知,来寻找全局最优解,常用于求解旅行商问题。
2. 遗传算法:基于生物进化理论,通过模拟自然选择、基因交叉、变异等操作,来搜索优化问题的解空间,例如用于解决旅行商问题或优化函数的最优解。
近似算法性能提升

▪ 可扩展性评估
1.可扩展性评估是衡量近似算法在处理更大规模和更复杂问题 时的性能和可扩展性的重要指标。 2.通过分析算法在不同规模和数据集上的性能表现,可以评估 近似算法的可扩展性和未来发展潜力。 3.提高近似算法的可扩展性可以使其更好地应对复杂问题和大 规模数据集的挑战,为实际应用提供更多价值。
▪ 空间复杂度评估
1.空间复杂度是衡量算法所需内存空间的重要指标,对于大规 模数据集和复杂问题尤为重要。 2.近似算法通常需要权衡运行时间和空间复杂度之间的关系, 以达到更好的性能。 3.通过优化数据结构和算法实现,可以降低近似算法的空间复 杂度,提高内存使用效率。
性能评估标准
▪ 近似比评估
1.近似比是衡量近似算法解决问题优劣程度的重要指标,反映 了算法的理论性能。 2.通过分析近似比的上界和下界,可以评估近似算法在不同问 题实例上的性能表现。 3.近似比需要与实际问题相结合,考虑实际应用场景下的性能 和效果。
近似算法性能提升
目录页
Contents Page
1. 近似算法简介 2. 性能评估标准 3. 经典近似算法介绍 4. 近似算Байду номын сангаас性能瓶颈 5. 性能提升方法概述 6. 具体提升技术详解 7. 提升效果实验验证 8. 总结与展望
近似算法性能提升
近似算法简介
近似算法简介
近似算法定义
1.近似算法是在给定资源限制下,找到接近最优解的算法。 2.近似算法可以在多项式时间内得到近似最优解,适用于大规模优化问题。
近似算法分类
1.按照近似比例可以分为常数倍近似算法和多项式倍近似算法。 2.按照问题类型可以分为组合优化问题和连续优化问题的近似算法。
近似算法简介
▪ 近似算法性能评估
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
近似算法的性能比
若一个最优化问题的最优值为c*,求解该问题的一个 近似算法求得的近似最优解相应的目标函数值为c,则将 c c * , 该近似算法的性能比定义为= max 。在通常情况 c* c 下,该性能比是问题输入规模n的一个函数ρ(n),即
c c * max , ≤ρ(n)。 c * c
LPT调度 最优调度 • Graham定理:在多机调度问题中,实例I的最优m处理器调度 的完成时间是F*(I),该实例的LPT调度的完成时间是F(I),则有 |F*(I) F(I)|/|F*(I)|1/3 1/3m (2) • LPT算法的时间复杂度为 O(nlogn) • 在“每台机器安排任务不多于两项”的前提下,LPT得到最优 解
VertexSet approxVertexCover ( Graph g ) { cset=; e1=g.e; while (e1 != ) { 从e1中任取一条边(u,v); cset=cset∪{u,v}; 从e1中删去与u和v相关联的所有边; } return cset; }
Cset用来存储顶点 覆盖中的各顶点。初 始为空,不断从边集 e1中选取一边(u,v), 将边的端点加入cset 中,并将e1中已被u 和v覆盖的边删去, 直至cset已覆盖所有 边。即e1为空。
5
求0/1背包问题的绝对近似解是NP难问题
• 对于0/1背包问题的实例I:M,{pi,wi}, 1in,构造另一个0/1 背包问题的实例I': M,{(k+1)pi,wi}, 1in,显然,I与I'有相同 的可行解集,而且F*(I')=(k+1)F*(I)。 • 如果存在求0/1背包问题绝对近似解的多项式时间算法A,使 得 |F*(I) F(I)| k,则可以调用算法A求问题实例I',有 |F*(I') F(I')| k (1) 设对应的解为X。在pi和k均为整数的情况下,F(I')或等于F*(I') 或者至多为F*(I') (k+1)。因而,由(1)式得到:F(I')=F*(I'),即X 是问题实例I'的最优解,也即是问题实例I的最优解。这说明0/1 背包问题有多项式时间的确定算法求得最优解。由0/1背包问题 是NP难问题可知,绝对近似的0/1背包问题也是NP难问题。
近似算法
1
NP困难问题
All of NP SAT 3SAT Independent Set Vertex Cover Clique Subset Sum 3D Matching ZOE ILP Hamilton Cycle TSP
2
近似算法的相关概念
• 问题,实例,最优值F*(I),算法A产生的可行解的值F(I) • 绝对近似算法:算法A称为问题的绝对近似算法,如果对问 题的每个实例I,有 |F*(I)F(I)|k,其中,k是常数。 • 相对近似算法:算法A称为问题的相对近似算法,如果对问 题的每个实例I,有|(F*(I)F(I))/F*(I)|(n),其中,(n) 是I的规模n的函数(一般是多项式)。常称为(n)-近似(算法)。 • 近似格式(或方案):A()称为问题的近似格式,如果对每 个给定的>0和问题实例I,算法A()产生一个满足 |(F*(I) F(I))/F*(I)| 的可行解。 • 多项式时间近似格式:对于任意给定的>0,计算时间是问题 规模的多项式; • 完全多项式时间格式:计算时间是问题规模和1/的多项式。
10
Greedy-Set-Cover是lnn-近似算法
• 设算法依次选定子集 S1, …, Sn-1, Sn,构成子集族Y 。对于每 个xX,设第一个覆盖它的子集是Si,定义x的权值 cx=1/|(Si\(S1… Si-1)| 可见,|Y|=xX cx SY* xS cx 。以下证明:对于每个S有 xS cx H(|S|),其中 H(k)=1+1/2+…+1/k。 • 对于S,定义u0=|S|,ui=|S\1ji Sj|,i=1,2, … 。设uk+1是第 一个为零的ui,显然,k0,且uiui+1,S中有ui-1-ui个元素被Si 第一次覆盖, i=0,1,…, k-1。由此得 xS cx= 1ik (ui-1-ui)/|(Si\(S1… Si-1)| 由算法,S所覆盖的元素不会比Si多,否则,算法将选择S而不是 选择Si。这给出 |(Si\(S1… Si-1)| |(S\(S1… Si-1)| = ui-1,因 而 xS cx 1ik (ui-1-ui)/ui-1 1ik (H(ui-1)-H(ui)) H(u0) 又H(n) lnn+1,所以|Y| |Y*|(lnn+1),(|Y|-|Y*|)/|Y*| lnn
16
具有三角不等式性质的 旅行售货员问题举例
(b)表示找到的最小生成 树T;(c)表示对T作先根 次序遍历;(d)表示L产生 的哈密顿回路H; (e)是G的一个最小费用旅 行售货员回路。
17
参考文献
• Dorit S.Hochbaum: Approximation Algorithms for NP-Hard Problems ,PWS Publishing Company,1998. 堵丁柱,葛可一,胡晓东:近似算法的设计与分析, 高等教育出版社,2011.
6
相对近似算法((n)-近似)
• 多机调度问题的LPT算法:只要处理器处于空闲状态就为其分 配一个任务,该任务是所有未分配任务中执行时间最长的。 • 例子:m=3, n=7, (t1,t2,t3,t4,t5,t6,t7)=(5,5,4,4,3,3,3)
1 2 3 4 5 6 7 5 1 2 6 3 4 7
8
-近似旅行商问题是NP难问题
• 假定存在一个多项式时间算法A求解-近似旅行商问题。对于 Hamilton问题实例I, 其图为G=(V,E),构造一个新的图G1=(V,E1) 它是一个完全图,各边赋权如下: 若(u,v)E, w(u,v)=1 ; 否则 w(u,v)=k。 其中,k=(1+)n, n是G的顶点数,得到旅行商问题实例I'。 可见,图G有Hamilton回路当且仅当图G1有长为n的环游路线。 因为算法A能够求得旅行商问题的-近似解,由 F(I’)-F*(I’)F*(I’), 得F(I’)(1+)F*(I’)F*(I’)k/n 如果F(I’)>n,则由图G1的构造,必有F(I’)n-1+k,结合上式得 F*(I’)n+(n-1)n/k>n,说明G1没有长为n的环游,因而G没有Hamil ton回路;如果F(I’)n,则由G1的构造,必有F(I’)=n,G1有长为n环 游,因而G有Hamilton回路.说明算法A能够求解Hamilton问题.因 9 . 为Hamilton回路问题是NPC问题,故-近似旅行商问题是NP难问题
集合覆盖问题的(n)-近似算法
• 集合覆盖问题:给定集合X的一个子集族, 覆盖X。求 的一个子族Y*,其覆盖X,且|Y*|=min{|Y| : Y 且Y覆盖X}。 • 集合覆盖问题的一个贪心算法 | ={S1,S2,S3,S4,S5,S6} void Greedy-Set-Cover(X, ) { U=X; Y=; while (U!=) { 选择中使| SU |最大的子集S; U=U\S; Y=Y{S}; } return Y ; } 有6个子集的子集族
•
该近似算法的相对误差定义为= | c c*| / | c*| 。若对 问题的输入规模n,有一函数n使得 n,则称 n 为该近似算法的相对误差界。近似算法的性能比 ρ(n)与相对误差界ε(n)之间显然有如下关系: ε(n)≤ρ(n)-1。
12
顶点覆盖问题的近似算法
问题描述:无向图G=(V,E)的顶点覆盖是它的顶点集V 的一个子集V'V,使得若(u,v)是G的一条边,则v∈V'或 u∈V'。顶点覆盖V'的大小是它所包含的顶点个数|V'|。
3
绝对近似算法(1)
• 0/1背包问题的贪心算法不是绝对近似算法。
• 例子:n=2, P=(2, r), W=(1, r), M = r (r>2)。 F*(I)=r, F(I)=2, |F*(I)–F(I)|=r–2
4
绝对近似算法(2)
• 最多程序存储ቤተ መጻሕፍቲ ባይዱ题:两个容量为L的磁盘,n个程序需要的存 储空间分别是:l1, l2, …, ln,求存入磁盘的程序的最大个数。 • 最多程序存储问题存在1-绝对近似的多项式时间算法。 • 算法:将程序按照所需存储空间由小到大编号,然后逐一向 第一个磁盘存储,第一个磁盘不能存储时,再将剩下的程序逐 一向第二个磁盘存储,直至第二个磁盘也不能存储为止。 • 如果考虑将这n个程序向一个容量为2L的磁盘存储,则上述算 法会得到最优解,不妨设为k个。因而,将n个程序向两个容量 各为L的磁盘存储时,存储的最大个数不会超过k。即F*(I)k。 按照上述算法假设第一个磁盘存储了k1个程序,第二个磁盘存储 k2个程序,则k1+k2+1k,即F(I)k-1,于是|F*(I)–F(I)|1。
问题描述:给定一个完全无向图G=(V,E),其每一边 (u,v)∈E有一非负整数费用c(u,v)。要找出G的最小费用 哈密顿回路。 旅行售货员问题的一些特殊性质: 比如,费用函数c往往具有三角不等式性质,即对 任意的3个顶点u,v,w∈V,有:c(u,w)≤c(u,v)+c(v,w)。 当图G中的顶点就是平面上的点,任意2顶点间的费用就 是这2点间的欧氏距离时,费用函数c就具有三角不等式 性质。
7
Graham定理的证明
• 反证法:假定I是任务数最少的反例,则m>1,且 |F*(I)F(I)|/|F*(I)|>1/31/3m (2.1) 假定任务是按照完成时间的递减顺序编号的,则按照LPT调度, 最迟完成的任务可以认为是排在最后的任务n,该任务开始加工 的时间是F(I)-tn,因而,此刻之前没有任何机器空闲, F(I)-tn(1in-1 ti)/m。又F*(I)(1in ti)/m,所以,F(I)- F*(I) tn(m-1)/m。由(2.1)得F*(I)<3tn。这说明最优解是每个机器至多安排 两项任务。在“每台机器安排任务不多于两项”的前提下, LPT 得到最优解。因而F(I)=F*(I),这与(2.1)矛盾。 • 达到极值的例:n=2m+1, ti=2m-(i+1)/2, i=1,…,2m, t2m+1=m LPT调度:第一台机器安排任务:1, 2m, 2m+1, 其余第j台机器安 排任务:j, 2m-j+1。最长完成时间 F(I)=t1+t2m+t2m+1=4m-1 最优调度:机器m安排任务:2m-1,2m,2m+1, 其余第j台机器安排 任务:j, 2m-j-1。最长完成时间:t1+t2m-2=3m。