迭代改进
迭代改进的策略是:从某些可行解出发,通过重复应用一些简单的步骤来不断改进它。
这些步骤一般会通过一些小的、局部的改变来生成一个可行解,这个解使得目标函数值更为优化,
如果目标函数值无法再得到优化,就把最后的可行解作为最优解返回。
几个障碍:
- 需要一个初始的可行解
- 对可行解应该做什么样的改变并不总是一目了然
- 如何避免陷入局部极值(最根本的困难)
单纯形法
单纯形法是线性规划的经典算法。
线性规划问题的可行区域(几何解释)总是具有有限数量的顶点,
而且,线性规划问题的最优解往往可以在可行区域中的一个极点找到。
极点定理: 可行区域非空的任意线性规划问题有最优解,而且,最优解总是能够在其可行区域的一个极点上找到。
根据这个定理,在解一个线性规划问题时,若是可行区域有界,那么我们只需考虑有限数量的点,而可以忽略其他所有点。但是有两个问题:
- 需要一种方法来生成可行区域的所有极点
- 可行区域的极点数量随着问题规模的增长呈指数增长
单纯形法可以在一般情况下,只需要检测可行区域极点中的一小部分就能找到最优点。
做法:
- 先在可行区域中找到一个极点,检查一下在邻接极点处是否可以让目标函数取值更佳
- 如果不是,当前顶点就是最优点
- 如果是,转而处理那个能让目标函数更佳的邻接顶点