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

示例代码:

import numpy as np
import pandas as pd# 参数设定
params = {'m': 8,  # 零配件数量'n': 2,  # 半成品数量'p': [0.10, 0.10, 0.10, 0.10, 0.10, 0.10, 0.10, 0.10],  # 零配件次品率'c': [2, 8, 12, 2, 8, 12, 8, 12],  # 购买单价'd': [1, 1, 2, 1, 1, 2, 1, 2],  # 检测成本'a': [8, 8],  # 装配成本'pf': 0.10,  # 成品次品率's': 200,  # 市场售价'l': 40,  # 调换损失'r': 6  # 拆解费用
}# 决策变量
decisions = [0, 1]# 利润计算函数
def calculate_profit(D, C, R, params):cost_parts = sum(params['c'][i] + params['d'][i] * D[i] for i in range(params['m']))cost_subassemblies = sum(params['a'][j] + params['d'][j + params['m']] * C[j] for j in range(params['n']))revenue = params['s'] * (1 - params['pf'])cost_rework = params['r'] * R * params['pf']loss_replacement = params['l'] * params['pf']profit = revenue - cost_parts - cost_subassemblies - cost_rework - loss_replacementreturn profit# 遍历所有可能的决策组合
best_profit = -np.inf
best_decision = None
for D in itertools.product(decisions, repeat=params['m']):for C in itertools.product(decisions, repeat=params['n']):for R in decisions:profit = calculate_profit(D, C, R, params)if profit > best_profit:best_profit = profitbest_decision = (D, C, R)print(f"Best Decision: {best_decision}, Maximum Profit: {best_profit}")

可视化代码:

import numpy as np
import matplotlib.pyplot as plt
import itertools
import pandas as pd# 参数设定
params = {'m': 8,  # 零配件数量'n': 2,  # 半成品数量'p': [0.10, 0.10, 0.10, 0.10, 0.10, 0.10, 0.10, 0.10],  # 零配件次品率'c': [2, 8, 12, 2, 8, 12, 8, 12],  # 购买单价'd': [1, 1, 2, 1, 1, 2, 1, 2],  # 检测成本'a': [8, 8],  # 装配成本'pf': 0.10,  # 成品次品率's': 200,  # 市场售价'l': 40,  # 调换损失'r': 6  # 拆解费用
}# 决策变量
decisions = [0, 1]# 利润计算函数
def calculate_profit(D, C, R, params):cost_parts = sum(params['c'][i] + params['d'][i] * D[i] for i in range(params['m']))cost_subassemblies = sum(params['a'][j] + (params['d'][params['m'] + j] if j < len(params['d']) - params['m'] else 0) * C[j] for j in range(params['n']))revenue = params['s'] * (1 - params['pf'])cost_rework = params['r'] * R * params['pf']loss_replacement = params['l'] * params['pf']profit = revenue - cost_parts - cost_subassemblies - cost_rework - loss_replacementreturn profit# 遍历所有可能的决策组合
profits = []
decision_combinations = list(itertools.product(decisions, repeat=params['m'] + params['n'] + 1))
for combo in decision_combinations:D = combo[:params['m']]C = combo[params['m']:params['m'] + params['n']]R = combo[-1]profit = calculate_profit(D, C, R, params)profits.append(profit)# 转换为DataFrame以便可视化
df = pd.DataFrame(decision_combinations, columns=[f'D{i}' for i in range(params['m'])] + [f'C{j}' for j in range(params['n'])] + ['R'])
df['Profit'] = profits# 绘制决策变量对利润的影响图
plt.figure(figsize=(12, 8))
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()# 敏感性分析图
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]*params['m'], *[1]*params['n'], 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. 敏感性分析图:展示了关键参数(如零配件成本、市场售价、调换损失、拆解费用)变化对总利润的影响,帮助理解哪些参数对决策影响最大。

原文链接:https://www.cnblogs.com/qimoxuan/articles/18401499

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

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

相关文章

《python语言程序设计》第8章第12题生物信息:找出基因,生物学家使用字母A C T和G构成字符2串建模一个基因组(上)

草稿一、用单一方法遍历文本 9.1代码 genome_text TTATGTTTTAAGGATGGGGCGTTAGTTdef div_word(word_to_judge):len_num len(word_to_judge)save_word ""if len_num % 3 0:print("This word is valid")if save_word.find("ATG") "ATG&qu…

以太网--TCP/IP协议(二)

上文中讲述了IP协议&#xff0c;本文主要来讲一下TCP协议。 TCP协议 &#xff08;1&#xff09;端到端通信 直接把源主机应用程序产生的数据传输到目的主机使用这 些数据的应用程序中&#xff0c;就是端到端通信。 &#xff08;2&#xff09;传输层端口 公认端口&#xff0…

统计学习方法与实战——统计学习方法之感知机

感知机 感知机三要素分析模型策略损失函数选择 算法原始形式对偶形式 相关问题 例子iris数据集分类实战数据集查看 显示结果sklearn 实战感知机 习题解答习题2.1解题步骤反证法 习题2.2习题2.3凸壳线性可分线性可分证明凸壳不相交证明充分性&#xff1a;凸壳不相交\Rightarrow⇒…

【优化】Nginx 配置页面请求不走缓存 浏览器页面禁用缓存

【优化】Nginx 配置页面请求不走缓存 禁用缓存 目录 【优化】Nginx 配置页面请求不走缓存 禁用缓存 对所有请求禁用缓存 对特定location禁用缓存 注意事项 全局禁用缓存 要配置Nginx使其不缓存内容&#xff0c;通常是指禁止浏览器缓存响应的内容&#xff0c;或者是在代理…

Java语言程序设计基础篇_编程练习题**17.21 (十六进制编辑器)

