修正单纯形法
python修正的单纯形法
单纯形法(Simplex Algorithm)是一种用于求解线性规划问题的算法。
它适用于具有较多约束条件和变量的问题。
单纯形法通过迭代的方法逐步找到最优解。
在Python中实现修正的单纯形法需要遵循以下步骤:1. 导入所需的库2. 定义线性规划问题的参数(目标函数、约束条件、变量范围等)3. 初始化单纯形表4. 进行迭代计算,直到找到最优解或满足停止条件以下是一个简单的Python示例,实现了修正的单纯形法:```pythonimport numpy as npdef simplex(c, A, b, x0):num_vars = len(c)num_constraints = len(b)slack_vars = np.eye(num_constraints)tableau = np.hstack((A, slack_vars, b.reshape(-1,1)))c_with_slacks = np.hstack((c, np.zeros(num_constraints)))while True:pivot_col = np.argmax(np.abs(tableau[-1,:-1]))pivot_row = np.argmax(np.abs(tableau[:-1,pivot_col]))if np.abs(tableau[pivot_row, pivot_col]) < 1e-6:print("No solution or unbounded solution.")breakpivot_element = tableau[pivot_row, pivot_col]for i in range(num_constraints):if i == pivot_row:tableau[i,:] = tableau[i,:] / pivot_elementelse:tableau[i, :] = tableau[i, :] - (tableau[i, pivot_col] * tableau[pivot_row, :]) / pivot_elementfor i in range(num_vars + 1):if i == pivot_col:c_with_slacks[i] = c_with_slacks[i] / pivot_elementelse:c_with_slacks[i] = c_with_slacks[i] - (c_with_slacks[pivot_col] * tableau[i, :]) / pivot_elementx = np.hstack((x0, tableau[:-1,-1]))print("Iteration:", np.linalg.norm(c_with_slacks[:-1]) / np.linalg.norm(c))if np.linalg.norm(c_with_slacks[:-1]) < 1e-6:print("Optimal solution found.")breakreturn xc = np.array([5, 4, 3])A = np.array([[6, 4, 2], [1, 2, 1]])b = np.array([24, 6])x0 = np.zeros(len(c))x = simplex(c, A, b, x0)print("Optimal solution:", x)```注意:这个示例是一个简化版本,没有考虑所有可能的特殊情况。
线性规划——单纯形法文档
线性规划——单纯形法设计文档——《通用优化模块》编写人:徐天爽编写时间:2010年06月完成2010年06月整理目录第一部分功能概述 (1)第二部分理论知识 (2)2.1 线性规划标准型 (2)2.2单纯形法 (4)2.2.1修正单纯形法 (4)2.2.2Bland规则 (7)第三部分程序主要内容 (9)第四部分程序测试 (10)备注 (17)参考文献 (18)第一部分功能概述单纯形法是线性规划算法的一种。
由于若线性规划问题有最优解,则一定存在一个基本可行解是最优解,因此单纯形法是通过沿着可行集的边界,从一个顶点转移到改善当前目标函数值的相邻定点,以此来寻找最优解。
程序编写了加入Bland规则的修正单纯形法,只需用户给定设计变量个数、约束条件个数、约束条件系数,委托矩阵操作类MatrixOperation进行矩阵运算,即可实现线性规划问题的优化。
第二部分 理论知识线性规划问题具备以下性质:定理1 若线性规划问题的可行域X 非空,则X 是一个凸集。
定理2 线性规划问题的每一个基本可行解x 都对应于可行域X 的一个顶点。
定理3 若线性规划问题有最优解,则一定存在一个基本可行解是最优解。
定理4 若线性规划问题有最优解,则目标函数的最优值一定可以再可行域X 的某个顶点上达到。
2.1 线性规划标准型定义1 如果目标函数是设计变量的线性函数,且约束条件也是关于设计变量的线性等式或线性不等式,则相应的数学问题就称为一个线性规划问题。
单纯形法计算问题的最优值需要将原问题统一为标准形式。
定义线性规划问题的标准形式为:定义2 给定线性规划问题的标准型为()()11min ..1,2,,01,2,,nj jj n ij j i j j z c x s t a x b i m x j n ==⎧=⎪⎪⎪==⎨⎪⎪≥=⎪⎩∑∑ (1)其中()01,2,,i b i m ≥= 。
即对目标函数一律求最小值;设计变量均非负;约束条件除非负约束条件之外一律为等式约束;约束条件的右端项一律非负。
改进单纯形法讲解1
根据矩阵理论,第二步迭代表中的任何数都可由B2-1左乘原始 数据得到 1
如:p‘
2=B2
-1
p2=
1 0 -
1 0
-
1 0 4 1 4 1 4
p‘3=B2-1 p3=
p‘4=B2-1 p4=
CB 0 0 0 8 6 8 Cj XB x3 x4 σ x3 x2 σ x1 x2 σ b 12 20 7 5 4 4 6 x1 2 1 6 7/4 1/4 4 1 0 0 8 x2 1 4 8 0 1 0 0 1 0 0 x3 1 0 0 1 0 0 4/7 -1/7 -16/7 0 x4 0 1 0 -1/4 1/4 -2 -1/7 2/7 -10/7 θ 12/1=12 20/4=5 7/(7/4)=4 5/(1/4)=20
例1. 已知: 迭代前的基为: 1 0 0 0 B=( p1, p2, p3, p4 )= 0 1 0 0 0 0 0 1 迭代后的基为: 1 0 0 1 0 0 0 0
1 1
=I
B =(p1, p2, p5, p4) =
-2 0 3 0 5 0 4 1
第r列 -a’1k/a’rk -a’2k/a’rk . . . 1/a’rk . . . . . . -a’mk/a’rk
改进单纯形法的计算步骤可以归结为: (1)在下一步迭代的基变量确定后,求新单纯形表中基矩阵B的逆 θ 矩阵B-1,并求基可行解XB=B-1 b C XC b x6 x8 x0 x0 0 x 12 2 1 1 0 12/1=12 T -1 0 x 20 1 4 0 1 20/4=5 (2)计算和单纯形乘子Y = CB B 6 8 0 0 σ 0 x 7 7/4 0 1 -1/4 7/(7/4)=4 并计算非基变量的检验数 8 x 5 1/4 1 0 1/4 5/(1/4)=20 4 0 0 σ -2 σN=CN-CBB-1N= CN- YN 6 x 4 1 0 4/7 -1/7 8 x 4 0 1 2/7 -1/7 - 1 0 0 σ -16/7 -10/7 σj=Cj-CBB Pj= Cj- Y Pj , 如果有σj ≤0,达到最优解,计算结束。否则转入下一步 (3)根据max {l ∣ l > 0,l∈IN } = k,确定 xk 为换入变量(即为新 基的基变量) 计算P‘k=B-1Pk=(a1k’、a2k’、…… amk’ ) 若aik’ ≤0,线性规划问题有无界解,计算结束。否则转入下一步 (4)按最小比值原则来确定第r行基变量xr为换出变量
修正单纯形法
单纯形法的解题思路(一)
在单纯形法计算过程中,我们的目的是求出问题 的最优解,判断是否得到最优解的原则是检验数 的符号,当求最大值时,要求Zj-Cj≥0;当求最 小值时,要求Zj-Cj≤0。如果不满足条件,可根 据Zj-Cj的大小找出主元列(∣Zj-Cj∣最大者), 找出主元列Pj*后,再计算Qi,而后,根据Qi大小 找出主元行(Qi最小者),主元列所对应变量为 调入变量,主元行所对应的变量为调出变量,调 换基变量后,再重新计算检验数进行判断。
单纯形法的一般解题步骤
改进单纯形法。其基本步骤和单纯形法大致相同, 主要区别是在逐次迭代中不再以高斯消去法为基 础,而是由旧基阵的逆去直接计算新基阵的逆, 再由此确定检验数。这样做可以减少迭代中的累 积误差,提高计算精度,同时也减少了在计算机 上的存储量。 高斯消去法,又称高斯消元法,实际上就是我们 俗称的加减消元法。它是线性代数中的一个算法, 用于决定线性方程组的解,决定矩阵的秩,以及 决定可逆方矩阵的逆。当用于一个矩阵时,高斯 消去产生“行消去梯形形式”。
迭代2(4)
求检验数
Z j C j CB Pj C j CB B 1 Pj C j Pj C j
1 2 5 0 1 1 0 1 2 0 1 1 0 0 1
C B B 1
迭代2(5)
1 Z 1 C1 P1 C1 0 1 1 4 3 1 0 2
迭代1(5)
1 Z 1 C1 P1 C1 0 M 2 M 1 4 3 1 0 2 2 Z 2 C 2 P2 C 2 0 M 2 M 1 1 1 M 1 0 0
探讨单纯形法的改进
探讨单纯形法的改进单纯形法是一种运筹学中常用的数学方法,用于求解线性规划问题。
它的基本思想是利用几何形状的变化来逐步接近最优解。
虽然单纯形法在很多情况下都能够有效地求解线性规划问题,但是也存在一些局限性和不足之处,这就需要对单纯形法进行改进和优化。
单纯形法在处理大规模线性规划问题时效率较低。
在实际应用中,很多线性规划问题都是由成千上万个变量和约束组成的大规模问题,对于这种情况,传统的单纯形法往往需要消耗大量的时间和计算资源。
改进单纯形法的效率是十分必要的。
单纯形法在面对非线性规划问题时无法使用。
传统的单纯形法只适用于线性规划问题,对于非线性规划问题则无能为力。
而在实际问题中,不少线性规划问题实际上是非线性规划问题的近似,因此需要一种能够适用于非线性规划问题的求解方法。
单纯形法在处理解空间过大的问题时也存在困难。
一些线性规划问题的解空间非常大,导致单纯形法难以在有限的时间内找到最优解。
在这种情况下,单纯形法常常会陷入局部最优解而无法达到全局最优解。
为了克服单纯形法存在的上述问题,学者们对单纯形法进行了多方面的改进。
一方面,他们提出了一系列的改进型单纯形法,比如双重单纯法、内点法等。
这些改进型单纯形法通过改变基本解的选择方式和变量的搜索方向等,来提高单纯形法的运算效率和稳定性,从而适用于更广泛的线性规划问题。
研究者们也提出了一些新的数学方法,比如内点法、模糊规划等,来解决单纯形法无法处理的非线性规划问题。
内点法通过引入新的概念和算法,使得求解非线性规划问题变得可能。
而模糊规划则是一种能够处理带有模糊参数的规划问题的方法,它在一定程度上可以扩展单纯形法的适用范围。
随着计算机技术的不断发展,人们还提出了一些基于并行计算和分布式计算的单纯形法改进方法。
这些方法通过充分利用计算资源,将原本需要很长时间才能完成的计算任务分配给多核处理器或者多台计算机,从而大大缩短了求解时间,提高了单纯形法的效率。
单纯形法的改进是一个持续的课题,它不仅包括对传统单纯形法的改进,还包括对新型数学方法和计算技术的引入。
2.2 改进的单纯形法和对偶问题
ì 4 x + 3x ≤ 120 1 2 ï ï s.t. í 2 x1 + x2 ≤ 50 ï x1 ≤0, x2 ≤0 ï î
该模型称为原模型LP的对偶规划DLP。
8
2.2.2 对偶问题
这样两个线性规划问题就是一对对偶问题。
称其中一个为原问题(LP问题),另一个为 对偶问题(DLP问题)。
由于它们内在的联系,可以根据其中一个模 型,写出其对偶问题的模型。
2.2.2 对偶问题
2 对偶问题的一般数学模型 由例 2.4 可知,线性规划原问题和其对偶规划 问题之间有很多联系。 例如,原问题是求目标函数最大化,则对偶问 题即求目标函数最小化;原问题目标函数的系 数变成对偶问题的右边项,原问题的约束的右 边项变为对偶问题目标函数的系数,即对偶问 题的系数矩阵是原问题系数矩阵的转置。
min f = 440 y1 - 100 y2 + 200 y3 ì2 y1 - 6 y2 + 5 y3 ³ 3, ï ï3y1 + 4 y2 + 3y3 ³ 4, í ï6 y1 + y2 + y3 ³ 6, ï î y1, y2 ³ 0, y3
18
2.2.2 对偶问题
2 对偶问题的一般数学模型 原问题的模型如果表 示如下: 则相应的对偶问题的 一般模型表示如下:
16
对偶问题和原问题的转换
' '' y , y 3 3 y1 , y2 这里 和 一样都是不同的决策变量,为了表示这两个 y'3, y''3 决策变量都来源于原问题的第三个约束条件,记为 。 ' '' y 3 y 3 因为在该对偶问题中 和 的系数只相差一个符号,我们可 ' y3 以把上面的对偶问题化为: y '' 3
《改进单纯形法》课件
寻找更优解。
3
终止
判断终止条件,结束迭代,得到最优解 或无界解。
案例分析
生产调度问题
通过实际案例分析,我们将展示 改进单纯形法在生产调度问题中 的应用,解决效率和成本优化的 挑战。
供应链优化
我们将研究供应链优化问题,并 演示改进单纯形法如何帮助企业 实现最优的运输和仓储安排,提 高整体效益。
投资组合优化
单纯形法的原理
在这一节中,我们将深入了解单纯形法的数学原理,包括基本可行解、人工 变量、进入与离开的规则等。
改进单纯形法的引入
在这一节中,我们将介绍为什么需要对传统单纯形法进行改进,以及改进单 纯形法的出发点和目标。
算法流程
1
初始化
设置初始基本可行解,初始化单纯形表。
迭代
2
根据单纯形表的状态,进行迭代操作,
《改进单纯形法》PPT课 件
欢迎来到本次《改进单纯形法》PPT课件!在这个演示中,我将与大家分享单 纯形法及其改进算法,帮助大家更好地理解并应用于实际问题中。
导言
在这一节中,我们将介绍线性规划的基本概念,为了更好地理解单纯形法的 原理和改进算法的必要性。
什么是单纯形法
在这一节中,我们将详细介绍单纯形法作为线性规划中求解最优解的方法,探讨其优点形法在金融 领域中的应用,帮助投资者实现 最大化的收益。
总结和展望
在这一节中,我们将对单纯形法及其改进算法进行总结,并展望未来的发展 方向和应用领域。
-单纯形法计算中的几个问题
(1-37)
将(1-36)逐个代入(1-37)并整理得到
1 2
Ac
1 2
Ap
1 2
AH
0
1 4
Ac
3 4
Ap
1 4
AH
0
3 4
Bc
1 4
Bp
1 4
BH
0
1 2
Bc
1 2
Bc
1 2
BH
0
表1-15表明这些原材料供应数量的限额,加入到产品A、B、D的 原材料C总量每天不超过100kg,P的总量不超过100kg,H总量不 超过60kg。由此
§1-7.单纯形法计算中的几个问题
一、单纯形法计算中的几个问题 1.目标函数极小化时解的最优性判别
对于目标函数值极小化的线性规划问题,这时只需以 所有检验数作为判别表中解是否最优的标志。 2.退化
按最小比值来确定换出基的变量时,有时出现存在 两个以上相同的最小比值,从而使下一个表的基可行解 中出现一个或多个基变量等于零的退化解。退化解的出 现原因是模型中存在多余的约束,使多个基可行解对应 同一顶点。当存在退化解时,就有可能出现迭代计算的 循环,尽管可能性极其微小。为避免出现计算的循环, 1974年勃兰特(Bland)提出了一个简便有效的规则:
单价(元/kg) 50
35
D
不限
25
原材料名称
C P H
每天最多供应量(kg) 单价(元/kg)
100
65
100
25
60
35
解 如以 A表c 示产品A中C的成分,Ap 表示产品A中P的成分,依次
类推。有(1-36)
Ac
1 2
A, Ap
1 4
第一节单纯形法的矩阵描述及改进单纯形法介绍-精品文档
矩阵单纯形法计算的描述
当基变量为 X B 时,新的单纯形表
基变量 非基变量
C B
X Bb B cj zj
1
X B I 0
X X N s 1 BN B 1 1 C C B N C N B BB
当前基解
当前检验数
单 大 纯 规 形 对 模 法 偶 线 矩 问 性 题 阵 规 描 划 述
上页 下页 返回
修正单纯形法简介
原因:
单纯形法的目的是要求问题的最优解, 而在迭代过程中,单纯形表中的某些列与 求最优解关系不大。因此,对单纯形法进 行修正。
思路:
~ ~ , P b , P , , 每次迭代关键求出 B k k j i
1
需要换入的变量对应的列
单 大 纯 规 形 对 模 法 偶 线 矩 问 性 题 阵 规 描 划 述
特点:
1. 2.
具有一定的输入和输出 在将输入转换成输出的过程中,努力实现自身的决策 目标。
单 大 纯 规 形 对 模 法 偶 线 矩 问 性 题 阵 规 描 划 述
上页 下页 返回
重要概念
决策单元的相对有效性
评价的依据是决策单元的“输入”和“ 输出”数据,根据输入和输出数据来评价决 策单元的优劣。 决策单元的相对有效性(即决策单元的优劣 )被称为DEA有效,它用数学规划模型计 算比较决策单元之间的相对效率,为评价对 象作出评价。
第一节 单纯形法的矩阵描述 及改进单纯形法介绍
单纯形法的矩阵描述
继续
改进单纯形法介绍
返回
单 大 纯 规 形 对 模 法 偶 线 矩 问 性 题 阵 规 描 划 述
上页 下页 返回
单纯形法的矩阵描述
设线性规划问题
第3章单纯形法的运用与改进
-M x7
θi
4
-
-
j
j
3 单纯形法的运用与改进
大M 法的运用
2024/3/29
3-23
例3.2 将规划问题转化为(LP)的标准形式 。
max z= x1+|x2|+ x3 s. t. x1- x2 + x3≈2
2x1+3x2+x3≤3 x1≥0, 1≤x3≤3
Y 0=( 0, 1 , 1 , 12 , 0 , 0 , 0 )T 0=0 ' =0 Y '=( x1', x2',…, x5', x6', x7' )T
3.1.1 辅助问题及人工变量
问题(B)是问题(A)的辅助问 题,( B )中的单位矩阵称为人 工基,其中添加的变量叫做人 工变量 (artificial variables)。
3 单纯形法的运用与改进
2024/3/29
3-1
3.1 初始可行基与人工变量法
辅助问题及人工变量 两阶段法
大M 法
多余约束的剔除 极小化问题的直接求解
3.1.1 辅助问题及人工变量
(A)
max z=3 x1 - x2- x3
s.t. x1-2x2 + x3 +x4 =11
-4x1+x2+2 x3 -x5 =3
' =0
Y 0=(x10,x20,…,xn0,0,…,0)T 0=0
Y '=(x1',x2',…, xn',xn+1',…,xn+m' )T
辅助问题的性质
修正单纯形法例题详解
修正单纯形法例题详解今天咱们聊聊修正单纯形法,这个听起来有点高大上的东西,其实没那么复杂,咱们可以把它想象成一道数学小菜。
你要知道,数学就像做饭,有时候得加点调料,才能让菜更好吃。
单纯形法就是这样的一道大菜,而修正单纯形法则是它的调味剂。
让我们慢慢捋一捋,看看这个数学的“厨艺”到底是怎么一回事。
单纯形法的基本理念就是通过逐步改进,找到最优解。
想象一下你在超市买东西,目标是花最少的钱买到最多的商品。
这时候你可能会拿个购物清单,逐一检查,逐步调整,直到找到最合适的组合。
修正单纯形法正是这种逐步改进的过程,不过它在做这些事的时候,用的是数学的方式。
这种方法特别适合解决线性规划问题,哎,别被这名字吓到,实际上就是帮助我们在一定条件下优化资源的分配。
假设你是一位小老板,想要最大化你的利润。
你手里有一堆原材料,能做出不同的产品,顾客也特别挑剔。
这个时候你就得用修正单纯形法来帮你,设定目标函数,限制条件,一个个地捋清楚,然后一步步调整,直到找到最完美的方案。
就像你在市场上挑水果,想要挑到最甜的那个,得一个个尝,才知道哪个更好。
再说到修正这个词,它的意思是调整,优化。
生活中,我们都需要修正,比如你开车的时候发现偏离了方向,得及时调整过来。
修正单纯形法就像是给你指路的导航,告诉你该往哪个方向走,才能顺利到达目的地。
在这条修正的路上,我们要不断地评估现有的方案,看看是不是有更好的选择。
这个过程就像给你的决策加了个放大镜,仔细审视每一个可能性。
说到这里,咱们得用个例子来说明。
假设你要生产两种产品,A和B。
每种产品的利润不同,A的利润高,B的利润低。
你得考虑原材料、工时、市场需求等等因素。
通过修正单纯形法,你能计算出在这些条件下,生产多少A和B才能使总利润最大化。
这个时候,你就能把每个因素考虑进去,像个精打细算的家庭主妇,绝不能浪费每一分钱。
这个方法的好处在于它的灵活性。
我们可以根据实际情况,随时调整我们的方案。
就像你出门时,如果发现天气变了,突然下雨了,你肯定得赶紧找个地方躲躲,或者换条路走。
改进单纯形法
正检验数 换入变量
确定换出变量:
min
B21b B21P5
i i
B21P5
0
min
2 1/
2
,
8 2
,3 1/ 4
4
对应x 4
新的基:
B3 P1, P5, P2 ;
换入变量x5 的系数向量是
1 0 1/ 2 0 1/ 2
B21P5
4
1
2
0
2
主元素
0 0 1/ 4 1 1/ 4
单纯形法的矩阵描述
设线性规划问题可以用如下矩阵形式表示:
目标函数 max z=CX 约束条件 AX≤b 非负条件 X≥0
将该线性规划问题的约束条件加入松弛变量 后,得到标准型:
max z=CX+0Xs AX+IXs=b
X,X s≥0
其中,I 是m×m单位矩阵。
若以Xs为基变量,并标记成XB,可将系数矩阵(A,I) 分为 (B,N) 两块。B是基变量的系数矩阵,N是非基变量
8 4
16
4
12 2
目标函数的最优值为:
4
z*
CB B31b
2, 0,3
4
14
2
换入变量
确定换出变量:
min
B11b B11P1
i i
B11P1
0
min
2 1
, 16 4
,
3 0
2
对应x 1
由此得到新的基:
B2 P1, P4 , P2
主元素
1
1
1 0 0
P1
4
0
2
4
E2
4
1
0
修正单纯形法步骤
修正单纯形法步骤嘿,咱今儿就来唠唠修正单纯形法的那些步骤呀!你看啊,这修正单纯形法就像是一场奇妙的冒险之旅。
首先呢,得有个起点,那就是确定初始可行解。
这就好比你要去一个陌生的地方,得先找个落脚的地儿不是。
然后呢,就是计算各种数值啦,像检验数啥的。
这就像是在旅途中查看地图,看看哪儿是对的方向,哪儿可能有陷阱。
接下来呀,就是根据这些计算结果来判断啦!要是检验数都符合要求,那可就太棒啦,说明咱走对路啦!可要是有不符合的呢,就得调整啦,这就像在旅途中遇到岔路口,得选对路走才行。
调整的时候可不能马虎,得仔细琢磨,就像挑一件合适的衣服一样,得合身才行。
找到合适的调整方向和元素,这可是个技术活呢!然后呢,再更新各种数据,让一切都跟上新的步伐。
这就好像给旅行换上新的装备,让自己更有动力前进。
再接着计算、判断、调整,如此反复,就像在爬山一样,一步一步地往上爬。
你说这修正单纯形法是不是挺有意思的?它可不只是一堆枯燥的数字和公式,它里面藏着好多奥秘呢!在这个过程中,你得有耐心,不能着急。
就像做饭一样,得小火慢炖才能出美味。
要是太着急了,说不定就会出岔子。
而且呀,还得细心,一个小细节没注意到,可能就会影响整个结果。
这就像拼图,少了一块都不行。
你想想,要是咱能熟练掌握这修正单纯形法的步骤,那解决问题不就跟玩儿似的?就像有了一把万能钥匙,啥锁都能开。
总之呢,修正单纯形法的步骤就像是一场精彩的表演,每个环节都不可或缺,都得好好对待。
咱可不能小瞧了它,要用心去感受它的魅力,去挖掘它里面的宝藏呀!这样咱在数学的海洋里才能畅游无阻,找到属于自己的那片天地,不是吗?。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
将(t3)'加入修正单纯形表格中,并求出支点行r。 a3 b e1 e2 1 -1/4 e1 3/2 7/4 0 1/4 a1 3/2 13/4 3/2
page 13 21 November 2018
7/4
1
-1/4
Prof. Wang School of Economics & Management
Operations Research
第九讲
第五讲 修正单纯形法(1)
大约在1954年,Dantzig和他的同事就发现了更有效的单 纯形法。 我们知道,在单纯(扩展)表格中,共有3组元素,分别 与矢量组“a1,…,an”,“b”及“e1……em”相对应,如 果说 前面讲的习惯用的一般单纯形表格法可只采用左边两组 的话,那么,修正单纯形法在运算迭代中只应用右边两 组,下面就具体阐述该种方法。 仍假设: AX=b, X≥0, CTX=min (1) 且A、b、C已知,属非退化情形,计算过程,将始终 用到A,B,C这些原始数据,故需保存。每一个阶段仍 用单纯形表格迭代,只用右边两组,即m+1列,每个表 page 格与当前基础解集相对应( 1 j1,…,jm): Prof. Wang
Operations Research
第九讲
修正单纯形法(11)
将(t1)' 临时放入表格中,以便求出支点行, a1 1 4 b 5 13 e1 1 0 e2 0 1
e1 e2
5 18 1 1 min{5/1,13/4} = 13/4 r = 2。支点元素为t’21, 进行变换使(t1)’列中:t’21 =1,t’11 =0,z’1 - c’1 = 0,得:
z j yi ai j
i 1
m
(6)
如果zj > cj,则令j = s,并作为支点列。 如果zj ≤cj,则去试探其它非基础列j,假若所有非基础 列j的zj ≤cj,则已达到最优解,其最优解值为:
page 4 21 November 2018
Prof. Wang School of Economics & Management
Prof. Wang School of Economics & Management
Operations Research
第九讲
修正单纯形法(10)
检验非基础变量a1,a2,a3能否进基,可按任何次序检验。 先检验a1: 1 T 1 z '1 y ' a 1 1 5 4
T 2
z 2 c2 4 1 3 0, 故a 2可进入B, 即s 2 1 2 1 2 t12 3 6 2 又 Ua 2 有非负项 t 22 1 1 5 1 2 2 7/6 3 / 2 min , min 7 / 3,3 7 / 3 r 1, 1/2 1 / 2
page 16 21 November 2018
Prof. Wang School of Economics & Management
Operations Research
第九讲
修正单纯形法(17)
即支点行r = 1,a3离开,支点元素t12=1/2。 将a2加入表格并转换 a2 b e1 e2
1/2 1/2
page 2 21 November 2018
YTM=
C
T
(3)
Prof. Wang School of Economics & Management
Operations Research
第九讲
修正单纯形法(3)
表格的起步可根据两阶段法的第1阶段之初始基础解表格 开始,即: ti0=bi ,uij = ij ,z0=Σbi,yi=1 (4)
k 1
page 5 21 November 2018
m
(i 1, ,m )
(8)
Prof. Wang School of Economics & Management
Operations Research
第九讲
修正单纯形法(6)
如果所有tis≤0,则最优解不存在,最优目标无限,即,
AX ( ) a s (ti 0 tis )V i
a3 a1
1 y1 ui1 c i 2 / 3, 1 7 19 / 3 i 1 m 1 y2 ui 2 c i 1 / 6, 1 / 2 7 10 / 3 i 1
m
page 15 21 November 2018
第 1 阶段结束后,第 2 阶段开始的表格需加以修改,唯一 修改处是最末一行,这是由于目标函数发生了变化 z0和yi 计算公式为:
z0 ti 0 ci
i 1
m
y j ui j c i
i 1
m
(5)
其中 c i ——当前基础解的目标系数。
page 3 21 November 2018
费用
i 1
m
cos t C T X ( ) C T X (0) ( zs c s )当 , cos t
若存在tis>0,可求出支点行:
(9)
tr 0 / trs min ti 0 / tis:tis 0
(10)
page 6 21 November 2018
3 3 z '3 c'3 y ' a c'3 1 1 / 4 0 0 2 6
T 3
t '13 3 / 2 3 1 1 / 4 3 (t )' Ua t ' 0 1/4 6 3 / 2 23
z '1 c'1 5 0 , a1可以进基 t '11 1 0 1 1 1 (t )' U ' a 0 1 4 4 t '21
1
page 10 21 November 2018
Prof. Wang School of Economics & Management
Operations Research
第九讲
修正单纯形法(5)
xi x ji ti 0 (i 1, ,m)
其最小费用为z0和最优对偶解为yT。
(7)
否则,计算zj(按6式),找出zj > cj,并令j = s,然后处理 如下:
首先,计算单纯形表的支点列s:
tis uik aks
3
7/6 3/2
35/3
2/3 -1
-19/3
-1/6 1/2
10/3
将a2对应的t2列变为t12=1,t22=0,z2-c2=0 得出新表格为:
i tis / trs i r,i 1,, m 0 ( z s cs ) / trs
最后,用as取代旧表格Vr中表示的基矢量。
page 7 21 November 2018
Prof. Wang School of Economics & Management
Operations Research
0
-1/6 1/2 0
从表中看出,z '0 0 min si 0, 故阶段1结束,得出 初始基础可行解为x3=7/6,x1=3/2, x2=0。
page 14 21 November 2018
Prof. Wang School of Economics & Management
Operations Research
Operations Research
第九讲
修正单纯形法(14)
7 / 4 13 / 4 min , min 7 / 6,13 / 6 7 / 6, r 1 3/ 2 3/ 2
即e1离开基,a3进基,将表格变换得: a3 b e1 e2 a3 a1 1 0 0 7/6 3/2 0 2/3 -1
第九讲
修正单纯形法(8)
[b,x 0, C T X min 1 A 4 2 5 3 5 T , b , C 7, 1, 1 6 13
[解] 1)应用阶段1,求出初始基础可行解 构成新规划:A' X ' = b ' ,X '≥0, C'TX'=min
C T C1 , C 2 , C3 , C S1 , C S 2 0 0 0 1 1 X 'T x1 , x2 , x3 , s1 , s 2
令人工变量作为第1个基础可行解之基础变量,其对应的 表格为: b e1 e2 e1 e2 5 13 18 1 0 1 0 1 1
page 9 21 November 2018
21 November 2018
School of Economics & Management
Operations Research
第九讲
修正单纯形法(2)
t10
· · ·
u11
…
u1m
tm0
z0
um1 … umm y 1 … ym
(2)
其中:ti0——给出当前基础解 uij——给出当前基础阵之逆 z0——给出当前基础解费用 yi——给出当前基础阵之联立方程解
Prof. Wang School of Economics & Management
Operations Research
第九讲
修正单纯形法(4)
下面来阐述表格的迭代过程。在一般单纯形表格法中, 每次检验元素 zj -cj全部算出,然后寻找支点列,而在修 正单纯形表格中,不需一次计算全部检验元素,而是逐 个计算。设j属非基础集,则: