2023年数维杯国际大学生数学建模挑战赛D题洗衣房清洁计算解题全过程论文及程序

2023年数维杯国际大学生数学建模挑战赛

D题 洗衣房清洁计算

原题再现:

  洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性,并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在,洗衣粉可以发挥其双重功能。表面活性剂分子的一端是亲脂性的,它吸引污垢并排斥水,而另一端是亲水性的,吸引水分子。当洗衣粉倒入水中时,表面活性剂分子的亲脂性部分强烈粘附在任何未充满水的表面,例如被洗涤的物体表面(由于身体或织物表面)。同时,亲水部分排斥油性物质。它削弱了维持水分子结合的分子间力(导致水形成液滴的力,就像包裹在弹性膜中一样),使单个分子渗透到待清洁物体的表面和污垢颗粒之间。因此,可以说表面活性剂降低了水的表面张力。洗衣机或手摩擦的机械作用会导致表面上被表面活性剂分子包围的污垢颗粒脱落,并且污垢颗粒粘附在表面活性剂的亲脂性部分。这会导致在冲洗阶段清除仍悬浮在物体表面的污垢颗粒。
  在实践中,从小规模的家庭经营到酒店和专业机构的专业经营,需要考虑的问题是:如何以更低的成本使洗衣房干净整洁?这个看似简单的人生问题包含着深刻的数学原理。请建立一个适当的数学模型来解决以下问题。
  1.一件附着污垢的衣服,如果给定污垢的量和可用的水量,并且污垢在第k次洗涤时在水中的溶解度为A_k,其中A_1=0.80,A_k=0.5a_k-1,k=2,3,L。在不考虑其他因素的情况下,清洁它的最佳方法是什么?给出关于洗涤次数和每次用水量的最优解,并讨论a_k、初始污垢量和可用水量对目标的影响。
  2.假设每次洗涤所需时间相同,且可用水量不受限制,则最终污垢残留量应不超过初始污垢量的千分之一,其他条件与问题1类似。提供最具时间效率的清洁计划,并分析a_k和初始污垢量对最佳解决方案的影响。
  3.有几件衣服上的污垢类型和数量如表1所示。现有的十种洗涤剂,各种洗涤剂在污垢上的溶解度,以及洗涤剂的单价如表2所示。如果水费是每吨3.8元,尽量既节省成本又有一个好的清洁计划。
  4.有几种不同材料的衣服,每种衣服上的污垢类型和数量如表3所示。考虑到材料、颜色等方面的差异,有些衣服不能混合洗涤,如表4所示。在与问题2相同的条件下,尝试提供具有成本效益和高效的清洁计划。
  注:本次比赛只考虑传统的水洗方式。

  术语定义:
  1.溶解度a_k:表示在第k次洗涤过程中,等量洗涤剂溶解的污垢相对于初始污垢量的比例。
  2.初始污垢量:表示清洁前衣服上的污垢量,单位为克。

