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

【2023 华数杯全国大学生数学建模竞赛】 B题 不透明制品最优配色方案设计 39页论文及python代码

【2023 华数杯全国大学生数学建模竞赛】 B题 不透明制品最优配色方案设计 39页论文及python代码

在这里插入图片描述

1 题目

B 题 不透明制品最优配色方案设计

日常生活中五彩缤纷的不透明有色制品是由着色剂染色而成。因此,不透明制品的配色对其外观美观度和市场竞争力起着重要作用。然而,传统的人工配色存在一定的局限性,如主观性强、效率低下等。因此,研究如何通过计算机方法来实现不透明制品的配色具有重要意义。

光通过物体传播有吸收、反射和透射三种方式。对于不透明制品来说,大部分光线会被其表面吸收或反射。吸收和反射的光线在经过透明度等校正后按波长分解成不同的颜色成分,形成光谱图。该光谱图通常由 400–700nm 波段的各色光组成。为简化计算,最终配色后的颜色的反射率以 20nm 为间隔的光谱数据来表示。对于不透明材料而言,吸收系数 K/散射系数 S 的比值与反射率 R 之间存在一定关系,具体请参考文献【1】《计算机配色理论及算法的研究》中的 K-M光学模型。

基于光学模型得到的颜色参数,可应用于色差的计算。通常,使用色差(不超过 1)来作为配色效果好坏的标准。色差计算方法参考文献【2】《基于 CIELAB均匀颜色空间和聚类算法的混纺测色研究》中的 CIELAB 色彩空间的总色差计算方法。其中颜色参数 L*(明度)、a*(红绿色度)和 b*(黄蓝色度)计算中出现的三刺激值 XYZ 的计算方法如下:
X = k ∫ 400 700 S ( λ ) x ( λ ) R ( λ ) d ( λ ) Y = k ∫ 400 700 S ( λ ) y ( λ ) R ( λ ) d ( λ ) Z = k ∫ 400 700 S ( λ ) z ( λ ) R ( λ ) d ( λ ) X =k \int_{400}^{700} S(\lambda) x(\lambda)R(\lambda)d(\lambda)\\ Y = k \int_{400}^{700} S(\lambda) y(\lambda)R(\lambda)d(\lambda)\\ Z = k \int_{400}^{700} S(\lambda) z(\lambda)R(\lambda)d(\lambda)\ X=k400700S(λ)x(λ)R(λ)d(λ)Y=k400700S(λ)y(λ)R(λ)d(λ)Z=k400700S(λ)z(λ)R(λ)d(λ) 

其中, S (l) 为光谱能量分布, x ( λ ) x(\lambda) x(λ), y ( λ ) y(\lambda) y(λ), z ( λ ) z(\lambda) z(λ) 为观察者光谱三刺激值, S ( λ ) S(\lambda) S(λ)分别与 x ( λ ) x(\lambda) x(λ), y ( λ ) y(\lambda) y(λ), z ( λ ) z(\lambda) z(λ) 相乘为固定值见附件 1。 R ( λ ) R(\lambda) R(λ)为光谱反射率,k值约为 0.1, d ( λ ) d(\lambda) d(λ)为测量物体反射率波长间隔,本题 d ( λ ) d(\lambda) d(λ) =20nm。

不透明制品配色问题,就是基于光学模型,设计不透明制品的配色模型。相较于人工配色,节省大量人力、物力和财力,对减少能耗具有重要意义。

针对某一不透明制品,已知红、黄、蓝 3 种着色剂在不同浓度不同波长的 K/S 值以及基底材料在不同波长下的 K/S 值,见附件 2。其中,浓度=着色剂克重/基材重量。每个着色剂的吸收系数 K/散射系数 S 的比值具有加和性,详见文献【1】《计算机配色理论及算法的研究》中的 K-M 单常数理论。现有 10 个目标样(二到三种着色剂混合制成)的 R 值,见附件 3。结果展示请保留 4 位小数。

请建立数学模型解决如下几个问题:

问题 1:请分别计算附件 2 中三种着色剂在不同波长下 K/S 与浓度的关系,并将关系式与拟合系数填写在表格中。

表 1 问题 1 相关结果数据

波长
函数关系式拟合系数函数关系式拟合系数函数关系式拟合系数
400nm
420nm
440nm
……
700nm

问题 2:请建立不透明制品配色的优化模型。在已知目标样的 R 值(附件 3)的前提下,基于光谱三刺激值加权表(附件 1)与着色剂 K/S 基础数据库(附件 2),运用优化模型配出与目标样的色差最为接近的 10 个不同配方,要求色差小于 1。

问题 3:在问题 2 的基础上,考虑成本控制和批量配色,改进配色模型。对 2kg 的基底材料进行配色,求出与目标样(附件 3)之间色差最为接近的 10 个不同配方,要求色差小于 1。色母粒单位克重价格见附件 4。

问题 4:在实际生产中,配色所需要的着色剂越少越好,基于此,在问题 3的基础上,寻找附件 3 中前 5 个样本的最优的配色方案,要求每个样本配出 5个不同的配方且色差小于 1。

提供的数据和资料:

  1. 附件 1(光谱三刺激值加权表)

  2. 附件 2(不同浓度不同波长的 K/S 值)

  3. 附件 3(10 个样品的 R 值)

  4. 附件 4(染料价格)

  5. 参考文献【1】 姜鹏飞. 计算机配色理论及算法的研究[D/OL]. 中原工学院,2016

  6. 参考文献【2】 王林吉. 基于 CIELAB 均匀颜色空间和聚类算法的混纺测色研究[D]. 浙江理工大学, 2011.

2 问题分析

2.1 问题一

这是一个线性回归问题。使用拟合模型来分析红、黄、蓝色着色剂在不同波长下K/S与浓度的关系。首先,在附件2的数据中看到红色下,浓度为0.05、0.1、0.5、1、2、3、4和5时,K/S值随浓度增加而增加。因此假设红色着色剂在不同浓度下的K/S值与浓度呈线性关系。则使用线性回归拟合模型来表示这种关系。使用简单的最小二乘法来拟合线性回归模型,找到最佳的系数a和b,使拟合曲线与实际数据的偏差最小化。

2.2 问题二

这是一个最优化问题,转化为非线性规划求解:

第一步:将表1中的光谱三刺激值加权表与表2中的基础数据库表合并,计算出材料的K/S值,并将结果保存为一个新的表4。

第二步计算色差:根据目标样的R值表附件3和新生成的表4,计算每个配方与目标样的色差。选择使用常见的色差公式,如CIEDE2000色差公式。

第三步建立优化模型:将配方作为优化变量,色差作为目标函数,建立一个最小化色差的优化模型。转化为非线性规划问题。

第四步确定约束:设置色差小于1的约束条件,确保选出的配方与目标样的色差小于1。

第五步求解优化问题:使用数学优化算法,如梯度下降法、遗传算法等,求解建立的优化问题,得到与目标样的色差最为接近的10个不同配方。

2.3 问题三

在以上问题的基础上,将配色问题转化为一个线性规划问题,即在满足色差小于1的情况下,最小化配方的总成本。具体的建模过程如下:

第一步:将表1中的光谱三刺激值加权表与表2中的基础数据库表合并,计算出每种颜色的材料的K/S值,并将结果保存为一个新的表4。第二步:计算每种颜色的配方总量:将2kg的基底材料按照每种颜色所需的比例,分配对应的配料量,得到每种颜色对应的配方总量。第三步建立优化模型:由于配方总量是连续变量,将每种颜色的配方总量作为优化变量,建立包含成本、约束条件的线性规划模型,使得在最小化成本的基础上,满足色差小于1的约束条件,如下:
min ⁡ x , y , z 60 x + 65 y + 63 z \begin{equation} \min_{x,y,z} 60x+65y+63z \end{equation} x,y,zmin60x+65y+63z

其中 x x x y y y z z z 分别表示红、黄、蓝色母粒的配方总量,单位为克。为了满足色差小于1的约束条件,需要添加约束条件:

∣ R i − R t ∣ + ∣ G i − G t ∣ + ∣ B i − B t ∣ ⩽ 1 \begin{equation} \left|R_{i}-R_{t}\right|+\left|G_{i}-G_{t}\right|+\left|B_{i}-B_{t}\right| \leqslant 1 \end{equation} RiRt+GiGt+BiBt1

x , y , z ≥ 0 x,y,z \ge 0 x,y,z0

其中 R i R_i Ri G i G_i Gi B i B_i Bi 表示第 i i i种配方与目标样的三原色, R t R_t Rt G t G_t Gt B t B_t Bt 表示目标样的三原色。上述约束条件用于确保每种配方与目标样的色差小于1。其中变量大于0表示配方总量需要为正数。

第四步:求解优化问题:使用线性规划求解方法,如单纯形法或内点法等,求解建立的线性规划模型,得到与目标样的色差最为接近的10个不同配方,并计算每个配方的总成本。

2.4 问题四

这是一个混合整数线性规划问题。将问题建模成一个混合整数规划问题。对于每个样本,需要找到5个不同的配方,其中每个配方的色差都小于1,并且总的着色剂使用量最小。因此,将配方的数量作为整数变量,每个配方中各个颜色的使用量作为连续变量。

根据第一步中的建模,得到一个混合整数线性规划模型,其中目标是最小化总的着色剂使用量,同时满足每个样本的5个配方中配方间的色差小于1的约束条件。

约束条件包括:每个样本需要5个不同的配方,每个配方中各个颜色的使用量必须为正数。对于每个样本,设置一个二进制变量来表示该样本是否使用特定的配方,并使用线性约束来确保每个样本使用的配方数量不超过5个。对于每个样本,设置一个非负连续变量来表示每个配方中各个颜色的使用量,并根据色差计算公式确定约束条件。

最后,使用混合整数线性规划求解器(如CPLEX、Gurobi等)来求解该模型,并获取前5个样本的最优配方方案。

3 论文介绍

不透明制品最优配色方案设计求解

摘要

在日常生活中,有色的不透明制品的产品市场相当广阔,配色技术的高效使用越来越重要。但传统人工配色方法存在一定局限性,因此,研究计算机配色方法来实现不透明制品的配色有着重要的意义。本文根据题干和论文提供的参数和处理公式,求出 K/S 值与浓度的函数关系式与拟合系数,随后依照题目要求设定相应的约束条件,建立相应的优化模型,获得最优结果。

对于问题一,我们基于相关数据绘制不同波长下 K/ S 值与着色剂的散点图,使用最小二乘法对 K/ S 值与浓度进行线性拟合,得出相应的线性关系式和拟合系数。我们将散点图与线性函数图像置于一张图中,并结合上述步骤得出的拟合系数对函数的拟合程度进行检验,可以得出结论:基于最小二乘法得出线性关系式的拟合效果极佳。

对于问题二,我们根据问题一得出的函数关系式以及从相关文献资料中提取获得的色差计算公式、K/S 值与 R 值的计算公式,确定单目标模型的目标函数,即求取色差最小值,并设定约束条件为色差小于 1。最后运用色差求解公式和优化模型得到配色配方,可以得出结论:优化得出的配方色差与目标样十分接近。

对于问题三,我们根据给出的基底材料质量以及附件信息计算每种配色总成本,对总成本和色差进行加权求和,从而获得加权值。在设置权重时,考虑到两个约束条件会有不同的权重分配,为了更客观的分析,我们对成本和色差这两个目标分出了三种不同的权重分配方案,分别是“成本优先”、“均衡型”、“色差优先”。每个目标样本取最小加权值对应的配色方案,从而获得三组不同的最优配色方案。从最终的输出结果可以看出,不同的权重分配会有不同的配色方案,因此分类讨论的情况还是比较客观合理的。对于问题四,新增了“着色剂越少越好”的要求,我们从两方面进行入手。一方面

