2024 年高教社杯全国大学生数学建模竞赛B题第二问详细解题思路(终版)

示例代码:

import numpy as np
import pandas as pd# 参数设定
params = {'p1': 0.10, 'p2': 0.10, 'c1': 4, 'c2': 2, 'd1': 2, 'd2': 3,'pf': 0.10, 'a': 6, 'df': 3, 's': 56, 'l': 6, 'r': 5
}# 决策变量
decisions = [0, 1]# 利润计算函数
def calculate_profit(D1, D2, C, R, params):cost_parts = (params['c1'] + params['d1'] * D1) + (params['c2'] + params['d2'] * D2)cost_assembly = params['a'] + params['df'] * Crevenue = params['s'] * (1 - params['pf']) * (1 - C * params['df'])cost_rework = params['r'] * R * params['pf'] * Closs_replacement = params['l'] * params['pf']profit = revenue - cost_parts - cost_assembly - cost_rework - loss_replacementreturn profit# 遍历所有可能的决策组合
best_profit = -np.inf
best_decision = None
for D1 in decisions:for D2 in decisions:for C in decisions:for R in decisions:profit = calculate_profit(D1, D2, C, R, params)if profit > best_profit:best_profit = profitbest_decision = (D1, D2, C, R)print(f"Best Decision: {best_decision}, Maximum Profit: {best_profit}")

可视化代码:

import numpy as np
import matplotlib.pyplot as plt
import itertools# 参数设定
params = {'p1': 0.10, 'p2': 0.10, 'c1': 4, 'c2': 2, 'd1': 2, 'd2': 3,'pf': 0.10, 'a': 6, 'df': 3, 's': 56, 'l': 6, 'r': 5
}# 决策变量
decisions = [0, 1]# 利润计算函数
def calculate_profit(D1, D2, C, R, params):cost_parts = (params['c1'] + params['d1'] * D1) + (params['c2'] + params['d2'] * D2)cost_assembly = params['a'] + params['df'] * Crevenue = params['s'] * (1 - params['pf']) * (1 - C * params['df'])cost_rework = params['r'] * R * params['pf'] * Closs_replacement = params['l'] * params['pf']profit = revenue - cost_parts - cost_assembly - cost_rework - loss_replacementreturn profit# 遍历所有可能的决策组合
profits = []
decision_combinations = list(itertools.product(decisions, repeat=4))
for combo in decision_combinations:profit = calculate_profit(*combo, params)profits.append(profit)# 转换为DataFrame以便可视化
df = pd.DataFrame(decision_combinations, columns=['D1', 'D2', 'C', 'R'])
df['Profit'] = profits# 绘制成本与收益分析图
plt.figure(figsize=(10, 6))
plt.bar(df.index, df['Profit'], color='skyblue')
plt.xlabel('Decision Combination Index')
plt.ylabel('Profit')
plt.title('Profit for Different Decision Combinations')
plt.xticks(rotation=90)
plt.show()# 决策影响图
for i, decision in enumerate(['D1', 'D2', 'C', 'R']):plt.figure(figsize=(10, 6))plt.bar(df.index, df['Profit'] * (df[decision] == 1).astype(int), label=f'{decision} = 1')plt.bar(df.index, df['Profit'] * (df[decision] == 0).astype(int), bottom=df['Profit'] * (df[decision] == 1).astype(int), label=f'{decision} = 0')plt.xlabel('Decision Combination Index')plt.ylabel('Profit')plt.title(f'Impact of {decision} on Profit')plt.legend()plt.xticks(rotation=90)plt.show()# 敏感性分析图
sensitivity_params = ['c1', 'c2', 's', 'l', 'r']
for param in sensitivity_params:values = np.linspace(0.5, 1.5, 10) * params[param]profits_sensitivity = [calculate_profit(1, 1, 1, 1, {**params, param: value}) for value in values]plt.figure(figsize=(10, 6))plt.plot(values, profits_sensitivity, marker='o', label=f'Sensitivity to {param}')plt.xlabel(f'{param} Value')plt.ylabel('Profit')plt.title(f'Sensitivity Analysis for {param}')plt.legend()plt.grid(True)plt.show()

图表说明:

  1. 成本与收益分析图:展示了所有可能的决策组合下的总利润,帮助理解不同决策对利润的影响。
  2. 决策影响图:分别展示了每个决策变量(检测零配件1、检测零配件2、检测成品、拆解不合格成品)对总利润的影响。
  3. 敏感性分析图:展示了关键参数(如零配件成本、市场售价、调换损失、拆解费用)变化对总利润的影响,帮助理解哪些参数对决策影响最大。

这些图表可以帮助更直观地理解不同决策和参数变化对生产过程利润的影响,从而做出更合理的决策。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/53356.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring-@Bean的处理流程

Bean前置知识 1 需要再Configuration Class中才能被解析 2 静态Bean也就是标注在static方法上的 实例Bean标注在普通方法上的 所有的Bean在创建之前都会变成BeanDefinition,其中有这样两个属性: setFactoryMethodName:静态方法 setFactoryBeanName&…

Hive SQL基础语法及查询实践

目录 基础语法 1. 官网地址 2. 查询语句语法 基本查询(Select…From) 数据准备 (0)原始数据 (1)创建部门表 (2)创建员工表 (3)导入数据 全表和特定列查…

2024年四川省安全员B证证考试题库及四川省安全员B证试题解析

题库来源:安全生产模拟考试一点通公众号小程序 2024年四川省安全员B证证考试题库及四川省安全员B证试题解析是安全生产模拟考试一点通结合(安监局)特种作业人员操作证考试大纲和(质检局)特种设备作业人员上岗证考试大…

