线性规划的实例赏析 | 您所在的位置:网站首页 › 线性规划实验报告总结 › 线性规划的实例赏析 |
线性规划的实例赏析
本文偏向于数学建模实战,针对对于规划问题有一定的基础和理解的读者,所以其中数学理论与代码不过多讲解,重在解题过程的展示。 文章目录 线性规划的实例赏析前言一、解题思考模式1.MATLAB求解方法(1)基于求解器的求解方法:(2)基于问题的求解方法: 2.规划问题的构成元素3.线性规划问题的求解步骤4.线性规划模型的形式4.线性规划问题的解的概念5.灵敏度分析 二、线性规划模型的求解及应用【例一】一般问题。【例二】运输问题。【例三】可以转化为线性规划的问题 三、投资的收益与风险(Ⅰ)问题分析(Ⅱ)符号说明(Ⅲ)模型假设(Ⅳ)模型建立 四、总结五、引用 前言求解线性规划模型已经有比较成熟的算法。对于一般的线性规划问题,常用的求解方法有图解法,单纯形法等。 链接:https://blog.csdn.net/weixin_51128278/article/details/116246003 虽然针对线性规划的理论算法已经比较完善,但是当需要求解的模型的决策变量和约束条件数量比较多时,手工求解模型是十分繁杂甚至是不可能的,通常需要借助计算机软件来实现。 目前,求解数学规划模型的常用软件有MATLAB、Python、Lingo等多种,本文主要以MATLAB软件求解。MATLAB求解数学规划问题(包括线性规划、整数规划和非线性规划)采用两种模式:基于求解器的求解方法和基于问题的求解方法。 以下是本篇文章正文内容,下面案例可供参考 一、解题思考模式在建立模型之前,有几个方面需要提前认知清楚,下面继续: 1.MATLAB求解方法 (1)基于求解器的求解方法:规定线性规划问题的标准格式是: max f T x , \max f^Tx, maxfTx, s . t . { A ⋅ x ≤ b A e q ⋅ x ≤ b e q l b ≤ x ≤ u b s.t.\begin{cases} \ A·x≤b \\ Aeq·x≤beq \\ lb≤x≤ub \\ \end{cases} s.t.⎩⎪⎨⎪⎧ A⋅x≤bAeq⋅x≤beqlb≤x≤ub 调用格式为: [x,fval]=linprog(f,A,b) [x,fval]-linprog(f,A,b,Aeq,beq) [x,fval]-linprog(f,A,b,Aeq,beq,lb,ub) (2)基于问题的求解方法:先需要用变量和表达式构造优化问题,然后用solve函数求解。 例如: clc, clear prob = optimproblem('ObjectiveSense', 'max') c = [4;3]; b = [10;8;7]; a = [2,1;1,1;0,1]; lb = zeros(2,1); x = optimvar('x',2,'LowerBound',0); prob.Objective = c'*x; prob.Constraints.con = a*x=15 sum(x(1,2:4))+sum(x(2,1:3))>=10 x(1,3)+x(1,4)+x(2,2)+x(2,3)+x(3,1)+x(3,2)>=20 x(1,4)+x(2,3)+x(3,2)+x(4,1)>=12]; [sol,fval,flag,out]= solve(prob), sol.x 【例二】运输问题。可参考系列文章《特殊规划问题——运输问题》 clc, clear, a = load('data1_5_1.txt'); c = a(1:end-1,1:end-1); e = a(1:end-1,end); d = a(end,1:end-1); prob = optimproblem; x = optimvar('x',6,8,'LowerBound',0); prob.Objective = sum(sum(c.*x)); prob.Constraints.con1 = sum(x,1) == d; prob.Constraints.con2 = sum(x,2) |
CopyRight 2018-2019 实验室设备网 版权所有 |