• 线性规划与单纯形算法描述


    在满足(2)、(3)式约束条件时求解(1)式最大值的问题称为线性规划问题

    线性规划的形式多样,但都可以转化成上述的形式,上面的形式被称为线性规划的标准型

    标准型的矩阵形式:

    同样在满足除(1)式之外所有其他式约束条件时求解(1)式最大值(后面相似的式子也是这样理解,不再作说明)

    下面引用自算法导论:

    考虑下面具有两个变量的线性规划:

    几何化如下:

    这个灰色的凸形区域称为可行区域,希望最大化的函数称为目标函数 。 概念上,我们可在可行区域内每个点上对目标函数 求值;我们将目标函数在一个特定点上的值称为目标值。我们可以找出一个有最大目标值的点作为最优解。

      在二维中,我们可以通过一个图形化的步骤求最优解。对任意给定的在z, 上点的集合是斜率为-1的一条直线。z作变量,让  在坐标系上的可行区域移动来取得z的最大值,如下图:

    得到  。

      虽然不容易用图形表示超过两个变量的线性规划,但是同样的直觉仍然成立。如同在二维空间一样,因为可行区域是凸的(为什么?),取得最优目标值的点集合必然包含可行区域的一个顶点。类似地,如果有n个变量,每个约束定义了n维空间中的一个半空间。我们称这些半空间的交集形成的可行区域为单纯形。目标函数现在是一个超平面,并且因为它的凸性,一个最优解仍在单纯性的一个顶点上取得。

    可行区域是凸的证明:

    设可行区域为S,在S上任取两个点  ,有 

    又由凸集的定义,可知S为凸集。

    PS:一个凸区域的直观解释是,该区域的任意两点之间连一条线段,线段上的点也全在该区域中。

      单纯形算法以一个线性规划作为输入,输出一个最优解。它从单纯形的某个顶点开始,执行顺序迭代。在每次迭代中,它沿着单纯形的一条边从当前顶点移动到一个目标值不小于(通常是大于)当前顶点的相邻顶点。当达到一个局部的最大值,即存在一个顶点,所有相邻顶点的目标值都小于该顶点的目标值,单纯形算法终止。因为可行区域是凸的,且目标函数是线性的,所以该局部最优实际上是全局最优的。

      虽然我们用几何方法很直观地描述了单纯形算法,但实际上是先将给定的线性规划写成松弛形式,即线性等式的集合。然后从代数角度进行运算。

     

  • 相关阅读:
    dropdownlist绑定和选中
    uploadify ,前端页面获取值,json,ajax
    sql 列设置默认值,语法查询知识点积累
    两个string数组对应比较
    镜像下载-收藏下
    我用shell写了个mud游戏:武林群侠传
    【shell】十分钟轻松入门;如果没入门,您吐口口水再走吧!
    【命令详解001】top
    那些未曾忘怀的
    mysql慢查询分析工具比较与实战
  • 原文地址:https://www.cnblogs.com/shjwudp/p/4386837.html
Copyright © 2020-2023  润新知