使用 EMQX 开源版的 Webhook 机制处理消息并存储数据

1、前言 EMQX 是一款强大的开源 MQTT 消息代理,它支持大量的连接和高吞吐量,适用于各种物联网应用。Webhook 是 EMQX 提供的扩展功能之一,用于将消息推送到外部的 HTTP 服务。在本文中,我们将介绍如何使用 EMQX 开源版的 Webhook …

蜜罐网络MHN安装过程中的坑

蜜罐网络MHN安装过程中的坑 1. 相当的资源在github上,下不下来 科学上网,直接sudo proxychains4 ./install.sh是不行的,修改不了sh脚本里面的访问 配置好proxychains4以后,直接修改系统别名: alias wgetproxychai…

Java+Swing+sqlserver学生成绩管理系统

JavaSwingsqlserver学生成绩管理系统 一、系统介绍二、系统展示1.登陆2.课程分配3.选课管理4.学生打分--教师4.查询个人成绩--学生 三、其他1.其它系统 一、系统介绍 管理员:登陆页面、课程管理、选课管理 老师:给学生打分 学生:查询个人成绩 二、系…

node.js、php、Java、python校园点餐与数据分析系统 校园食堂订餐系统(源码、调试、LW、开题、PPT)

💕💕作者:计算机源码社 💕💕个人简介:本人 八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题可以一起交流&…

日本IT编程语言对比分析-Python /Ruby /C++ /Java

在日本IT行业中,Python、Ruby、C和Java是几种广泛使用的编程语言,它们各自具有独特的优势和适用场景。以下是对这四种编程语言的对比分析: 1. Python 优势: 简洁易读:Python的语法简洁清晰,易于学习和使用…

五,Spring Boot中的 Spring initializr 的使用

五,Spring Boot中的 Spring initializr 的使用 文章目录 五,Spring Boot中的 Spring initializr 的使用1. 方式1:IDEA创建2. 方式2:start.spring.io 创建3. 注意事项和细节4. 最后: 需要:使用 Spring initi…

电器维修系统小程序的设计

管理员账户功能包括:系统首页,个人中心,管理员管理,客服聊天管理,基础数据管理,公告管理,新闻信息管理 微信端账号功能包括:系统首页,新闻信息,我的 开发系…

OpenCV绘图函数(15)图像上绘制矩形函数 rectangle()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 绘制一个简单的、粗的或填充的直立矩形。 这个函数 cv::rectangle 绘制一个矩形轮廓或一个填充的矩形,其两个相对的顶点分别是 pt1 和…

Arcgis字段计算器:随机生成规定范围内的数字

选择字段计算器在显示的字段计算器对话框内,解析程序选择Python,勾选上显示代码块, 半部分输入: import random; 可修改下半部分输入: random.randrange(3, 28) 表示生成3-28之间的随机数 字段计算器设置点击确定…

Java+Swing可视化图像处理软件

JavaSwing可视化图像处理软件 一、系统介绍二、功能展示1.图片裁剪2.图片缩放3.图片旋转4.图像灰度处理5.图像变形6.图像扭曲7.图像移动 三、系统实现1.ImageProcessing.java 四、其它1.其他系统实现 一、系统介绍 该系统实现了图片裁剪、缩放、旋转、图像灰度处理、变形、扭曲…

[Go]-抢购类业务方案

文章目录 要点:1. 抢购/秒杀业务的关键挑战2. 技术方案3.关键实现点4.性能优化建议5.其他考虑因素 细节拆分:1. **高并发处理**2.**限流与防护**3.**库存控制**4. **异步处理**5. **数据一致性**6. **常用架构设计**7. **代码示例**8. 进一步优化9. 注意…

谈一谈MVCC

一 MVCC的定义 MVCC(Multi-Version Concurrency Control,多版本并发控制)是一种用于数据库管理系统(DBMS)中的并发控制方法,它允许数据库读写操作不加锁地并发执行,从而提高了数据库系统的并发性…

苹果手机突然黑屏打不开怎么办?

苹果手机作为市场上备受欢迎的智能手机之一,其稳定性和流畅性一直备受赞誉。然而,偶尔遇到手机突然黑屏无法打开的情况,也会让不少用户感到困扰。今天,我们就来详细探讨一下苹果手机突然黑屏打不开的解决方法,帮助大家…

echarts 水平柱图 科技风

var category [{ name: "管控", value: 2500 }, { name: "集中式", value: 8000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 }, { name: "纳管", value: 3000 } ]; // 类别 var total 10000; // 数据…

【RabbitMQ之一:windows环境下安装RabbitMQ】

目录 一、下载并安装Erlang1、下载Erlang2、安装Erlang3、配置环境变量4、验证erlang是否安装成功 二、下载并安装RabbitMQ1、下载RabbitMQ2、安装RabbitMQ3、配置环境变量4、验证RabbitMQ是否安装成功5、启动RabbitMQ服务(安装后服务默认自启动) 三、安…

vue3+ts封装类似于微信消息的组件

组件代码如下&#xff1a; <template><div:class"[voice-message, { sent: isSent, received: !isSent }]":style"{ backgroundColor: backgroundColor }"click"togglePlayback"><!-- isSent为false在左侧&#xff0c;为true在右…

传输层协议UDP

本篇将主要介绍 UDP 协议&#xff0c;介绍了有关 UDP 协议的报头、协议特点、UDP 协议在操作系统中的缓冲区、UDP 协议使用的注意事项&#xff0c;以及有关 UDP 的 Socket 编程程序&#xff0c;同时重点介绍了操作系统对于 UDP 协议报文的管理。 接着介绍了有关端口号的映射。 …