没有合适的资源?快使用搜索试试~ 我知道了~
数学建模-数模讲义之线性规划模型.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 36 浏览量
2022-05-02
17:19:26
上传
评论
收藏 408KB DOC 举报
温馨提示
试读
25页
数学建模-数模讲义之线性规划模型
资源推荐
资源详情
资源评论
数模讲义之线性规划模型
目 标 函 数 与 约 束 条 件 都 是 线 性 函 数 的 优 化 问 题 叫 做 线 性 规 划 ( Linear
Programming)。例如,下面就是一个线性规划问题:
其中“s. t.”表示“subject to” ,意思是“受约束于” 。
线性规划问题可以用 LINDO 软件包求解(见后面第 6 章)。本章介绍如何用
Mathematica 软件包求解。
§1 线性规划问题的求解
线性规划问题在 Mathematica 软件包求解有两种方法:
(I)直接输入表达式求解,命令格式如下:
目标函数求最小时,使用下列命令
ConstrainedMin[目标函数,{ 限制条件 },{ 变量表 } ]
目标函数求最大时,使用下列命令
ConstrainedMax[目标函数,{ 限制条件 },{ 变量表 } ]
注意:在输入限制条件时,(1)等号要写两次;(2)所有变量都要转化为非负的
形式,Mathematica 软件系统自动在第一象限求解,所以 x11 ≥ 0 之类的约束条件
可以不输入。
例如,求解下列问题
第一步,通过变量替换,将所有变量化为非负的形式。
令 x1 = y11-y12,x2 = y21 – y22,x3 = y31 –y32,x4 = y41 – y42,x5 = y51 – y52,
其中所有变量 yij≥0,代入原问题。
第二步,在 Mathematica 软件包中编写程序如下:
ConstrainedMin[ 7( y21 – y22 ) – 5(y31 – y32) – 53(y41 – y42) – 6(y51 –
y52),
{ -( y11 - y12 ) + 6( y21 – y22 ) – 4(y41 – y42)– 3(y51 – y52) ≥ 6,
y31 –y32 + 2(y41 – y42)– 5(y51 – y52) ≤ 10,
4(y11 - y12) – 5(y31 –y32) + 2 ( y61 – y62 ) == 7,
y11 - y12 ≥ 2,
y11 - y12 ≤ 10,
y21 – y22 ≥ 7,
y31 –y32 ≤ 5 },
{ y11, y12, y21, y22, y31, y32, y41, y42, y51, y52, y61, y62 } ]
程序运行之后,得到结果
8
- ¥,
8
y11 ®Indeterminate, y12 ® Indeterminate, y21 ® Indeterminate, y22 ® Indeterminate,
y31 ® Indeterminate, y32 ® Indeterminate, y41 ® Indeterminate, y42 ®Indeterminate,
y51 ® Indeterminate, y52 ® Indeterminate, y61 ® Indeterminate, y62 ®Indeterminate
<<
说明此题无最优解。
(II)将线性规划问题转化为矩阵形式求解,命令格式如下:
Mathematica 系统提供的求解矩阵形式的线性规划问题的命令是:
LinearProgramming[ c, A, b ]
它要求必须首先将线性规划问题转化为以下“大于等于求最小”的形式:
例如,有线性规划问题:
max f = 3x1 + 2x2
s. t.
2x1 – x2 ≥ -2
x1 +2 x2 ≤ 8
x1 + x2 = 5
x1, x2 ≥ 0
首先将其转化为符合程序要求的标准形式:
第一步 转化如下:
min ( -f ) = -3x1 –2x2
s. t.
2x1 – x2 ≥ -2
-x1 – 2x2 ≥ -8
x1 + x2 ≥ 5
-x1 – x2 ≥ -5
x1, x2 ≥ 0
第二步 转化为矩阵形式:
于是,得到目标函数的系数向量为 c = (-3, -2 )
约束条件的系数矩阵为
约束条件的常数向量为:
最后在 Mathematica 中输入以下程序:
c = { -3, -2};
A = { { 2, -1 }, { -1, -2 }, { 1, 1 }, { -1, -1 } };
b = { -2, -8, 5, -5 };
x = LinearProgramming[ c, A, b ];
Print[ “ x = ”, x ]
f = - c.x;
Print[ “ f
max
= ”, f ]
其中“c.x”表示向量的内积。程序运行之后,得到以下结果:
x = { 5, 0 }
f
max
= 15
(III)用矩阵形式求解线性规划问题及其对偶问题的解
设有线性规划问题:
及其对偶问题:
第一步 将其对偶问题转化为程序要求的标准形式:
第 二 步 编 程 序 求 解 。 注 意 , 在 Mathematica 系 统 中 , 向 量 与 它 的 转 置
(Transpose)是等价的,但矩阵与它的转置不等价。求解程序以及格式如下:
c = { … };
A = { … };
b = { … };
x = LinearProgramming[ c, A, b ];
Print[ “ x = ”, x ]
f = c.x;
Print[ “ f
min
= ”, f ]
B = Transpose[ A ];
y = LinearProgramming[ -b, -B, -c ];
Print[ “ y = ”, y ]
F = b.y;
Print[ “ F
max
= ”, F ]
§2 线性规划问题应用示例
例 1 有两个农场 A 和 B,上级规定它们每月分别向三个大学食堂送米 65 吨、110
吨,这三个大学食堂每月需米分别为 50 吨、80 吨、45 吨。A 农场离大学分别为
15Km、10Km、11Km,B 农场离大学分别为 14Km、18Km、25Km。问如何分配
这两个农场供米,使总运输量(吨公里)最小?
大学 1:D1 大学 2:D2 大学 3:D3 农场生产量
农场 A
15Km 10Km 11Km
65 吨
农场 B
14Km 18Km 25Km
110 吨
大学需要量 50 吨 80 吨 45 吨 合计:175 吨
解:(一)求最优调度方案
设 A 农场为 D1、D2、D3 分别送米 x1、x2、x3 吨;B 农场为 D1、D2、D3 分别送
米 x4、x5、x6 吨;得到模型如下:
min f = 15x1+10x2+11x3+14x4+18x5+25x6
用 Mathematica 软件包求解:
(1) 表达式输入法(ConstrainedMin 命令和 ConstrainedMax 命令的应用)
ConstrainedMin[15x1+10x2+11x3+14x4+18x5+25x6,
{ x1+x2+x3 <= 65, x4+x5+x6 <= 110, x1+x4 >= 50, x2+x5 >= 80,
x3+x6 >= 45 }, { x1,x2,x3,x4,x5,x6 } ]
注意:ConstrainedMin 命令和 ConstrainedMax 命令默认全体变量≥0。
(2) 矩阵输入法(LinearProgramming 命令的应用)
所求最优解为(x1, x2, x3, x4, x5, x6)=(0,20,45,50,60,0), f
min
= 2475 吨
公里。
(二)讨论上级分配方案是否合理
ConstrainedMin[15x1+10x2+11x3+14x4+18x5+25x6,
{ x1+x2+x3 <= a, x4+x5+x6 <= b, a+b == 175, x1+x4 >= 50,
x2+x5 >= 80, x3+x6 >= 45 }, { x1, x2, x3, x4, x5, x6, a, b } ]
此时的最优解为:
(x1, x2, x3, x4, x5, x6)=(0,80,45,50,0,0), f
min
= 1995 吨公里。a =
125,b = 50。
可见,以最小吨公里为衡量标准,上级原来的规定并不是资源的最优配置,应该改
进为:A 农场送米 125 吨,B 农场送米 50 吨。
例 2 原料产地 A1、A2、A3 将原料制成产品运往销地 A1、A2、A3。4 吨原料制 1
吨产品。产地 A1 年产原料 30 万吨、同时需要产品 7 万吨;产地 A2 年产原料 26 万
吨、同时需要产品 13 万吨;A3 年产原料 24 万吨、不需要产品。A1 与 A2 距离 150
公里、A1 与 A3 距离 100 公里; A2 与 A3 距离 200 公里。又知原料运费为 0。3 万
元/万吨公里、产品运费为 0。25 万元/万吨公里。且知在 A1 建厂加工费为 0。55 万
元/万吨、在 A2 建厂加工费为 0。4 万元/万吨、在 A3 建厂加工费为 0。3 万元/万吨。
因条件限制,在 A2 建厂规模不能超过年产成品 5 万吨。问:如何安排建厂,使总
成本(原料运费、产品运费、加工费等)最少?
剩余24页未读,继续阅读
资源评论
普通网友
- 粉丝: 12w+
- 资源: 9335
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Code for the complete guide to tkinter tutorial
- 关于百货中心供应链管理系统.zip
- SimpleFolderIcon-master 修改Unity的Project下的文件夹图标
- A python Tkinter widget to display tile based maps
- A pure Python library for adding tables to a Tkinter application
- Vector资源文件.zip
- MobaXterm-Installer
- MicroMsg.xlsx
- 88-520告白(520气球).zip
- HTML+CSS+JS精品网页模板H126.rar
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功