是从着色剂种类入手,种类越少越好,先考虑一个种类,如果没有一种着色剂的配色方案那就选择两种着色剂的方案,对问题三得到的结果数据进行筛选,最终成果找到了配色方案;第二方面考虑着色剂总克重,我们在原先目标函数的基础上增加了总克重这一要素,并重新分配了权重。对成本、色差还有总克重设置不同的权重时,考虑到客观性, 我们也进行了分组,分别是“成本优先”、“色差优先”、“效率优先”以及“均衡型”。最后利用加权算法得出五个样本最优的五种配色方案。

关键词: 加权算法 K/M 单常数理论 CIELAB 均匀颜色空间色差计算 多目标规划模型

在这里插入图片描述

4 下载

转到知乎文章底部下载链接

zhuanlan.zhihu.com/p/649533536

相关文章:

【2023 华数杯全国大学生数学建模竞赛】 B题 不透明制品最优配色方案设计 39页论文及python代码

【2023 华数杯全国大学生数学建模竞赛】 B题 不透明制品最优配色方案设计 39页论文及python代码 1 题目 B 题 不透明制品最优配色方案设计 日常生活中五彩缤纷的不透明有色制品是由着色剂染色而成。因此,不透明制品的配色对其外观美观度和市场竞争力起着重要作用。…...

Exams/ece241 2013 q4

蓄水池问题 S3 S2 S1 例如:000 代表 无水 ,需要使FR3, FR2, FR1 都打开(111) S3 S2 S1 FR3 FR2 FR1 000 111 001 011 011 001 111 000 fr代表水变深为…...

Android OkHttp源码分析--分发器

OkHttp是当下Android使用最频繁的网络请求框架,由Square公司开源。Google在Android4.4以后开始将源码中 的HttpURLConnection底层实现替换为OKHttp,同时现在流行的Retrofit框架底层同样是使用OKHttp的。 OKHttp优点: 1、支持Http1、Http2、Quic以及Web…...

大数据面试题:说下Spark中的Transform和Action,为什么Spark要把操作分为Transform和Action?

面试题来源: 《大数据面试题 V4.0》 大数据面试题V3.0,523道题,679页,46w字 可回答:Spark常见的算子介绍一下 参考答案: 我们先来看下Spark算子的作用: 下图描述了Spark在运行转换中通过算…...

【图像去噪的扩散滤波】基于线性扩散滤波、边缘增强线性和非线性各向异性滤波的图像去噪研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

python函数、运算符等简单介绍2(无顺序)

list(列表) 列表是Python的一种内置数据类型,列表是可以装各种数据类 型的容器 # 第一种list创建方式 list_name [晓东,小刚,明明,小红,123,123.4,123] print(list_name) print(type(list_name)) # 输出结果: [晓东, 小刚, 明明…...

k8s 自身原理 3

前面有分享到 master 主节点上的 四个组件,etcd,ApiServer,scheduler,controller manager 接下来我们分享一波 woker 节点上的组件,xdm 还记得 worker 节点上都有什么吗? kubeletkube-proxy实际的服务对应…...

SpringBoot 3自带的 HTTP 客户端工具

原理 Spring的HTTP 服务接口是一个带有HttpExchange方法的 Java 接口,它支持的支持的注解类型有: HttpExchange:是用于指定 HTTP 端点的通用注释。在接口级别使用时,它适用于所有方法。GetExchange:为 HTTP GET请求指…...

Spring Boot多级缓存实现方案

1.背景 缓存,就是让数据更接近使用者,让访问速度加快,从而提升系统性能。工作机制大概是先从缓存中加载数据,如果没有,再从慢速设备(eg:数据库)中加载数据并同步到缓存中。 所谓多级缓存,是指在整个系统架…...

机器学习笔记:李宏毅chatgpt 大模型 大资料