目录 题目&#xff1a;**17.21 (十六进制编辑器) 代码示例 结果展示 题目&#xff1a;**17.21 (十六进制编辑器) 编写一个 GUI 应用程序&#xff0c;让用户在文本域输入一个文件名&#xff0c;然后按回车键&#xff0c;在文本域显示它的十六进制表达形式。用户也可以修改十六…

HarmonyOS 是如何实现一次开发多端部署

一次开发多端部署遇到的几个关键问题 为了实现“一多”的目标&#xff0c;需要解决如下三个基础问题&#xff1a; 问题1&#xff1a;页面如何适配 不同设备间的屏幕尺寸、色彩风格等存在差异&#xff0c;页面如何适配。 问题2&#xff1a;功能如何兼容 不同设备的系统能力…

glsl着色器学习(九)屏幕像素空间和设置颜色

在上一篇文章中&#xff0c;使用的是裁剪空间进行绘制&#xff0c;这篇文章使用屏幕像素空间的坐标进行绘制。 上一篇的顶点着色器大概是这样子的 回归一下顶点着色的主要任务&#xff1a; 通常情况下&#xff0c;顶点着色器会进行一系列的矩阵变换操作&#xff0c;将输入的顶…

【笔记-流程记录】从零开始做一个人形怪兽(建模阶段)

大型 1.第一步还是找素模&#xff0c;打开材质球&#xff0c;吸管点一下&#xff0c;就会出现素模的贴图&#xff0c;一共有四个 比如&#xff0c;点进去第一个&#xff0c;再点漫反射&#xff0c;再点psd就会得到相应的贴图 2.然后我们依然是面片然后插入参考图 如果透视窗口…

KEIL中编译51程序 算法计算异常的疑问

KEIL开发 51 单片机程序 算法处理过程中遇到的问题 ...... by 矜辰所致前言 因为产品的更新换代&#xff0c; 把所有温湿度传感器都换成 SHT40 &#xff0c;替换以前的 SHT21。在 STM32 系列产品上的替换都正常&#xff0c;但是在一块 51 内核的无线产品上面&#xff0c;数据…

高逼格、有难度、较前沿的商业计划书撰写策略

正在创业的老板们注意啦&#xff01;在实施创业计划之前&#xff0c;一定要先写一份商业计划书。它不仅是获得投资的关键&#xff0c;更是梳理创业思路、明确发展方向的重要工具。通过撰写商业计划书&#xff0c;你可以更清晰地了解市场需求、竞争状况、产品定位等关键信息&…

腾讯地图SDK Android版开发 10 InfoWindow

腾讯地图SDK Android版开发 10 InfoWindow 前言介绍默认风格自定义样式实现方式交互操作播放信息窗口的动画开启多窗口模式 相关类和接口默认样式MarkerOptions 类Marker 类TencentMap类TencentMap.OnInfoWindowClickListener 接口类 自定义样式TencentMap 类TencentMap.InfoWi…

SealSuite 一站式 IT 管理与办公安全解决方案,助力出海企业夯实数字化底座

数字化办公时代&#xff0c;企业升级 IT 基础设施&#xff0c;已不再是选择题&#xff0c;而是必答题。 数字化办公时代&#xff0c;企业为何要升级 IT 基础设施&#xff1f; 随着时代变化与科技进步&#xff0c;人们的工作方式也发生了巨大变化。如今&#xff0c;远程办公、全…

C#编程语言及.NET 平台快速入门指南

Office Word 不显示 Citavi 插件&#xff0c;如何修复&#xff1f;_citavi安装后word无加载项-CSDN博客 https://blog.csdn.net/Viviane_2022/article/details/128946061?spm1001.2100.3001.7377&utm_mediumdistribute.pc_feed_blog_category.none-task-blog-classify_ta…

重生奇迹MU老大哥剑士职业宝刀未老

重生奇迹MU中&#xff0c;老大哥剑士职业一直以来备受玩家们的喜爱。这个职业不仅拥有强大的攻击力、防御力和战斗技巧&#xff0c;而且还能够通过使用各种宝刀来增强自身的战斗能力。即便经过了多年的沉淀&#xff0c;老大哥剑士依然是一名宝刀未老的男人&#xff0c;仍然能够…

Java项目: 基于SpringBoot+mybatis+maven学科竞赛管理系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven学科竞赛管理系统 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美观、操作简…

性能测试经典案例解析——政务查询系统

各位好&#xff0c;我是 道普云 一站式云测试SaaS平台。一个在软件测试道路上不断折腾十余年的萌新。 欢迎关注我的主页 道普云 文章内容具有一定门槛&#xff0c;建议先赞再收藏慢慢学习&#xff0c;有不懂的问题欢迎私聊我。 希望这篇文章对想提高软件测试水平的你有所帮…

linux 安装sar工具,centos7-sar工具的安装过程及其简单应用(1)

10时02分44秒 bond0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 10时02分44秒 vnet3 1.00 8.50 0.19 5.52 0.00 0.00 0.00 10时02分44秒 eth0 19.00 11.50 2.83 2.31 …

通俗易懂理解Hive四种排序

前言 Hive的四种排序包括Sort By、Order By、Distribute By和Cluster By。有关这四种排序的区别&#xff0c;在大数据面试中可能会经常被问到&#xff0c;在我们很多人的实际应用中可能最常用的就是全局排序order by&#xff0c;因此对于其他几个排序理解并不准确&#xff0c;…

vue3集成sql语句编辑器

使用的是codemirror 安装 pnpm add codemirror vue-codemirror --savepnpm add codemirror/lang-sqlpnpm add codemirror/theme-one-dark使用 <template><codemirror v-model"configSql" placeholder"Code goes here..." ref"codemirrorR…