数学建模 优化问题——数学规划

一、优化问题基本概念

1.1 优化问题

优化问题:在一系列客观或主观限制条件下,寻求使所关注的某个或多个指标达到最大(或最小)的决策

  • 结构设计、资源分配、生产计划、运输方案中经常可见

通常的解决手段:

  • 经验积累、主观判断
  • 做试验、比优劣
  • 建立数学模型,求解最优策略

解决优化问题的数学方法:

  1. 数学规划
  2. 图论

解决优化问题的数学软件:

  • matlab
  • lingo

当决策变量约束条件比较少是可以使用matlab软件,当涉及的决策变量约束条件比较多时可以考虑更为专业的lingo软件

1.2 优化模型的简单分类

优化模型可以根据目标、参数、变量、约束等划分成不同的类别
比较常用的一种划分依据按照决策变量是否连续划分为连续优化离散优化

连续优化

1. 线性规划(LP) :目标和约束均为线性函数
2. 非线性规划(NLP) :目标或约束中存在非线性函数
3. 二次规划(QP) :目标为二次函数、约束为线性(NLP特例)

离散优化

整数规划(IP) : 决策变量(全部或部分)为整数
1. 整数线性规划(ILP)
2. 整数非线性规划(INLP)
3. 纯整数规划(PIP),
4. 混合整数规划(MIP)
5. 一般整数规划,0-1(整数)规划

说明
由于不同类型的优化问题的求解难度和求解方法是有很大差异的,因此在解决我们所面临的问题时,弄清问题的类型是很有必要的。
例如,只能对于连续线性规划或某些特定的二次规划(如凸二次规划)问题,可以比较容易地求到整体最优解,或判断原问题无解;而对于一般的非线性规划和整数规划,当问题的规模比较大时,在可以接受的计算时间内找到整体最优解是非常困难的,因此通常只能求局部最优解。
一般来说,离散优化问题比连续优化问题难以求解,非线性规划问题比线性规划问题难以求解,非光滑优化光滑优化难以求解。

在这里插入图片描述

1.3 国赛中的优化问题

2000-2021
• 2000B 钢管订购和运输问题
• 2001B 公交车优化调度
• 2001C 基金使用的最优策略
• 2002B 彩票中的数学
• 2003B 露天矿生产的车辆安排问题
• 2004B 奥运会临时超市网点设计问题
• 2004D 公务员招聘工作中录用方案
• 2005B DVD在线租赁
• 2006B 出版社的资源配置问题
• 2007B 乘公交,看奥运
• 2008B 高等教育学费探讨
• 2009B 眼科病床的合理安排
• 2011B 交巡警服务平台设置与调度
• 2012B 太阳能小屋设计
• 2013B 碎纸片的拼接
• 2014B 创意折叠桌设计
• 2015B “互联网+”时代的出租车资源配置
• 2016B 小区开放对道路通行的影响
• 2017B “拍照赚钱”任务定价
• 2018B 智能RGV的动态调度策略
• 2019B “同心协力”策略研究
• 2020B 穿越沙漠
• 2021C 生产企业原材料的订购与运输

二、数学规划

求解各种优化问题的关键就是找优化问题的三要素的过程即:

  • 决策变量
  • 目标函数
  • 约束条件

2.1 线性规划(LP)

2.1.1 LP问题

例1
在这里插入图片描述


在这里插入图片描述
最后的模型
在这里插入图片描述
matlab求解

% 化成matlab求线性规划的标准形式
f = [-7 -12]'; % 目标函数的系数向量
A=[9 4;4 5;3 10]; % 不等式约束
b=[360 200 300]';
lb=[0 0]';
[x,val]=linprog(f,A,b,[],[],lb)
val=-val

运行结果:
在这里插入图片描述
在这里插入图片描述

此处也可以使用lindo求解

max 7x1+12x2
st 
	9x1+4x2<=360
	4x1+5x2<=200
	3x1+10x2<=300
	x1>=0
	x2>=0	

结果
在这里插入图片描述
对于这样的数学模型,我们一般有如下的名称。特别是价格系数、技术系数
在这里插入图片描述

2.1.2 LP模型的表示形式

(1)一般形式
在这里插入图片描述
(2)矩阵形式

主要用于在matlab中求解,用matlab求解时需要将涉及到的矩阵全部列出。策变量、约束条件比较少的时候完全可以使用。而当决策变量、约束条件成百上千时,写出其矩阵变得不太现实,这就需要用lingo求解
在这里插入图片描述

例如在上个例题中就需要列出以下矩阵
在这里插入图片描述

(3)和式形式
这种形式主要适用于lingo中,可以根据和式形式比较容易的编写出相应的程序
在这里插入图片描述

2.1.3 求解通用算法

  • 单纯形算法

二维空间线性规划的最优解必然在凸多边形的顶点
三维空间线性规划的最优解必然在凸多边体的顶点

2.1.4 灵敏性分析

意义:现实问题中价格、技术、资源系数可能会变化(发生微小变动),生产方案也会受到影响
给定一个波动范围使得结果还是最优解不变

2.2 整数规划(IP)

整数规划求解整数规划一般为分支定界法或割平面法
线性规划求解一般为单纯形法
非线性规划一般求迭代解梯度下降

整数规划与线性规划建模区别在变量变为整数,其余步骤一样

2.3 0-1规划规划

2.3.1 选址问题

题目:
在这里插入图片描述
解决:
在这里插入图片描述

代码:

sets:
site/1..7/:x,b,c;
endsets

data:
q=?;
enddata

max=@sum(site(i):c(i)*x(i));
@sum(site(i):b(i)*x(i))<q;
x(1)+x(2)+x(3)<=2;
x(4)+x(5)>=1;
x(6)+x(7)>=1;
!@sum(site(i)|i#le#3:x(i))<=2;
!@sum(site(i)|i#ge#6:x(i))>=1;
@for(site(i):@bin(x(i)));

2.3.2 指派问题

在这里插入图片描述

题目:
在这里插入图片描述
在这里插入图片描述

解决:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

代码:

sets:
set1/1..4/:y;
set2/1..4/:z;
set3(set1,set2):c,x;
endsets

min=@sum(set3(i,j):c*x);
@for(set1(i):@sum(set2(j):x(i,j))=1);
@for(set2(j):@sum(set1(i):x(i,j))=1);
@for(set3(i,j):@bin(x(i,j)));

2.3.3 固定费用问题

题目:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

解决:

在这里插入图片描述

代码:

sets:
way/1..3/:x,y;
endsets

min=13*x(1)+12*x(2)+10*x(3)+120*y(1)+150*y(2)+180*y(3);
@sum(way(i):x)=500;
1.5*x(1)+1.7*x(2)+1.8*x(3)<=1500;
1.3*x(1)+1.5*x(2)+1.6*x(3)<=1000;
4*x(1)+4.5*x(2)+1.5*x(3)<=3500;
2.8*x(1)+3.8*x(2)+4.2*x(3)<=2800;
@for(way:0.01*y<=x);
@for(way:x<=1000*y);
@for(way:@bin(y));

2.3.4 0-1变量的其他用处

  • 把相互约束的排斥条件转化为普通的约束条件
  • 表示分段函数

2.4 多目标规划

多目标无法直接求解,需要转化为单目标规划

2.4.1解决方法

  • 主要目标法:只保留一个主要目标,将其他的转化为约束条件
  • 线性加权法(前提要保证两者的量纲一致) 将所有目标转 化为同时求最大或是同时求最小 若量纲不一致需消除量纲的影响(映射到01区间)

  • 7
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值