整体求解过程概述(摘要)

  随着生活水平的提高,人们对生活质量的要求不断提高。洗衣是日常生活中不可或缺的一部分,因此优化洗衣计划成为人们高度关注的话题。本文旨在利用动态规划模型和迭代方法对洗衣计划进行数学建模研究,以提高洗衣效率,减少资源浪费,最终实现节能环保目标[1]。
  基于问题一,清洁次数和每次用水量的最佳解决方案是什么?这涉及到污垢的溶解度和所用水量之间的平衡。通过建立动态规划模型和迭代方法,以及使用Python求解器来解决清洁附着污垢的衣服的最佳方法问题,我们还可以讨论污垢溶解度、初始污垢量和可用水对目标的影响。通过该模型,我们可以发现最佳的清洗方法是每次用0.20吨水清洗两次。
  基于问题二,我们需要找到最省时的清洁计划,以确保最终残留物不超过初始污垢量的千分之一。为了解决这个问题,我们建立了一个指数衰减模型,并使用Python绘制了洗涤次数和时间之间的关系曲线和点集图。我们确定最小清洗次数为6次,最短清洗时间尚待确定。此外,我们可以从洗涤次数与时间之间的关系曲线和点集图推断,影响洗涤时间的主要因素是溶解度。初始污垢量不影响计算,因为在指数衰减模型中,污垢去除的比例与初始污垢量无关。
  基于问题三,以及表1和表2的数据,我们需要找到一种能够有效清洁衣服上污垢并节省成本的洗涤剂组合。因此,我们可以使用多目标规划模型来解决这个问题。通过使用Matlab生成的约束方法和成本效益分析图,我们可以发现洗涤剂的最佳组合是洗涤剂1和洗涤剂3。当剩余污垢为0时,最低成本为667.72,选择19.13克洗涤剂1和150.96克洗涤剂3;当剩余污垢为原始污垢量的千分之一时,最低成本为667.05,选择19.11克洗涤剂1和150.81克洗涤剂3。
  根据问题四,我们面对的是由不同材料制成的衣服,每种衣服都有不同类型和数量的污垢,如表3所示。由于材料、颜色等方面的差异,有些衣服不能一起洗,如表4所示。因此,我们需要使用线性规划模型制定一个经济高效的清洁计划,以优化洗涤剂的选择和使用、洗衣机运行时间和温度设置,从而最大限度地降低清洁成本和资源消耗。我们将使用Python对表3和表4进行数据预处理和分析,以制定分类清洁计划。使用这些方法,我们可以设计出一个经济高效的清洁方案,最佳的清洁剂组合是清洁剂6、清洁剂7和清洁剂8,相应的成本为0.33元。

问题分析:

  问题一分析
  对于问题1:考虑到可用的污垢和水的数量,以及污垢在水中的溶解度随着洗涤时间的变化而变化,如何找到最佳的清洁方法。根据所提供的信息,污垢在水中的溶解度与洗涤次数成比例变化,最初为0.80,之后每次洗涤为前一次洗涤的一半。我们通过建立动态规划模型来解决清洁附着污垢的衣服的最佳清洁方式问题,同时讨论污垢溶解、初始污垢量和可用水对目标的影响。

  问题二分析
  对于问题2:该问题需要一个最节省时间的清洁计划,并分析清洁计划中的参数和初始污垢体积对最佳解决方案的影响。我们采用指数衰减模型和Python编程语言软件来选择最小的清洗次数,以确定最短的清洗时间。

  问题三分析
  对于问题3:根据表1和表2中的信息,我们可以选择最合适的洗涤剂来清洁每种类型的污垢。然后我们可以计算每个清洁方案的成本,包括洗涤剂和水费。接下来,我们比较不同清洁方案的成本,以找到节省成本最高的清洁解决方案。最后,我们可以制定一个清洁时间表,以确保衣服能够有效清洁,同时节省成本。

  问题四分析
  对于问题4:我们需要分析不同衣服的材质、颜色和污垢,并结合表3和表4中的信息。然后,在问题2下,制定一个具有成本效益的清洁计划,以确保不同的衣物方法有效且具有成本效益。这可能包括分别洗涤不同材料和颜色的衣服,以及选择合适的洗涤剂和洗涤程序。它还需要考虑在清洁过程中对衣服的保护,以避免损坏或褪色。

模型假设:

  1.每次洗涤后,残余污垢的溶解作为给定的减少函数而减少。
  2.理论上,可以进行无限制的洗涤,直到达到某种效果。
  3.假设使用的每种水都能达到其最大的洗涤效率,而不考虑水的回收。
  4.最终污垢残留量应为初始污垢量的千分之一。
  5.假设不同类型的污垢对不同清洁剂的反应是特定的,即某些清洁剂对某些类型的污垢具有更好的清洁效果。
  6.假设清洁过程中的环境条件(如温度、湿度)和操作条件(如清洁时间、机器类型)是恒定的,不会影响清洁效果。

模型的建立与求解整体论文缩略图

在这里插入图片描述
在这里插入图片描述

全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

程序代码:

import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False # 计算污垢在水中的溶解度
def calculate_dissolution(a1, k):
ifk == 1: return a1
else: return 0.5 * calculate_dissolution(a1, k- 1)
# 计算不同清洗次数下的溶解度
def calculate_dissolution_for_cleans(cleans, a1): result = []
for c in cleans: result.append(calculate_dissolution(a1, c))
return result
# 分段函数
defpiecewise_function(x, a1): y = np.where(x < 2, a1, calculate_dissolution(a1, 2))
for i in range(2, 11): y = np.where(x == i, calculate_dissolution(a1, i), y)
return y
# 绘制曲线
defplot_curve(a1): cleans = np.arange(1, 11)
dissolutions = calculate_dissolution_for_cleans(cleans, a1) x = np.arange(1, 11, 0. 1)
y = piecewise_function(x, a1)
plt.plot(cleans, dissolutions, 'ro', label='清洗次数')
plt.plot(x, y, label=' plt.xlabel(' ')
plt
.ylabel(
'污垢溶解度')
plt.title(' plt.legend()
plt.show()
# 主程序
a1 = 0.80
plot_curve(a1)
import numpy as np
import matplotlib.pyplot as plt
def g(a k 1, x_k): return 0.5 * a_k_ 1
def calculate_dissolution(a_ 1, x, W): n = len(x)
a = [a_ 1]
for k in range(2, n+1):
a_k = g(a[k-2], x[k- 1])
a. append(a_k)
return a
def calculate_ cleaning_ effect(a , x ) :
E = np.prod(a)
return E
defplot_curve(a , x) :
plt.plot(x , a, 'b-' , label= 'Dissolution')
plt.xlabel('Water Usage')
plt.ylabel('Dissolution')
plt.title( 'Dissolution vs Water Usage')
plt. legend()
plt.show()
# Example usage
a_ 1 = 0.80
x = [0. 1, 0.2, 0.3, 0.4, 0.5]
W = 0.5
a = calculate_dissolution(a_ 1, x, W)
E = calculate_cleaning_effect(a , x)
plot_curve(a , x)
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams[ 'font.sans-serif'] = [ 'SimHei']
plt.rcParams[ ' axes. unicode_ minus' ] = False
# Define parametersfor theformula
ak = 0.5
t = 1
# Calculate the minimum number ofwashings n_min = np.ceil(np.log(1000) / (ak * t))
# Generate the time range
time = np.linspace(0, 10, 100)
# Calculate the curve value
curve = np.exp(-ak * n_min * time)
# Plot the curve plt.plot(time, curve)
plt. xlabel( 'Washing Time (Unit: Time Unit) ' )
plt.ylabel('Washing Frequency')
plt.title( 'Relationship between Washing Frequency and Time')
plt.legend([ 'Change of Washing Frequency over Time'])
plt.show()
import numpy as np
import matplotlib.pyplot as plt
def shortest_cleaning_time(soil, water_limit):
# 初始化数组
n = len(soil) + 1 # 增加一次不洗涤的情况
dp_time = np.zeros(n) + np.inf # 设置初始值为无穷大
dp_time[0] = 0 # 不洗涤的时间为0
dp_count = np.zeros(n) # 记录每次洗涤的次数
# 计算每次洗涤后的时间
for i in range(1 , n) :
forj in range(water_limit + 1):
ifj >= soil[i - 1]: # 有足够的水溶解污垢
dp_time[i] = min(dp_time[i], dp_time[i - 1] + 0.5) # 0.5 为每次洗涤增
加的
时 间
dp_count[i] = dp_count[i - 1] + 1 # 记录洗涤次数
break # 不够水则跳出循环,不洗涤该次
else:
dp_time[i] = dp_time[i - 1] + 0.5 # 默认情况下,洗涤时间是前一次洗
涤
时间的 0. 5 倍
dp_count[i] = dp_count[i - 1] # 不进行洗涤,洗涤次数不变
return dp_time, dp_count # 返回最节约时间的清洁计划和相应的洗涤次数
soil = np.array([1, 2, 3, 4, 5]) # 示例污垢量
water_limit = 10 # 示例可用水量
times, counts = shortest_ cleaning_time(soil, water_limit)
# 绘制散点图
plt.scatter(range(len(times)) , times, color= 'blue')
plt. scatter(range(len( counts)) , counts, color= 'red')
plt. xlabel( 'Wash Time' )
plt.ylabel( 'Time/Count')
plt.title( 'Shortest Cleaning Time Plan')
plt.show()
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

现代加密技术(对称和非对称加密)

1.分类 现代加密技术&#xff1a;对称和非对称加密&#xff0c;对称加密即共享密钥&#xff0c;非对称加密是公钥加密算法。 2.基础总结 AES是什么算法&#xff1f; 分组加密算法&#xff0c;对称加密算法AES的分组长度是&#xff1f;固定128位AES密钥长度是多少&#xff1f;支…

(五)Spring教程——Spring IoC容器(上)

在Spring框架中&#xff0c;Bean的实例化和组装都是IoC容器配置元数据完成的。Spring框架提供的容器主要是基于BeanFactory和ApplicationContext两个接口&#xff0c;一种是实现BeanFactory接口的简单容器&#xff0c;另一种是实现ApplicationContext接口的高级容器。 BeanFact…

Qwen学习笔记3:Qwen模型调用外部API实现模型增强(openai的形式)

前言 本文记录了使用本地部署的Qwen模型&#xff0c;调用外部API实现模型的功能增强&#xff0c;非常的易用&#xff0c;大家用于开发自己的应用&#xff0c;只需要作简单的修改就可以进行使用了。 本文的代码来源视频教程&#xff1a; Qwen大模型变强了&#xff0c;通过API…

CTFshow misc

第一题1 打开图片直接就是flag 第二题0 放入010发现文件头有png 更换后缀 获得flag 第三题1 下载之后发现是bpg后缀 用在线工具转换为png获得flag 第四题 0 把六个文件后缀都改为png即可获得flag

Python 海龟画图(Turtle)命令大全

移动和绘制 forward() | fd() 使用语法&#xff1a; ​​turtle.forward(距离)​​ ​​turtle.fd(距离)​​ 参数说明: 距离 一个数字 (整数 或者 浮点) &#xff08;注&#xff1a;单位是像素&#xff09; 代码示例&#xff1a; import turtle turtle.forward(200) …

嵌入式开发十五:STM32中断系统

STM32 中断非常强大&#xff0c;几乎每个外设都可以产生中断&#xff0c;因此这里我们单独来介绍它&#xff0c;为后面介绍外设中断做铺垫。 目录 一、中断的介绍 1.1 中断的概念 1.2 中断优先级: 1.3 中断的嵌套 1.4 内部中断和外部中断 1.5 中断响应和事件响应 1.6 …

【介绍下JSON,JSON是什么?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

svn如何远程访问?

svn&#xff08;Subversion&#xff09;是一种版本控制系统&#xff0c;广泛应用于软件开发领域。它能够追踪文件和目录的变化&#xff0c;记录每个版本的修改内容&#xff0c;并允许多人协同开发。svn的远程访问功能允许开发人员可以在不同的地点访问和管理代码&#xff0c;提…

一看就会的AOP事务

文章目录 AOPAOP简介AOP简介和作用AOP的应用场景为什么要学习AOP AOP入门案例思路分析代码实现AOP中的核心概念 AOP工作流程AOP工作流程AOP核心概念在测试类中验证代理对象 AOP切入点表达式语法格式通配符书写技巧 AOP通知类型AOP通知分类AOP通知详解 AOP案例案例-测量业务层接…

springboot+vue+mybatis物业管理系统+PPT+论文+讲解+售后

快速发展的社会中&#xff0c;人们的生活水平都在提高&#xff0c;生活节奏也在逐渐加快。为了节省时间和提高工作效率&#xff0c;越来越多的人选择利用互联网进行线上打理各种事务&#xff0c;通过线上物业管理系统也就相继涌现。与此同时&#xff0c;人们开始接受方便的生活…

Nginx企业级负载均衡:技术详解系列(1)

你好呀&#xff0c;我是赵兴晨&#xff0c;文科程序员。 最近&#xff0c;我注意到关于Nginx的文章总是能吸引到异常多的流量。这让我意识到&#xff0c;或许大家对这个话题有着浓厚的兴趣。既然如此&#xff0c;我决定将更多关于Nginx的深度内容与大家分享。 在接下来的时间…

[数据集][目标检测]蕃茄核桃桔子龙眼青枣5种水果检测数据集VOC+YOLO格式270张5类别

数据集格式&#xff1a;Pascal VOC格式YOLO格式(不包含分割路径的txt文件&#xff0c;仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数)&#xff1a;270 标注数量(xml文件个数)&#xff1a;270 标注数量(txt文件个数)&#xff1a;270 标注类别…