一、模型引出

XXX共有多少多少,怎么样去安排或者分配,使……最大/最小/最优。

数学建模比赛中比较常见的题型,简单来说就是求最大/最小也即是极值的问题,线性规划就是解决这些问题常用的工具之一。

线性规划

线性规划(Linear programming,简称LP),是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,是辅助人们进行科学管理的一种数学方法,是研究线性约束条件下线性目标函数的极值问题的数学理论和方法。

二、模型原理

2.1线性规划模型三要素

1.决策变量: 问题中要确定的未知量,用于表明规划问题中的用数量表示的方案、措施等,可由决   策者决定和控制;

2.目标函数:决策变量的函数,优化目标通常是求该函数的最大值或最小值;

3.约束条件:决策变量的取值所受到的约束和限制条件,通常用含有决策变量的等式或不等式表示。

2.2模型建立步骤

从实际问题中建立数学模型一般有以下三个步骤:

1.根据影响所要达到目的的因素找到决策变量

2. 由决策变量和所在达到目的之间的函数关系确定目标函数

3. 由决策变量所受的限制条件确定决策变量所要满足的约束条件

2.3线性规划的表现形式

一般形式/代数形式:

\max (\ /min)z=c_{1}x_{1}+c_{2}x_{2}+...+c_{n}x_{n}

2.4线性规划模型特点

1.要解决的问题是优化类的(即在有限的资源条件下,获取最大的收益)

2.目标函数和约束条件都是决策变量的线性函数,即不存在x^2,e^x,\frac{1}{x},\sin x,\log_{2}x

3.线性规划模型:在一组线性约束条件下,求线性目标函数的最大值或最小值。

而数学建模的过程,就是把题目“翻译”成数学语言的过程一组公式,加上对这组公式含义的解释,就是一个数学模型。

2.5线型规划模型求解

1.线性规划求解可采用单纯形法

2.推荐采用matlab、python的相关函数进行求解

三、代码求解

在代码求解这一部分,其中要用到 Matlab  linprog函数这一函数:

f——目标函数的系数向量(必须是求最小值形式下的)

A , b——不等式约束条件的变量系数矩阵和常数项矩阵(必须是≤形式)

Aeq , beq——等式约束条件的系数矩阵和常数项矩阵

lb , ub——决策变量的最小取值和最大取值

x是返回的最优解的变量取值, fval返回目标函数的最优值

注意: 要调用linprog函数,变量必须是标准形式,即目标函数是求最小值,约束条件都是小于等于号或等号;如果不满足标准形式,我们可以用同乘 ”- ”变号来继续求解。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