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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
7月前
|
移动开发 人工智能 定位技术
用 Godot 开发像素风《饥荒》的流程
用 Godot 开发像素风《饥荒》的流程
|
Shell
Ubuntu20.04安装anaconda并默认激活conda base环境(步骤详细/操作简单实用)
Ubuntu20.04安装anaconda并默认激活conda base环境方法
20598 0
|
5月前
|
存储 人工智能 缓存
OSS与NAS混合云存储架构:非结构化数据统一管理实战
AI训练集管理面临数据规模爆炸与访问模式多样的挑战。传统单一存储方案存在成本高、访问慢等问题。创新混合架构融合OSS与NAS,实现热冷数据自动分层,降低存储成本62%,提升训练速度3.8倍。通过统一接口、智能调度与自动迁移,兼顾高性能与低成本,助力AI训练高效稳定运行。
269 0
|
7月前
|
运维 监控 算法
基于 Python 迪杰斯特拉算法的局域网计算机监控技术探究
信息技术高速演进的当下,局域网计算机监控对于保障企业网络安全、优化资源配置以及提升整体运行效能具有关键意义。通过实时监测网络状态、追踪计算机活动,企业得以及时察觉潜在风险并采取相应举措。在这一复杂的监控体系背后,数据结构与算法发挥着不可或缺的作用。本文将聚焦于迪杰斯特拉(Dijkstra)算法,深入探究其在局域网计算机监控中的应用,并借助 Python 代码示例予以详细阐释。
191 6
|
自然语言处理 Cloud Native 安全
适应多样化需求:WASM 插件在全链路灰度发布中的应用
MSE(微服务引擎)在微服务全链路灰度场景下提供了一套成熟的功能,支持内容规则和百分比规则的灰度路由策略。
61883 113
|
数据库
如何解决逻辑删除is_del与数据库唯一约束冲突
如何解决逻辑删除is_del与数据库唯一约束冲突
401 0
|
数据中心 虚拟化
到底什么是交换机堆叠?
到底什么是交换机堆叠?
464 0
|
Kubernetes 网络协议 容器
在K8S中,Pod的健康检查方式有哪些?
在K8S中,Pod的健康检查方式有哪些?
|
API Python
[AIGC] 使用Python刷LeetCode:常用API及技巧指南
[AIGC] 使用Python刷LeetCode:常用API及技巧指南
625 0
|
异构计算 Windows
使用MATLAB连接USRP
使用MATLAB连接USRP
581 2