(自由模板)最优化方法课程论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

四川理工学院

《最优化方法》课程论文

题目:线性规划的单纯形算法

姓名:

专业:统计学

班级:2011级1班

学号:

完成日期:2014年6月27日

四川理工学院理学院

二O一四年六月

摘要

线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法。是研究线性约束条件下线性目标函数的极值问题的数学理论和方法。为了得到线性目标函数的极值,我们有多重方法。本文采用单纯性算法求解线性规划问题,并通过Matlab软件编写程序进行求解。

关键词:线性规划单纯性算法 Matlab编程

目录

一、单纯性方法简介 (1)

1.1 单纯性方法提出 (1)

1.2单纯性方法的基本思想和步骤 (1)

1.2.1基本思想 (1)

1.2.2计算步骤 (1)

二、问题的提出与分析 (1)

2.1问题提出 (1)

2.2问题分析 (2)

三、程序设计 (2)

3.1算法设计 (2)

3.2算法框图 (3)

3.3程序编制 (4)

四、结果分析 (6)

4.1设计结果 (6)

4.2 进一步讨论和验证 (8)

五、结束语 (8)

5.1设计的优缺点 (8)

5.2 收获与总结 (9)

参考文献 (10)

附录 ......................................................................................................... 错误!未定义书签。

一、单纯性方法简介

1.1 单纯性方法提出

单纯形法,求解线性规划问题的通用方法。单纯形是美国数学家G.B.丹齐克于1947年首先提出来的,这是20世纪数学界最重大的成果之一。由于这一方法的有效性,几十年来一直在几乎所有的领域得到广泛应用。

它的理论根据是:线性规划问题的可行域是 n 维向量空间Rn 中的多面凸集,其最优值如果存在必在该凸集的某顶点处达到。顶点所对应的可行解称为基本可行解。

1.2单纯性方法的基本思想和步骤 1.

2.1基本思想

单纯形法的基本思想是:先找出一个基本可行解,对它进行鉴别,看是否是最优解;若不是,则按照一定法则转换到另一改进的基本可行解,再鉴别;若仍不是,则再转换,按此重复进行。因基本可行解的个数有限,故经有限次转换必能得出问题的最优解。如果问题无最优解也可用此法判别。 1.2.2计算步骤

1、对于一般的的线性规划,将其化为标准型;

2、求出初始基本可行解;

3、先检验其最优性;

4、如果不是最优的,则从取负值的非基变量中选取一个最负确定为入基变量;

5、选好入基变量后,再在基变量中选取一个出基变量;

6、选好入基变量和出基变量后,进行高斯消去,得到新的可行解;

7、重复以上过程,直至找到最优解。 、

二、问题的提出与分析

2.1问题提出

本文运用单纯性算法求解下列问题:

Max 321453x x x z ++= s.t 12003221≤+x x

8004232≤+x x

2000523321≤++x x x

0,,321≥x x x

并编写MATLAB 程序求解。

2.2问题分析

在用单纯性算法解决现行规划问题时,我们通常考察标准形现行规划问题,其标准形如下:

x c x f T

=)(min

0,..≥=x b Ax t s

现在将本文所讨论的线性规划化为标准线性规划的形式: Min 321453x x x z y ---=-= S.t. 120032421=++x x x 80042532=++x x x 20005236321=+++x x x x 其中[]4,5,3---=c A=[2 3 0 1 0 0 0 2 4 0 1 0 3 2 5 0 0 1] []2000,800,1200=b []6,5,4=B x ,[]3,2,1=N x

三、程序设计

3.1算法设计

1、解b Bx B

=,求得b B x B 1

-=,令0=N x ,计算目标函数值

B B x c f =,以

)m ,2,1(⋯⋯=i b i 记b B 1-的第i 个分量; 2、计算单纯性乘子w ,B C wB

=,得到1-=B C w B ,对于非基变量,计算判别系数

i i B i i i c p B c c z -=-=-1σ,令{}i i R

i k c z -=∈max σ,R 为非基变量集合,若判别系数0≤k σ,则得到一个最基本可行解,运算结束;否则,转到下一步 3、解k k

p Ba =,得到k k p B a 1-=;若0≤k a ,即k a 的每一个分量均非正数,则停止计算,

问题不存在有限最优解,否则,进行步骤4;

4、确定下标r ,使⎭

⎬⎫⎩⎨⎧>=0min rk rk i rk r

a a

b a b ,r

B x 为出基变量,k x 为入基变量,用k p 替换r

B p ,得到新的基矩阵B ,返回步骤1。

3.2算法框图

3.3程序编制

A=input('A=');

b=input('b=');

c=input('c=');

format rat

[m,n]=size(A);

E=1:m;E=E';

F=n-m+1:n;F=F';

D=[E,F];

X=zeros(1,n);

if(n<m)

fprintf('不符合要求需引入松弛变量') flag=0;

else

flag=1;

B=A(:,n-m+1:n);

cB=c(n-m+1:n);

while flag

w=cB/B;

panbieshu=w*A-c

[z,k]=max(panbieshu);

fprintf('b''./(B\\A(:,%d))为',k); b'./(B\A(:,k))

if(z<0.000000001)

flag=0;

相关文档
最新文档