迭代改进

写在前面的话

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

一、思想

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

二、线性规划问题

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

2.1 极值定理

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

2.2 单纯形法

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

局限性:

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

有四个步骤:

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

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

2.2.2 单纯形表

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

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

2.2.3 问答题

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

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

【算法复习】迭代改进相关推荐

  1. 算法复习第四章动态规划

    算法复习第四章动态规划 动态规划 TSP问题 0-1bag 动态规划 TSP问题 0-1bag 最长公共子序列不考:

  2. 算法复习第三章分治法

    算法复习第三章分治法 循环日程表 最近点对 快速排序: 循环日程表 最近点对

  3. 算法复习第六章第七章

    算法复习第六章第七章 第六章回溯法 TSP问题 0-1bag问题 图着色问题 八皇后问题 第七章分支限界法 0-1bag问题 TSP问题 第六章回溯法 TSP问题 0-1bag问题 图着色问题 八皇后 ...

  4. 算法复习第五章贪心法

    算法复习第五章贪心法 概述 TSP 最近邻点策略 最短连接策略 图着色问题 最小生成树(Prim算法.Kruskal) 0-1bag问题 活动安排问题 多机调度 概述 TSP 最近邻点策略 最短连接策 ...

  5. 大三寒假--算法复习

    算法 复习的一些知识点 c++ 的数组初始化 fill memset c++ 的排序 c++ 的vetor 快速幂 m&1(位运算符) dfs和bfs 逆序对(使用归并算法解决) Java 的 ...

  6. 算法复习——动态规划篇之最长公共子序列问题

    算法复习--动态规划篇之最长公共子序列问题 以下内容主要参考中国大学MOOC<算法设计与分析>,墙裂推荐希望入门算法的童鞋学习! 1. 问题背景 子序列:将给定序列中零个或多个元素(如字符 ...

  7. 数据结构与算法复习:一

    算法复习第一天:论序 一.先了解几个人 ① 号目标人物 ② 号目标人物 二.数据结构的兴起和发展 1.客观世界与计算机世界的关系 2.程序设计的实质是什么 3.数据结构是随着程序设计的发展而发展的 三 ...

  8. 考研DS备考|算法复习|编程or上机准备

    23考研算法复习 一.图论相关算法 1.拓扑排序 2.最小生成树 2.1 Prim算法朴素实现 2.2 最小生成树Kruskal实现 3.最短路 3.1朴素版Dijkstra 3.2Bellman-f ...

  9. 算法复习笔记(三)分治法

    算法复习笔记(三)分治法 1.引入语 分治法划分对策: 子问题与原问题相比:问题性质一致,问题规模不同 求解一般分为三个阶段: 1.划分:直到问题足够小可以直接求解为止 2.求解: 3.合并:将子问题 ...

  10. 算法复习——动态规划篇之钢条切割问题

    算法复习--动态规划篇之钢条切割问题 以下内容主要参考中国大学MOOC<算法设计与分析>,墙裂推荐希望入门算法的童鞋学习! 1. 问题背景 钢铁切割: ​ 现有一段长度为10的钢条,可以零 ...

最新文章

  1. https是如何保证数据传输的安全
  2. react七——react-redux
  3. Linux内核编译和运行
  4. java 执行jar_windows下如何用java指令运行jar包?
  5. 富人和穷人的对比图,时刻提醒自己!
  6. Apache Flink 为什么能够成为新一代大数据计算引擎?
  7. 【文章】人的好运从哪里来?
  8. remote API和regular API 的区别
  9. 设计软件哪里找?图片素材哪里找?
  10. android 8.0获取通知权限,Android8.0通知权限适配
  11. 容器技术Docker K8s 27 容器服务ACK基础与进阶-监控管理
  12. IADS Revision Note: Asymptotic Notations
  13. 第二人生的源码分析(三十九)关闭WinXP的错误报告功能
  14. HAU寒假训练第二周
  15. Python+Vue计算机毕业设计房屋租赁管理系统p8pvy(源码+程序+LW+部署)
  16. 无锁队列真的比有锁队列快吗【c++ linux后台开发】
  17. Redis-学习笔记整理+汇总
  18. 最好用的超大视频压缩软件
  19. C++ 的成功属于意料之外
  20. jsp运行linux脚本,jsp页面调用哪个Linux的shell 脚本步骤

热门文章

  1. Android开发之那些好用的数据结构与API(二)
  2. C++字母大小写转换方法
  3. ROS2知识(2):网络设施
  4. 浅析webpack的原理
  5. 千呼万唤,web人脸识别登录完整版来了,这样式我爱了
  6. 【翻译】MED 3D: TRANSFER LEARNING FOR 3D MEDICAL I MAGE ANALYSIS
  7. 前端js使浏览器窗口全屏与退出----浏览器全屏时 监测通过esc按键退出全屏 (退出全屏时有页面上的相关处理)
  8. IPO并不遥远,飞哥IPERi模型助你打开互联网创业创新成功密码
  9. 解决Virtualbox安装系统界面显示不全问题
  10. 物联网:可穿戴设备与世界杯球员