数学规划模型
时间:2021-09-03
本文章向大家介绍数学规划模型,主要包括数学规划模型使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
线性规划的一般形式
数学规划的分类
1、线性规划:如果目标函数f(x)的约束条件均是决策变量的线性表达式、
2、非线性规划:当目标函数f(x)或者约束条件中有一个是决策变量x的非线性表达式。
3、整数规划:一类要求变量取整数值的数学规划。线性整数规划
4、0-1规划:整数变量的取值只能为0和1
线性规划问题的求解
Matlab 求解线性规划的函数
%% Matlab求解线性规划 % [x fval] = linprog(c, A, b, Aeq, beq, lb,ub, x0) % c是目标函数的系数向量,A是不等式约束Ax<=b的系数矩阵,b是不等式约束Ax<=b的常数项 % Aeq是等式约束Aeq x=beq的系数矩阵,beq是等式约束Aeq x=beq的常数项 % lb是X的下限,ub是X的上限,X是向量[x1,x2,...xn]' , 即决策变量。 % 迭代的初始值为x0(一般不用给) % 更多该函数的用法说明请看讲义 %% 例题1 c = [-5 -4 -6]'; % 加单引号表示转置 % c = [-5 -4 -6]; % 写成行向量也是可以的,不过不推荐,我们按照标准型来写看起来比较正规 A = [1 -1 1; 3 2 4; 3 2 0]; b = [20 42 30]'; lb = [0 0 0]'; [x fval] = linprog(c, A, b, [], [], lb) % ub我们直接不写,则意味着没有上界的约束 % x = % 0 % 15.0000 % 3.0000 % % fval = % -78
⭐最大化问题需要提前改成最小化问题
%% 例题3 c = [-2 -3 5]'; A = [-2 5 -1; 1 3 1]; b = [-10 12]; Aeq = ones(1,3); beq = 7; lb = zeros(3,1); [x fval] = linprog(c, A, b, Aeq, beq, lb) fval = -fval % 注意这个fval要取负号(原来是求最大值,我们添加负号变成了最小值问题) % x = % 6.4286 % 0.5714 % 0 % fval = % -14.5714 % fval = % 14.5714
典型例题代码
%% 生产决策问题 format long g %可以将Matlab的计算结果显示为一般的长数字格式(默认会保留四位小数,或使用科学计数法) % (1) 系数向量 c = zeros(9,1); % 初始化目标函数的系数向量全为0 c(1) = 1.25 -0.25 -300/6000*5; % x1前面的系数是c1 c(2) = 1.25 -0.25 -321/10000*7; c(3) = -250 / 4000 * 6; c(4) = -783/7000*4; c(5) = -200/4000 * 7; c(6) = -300/6000*10; c(7) = -321 / 10000 * 9; c(8) = 2-0.35-250/4000*8; c(9) = 2.8-0.5-321/10000*12-783/7000*11; c = -c; % 我们求的是最大值,所以这里需要改变符号 % (2) 不等式约束 A = zeros(5,9); A(1,1) = 5; A(1,6) = 10; A(2,2) = 7; A(2,7) = 9; A(2,9) = 12; A(3,3) = 6; A(3,8) = 8; A(4,4) = 4; A(4,9) = 11; A(5,5) = 7; b = [6000 10000 4000 7000 4000]'; % (3) 等式约束 Aeq = [1 1 -1 -1 -1 0 0 0 0; 0 0 0 0 0 1 1 -1 0]; beq = [0 0]';%加上'代表是列向量 %(4)上下界 lb = zeros(9,1); % 进行求解 [x fval] = linprog(c, A, b, Aeq, beq, lb) fval = -fval % fval = % 1146.56650246305 % 注意,本题应该是一个整数规划的例子,我们在后面的整数规划部分再来重新求解。
原文地址:https://www.cnblogs.com/keep--fighting/p/15225050.html
- 1653: [Usaco2006 Feb]Backward Digit Sums
- 1619: [Usaco2008 Nov]Guarding the Farm 保卫牧场
- 1682: [Usaco2005 Mar]Out of Hay 干草危机
- 1637: [Usaco2007 Mar]Balanced Lineup
- AutoFac在项目中的应用
- 每天学一点Docker(5)——了解Docker架构
- 跨站请求伪造(CSRF/XSRF)
- 我这么玩Web Api(一)
- 1624: [Usaco2008 Open] Clear And Present Danger 寻宝之路
- 点双连通分量与割点
- 1648: [Usaco2006 Dec]Cow Picnic 奶牛野餐
- 1641: [Usaco2007 Nov]Cow Hurdles 奶牛跨栏
- 1668: [Usaco2006 Oct]Cow Pie Treasures 馅饼里的财富
- 2463: [中山市选2009]谁能赢呢?
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- android 震动和提示音的实现代码
- 一个简单的Android圆弧刷新动画
- AccessibilityService实现微信发红包功能
- 处理一次k8s、calico无法分配podIP的心路历程
- Android自定义控件实现时钟效果
- Android倒计时控件 Splash界面5秒自动跳转
- Android仿抖音上下滑动布局
- 一个简单的Android轨迹动画
- Android自定义圆环倒计时控件
- Android 使用URLConnection下载音频文件的方法
- Android自定义TimeButton实现倒计时按钮
- android自定义圆形倒计时显示控件
- android实现上下左右滑动界面布局
- Android使用MediaCodec将摄像头采集的视频编码为h264
- Android开发人脸识别登录功能