最优化方法

刘建军

目录

  • 1 第一单元 数学规划基础
    • 1.1 序言
    • 1.2 数学规划基础
  • 2 第二单元 线性规划
    • 2.1 线性规划简史
    • 2.2 线性规划模型
    • 2.3 线性规划图解法及软件求解
    • 2.4 线性规划基本定理
    • 2.5 线性规划的标准形
    • 2.6 标准形线性规划的解
    • 2.7 单纯形法原理
    • 2.8 单纯形法算法步骤及程序实现
    • 2.9 表格单纯形法
    • 2.10 人工变量求解线性规划问题
  • 3 第三单元 对偶规划及灵敏度分析
    • 3.1 对偶规划
    • 3.2 对偶单纯形法
    • 3.3 灵敏度分析
    • 3.4 线性规划-内点法
    • 3.5 整数线性规划
  • 4 第四单元 无约束非线性优化
    • 4.1 非线性优化概论
    • 4.2 一维搜索算法
    • 4.3 梯度类算法
      • 4.3.1 最速下降法
      • 4.3.2 牛顿法与修正牛顿法
      • 4.3.3 拟牛顿法(DFP+BFGS)
      • 4.3.4 共轭梯度法(FR)
      • 4.3.5 最小二乘法
      • 4.3.6 梯度类算法比较实验
      • 4.3.7 梯度算法历史注记
    • 4.4 直接类算法
      • 4.4.1 模式搜索法(Hooke Jeeves)
      • 4.4.2 单纯形加速法
      • 4.4.3 无约束优化算法比较实验
  • 5 第五单元 约束非线性优化
    • 5.1 KKT点及程序实现
    • 5.2 罚函数法(SUMT)
    • 5.3 可行方向法
    • 5.4 二次规划(QP)
    • 5.5 约束优化软件求解
  • 6 第六单元 多目标规划
    • 6.1 多目标规划原理
    • 6.2 多目标的四个求解技巧
    • 6.3 目标规划方法
    • 6.4 多目标规划应用实例
  • 7 第七单元 动态规划
    • 7.1 动态规划基本概念和原理
    • 7.2 动态规划应用
  • 8 第八单元  现代优化算法
    • 8.1 现代优化算法概论
    • 8.2 禁忌搜索算法(Taboo Search, TS)
      • 8.2.1 禁忌搜索算法原理
      • 8.2.2 禁忌搜索算法步骤与参数设置
      • 8.2.3 禁忌搜索算法的应用
    • 8.3 模拟退火算法(Simulated Annealing, SA)
      • 8.3.1 模拟退火算法物理背景
      • 8.3.2 模拟退火算法步骤与数学模型
      • 8.3.3 模拟退火算法应用案例
    • 8.4 遗传算法(Genetic Algrithm, GA)
      • 8.4.1 遗传算法生物学背景
      • 8.4.2 遗传算法流程用简单实例
      • 8.4.3 改进遗传算法改进与应用
    • 8.5 粒子群算法(Partical Swarm Optimization, PSO)
      • 8.5.1 粒子群算法原理及实现
      • 8.5.2 粒子群算法应用实例
人工变量求解线性规划问题
  • 1 知识内容
  • 2 知识点检测
  • 3 Python实现两阶段法

引入人工变量——大M法和两阶段法

我们已经注意到,只有当存在初始的标准基时,才能使单纯形法来求解线性规划问题。如果欲求解的线性规划不存在标准基,就应当想办法变换出一个标准基。不过要注意的是,在变换的过程中,

    第一,应保持约束方程组的解集不变,即原问题的可行域不变,也就是说应当进行同解变换。

    第二,在获得标准基的同时,应使约束方程组右边的资源向量保持非负,这样才能使用单纯形法求解。

   一般来说,第一点要求是容易办到的,例如利用线性代数中关于行的初等变换就可以办到。然而,要同时做到这两点要求,常规的方法往往顾此失彼,很难满足要求。因此,应研究有效的办法来解决这个问题。下面介绍两种常见的方法。

一、大M

