当前位置: 首页 > news >正文

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名片即可

相关文章:

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

2023年数维杯国际大学生数学建模挑战赛 D题 洗衣房清洁计算 原题再现&#xff1a; 洗衣房清洁是人们每天都要做的事情。洗衣粉的去污作用来源于一些表面活性剂。它们可以增加水的渗透性&#xff0c;并利用分子间静电排斥机制去除污垢颗粒。由于表面活性剂分子的存在&#xff…...

python 两种colorbar 最大最小和分类的绘制

1 colorbar 按照自定义的最值绘制 归一化方法使用Normalize(vmin0, vmax40.0) import numpy as np import matplotlib as mpl import matplotlib.pyplot as plt import matplotlib.cm as cm import matplotlib.colors as mcolors from matplotlib import rcParams from matplot…...

Linux-基础IO

&#x1f30e;Linux基础IO 文章目录&#xff1a; Linux基础IO C语言中IO交互       常用C接口         fopen         fputs         fwrite         fgets 当前路径       三个文件流 系统文件IO       open函数     …...

202006青少年软件编程(Python)等级考试试卷(二级)

第 1 题 【单选题】 以下程序的运行结果是&#xff1f;&#xff08; &#xff09; l ["兰溪","金华","武义","永康","磐安","东阳","义乌","浦江"]for s in l:if"义"in s:print(…...

【LeetCode】每日一题:2244.完成所有任务需要的最少轮数

给你一个下标从 0 开始的整数数组 tasks &#xff0c;其中 tasks[i] 表示任务的难度级别。在每一轮中&#xff0c;你可以完成 2 个或者 3 个 相同难度级别 的任务。 返回完成所有任务需要的 最少 轮数&#xff0c;如果无法完成所有任务&#xff0c;返回 -1 。 英文原题&#xf…...

百度文心一言 java 支持流式输出,Springboot+ sse的demo

参考&#xff1a;GitHub - mmciel/wenxin-api-java: 百度文心一言Java库&#xff0c;支持问答和对话&#xff0c;支持流式输出和同步输出。提供SpringBoot调用样例。提供拓展能力。 1、依赖 <dependency> <groupId>com.baidu.aip</groupId> <artifactId…...

59.基于SSM实现的网上花店系统(项目 + 论文)

项目介绍 本站是一个B/S模式系统&#xff0c;网上花店是在MySQL中建立数据表保存信息&#xff0c;运用SSMVue框架和Java语言编写。并按照软件设计开发流程进行设计实现充分保证系统的稳定性。系统具有界面清晰、操作简单&#xff0c;功能齐全的特点&#xff0c;使得基于SSM的网…...

什么是字节码?

字节码&#xff08;Bytecode&#xff09;是Java虚拟机&#xff08;JVM&#xff09;能够理解和执行的中间代码。Java源代码首先编译成字节码文件&#xff08;扩展名为 .class&#xff09;&#xff0c;而不是直接编译成特定机器的机器码。字节码具有以下特点&#xff1a; 平台无…...

C++ JWT的使用

接入sdk需要使用JWT加密参数&#xff0c;做个记录以备后查 #include <iostream> #include <jwt-cpp/jwt.h> int main() { // 设置JWT的密钥&#xff08;对于HS256&#xff09; std::string secret_key "your-256-bit-secret"; // 创建一个新的JW…...

SpringBoot内置插件的使用(jackson和lombok)

文章目录 引言I lombok(自动为属性生成构造器)II jacksonsee also引言 idea正式版2021.2.2 已经捆绑安装jackson和lombok插件 I lombok(自动为属性生成构造器) Lombok能通过注解的方式,在编译时自动为属性生成构造器、getter/setter、equals、hashcode、toString方法。 htt…...

Franz Electron + React 源码启动运行填坑指南

环境要求 安装miniconda python 环境electron/rebuild用得着&#xff0c;miniconda 默认自带的 python 是 3.11 版本&#xff0c;比较新&#xff1b; 安装virsual studio 2019 要把C桌面相关的都安装了&#xff0c;大概需要20G&#xff0c;不要安装到 C 盘&#xff0c;都安装到…...

网络安全法中关于网络信息的保护和监管,有哪些规定?

网络安全法作为我们数字时代的重要法律保障&#xff0c;对于网络信息的保护和监管有着明确且详细的规定。这些规定不仅体现了国家对于网络安全的重视&#xff0c;也为我们每个人在数字世界中提供了坚实的法律屏障。 首先&#xff0c;我们来看一个关于网络运营者主体责任的案例。…...

前端XHR请求数据

axios封装了XHR(XMLHttpRequest) 效果 项目结构 Jakarta EE9&#xff0c;Web项目。 无额外的maven依赖 1、Web页面 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title&…...

利用香港多IP服务器优化网站访问速度的关键策略?

利用香港多IP服务器优化网站访问速度的关键策略? 随着数字化时代的不断发展&#xff0c;网站的全球访问速度成为企业吸引用户、提升竞争力的重要因素。特别对于跨国企业而言&#xff0c;如何确保全球用户都能享受到稳定快速的访问体验显得尤为重要。在这一背景下&#xff0c;…...

如何快速将视频做成二维码?扫描二维码播放视频的制作方法

视频二维码的用途越来越多&#xff0c;比如常见的有产品展示、企业宣传、教程说明、个人展示等都可以生成二维码&#xff0c;通过扫码在手机或者其他设备上预览内容&#xff0c;从而提升其他人获取视频的速度&#xff0c;实现内容的快速分享。 对于有制作视频二维码需求的小伙…...

使用python开发的闭运算调试器

