1 / 56

单纯型算法的复杂性及改进途经

单纯型算法的复杂性及改进途经. 说明单纯型算法计算复杂性的例子. 例、. 其中 ( Klee-Minty , 1971 ). 的可行集. 对原问题进行可逆的线性变换,令. 则. 原问题. 变换后的等价问题. 变换后的可行集. 变换后问题的标准形式. 从 出发用单纯型法求解上述问题. 如果选最大检验数进基,取 , 进基. 如果选最小正检验数进基,取 ,还是 进基. 对任何给定算法,可选择参数经过所有 个顶点 !. 的可行集.

Télécharger la présentation

单纯型算法的复杂性及改进途经

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 单纯型算法的复杂性及改进途经

  2. 说明单纯型算法计算复杂性的例子

  3. 例、 其中 (Klee-Minty,1971 ) 的可行集

  4. 对原问题进行可逆的线性变换,令 则 原问题 变换后的等价问题

  5. 变换后的可行集 变换后问题的标准形式 从 出发用单纯型法求解上述问题 如果选最大检验数进基,取 , 进基 如果选最小正检验数进基,取 ,还是 进基 对任何给定算法,可选择参数经过所有 个顶点!

  6. 的可行集

  7. 对原问题进行可逆的线性变换,令 则 原问题 变换后的等价问题

  8. 经过 个顶点!

  9. 对已经提出的进出基规则,均能设计出要经历的对已经提出的进出基规则,均能设计出要经历的 顶点个数是变量维数的指数函数的例子 但是,也不能证明无论采用什么进出基规则,均 能设计出要经历的顶点个数是变量维数的指数函 数的例子 只要 比较大,搜索 个顶点的计算量就不 可能完成!能否找到没有上述问题的其他算法?

  10. 算法的计算复杂性

  11. 如何描述算法的计算复杂性? 要排除机器性能和程序性能的影响 以一种最基本的计算模型的运算次数描述 要排除问题规模的影响 以具体实例的全部数据的大小为变量 要排除不同数据的影响 考虑最坏(为什么不是平均?)情况

  12. 计算复杂性: :二进制数的总位数 :全部数据的总位数不大于 的具体实例集 :实例 的基本计算模型的基本运算次数 说明:以上数据均为转换成整数后的数据 多项式算法: 存在正整数 和常数 满足 通常记为 现有的单纯型算法都不是多项式算法! 线性规划问题是否有多项式算法?

  13. 一个有用的事实: 如果一个算法中间过程产生的数据位数均有 的多项式上界,而算法的所有代数运算次 数存在 的多项式上界,那么 (实例 的基本计算模型的基本运算次数)也有 的多项式上界 理由:在基本计算模型里完成所有代数运算的算 法都是多项式算法 用处:分析计算复杂性时不用知道基本计算模型

  14. 线性规划的椭球算法 (Khachian,哈奇杨,1979)

  15. 规范形式线性规划问题及其对偶问题 原问题 对偶问题 据对偶性原理,当且仅当 和 满足以下方程时,它 们分别是原问题和对偶问题的最优解 求解规范形式的线性规划问题等价于解决下述问题: 或者找到等式和不等式方程组的解,或者断定无解

  16. 等式和不等式方程组 可以写成下述不等式方程组 其系数矩阵是列满秩矩阵

  17. 求解线性规划问题可等价为求解下述判定问题:求解线性规划问题可等价为求解下述判定问题: 任意给定一个 的列满秩整数矩阵 和一个 维 的整数向量 ,要判定集合 是否非空,并在非空的情况下找到一个

  18. 用椭球算法求解前述判定问题的核心迭代步骤 先找到一个包含 的椭球 要求 正定,其体积为 因为 ,所以

  19. 如果 ,停止。否则,存在 ,过 点 做超平面把椭球分为两半,其中一半包含 ,然后再 做 包含包含 的半个 椭球 ,因此仍然成立

  20. 从 到 有迭代公式(教材66页),并可证明 因此,迭代算法或者在找到一个 后停止,或者 随着迭代次数增加使椭球的体积以负指数速率逼近零 推导上面公式的方法:先计算 是圆心在原点的单位 圆的情况,然后再用坐标变换变成椭圆的情况

  21. 如果能够:1)找到包含 的椭球 ;2)找到 的下界 ,则可得到 利用 ,经过 次迭代,可得 若要达到 ,只需要 取 为刚刚大于以上不等式右边数的整数,椭球算法 必在 步迭代之内解决判定问题

  22. 实现前面想法的难点: 第一、是否存在满足 的 ? ( 可能属于降维空间,体积为零) 第二、是否存在满足 的 ? ( 可能无界,体积为无穷大) 对证明椭球算法是多项式算法有利的关系: 容许 为 的指数函数

  23. 克服难点的关键 当全部输入数据的二进制位数不大于 时,任何数据的 绝对值就有个最大的上界 当全部输入数据都是整数时,对它们进行加减乘法运算 得到仍然是整数,而非零整数的绝对值以 1为下界 利用上述上下界就可能解决无界和体积等于零的困难 ? 例如, 为整数时以下两不等式组同时有解或无解,有 解时前者体积可能等于零,而后者体积一定不小于

  24. 先考虑第二个难点 设 是 的任意一个顶点,由规范形 式可行集的顶点描述方法可知,在 中存在 个线性无 关的行向量构成可逆矩阵 满足 ,于是 由求解线性方程组的克莱姆公式可得 其中 是用 替换 的第 列向量得到的矩阵

  25. 例如,求以下方程的解 用克莱姆公式 可得

  26. 如果将 写成 ,根据行列式的定义,可得 其中 是 的一种排列,求 和是对全部 种排列求和,由于 ,可以得到 ,又因为 (!) ,所以 由此可知,按以下参数定义的 可以包含 的全部顶点

  27. 再考虑第一个难点 我们要确定一个 ,使 和 或者同时为空集,或者同时非空, 其中 由于显然成立 ,如果 是空集可以肯定 也 是空集,所以只需做到 是空集能保证 也是空集 (如果 无限制不可能达到上述目的,当 有界时 可能存在能够区别一点是否属于 的下界,当 小于这 个下界后就能达到上述目的) 如何找到满足条件的 ?

  28. 考虑下面的线性规划问题及其对偶问题 当 是空集时,原问题无可行解,而 是对偶问题 的可行解,所以对偶问题最优目标一定为无穷大,因此 一定有 满足约束 ,根据线性规 划标准型的定理2.2.5(22页),一定有顶点满足上述约 束,设为 ,其基变量组成的向量等于 的矩阵乘 维向量,用克莱姆公式可得 对 个基变量成立

  29. 由于 的非基变量等于零,所以 只要取 就满足 考虑优化问题 由于 ,该优化问题最优目标 值为无穷大,所以其对偶问题不能有可行解

  30. 原问题 对偶问题 无可行解 无界 是空集 无界 无界 也是空集 无可行解 无界

  31. 如果 非空,它有如下两个(或退化为一个)顶点 或 如右图所示 对偶问题 该问题无界 当且仅当下式有解

  32. 可行集 如果非 空就只有一个顶点,可由以下方程求出 用克莱姆公式 可得

  33. 可行集 非空 ? 当上式成立时,可验证以下两种情况都不会发生 或 和 矛盾 第一种情况需要 和 矛盾 第二种情况需要 说明对偶问题无界确实能导致 是空集

  34. 下面再说明: 不是空集 任取 定义以 为中心的超立方体 记 ,由于 ,所以 任取 ,因为 所以 说明 ,因此

  35. 小结: 1) 和 或者都 是空集,或者都不是空集 2)只要 非空,就至少有一个顶点( 列满秩),其 所有顶点被 的椭球 包含,易 知 (后者是超立方体体积) 3)只要 非空,就成立 其中 结论:用椭球算法可解决 的判定问题

  36. 用椭球算法解决 判定问题的迭代次数 已知 迭代次数 为满足下式的最小整数 由以上条件可得 每次迭代的计算量为 结论:椭球算法计算复杂性为 ,多项式算法!

  37. 说明 1)如果求得的解属于 但不属于 ,采用恰当 的取整步骤可以得到属于 的解 2)在确定 时我们简单地用了 有的书中提到用阿达马(Hadamard)不等式 能给出各分量的上界为 ,最终复杂性就 是教材中给出的 3)严格说明算法复杂性还要讨论中间数据大小和 开平方运算的复杂性等其他细节问题

  38. 线性规划的Karmarkar算法(1984)

  39. 基本想法:能否在可行集内部搜索前进到最优解?基本想法:能否在可行集内部搜索前进到最优解? 目标函数梯度方向 最优解 在任何内点沿目标函数增加方向搜索一定到达边界 在靠近可行集的中间位置获得较大改进的可能性大 设想:每次搜索到一个新点后,设法用某种变换将可 行集变形,使新点靠近新可行集的中间位置

  40. 可能实现上述设想的集合与变换 考虑如下图所示的二维空间的可行集及可行解 其中

  41. 是 维空间 个顶点的凸组合生成的 维单纯型

  42. 的中心点: 在 内向任意方向移动都不会出 的最大步长: ? 是中心点到 个顶点生成的 维单纯型的距离 的作用:对任何非零的 和 ,可保证 是 的内点(分量都大于零)!

  43. 上的尺度变换 设 是 的任意内点,即 定义尺度变换 其中 如果 ,则

  44. 尺度变换的性质 1)有逆变换 2) 3)

  45. Karmarkar标准型 其中 , 假设: 1) 行满秩 2) 3)最优目标值等于零 的中心点 是可行解

  46. Karmarkar算法的主要步骤 出发点:原问题的一个可行内点 (分量都大于零) 对原问题进行尺度变换,令 考虑变换后的近似问题 用逆变换得到新的内点

  47. 如何得到 ? 变换后的近似问题 已知:1) 是可行解 是 的内点, 2) 将目标函数下降方向 投影到等式约束的零空间得到可行下降方向 ,再用 2)的公式得到新内点

  48. 向等式约束 的零空间投影的公式 行满秩 行满秩 可逆方阵 记 ? 在 的零空间投影为 容易验证 ,所以

  49. 任取 ,令 , 是 的内点 再利用 可得 所以 是变换后问题的可行内点 又因为 所以 (近似目标有改进)

  50. Karmarkar算法一步迭代公式

More Related