M法的基本思想是,如果将原问题标准化后的约束方程中仍无标准基,则可以在约束方程中添加人工变量,使之构成含有标准基的新问题,然后就可以用单纯形法求解新问题。显然,在新问题的某个解中,如果人工变量对应的分量是正数,则该解必不是原问题的可行解。因此,欲从新问题的解得到原问题的解,必须使新问题的可行解中的人工变量为零,而要达到这一点只须使人工变量全部成为非基变量即可。为达此目的,对极大化问题,可在原目标函数中加入绝对值充分大的负系数人工变量。这样,当对新问题用单纯形法求解时,在新目标函数的值逐步增大的迭代过程中,人工变量就会逐步退出基。

设原问题为

                                   1-17

引入人工变量

可得含有标准基的大M法新问题:

                1-18

其中,M是充分大的正数,Im阶单位矩阵。

下面讨论新旧问题之间的关系。

首先要指出,新问题必有可行解,例如

就是新问题的一个可行解。于是,对新问题求解,其结果有两种可能:

1.新问题无最优解

此时可断言原问题无最优解。这是因为,此种条件下,意味着新问题存在可行点列(XkYk),使得

                  

注意到M为充分大正数,故上式表明必有

Xk是原问题的可行点列,且其对应的目标函数值有

表明原问题没有最优解。

2.新问题有最优解

设为则有:

1)若是原问题的一个可行解。现任取原问题的一个可行解X,显然(X0)是新问题的可行解,且其对应的目标函数值为于是有

表明,是原问题的最优解。

2)若存在某个,则原问题没有可行解。因为此时新问题的最优值为

M为充分大的正数,上式显然是不可能的。所以,原问题没有可行解。

1.8  用大M法求解线性规划

  原问题标准化为

引入两个人工变量,原问题化为大M法问题:

此时,已拥有一个标准基,可用单纯形法求解,其计算过程及结果见表1-12

在表1-12中,人工变量全部出基,故原问题的最优解及最优值为

1-12

cj

3

-1

-1

0

0

-M

-M


1

x1

x2

x3

x4

x5

y2

y3


1

-2

1

1

0

0

0

11

-4

1

2

0

-1

1

0

3

-2

0

1

0

0

0

1

1

-6M+3

M-1

3M-1

0

-M

0

0

4M

迭代表

2

3

-2

0

1

0

0

-1

10

0

1

0

0

-1

1

-2

1

-2

0

1

0

0

0

1

0

1

M-1

0

0

-M

0

1-3M

M+1

迭代表

3

3

0

0

1

-2

2

-5

12

0

1

0

0

-1

1

-2

1

-2

0

1

0

0

0

1

1

1

0

0

0

-1

1-M

-M-1

2

最优表

1

0

0

1/3

-2/3

2/3

-5/3

4

0

1

0

0

-1

1

-2

1

0

0

1

2/3

-4/3

4/3

-7/3

9

0

0

0

-1/3

-1/3

1/3-M

2/3-M

-2


二、两阶段单纯形法

两阶段单纯形法也是一种人工变量法,它的算法可分为两个阶段:

第一阶段,引入人工变量,构造一个具有标准基的新线性规划,求解这个新线性规划,其结果将有两种可能:或者将原问题的约束方程组化成具有标准基的形式,或者提供信息,表明原问题有可行解。

第二阶段,利用第一阶段所得的标准基,对原问题求解。

1.人工变量的引入

设原问题为

引入人工变量,构造新规划

其中,

