matlab线性规划系列之基础解题-2
系列文章目录
基础篇:
1.matlab线性规划问题---------基于问题求解函数optimproblem
2. matlab线性规划系列之基础解题
文章目录
目录
系列文章目录
基础篇:
1.matlab线性规划问题---------基于问题求解函数optimproblem
2. matlab线性规划系列之基础解题
欢迎来到苦幽幽,线性规划解千愁系列。
一、上手实际问题
1.1温习(承上)0-1模型的选课制度-多目标:
若是还没有看过我上一篇文章的小伙伴,记得去看看呀,和上一篇的问题是有联系的哟。这次我将在单目标的基础之上增加一个学分最多的目标,也就是咱们需要实现在选课数量尽可能少的前提下,学分也尽可能多这两个目标。 其实很简单,伙伴们多想一下,代码在最下面呀!同时分析将会在下一期出!
2.开辟新类型- 类型2 - 普通线性规划:
三、多目标0-1的代码答案~
前言
这里将展示一些用我之前发过的关于问题求解函数optimproblem的一些解题方法思路,以及对应的代码,在这里声明一下,本篇文章所用的题目来自于哒哒子前辈的如下文章:数学建模【规划模型--线性规划(整数规划、0-1规划)、非线性规划-附:案例分析、奶制品的生产和销售(详细求解过程)】_厚德载物-CSDN博客
欢迎来到苦幽幽,线性规划解千愁系列。
一、上手实际问题
1.1温习(承上)0-1模型的选课制度-多目标:
若是还没有看过我上一篇文章的小伙伴,记得去看看呀,和上一篇的问题是有联系的哟。这次我将在单目标的基础之上增加一个学分最多的目标,也就是咱们需要实现在选课数量尽可能少的前提下,学分也尽可能多这两个目标。 其实很简单,伙伴们多想一下,代码在最下面呀!同时分析将会在下一期出!
2.开辟新类型- 类型2 - 普通线性规划:
2.1牛奶加工售出计划:
这里和上一篇所讲的题一样用三步法。我们求满足约束条件后,获利最大化
2.2.1 分类问题
文字分析:
关于这道题,首先是先将问题分类,毫无疑问,和我们之前所讲的0-1规划不一样,因为没 有体现出选择的关系,也没有体现出数量值为0-1;这时候看题目显然就是一道普通的线性 规划,就是需要规划你怎么去安排这个制作,三点都是线性的函数,哪三点?看下方。
2.2.2 找对应三
那么接下来就找那三个点:
第一:决策变量,其实就是选择A1还是A2,一桶牛奶是用A1做还是A2做。
第二:约束条件,约束条件是题目所给的,一天所产的牛奶桶数小于等于50;A1,A2加 工时间不超过不超过480h;A1至多不超过100公斤
第三:目标函数,目标函数就是要使得获利最大化。
1. 关于决策变量
文字分析:
这里我们很容易知道,能否获利,是看我们做出了几桶牛奶,并且这几桶牛奶是由A 还是B来做的,因为他们所能制造的牛奶的“转化率”是不同的,所以甚至于后期我们还可 以计算出他们的经济效益(也就是性价比的东西,其实就是1/各自的需求量 再除以各自 的单价,不是利润价阿!!,在这里单价没给,是没有办法求的!到最后面的时候会讲 述2021国赛题目,会给例子的!),但显然单纯的求利益最大化是不需要的。
在这里因为要知道我们要规划用多少桶A1和多少桶A2,所以,我分别设置了x1桶牛 奶用A1和x2桶牛奶用A2故设置两行的列向量即可,然后下界设置为0。
代码分析:
x = optimvar('x',2,'LowerBound',0);
2. 关于约束条件
文字分析:
约束条件感觉没啥好讲的,看题设条件就行,这个比较简单,直接看代码吧。
代码分析:
con1 = 3*x(1) <= 100;%A1的小于100
con2 = 12*x(1) + 8*x(2) <= 480;%时间
con3 = x(1)+x(2) <= 50;pro.Constraints.con1 = con1;
pro.Constraints.con2 = con2;
pro.Constraints.con3 = con3;
3. 关于目标函数
文字分析:
目标函数无非就是运用A1的公斤数乘以每公斤的利润加上A2的即可,这里需要注意的 是,要知道自己设立的变量是桶数还是公斤数,这样所列出来的目标函数也是不一样 的。
代码分析:
pro.Objective = x(1)*24*3 + 16*x(2)*4;%获利最大化
2.2.3 代码示例
pro = optimproblem('ObjectiveSense','max');%使得获利最大化x = optimvar('x',2,'LowerBound',0);
%x1桶牛奶用A1制作,x2桶牛奶用A2制作pro.Objective = x(1)*24*3 + 16*x(2)*4;%获利最大化con1 = 3*x(1) <= 100;%A1的小于100
con2 = 12*x(1) + 8*x(2) <= 480;%时间
con3 = x(1)+x(2) <= 50;pro.Constraints.con1 = con1;
pro.Constraints.con2 = con2;
pro.Constraints.con3 = con3;
[sol_LL fval_LL] = solve(pro);sol_LL.x
fval_LL
可以知道答案分别是A1 = 20,A2 =30 ,利润是3360。
三、多目标0-1的代码答案~
clc
clear
tic
%第二个目标
score = [5;4;4;3;4;3;2;2;3];%按照序号所对应的每一科的学分
pro1 = optimproblem('ObjectiveSense','max');
v = optimvar('v',9,'Type','integer','LowerBound',0,'UpperBound',1);%选课的学分
pro1.Objective = score'*v;
con_LL = [];
con_LL = sum(v) <=6;
% for i =1:9
% con_LL = [con_LL;x(i) <= v(i)];
% end
pro1.Constraints.con1=con_LL;
[solz fval_LLz] = solve(pro1);
solz.v
fval_LLztoc
答案最终是选择第1、2、3、5、6、9门课呀,然后学分是23分~,答案不唯一呀,如果有错误,还请指正~
matlab线性规划系列之基础解题-2相关推荐
- matlab 积分进阶教程,最适合小白的matlab教程系列_进阶系列二之微积分
微积分篇 更多文章参考 符号变量 极限问题 求导数 求导数----偏导数 积分--符号解 积分数值解 多重积分 级数求和 泰勒级数展开 常微分方程 更多文章参考 最适合小白的matlab教程系列_基础 ...
- 最适合小白的matlab教程系列_进阶系列二之微积分
微积分篇 更多文章参考 符号变量 极限问题 求导数 求导数----偏导数 积分--符号解 积分数值解 多重积分 级数求和 泰勒级数展开 常微分方程 更多文章参考 最适合小白的matlab教程系列_基础 ...
- matlab从无到有系列(四):符号数学基础
matlab从无到有系列文章汇总: matlab从无到有系列(一):认识matlab matlab从无到有系列(二):矩阵运算基础 matlab从无到有系列(三):数值计算基础 全文共17248个字, ...
- Matlab线性规划函数linprog-小白详解
Matlab线性规划linprog函数 最近开始想学一学数学建模的相关知识,也找了不少视频,感觉无论是PPT做的还是讲解内容没有看起来很舒服的,只能多找几个版本多看几遍然后做一下笔记,先从最基础的线性 ...
- 「译」JUnit 5 系列:基础入门
2019独角兽企业重金招聘Python工程师标准>>> 原文地址:http://blog.codefx.org/libraries/junit-5-basics/ 原文日期:25, ...
- 软件测试系列---软件测试基础
软件测试系列--软件测试基础 1.什么是软件测试? **软件测试是一个过程,包含了若干活动,运行软件进行测试只是活动之一**进行软件测试可以人工方式也可以借助于工具**进行软件测试可以运行软件也可以不 ...
- MATLAB实战系列(二十九)-头脑风暴优化(BSO)算法求解旅行商问题(TSP)-交叉算子
前言 代码明细可参见 MATLAB实战系列(八)-头脑风暴优化(BSO)算法求解旅行商问题(TSP)(附MATLAB代码) 交叉算子的实现机制 我们还是以求解TSP问题为例,8个城市的坐标如下所示. ...
- MATLAB实战系列(十九)-遗传算法解决TSP(旅行商)问题-应用及解析(文末附MATLAB源码)
接上篇MATLAB实战系列(十八)-遗传算法解决TSP(旅行商)问题-算法原理 https://wenyusuran.blog.csdn.net/article/details/114060030 感 ...
- openresty开发系列15--lua基础语法4表table和运算符
openresty开发系列15--lua基础语法4表table和运算符 lua中的表table 一)table (表) Table 类型实现了一种抽象的"关联数组".即可用作数组, ...
- openresty开发系列14--lua基础语法3函数
openresty开发系列14--lua基础语法3函数 一)function (函数) 有名函数: optional_function_scope function function_name( ar ...
最新文章
- rewrite or internal redirection cycle while processing nginx重定向报错
- Python list排序
- linux系统退出当前计算节点命令,Linux下60个系统命令详细解.doc
- ​Nature子刊 | 睡眠时型会影响人类大脑生理的认知功能
- python3 from import 与 import 区别
- 从Wasserstein距离、对偶理论到WGAN
- boost::safe_numerics模块实现数组索引值可以超出数组边界的测试程序
- java string字节数组_java(基本类型或者String字符串)与(字节数组)相互转换
- python装饰器的顺序_python中多个装饰器的执行顺序详解
- python三种数据类型_Python-更改Pandas中列的数据类型
- 计算机误删怎么恢复数据,电脑资料数据误删怎么恢复?
- CDays-3 习题一 (处理命令行参数)及相关内容解析。Python getopt 简介
- nodejs如何运行JavaScript代码
- 三星android10电话拦截功能,三星手机阻止来电怎么设置 拒接骚扰电话教程 - Iefans...
- html5 下拉框 美化,实用select下拉框美化jquery插件
- 智能化施工(综合管线)
- 视频编辑专家下载v9.3官方免费版
- Visio如何画箭头
- linux lpte_所有的linux和unix的指令行下的指令都一样吗
- 微信支付账单修改数字