【算法复习】迭代改进

本文介绍了迭代优化的思想,即通过局部改进寻找最优解,并详细阐述了线性规划问题及其求解方法——极值定理和单纯形法。单纯形法包括化为标准型、构建单纯形表等步骤,但不适用于0-1背包问题等含有整数约束的情况。文章指出,虽然单纯形法能解决某些线性规划问题,但在面对特定类型问题时,如背包问题,贪婪算法可能是更优的选择。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

迭代改进

写在前面的话

本文是本学渣因为考试需要写的一篇总结,只总结了需要考察的考点,所以可能有的内容引申的不多,请见谅。

一、思想

  1. 从某个可行解出发,重复一些简单的步骤迭代改进它,逐渐将其优化为最优解
  2. 表现为通过局部的小改变,生成另一个可行解,使问题的目标函数更加优化。当最终目标函数达到无法再优化,则得到最优解
  3. 会遇到一些障碍:
    获得初始可行解有困难,例如用贪婪比较容易,但是也可能会和获得最优解一样困难
    判断是局部最优解还是全局最优解困难。

二、线性规划问题

在一系列线性约束下,求一个包含若干变量的线性方程的最优解

image-20210415150948957

2.1 极值定理

可行区域非空的任意线性规划问题有最优解,且最优解总能够在其可行区域的一个极点上找到。
可以利用极值定理生成所有极点,并且计算对应的解,保留最优解。
问题在于:无法生成所有极点并遍历(数量爆炸)

2.2 单纯形法

算法思想:先在可行区域中找到一个极点,然后检查在邻接极点处是否能够优化,如果能,则继续处理该邻接极点;如果不能,则当前极点即为最优解。

局限性:

  • 只能解决最大化问题
  • 所有变量都非负
  • 除 非负约束 外,其余约束都必须为等式。
2.2.1 化为标准型

有四个步骤:

  1. 最小化转为最大化——通过改变目标函数系数正负号
  2. 不等问题转为相等问题——通过松弛变量(松弛变量定义为>=0的新变量)进行转换
  3. 决策变量非负——将负变量转换为非负变量,将没有约束的变量定义为两个带非负约束的新变量的差
  4. 右端项非负

image-20210415152421034

image-20210415152535467

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

2.2.2 单纯形表

视频讲解: 十分钟带你学单纯形法

image-20210415153602372

最优: 目标行除最后一列(等式右边)别的系数都为非负。
如何确定入基变量:
(各教材不一样,本文以老师ppt为准)从非基本变量中选择,选择目标行系数最小的变量作为入基变量。
如何确定出基变量:
各行变量值除以入基变量所在列对应的系数,取最小。需要注意的是,需要忽略掉系数 ≤ 0的那些行。

2.2.3 问答题

是否能够使用单纯形法解决背包问题?如果能,请给出解法过程,并请指出这是不是一个解决该问题的好算法?如果不能,请说明原因。

解答:可以通过单纯形法解决背包问题的连续版本,因为它是一般线性规划问题的一个特例。然而,它不是解决这个问题的好方法,因为它可以通过基于贪婪法的更简单的算法更有效地解决。由于对问题变量施加的完整性(0-1)约束,单纯形法无法解决0-1版本的背包问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值