易知,新规划(LP1,具有以下3个特点:

1)(LP1存在可行解,例如取Y=bX=0,就得到一个可行解。

2)(LP1必有最优解。这是因为,由于(LP1有可行解,且yi非负,故(LP1的最大值上有界,不会超过零。

3)(LP1存在一个标准基。

基于以上几点,可以用单纯形法求解(LP1,设其最优单纯形法为表1-13

1-13中,的系数。

显然,所有的检验数是最优值,故必有

,则可断言原问题(LP1没有可行解。如果(LP1有行解,则有

那么,则是(LP1的一个可行解,且对应的目标值为

这与是最优值相矛盾。

1-13

b





1.9  求解

  将原问题标准化,再引入人工变量y,构造新规划:

其求解过程及结果见表1-14

从表1-14可以看出,,表明原问题无可行解。事实上,容易验证,当均非负时,原问题的两个不等式约束是互不相容的。

注意目标函数的表达式,可知必有全为零,可分两种情形讨论:

1)人工变量全部是非基变量。不失一般性,可设是基变量,则表1-13等价于如下方程组:

 

对线性规划的可行域而言,单纯形法实质上是进行同解变换。因而上述方程组与原问题(LP1的约束方程组的解集相同,且由于已有一个标准基,故可用它取代原问题(LP1的约束方程组,再利用第四节中的单纯形法求解。

2)某个人工变量ys还是基变量。这时,显然有

1-13中第s行等价于如下方程:

                  1-19

对(1-19)式可分两种情形进行讨论:

1)(1-19)式中所有的均为零。注意到所有的都为零。(1-19)式实际上是恒等式

0=0

说明表1-13的第s行是多余的、无意义的,应从表1-13中删除掉,约束方程减为m-1个,最优表中出现一个m-1阶的单位矩阵,正好可作为初始标准基。

2)(1-19)式中的不全为零,例如某个非零。此式,可用为主元,进行换基迭代,变量入基,而人工变量出基。由于有

此时将产生一个退化的基可行解。

1-14

cj

-1

0

0

0

0


y

x1

x2

x3

x4


0

1

1

1

0

1

1

2

3

0

-1

6

0

2

3

0

-1

6


0

1

1

1

0

1

1

-1

0

-3

-1

3

0

-1

0

-3

-1

3


2.两阶段单纯形法的步骤

1)第一阶段:首先将原问题标准化,得到(LP1形式,再引入必要的人工变量,构造新的线性规划(LP1,并用单纯形法解新规划(LP1,得到形如表(1-13)的最优单纯形表。若该表中的,则表明原问题没有可行解,应停止计算;若,表明已将原问题的约束方程组变换成了含有标准基的同解方程组,转(2)。

2)第二阶段:用第一阶段所得的含标准基的约束方程组取代原问题的约束方程组,再用单纯形法求解。

1.10  试用两阶段单纯形法求解

  第一阶段:由于原问题只有两个约束,且系数矩阵又有一个单位向量,故只需再引入一个人工变量y就可以获得单位矩阵,构造新规划如下:

 

本阶段的计算过程及结果见表1-15,在表1-15中,,人工变量全部为非基变量,原问题已得到标准基

1-15

cj

-1

0

0

0


y

x1

x2

x3

b

1

2

1

0

4

0

1.5

1

1

7

0

2

1

0

4

最优表

0.5

1

0.5

0

2

-0.75

0

0.25

1

4

-1

0

0

0

0

 

第二阶段:去掉第一阶段结果中的人工变量y,剩余部分用以替换原问题的约束方程组,则可得原问题的等价形式为:

 

用单纯形法求解,其过程及结果见表1-16。从该表中,可以知道,原问题的最优解为

1-16

cj

-1

1

-3


x1

x2

x3

b

1

0.5

0

2

0

0.25

1

4

0

2.25

0

14

最优表

2

1

0

4

-0.5

0

1

3

-4.5

0

0

5

 

1.11  求解线性规划

注意前两个约束实际是同一约束,故其中之一是多余约束,试观察多余约束是如何在迭代计算过程中被除去的。                         

解: 引入人工变量,构造新规划为

 

其计算过程及结果见表1-17。在表1-17中,,且行中,的系数以及全为零,故原问题的约束方程组等价于:

 

与例1.10第一阶段的最后结果完全相同。转入第二阶段后,其过程与结果也应与表1-16相同。

1-17

cj

-1

-1

0

0

0


y1

y1

x1

x2

x3

b

1

0

4

2

0

8

0

1

2

1

0

4

0

0

1.5

1

1

7

0

0

6

3

0

12


0.25

0

1

0.5

0

2

-0.5

1

0

0

0

0

-0.375

0

0

0.25

1

4

-1.5

0

0

0

0

0



李 钦,关于线性规划问题退化解的教学思考,2022