使用python开发的开运算调试器 简介效果代码 简介 用来调试闭运算效果的小工具&#xff0c;滑动条可以控制滤波核的大小&#xff0c;用来查看不同滤波核下的闭运算效果。 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QHBoxLayou…...

一例Phorpiex僵尸网络变种的分析

概述 这是一例Phorpiex僵尸网络变种&#xff0c;通过NSIS打包&#xff0c;加载恶意dll(Flaminius.dll)&#xff0c;读取dat文件&#xff08;Preoral.dat&#xff09;&#xff0c;在内存解密并解压缩出一个Pe&#xff0c;创建同名傀儡进程并注入。通过可移动存储介质传播&#…...

PDF文件转换为CAD的方法

有时候我们收到一个PDF格式的设计图纸&#xff0c;但还需要进行编辑或修改时&#xff0c;就必须先将PDF文件转换回CAD格式。分享两个将PDF转换回CAD的方法&#xff0c;一个用到在线网站&#xff0c;一个用到PC软件&#xff0c;大家根据情况选择就可以了。 ☞在线CAD网站转换 …...

Java为什么会成为现在主流的编程语言

Java为什么会成为现在的主流语言 前言一、Java语言概述Java是什么为什么大多数人会选择从事Java为什么从事Java的工作者数量从年递减 二、Java语言的特点简单性面向对象分布式&#xff08;微服务&#xff09;健壮性安全性体系结构中立可移植性解释型高性能多线程动态性 三、Jav…...

动手学深度学习16 Pytorch神经网络基础

动手学深度学习16 Pytorch神经网络基础 1. 模型构造2. 参数管理1. state_dict()2. normal_() zeros_()3. xavier初始化共享参数的好处 3. 自定义层4. 读写文件net.eval() 评估模式 QA 1. 模型构造 定义隐藏层–模型结构定义前向函数–模型结构的调用 import torch from torch…...

前端无样式id或者class等来定位标签

目录&#xff1a; 1、使用背景2、代码处理 1、使用背景 客户使用我们产品组件&#xff0c;发现替换文件&#xff0c;每次替换都会新增如下的样式&#xff0c;造就样式错乱&#xff0c;是组件的文件&#xff0c;目前临时处理的话就是替换文件时删除新增的样式&#xff0c;但是发…...

机器人工具箱学习(三)

一、动力学方程 机器人的动力学公式描述如下&#xff1a; 式中&#xff0c; τ \boldsymbol{\tau} τ表示关节驱动力矩矢量&#xff1b; q , q ˙ , q \boldsymbol{q} ,\; \dot{\boldsymbol { q }} ,\; \ddot{\boldsymbol { q }} q,q˙​,q​分别为广义的关节位置、速度和加速…...

华为OD机试 - CPU算力分配(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…...

web前端框架设计第八课-表单控件绑定

web前端框架设计第八课-表单控件绑定 一.预习笔记 1.v-model实现表单数据双向绑定 2.搜索数据的实现 3.全选案例实现1—JQ方法 4.单选案例实现 5.数据级联&#xff08;二级级联&#xff09; 6.v-model中的修饰符 二.课堂笔记 三.课后回顾 –行动是治愈恐惧的良药&#xff0c…...

这三个网站我愿称之为制作答辩PPT的神

很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT可以根据以下分为以下几部分来写。 1.研究的背景和…...

flutter开发实战-实现多渠道打包及友盟统计(亲测有效)

flutter开发实战-实现多渠道打包及友盟统计&#xff08;亲测有效&#xff09; 最近开发过程中&#xff0c;需要引入友盟进行统计服务。友盟统计还需要区分不同渠道的打开应用的情况&#xff0c;所以需要处理多渠道打包的问题。 一、引入友盟统计 在工程的pubspec.yaml中引入…...

JavaScript-JSON对象

JSON格式 JSON&#xff08;JavaScript Object Notation, JS对象简谱&#xff09;是一种轻量级的数据交换格式。它基于ECMAScript&#xff08;European Computer Manufacturers Association, 欧洲计算机协会的一个子集&#xff0c;采用完全独立于编程语言的文本格式来存储和表示…...

【C语言】自定义类型之---结构体超详解(结构体的定义使用、指针结构体,内存对齐,......代码详解)

目录 前言&#xff1a; 一&#xff1a;结构体 1.1&#xff1a;什么是结构体&#xff1f; 1.2&#xff1a;结构体类型的声明 1.3&#xff1a;结构体变量的定义 1.4&#xff1a;结构体的内存对齐 1.5&#xff1a;结构体传参 二&#xff1a;位段 2.1&#xff1a;位段是什…...

【完美恢复】修复计算机中丢失emp.dll的多个详细方法

最近&#xff0c;在尝试运行某款游戏时&#xff0c;我遭遇了一个令人头痛的问题——“emp.dll文件丢失”。这个错误通常意味着游戏的某个关键文件没有被正确加载或已损坏。以下是我解决问题的步骤和一些心得体会&#xff0c;希望对遇到类似问题的玩家们有所帮助。 emp.dll是一…...

暗黑4可以搬砖吗?暗黑4怎么搬砖 搬砖攻略

暗黑4可以搬砖吗&#xff1f;暗黑4怎么搬砖 搬砖攻略 暗黑破坏神4属于是暴雪旗下一款经典游戏IP&#xff0c;在全世界有着广泛的玩家群体&#xff0c;更是在今年暴雪国服宣布回归之后&#xff0c;吸引了一大批新玩家加入。今天小编就为大家带来暗黑4的详细搬砖教程。 现在我们…...