迭代改进
写在前面的话
本文是本学渣因为考试需要写的一篇总结,只总结了需要考察的考点,所以可能有的内容引申的不多,请见谅。
一、思想
- 从某个可行解出发,重复一些简单的步骤迭代改进它,逐渐将其优化为最优解
- 表现为通过局部的小改变,生成另一个可行解,使问题的目标函数更加优化。当最终目标函数达到无法再优化,则得到最优解
- 会遇到一些障碍:
获得初始可行解有困难,例如用贪婪比较容易,但是也可能会和获得最优解一样困难
判断是局部最优解还是全局最优解困难。
二、线性规划问题
在一系列线性约束下,求一个包含若干变量的线性方程的最优解

2.1 极值定理
可行区域非空的任意线性规划问题有最优解,且最优解总能够在其可行区域的一个极点上找到。
可以利用极值定理生成所有极点,并且计算对应的解,保留最优解。
问题在于:无法生成所有极点并遍历(数量爆炸)
2.2 单纯形法
算法思想:先在可行区域中找到一个极点,然后检查在邻接极点处是否能够优化,如果能,则继续处理该邻接极点;如果不能,则当前极点即为最优解。
局限性:
- 只能解决最大化问题
- 所有变量都非负
- 除 非负约束 外,其余约束都必须为等式。
2.2.1 化为标准型
有四个步骤:
- 最小化转为最大化——通过改变目标函数系数正负号
- 不等问题转为相等问题——通过松弛变量(松弛变量定义为>=0的新变量)进行转换
- 决策变量非负——将负变量转换为非负变量,将没有约束的变量定义为两个带非负约束的新变量的差
- 右端项非负


这种转换的好处是,可以通过简单的方法确定可行域的极点
2.2.2 单纯形表

最优: 目标行除最后一列(等式右边)别的系数都为非负。
如何确定入基变量:
(各教材不一样,本文以老师ppt为准)从非基本变量中选择,选择目标行系数最小的变量作为入基变量。
如何确定出基变量:
各行变量值除以入基变量所在列对应的系数,取最小。需要注意的是,需要忽略掉系数 ≤ 0的那些行。
2.2.3 问答题
是否能够使用单纯形法解决背包问题?如果能,请给出解法过程,并请指出这是不是一个解决该问题的好算法?如果不能,请说明原因。
解答:可以通过单纯形法解决背包问题的连续版本,因为它是一般线性规划问题的一个特例。然而,它不是解决这个问题的好方法,因为它可以通过基于贪婪法的更简单的算法更有效地解决。由于对问题变量施加的完整性(0-1)约束,单纯形法无法解决0-1版本的背包问题。
本文介绍了迭代优化的思想,即通过局部改进寻找最优解,并详细阐述了线性规划问题及其求解方法——极值定理和单纯形法。单纯形法包括化为标准型、构建单纯形表等步骤,但不适用于0-1背包问题等含有整数约束的情况。文章指出,虽然单纯形法能解决某些线性规划问题,但在面对特定类型问题时,如背包问题,贪婪算法可能是更优的选择。
426

被折叠的 条评论
为什么被折叠?



