第一天打卡—线性规划(1)

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
简介: 第一天打卡—线性规划(1)

文章目录

一、题目

某机床厂生产甲、乙两种机床,每台销售后的利润分别为 4000 元与 3000 元。甲机床需用 A、B 机器加工,加工时间分别为每台 2 小时和 1 小时;生产乙机床需用 A、B、C 三种机器加工,加工时间为每台各一小时。若每天可用于加工的机器时数分别为 A 机器 10 小时、B 机器 8 小时和C 机器 7 小时,问该厂应生产甲、乙机床各几台,才能使总利润最大?

三、分析

首先你要把问题当作数学问题来思考,暂时请不要考虑代码。我们设该厂生产 x1 台甲机床和 x2 乙机床时总利润最大。


根据题目我们所得关系如下:

1)z = 4x1 + 3x2 就是我们要求的总利润

2) 每天可用于加工的机器时数分别为 A 机器 10 小时、B 机器 8 小时和C 机器 7 小时可得到关系是分别为:

2x1+x2<10
x1+x2<8
x2<7

3) 最后一点还得保证:x1,x2>0

建模就如此简单,根据题目,我们得出对应的数学方程即可。

我们在这里把变量 x1 , x2 称之为决策变量,z = 4x1 + 3x2叫做目标函数,第二步和第三步的式子叫做约束条件

你是不是有这样一个疑问?为什么这个是线性规划模型?不是非线性呢?请把你的回答写到评论区,我看看你们怎么的理解。

四、matlab解题

1)语法

我们使用linprog函数,这是专门解决线性规划问题的,我们来看一看该函数的语法:

image.png

具体含义是什么呢?似乎你还看不懂这个,因此我用中文来说一下我们主要用到的部分:

x = linprog(f,A,b) 求解 min f'*x 约束条件为 A*x ≤ b.
x = linprog(f,A,b,Aeq,beq) 求解上述问题,但是增加了约束条件,即将: Aeq*x = beq. 如果没有等式存在可以用:A = [] and b = [] 
x = linprog(f,A,b,Aeq,beq,lb,ub) 定义变量x的下界lb和上街ub,使得x始终在该范围内,即lb ≤ x ≤ ub。若没有约束条件,则设: Aeq = [] and beq = [] 

2)数学思维

我们的数学公式拿下来看看,看着我们对比着写代码:

目标函数:

max   z = 4x1 + 3x2 

约束条件:

2x1+x2<10
x1+x2<8
x2<7
x1,x2>0

做个线性规划图(高中数学知识了哈)

image.png

从数学角度,我们已经求出最优解x1和x2分别为2,6

3)matlab解题

强调: 在这里我需要说明的是,求解max=cx在matlab中就是min=-cx,记住有个负号!

因此matlab代码:

clc
clear all
c=[4 3];%用目标函数系数来确定
a=[2 1;1 1;0 1];%约束条件左边约束
b=[10;8;7];%约束条件右边系数
aeq=[];%没有等式约束,因此aeq,beq都为空
beq=[];
lb=[0;0];%下限为0
ub=[inf;inf];%没有上限,因为只限制了x>0
[x,fval]=linprog(-c,a,b,aeq,beq,lb,ub);
x    %获取对应x1,x2
%或者你直接fval取绝对值也是一样
best=c*x%计算最优值

运行结果:

image.png

x分别为2和6,我们带入式子得到z=2*4+3+6=8+18=26。x参数就是最优解所对应值的意思。

fval=26也能验证我们结果为26.fval参数就是最优解的意思。

因此最优解为26了。

4)练习题

求解该线性规划对应的最大值z以及x1,x2,x3

image.png

五、你的任务提交

请你认真读题思考!再看我分析,自己再去写代码,把练习题的解析写成一篇博客,然后点击提交任务,提交你写的这篇解题博客链接。


为什么我要求你也些一篇跟我一样的文章?当你自己写一篇文章的时候,你一定会大有收获,自己写出来的时候,你一定是真的动过脑子,亲手敲过代码(我不希望你是复制粘贴我的)

如何写博客?

1-

image.png

2-

image.png

3)

image.png

4)添加标题

image.png

5)标题取名

image.png

写完你的练习题博客后来这里提交:

image.png

把你的这篇练习题博客链接提交确定:

image.png

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
人工智能 算法 BI
第一周算法设计与分析 D : 两面包夹芝士
这篇文章介绍了解决算法问题"两面包夹芝士"的方法,通过找出两个数组中的最大最小值,计算这两个值之间的整数个数,包括特判不存在整数的情况。
|
3月前
|
存储 供应链 安全
软考中项-学习第一天
倒计时59天
173 24
|
4月前
|
算法 关系型数据库 程序员
第一周算法设计与分析:B : 如何溜的最快
这篇文章提供了解决算法问题"如何溜的最快"的方法,即计算从原点(0,0)到任意点(x,y)所需的最短步数,每步长度固定为R,通过特判和计算总距离除以步长向上取整来确定步数。
|
6月前
|
搜索推荐 算法 C++
蓝桥杯分糖果、最小化战斗力差距、小蓝零花钱
这是一个关于算法问题的集合,包括三个不同的任务: 1. **分糖果**:肖恩有不同种类的糖果要分给学生,目标是使得到糖果字符串的字典序最大且尽量小。给定糖果种类数和一个初始字符串,输出能达到的最小字典序的最大值。 2. **最小化战斗力差距**:小蓝需要将队员分为两组,每组战斗力差距最小。给定队员数量和战斗力值,找出最小的战斗力差距。 3. **小蓝的零花钱**:小蓝要在序列中分割偶数和奇数,每次分割代价是两端元素差的绝对值。目标是在预算内确定最多能进行多少次这样的分割。 每个问题都提供了输入输出示例和相应的C++代码片段来解决这些问题。
|
6月前
高等数学II-知识点(2)——定积分、积分上限函数、牛顿-莱布尼茨公式、定积分的换元、定积分的分部积分法
高等数学II-知识点(2)——定积分、积分上限函数、牛顿-莱布尼茨公式、定积分的换元、定积分的分部积分法
66 0
|
算法 Java C++
21天掌握动态规划 第一天
21天掌握动态规划 第一天
82 0
|
存储 算法 测试技术
算法学习 【第一周】Ⅰ
带你进入算法的世界!
126 0
算法学习 【第一周】Ⅰ
|
机器学习/深度学习 算法
算法学习 【第一周】Ⅱ
学习有关算法设计和改进的知识。
147 0
算法学习 【第一周】Ⅱ
|
算法 Go
算法练习第一天——两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。