1 大模型 1.1 大模型的顿悟时刻 Emergent Abilities of Large Language Models,Transactions on Machine Learning Research 2022 模型的效果不是随着模型参数量变多而慢慢变好,而是在某一个瞬间,模型“顿悟”了 这边举的一个例子是&#…...

2023年中国智慧公安行业发展现况及发展趋势分析:数据化建设的覆盖范围不断扩大[图]

智慧公安基于互联网、物联网、云计算、智能引擎、视频技术、数据挖掘、知识管理为技术支撑,公安信息化为核心,通过互联互通、物联化、智能方式促进公安系统各功能模块的高度集成、协同作战实现警务信息化“强度整合、高度共享、深度应用”警察发展的新概…...

Apache Dubbo概述

一、课程目标 1. 【了解】软件架构的演进过程 2. 【理解】什么是RPC 3. 【掌握】Dubbo架构 4. 【理解】注册中心Zookeeper 5. 【掌握】Zookeeper的安装和使用 6. 【掌握】Dubbo入门程序 7. 【掌握】Dubbo管理控制台的安装和使用 8. 【理解】Dubbo配置二、分布式RPC框架Apache …...

React UI组件库

1 流行的开源React UI组件库 1 material-ui(国外) 官网: Material UI: React components based on Material Design github: GitHub - mui/material-ui: MUI Core: Ready-to-use foundational React components, free forever. It includes Material UI, which implements Go…...

计算机科学的伟大变革:从机械计算到人工智能

摘要 计算机科学作为一门学科,经历了几十年的发展和演变。本论文旨在探讨计算机科学领域的伟大变革,从最早的机械计算设备到如今的人工智能系统。通过回顾历史、分析技术进步以及展望未来,我们可以清晰地看到计算机科学如何塑造了现代社会&a…...

微服务详解

微服务 什么是微服务? 微:单个服务的设计,所有参与人从设计、开发、测试、运维所有人加起来只需要两个披萨就够了 服务:一定要区别于系统,服务一个或者一组相对较小且独立的功能单元,是用户可以感知的最…...

Python爬虫的requests(学习于b站尚硅谷)

目录 一、requests  1. requests的基本使用  (1)文档  (2)安装  (3)响应response的属性以及类型  (4)代码演示 2.requests之get请求  3. requests之post请求  &#x…...

PHP最简单自定义自己的框架view使用引入smarty(8)--自定义的框架完成

1、实现效果。引入smarty, 实现assign和 display 2、下载smarty,创建缓存目录cache和扩展extend 点击下面查看具体下载使用,下载改名后放到extend PHP之Smarty使用以及框架display和assign原理_PHP隔壁老王邻居的博客-CSDN博客 3、当前控…...

字符串的常用操作

1.拼接字符串 使用运算符""可以对多个字符串进行拼接将几个字符串拼成一个字符串。 2.计算字符串的长度 使用len()函数计算字符串的长度 len(string) 其中string用于指定要进行长度统计的字符串。 3.截取字符串 由于字符串也属于序列,所以要截取字…...

开启想象翅膀:轻松实现文本生成模型的创作应用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,开箱即用

开启想象翅膀:轻松实现文本生成模型的创作应用,支持LLaMA、ChatGLM、UDA、GPT2、Seq2Seq、BART、T5、SongNet等模型,开箱即用 TextGen: Implementation of Text Generation models 1.介绍 TextGen实现了多种文本生成模型,包括&a…...

文心一言 VS 讯飞星火 VS chatgpt (74)-- 算法导论7.2 2题

二、如果用go语言,当数组A的所有元素都具有相同值时,QUICKSORT的时间复杂度是什么? 文心一言: 在Go语言中,对一个所有元素都相等的数组进行快速排序(QuickSort)的时间复杂度是O(n log n)。 快速排序是一…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中,结构体可以嵌套使用,形成更复杂的数据结构。例如,可以通过嵌套结构体描述多层级数据关系: struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

C++初阶-list的底层

目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...