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

简介: 第一天打卡—线性规划(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

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
10月前
【蓝桥杯冲刺】日期类专题特训
【蓝桥杯冲刺】日期类专题特训
33 0
|
11月前
|
算法 Java C++
21天掌握动态规划 第一天
21天掌握动态规划 第一天
61 0
|
算法 Go
算法练习第一天——两数之和
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。
|
算法
基础算法练习200题03、电视剧每集时间(四舍五入)
基础算法练习200题03、电视剧每集时间(四舍五入)
56 0
基础算法练习200题03、电视剧每集时间(四舍五入)
|
机器学习/深度学习 算法
算法学习 【第一周】Ⅱ
学习有关算法设计和改进的知识。
111 0
算法学习 【第一周】Ⅱ
|
存储 算法 测试技术
算法学习 【第一周】Ⅰ
带你进入算法的世界!
95 0
算法学习 【第一周】Ⅰ
|
人工智能 算法
算法学习 【第一周】 Ⅲ
“贪亦有道”,了解有关贪心算法的基础知识,如果我们在生活中也按照贪心算法那样去选择会是什么样的呢?
71 0
算法学习 【第一周】 Ⅲ
|
编译器 C语言
第二周:计算
C语言第第二周内容,计算,是开启编程世界的第一步
135 0
|
机器学习/深度学习
洛谷每日三题之第一天
洛谷每日三题之第一天
算法每日一题——第一天——统计特殊四元组
算法每日一题——第一天——统计特殊四元组
算法每日一题——第一天——统计特殊四元组