公开/公告号CN113222459A
专利类型发明专利
公开/公告日2021-08-06
原文格式PDF
申请/专利权人 中国测试技术研究院;
申请/专利号CN202110600480.5
申请日2021-05-31
分类号G06Q10/06(20120101);G06F16/81(20190101);G06F16/84(20190101);G06F16/901(20190101);G06F40/186(20200101);
代理机构51214 成都九鼎天元知识产权代理有限公司;
代理人吴彦峰
地址 610021 四川省成都市成华区玉双路10号
入库时间 2023-06-19 12:07:15
技术领域
本发明涉及食品检验检测技术领域,具体针对食品检验检测过程中的检测项目不确定度项目,应用于根据食品检测需求项目进行选取检测的过程,具体公开了由表达式树动态构建食品不确定度评估模型的系统及方法。
背景技术
食品安全检验结果的不确定度评估没有一个明确、统一的数学模型。根据食品检验结果不确定评估体系研究,当实验项目不同,其检验结果不确定度的来源不同;不确定度来源不同,其计算模型也不同,不同来源的不确定合成计算模型也不同,甚至某些来源不确定度又可分解为不同子来源不确定度,这导致不确定度评估数学模型表达式要将各最基本的计算模型通过以不同层级、不同方式进行组合计算才能得出科学、全面、准确的最终不确定度。这种模型的复杂性、不确定性无法进行穷举以得出所有可能的组合方式以进行实际检测。
现有的食品检验信息化系统大多数仅对实验原始数据、检验结果进行静态记录、存档,没有提供“对计算进行设计”的支持,或者有些系统通过提供插件脚本、扩展宏等机制提供有限“对计算进行设计”的能力,但又对使用者要有相当程度的脚本编程能力的高门槛要求。这都限制了不确定评估模型在信息系统中的应用,导致不确定度这一重要的检验结果准确性指标在行业内较少推广。
因此,针对食品的检测项目众多,而不同的检测需求组合难以进行穷尽,现在的食品检测还不够自动化和智能化,增加了食品检测的难度,食品检测的效率也难以提升,需要提出更为合理的技术方案,解决现有技术中的不足。
发明内容
为了解决上述内容中提到的现有技术缺陷,本发明提供了由表达式树动态构建食品不确定度评估模型的系统及方法,系统中集成了若干用于构建不确定度模型的调用模块,根据实际的评估需求从不同的调用模块中选用所需模块,调用对应的参数映射关系合成最终的评估计算模型,从而快速评估得出对应的不确定度。
为了实现上述目的,本发明具体采用的技术方案是:
由表达式树动态构建食品不确定度评估模型的系统,包括:
设计模块,包括基础不确定度设计单元、合成不确定度设计单元、数据表单设计单元和映射单元,合成不确定度设计单元接收基础不确定度设计单元的数据,且映射单元接收合成不确定度设计单元和数据表单设计单元的数据;
执行模块,包括表单构建单元和数据单元,表单构建单元接收表单设计单元的数据,数据单元接收表单构建单元的数据;
解析模块,包括表达式构建单元和计算单元,表达式构建单元接收映射单元的数据,计算单元接收表达式构建单元和数据单元的数据。
上述公开的系统,根据实际的检测需求确定所需评估的不确定度,系统集成了有限的、最基本的、常用运算等基础数据处理单元,根据这些数据处理单元组合出各种最基础来源的不确定度处理模型,再根据项目把不同来源不确定处理模型组合出该项目的合成不确定处理模型。当具体进行不确定度计算时,按照给定的参数映射关系,将原始数据带入对应项目不确定度合成计算模型进行计算,从而得出该结果的不确定。
进一步的,为了增强系统的交互效率,还包括可视化模块,所述的可视化模块于解析模块连接通信并用于展示解析过程和结果。
本发明还公开了建立不确定度评估模型的方法,具体说明如下:
由表达式树动态构建食品不确定度评估模型的方法,包括,
设计步骤:
根据评估需求,设置若干基础不确定度模型,每种模型对应一种评估不确定度;
将选定的基础不确定度模型进行合成以得到合成不确定度模型;
根据得到的合成不确定度模型,设定需要合成不确定度模型进行运算的数据表单;
将数据表单与合成不确定度模型进行映射关联;
交互步骤:
由合成不确定度模型提供数据需求,在得到数据后生成并发送计算需求;
解析步骤:
根据计算需求进行解析编译,并进行动态执行以得到最终不确定度。
进一步的,所述的设置若干基础不确定度模型,其中基础不确定度模型为通过对某一具体来源的不确定度进行分析、建模所获得,包括定义模型输入参数、计算表达式字符串并存储。采用如此方案时,可根据不同的评估目的建立基础不确定度模型。
进一步的,所述的将选定的基础不确定度模型进行合成以得到合成不确定度模型,包括对检验项目进行分析,识别出项目中具体来源的不确定度,将各来源不确定度的合成进行建模。采用如此方案时,可选取若干基础不确定度模型得到合成不确定度模型,以此满足评估所需的所有不确定度。
进一步的,在进行评估前需要进行交互以输入相应的参数数据,具体的,所述的根据得到的合成不确定度模型,设定需要合成不确定度模型进行运算的数据表单,包括收集原始数据项清单,再设计出项目的原始数据表单模板,在检验过程中,根据表单模板进行数据交互。
进一步的,所述的将数据表单与合成不确定度模型进行映射关联,包括将数据表单项与模型参数进行对应关联设置,使数据表单成为该参数的数据来源。
进一步的,所述的根据计算需求进行解析编译,包括初始化函数字典,加载内置函数;以及轮询每一个模型进行解析编译处理。
再进一步,所述的轮询每一个模型进行解析编译处理包括如下步骤:
S1:取出函数体中缀表达式,初始化运算符栈s1和储中间结果栈s2;
S2:从右至左扫描中缀表达式;
S3:遇到操作数时,将其压入s2;
S4:遇到运算符时,比较其与s1栈顶运算符的优先级;
S4.1:如果s1为空,或栈顶运算符为右括号“)”,则直接将此运算符入栈;
S4.2:否则,若优先级比栈顶运算符的较高或相等,也将运算符压入s1;
S4.3:否则,将s1栈顶的运算符弹出并压入到s2中,再次转到S4.1与s1中新的栈顶运算符相比较;
S5:遇到括号时,按照如下两个步骤处理:
S5.1:如果是右括号“)”,则直接压入s1;
S5.2:如果是左括号“(”,则依次弹出S1栈顶的运算符,并压入S2,直到遇到右括号为止,此时将这一对括号丢弃;
S6:重复步骤S2至S5,直到到达表达式的最左边;
S7:将s1中剩余的运算符依次弹出并压入s2;
S8:依次弹出s2中的元素形成新的字符串序列即为对应的前缀表达式;
S9:初始化表达式堆栈s3,从右至左扫描前缀表达式,依次将操作数对应动态表达式压入堆栈s3;
S9.1:若操作数是常量,构建decimal常量拉姆达表达式,值为常量值;
S9.2:若操作数是变量,构建数据类型为decimal的实参拉姆达表达式,名称为变量名;
S9.3:若操作数是基础数学函数调用,解析出函数名及参数列表,则通过函数名进行字典查找取得对应拉姆达表达式;
S9.4:若操作数是模型公式调用,则通过调用函数名进行字典查找;
S9.4.1:若字典中无此关键字,则查找模型定义,以此模型递归步骤1创建一个动态拉姆达表达式,名称为模型名称,并将其加载到函数字典;
S9.4.2:若字典中有此关键字,则直接返回对应拉姆达表达式;
S10:直到遇到运算符,堆栈s3弹出运算符目数相同个数据的拉姆达表达式构建参数拉姆达表达式,以运算符查找函数字典取得运算符处理拉姆达表达式,以此创建调用拉姆达表达式,并压入堆栈s3;
S11:直到扫描完最后一个前缀表达式元素,弹出堆栈s3中的拉姆达表达式,即为最终的表达式树;
S12:模型定义名称为Key将最终表达式加载到函数字典。
进一步的,所述的进行动态执行以得到最终不确定度包括如下步骤:
S1:查找项目的模型定义,以模型定义的名称为Key查找函数字典,取得对应动态表达式;
S2:查找模型参数与表单项映射配置和交互步骤中的表单数据,构建表达式树调用的实参表达式
S3:将参数表达式,传递动态表达式的Invoke,其返回结果转换成decimal,即为评估结果。
与现有技术相比,本发明具有的有益效果是:
本发明所公开的系统和方法,通过实际的评估需求选择基础不确定度模型进行组合以得到合成不确定度模型,从而实现检测项目的不确定度平度;同时将增加了系统可视化评估过程,使研究设计各种不确定评估模型的难度降低。在选取基础不确定模型时,可从大量的模型库中相互调用,通过调用成熟模型建立合成不确定度模型,可以节约大量时间成本,提高评估的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅表示出了本发明的部分实施例,因此不应看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本系统的模块示意图。
图2为各个模块内部的组成及逻辑示意图。
具体实施方式
下面结合附图及具体实施例对本发明做进一步阐释。
在此需要说明的是,对于这些实施例方式的说明用于帮助理解本发明,但并不构成对本发明的限定。本文公开的特定结构和功能细节仅用于描述本发明的示例实施例。然而,可用很多备选的形式来体现本发明,并且不应当理解为本发明限制在本文阐述的实施例中。
实施例1
如图1、图2所示,由表达式树动态构建食品不确定度评估模型的系统,包括:
设计模块,包括基础不确定度设计单元、合成不确定度设计单元、数据表单设计单元和映射单元,合成不确定度设计单元接收基础不确定度设计单元的数据,且映射单元接收合成不确定度设计单元和数据表单设计单元的数据;
执行模块,包括表单构建单元和数据单元,表单构建单元接收表单设计单元的数据,数据单元接收表单构建单元的数据;
解析模块,包括表达式构建单元和计算单元,表达式构建单元接收映射单元的数据,计算单元接收表达式构建单元和数据单元的数据。
上述公开的系统,根据实际的检测需求确定所需评估的不确定度,系统集成了有限的、最基本的、常用运算等基础数据处理单元,根据这些数据处理单元组合出各种最基础来源的不确定度处理模型,再根据项目把不同来源不确定处理模型组合出该项目的合成不确定处理模型。当具体进行不确定度计算时,按照给定的参数映射关系,将原始数据带入对应项目不确定度合成计算模型进行计算,从而得出该结果的不确定。
本实施例中,为了增强系统的交互效率,还包括可视化模块,所述的可视化模块于解析模块连接通信并用于展示解析过程和结果。
实施例2
本实施例还公开了建立不确定度评估模型的方法,具体说明如下:
由表达式树动态构建食品不确定度评估模型的方法,具体包括:
S1:设计步骤
S101:根据评估需求,设置若干基础不确定度模型,每种模型对应一种评估不确定度;
S102:将选定的基础不确定度模型进行合成以得到合成不确定度模型;
S103:根据得到的合成不确定度模型,设定需要合成不确定度模型进行运算的数据表单;
S104:将数据表单与合成不确定度模型进行映射关联;
S2:交互步骤
由合成不确定度模型提供数据需求,在得到数据后生成并发送计算需求;
S3:解析步骤
S301:根据计算需求进行解析编译,并进行动态执行以得到最终不确定度。
所述的设置若干基础不确定度模型,其中基础不确定度模型为通过对某一具体来源的不确定度进行分析、建模所获得,包括定义模型输入参数、计算表达式字符串并存储。采用如此方案时,可根据不同的评估目的建立基础不确定度模型。
比如重复性测量带来的不确定度模型(一般采用标准方差进行计算),数学函数如下f(x)=stdev(x),则模型可定义如下:
模型名称:func
输入参数:顺序参数名数据类型
1x decimal[]
函数体:stdev(x)
完整模型函数:func(x)=stdev(x)
基础不确定度模型定义是对不确定度计算过程中通用计算步骤的封装,方便不同评估需求时进行重复调用,而不用再关注内部过程。
本实施例中,所述的将选定的基础不确定度模型进行合成以得到合成不确定度模型,包括对检验项目进行分析,识别出项目中具体来源的不确定度,将各来源不确定度的合成进行建模。采用如此方案时,可选取若干基础不确定度模型得到合成不确定度模型,以此满足评估所需的所有不确定度。
比如,某食品检验项目,试验过程引入的不确定来源有3个,分别为func1(x,y)、func2(a,b,c)、func3(k),假设都已经在基础模型里定义,则本项目合同模型定义如下:
模型名称:func_com
函数体:round(pow(pow(func1(x,y),2)+pow(func2(x+y+z),2)+pow(func3(z),2),1/2),2)
完整模型函数:func_com(x,y,z)=
round(pow(pow(func1(x,y),2)+pow(func2(x+y+z),2)+pow(func3(z),2),1/2),2)
在进行评估前需要进行交互以输入相应的参数数据,具体的,所述的根据得到的合成不确定度模型,设定需要合成不确定度模型进行运算的数据表单,包括收集原始数据项清单,再设计出项目的原始数据表单模板,在检验过程中,根据表单模板进行数据交互。
表单模板定义包括,表单名称、数据项列表(数据项名称、数据类型、控件类型、呈现顺序号)。
例如,聚合酶链反应分析仪校准原始记录表单模板(部分):
表单名:food_form1
表单模板指导实验操作员收集数据范围、标准,使之能够为项目模型计算提供规范的数据输入。
本实施例中,所述的将数据表单与合成不确定度模型进行映射关联,包括将数据表单项与模型参数进行对应关联设置,使数据表单成为该参数的数据来源。
关联映射数据项与参数时,必须要数据项数据类型与参数数据类型一致,且文档类型控件的数据项不能映射到项目模型参数;必须为每个模型参数指定关联的表单模板数据项;同一表单模板数据项可以被关联到项目模型的不同参数。
模型:fun(x,y,z)=round(Sqrt(pow(x,2)+pow(func1(y),2)+pow(z)),4)
表单:form_xxx
所述的根据计算需求进行解析编译,包括初始化函数字典,加载内置函数;以及轮询每一个模型进行解析编译处理。
优选的,所述的轮询每一个模型进行解析编译处理包括如下步骤:
S1:取出函数体中缀表达式,初始化运算符栈s1和储中间结果栈s2;
S2:从右至左扫描中缀表达式;
S3:遇到操作数时,将其压入s2;
S4:遇到运算符时,比较其与s1栈顶运算符的优先级;
S4.1:如果s1为空,或栈顶运算符为右括号“)”,则直接将此运算符入栈;
S4.2:否则,若优先级比栈顶运算符的较高或相等,也将运算符压入s1;
S4.3:否则,将s1栈顶的运算符弹出并压入到s2中,再次转到S4.1与s1中新的栈顶运算符相比较;
S5:遇到括号时,按照如下两个步骤处理:
S5.1:如果是右括号“)”,则直接压入s1;
S5.2:如果是左括号“(”,则依次弹出S1栈顶的运算符,并压入S2,直到遇到右括号为止,此时将这一对括号丢弃;
S6:重复步骤S2至S5,直到到达表达式的最左边;
S7:将s1中剩余的运算符依次弹出并压入s2;
S8:依次弹出s2中的元素形成新的字符串序列即为对应的前缀表达式;
S9:初始化表达式堆栈s3,从右至左扫描前缀表达式,依次将操作数对应动态表达式压入堆栈s3;
S9.1:若操作数是常量,构建decimal常量拉姆达表达式,值为常量值;
S9.2:若操作数是变量,构建数据类型为decimal的实参拉姆达表达式,名称为变量名;
S9.3:若操作数是基础数学函数调用,解析出函数名及参数列表,则通过函数名进行字典查找取得对应拉姆达表达式;
S9.4:若操作数是模型公式调用,则通过调用函数名进行字典查找;
S9.4.1:若字典中无此关键字,则查找模型定义,以此模型递归步骤1创建一个动态拉姆达表达式,名称为模型名称,并将其加载到函数字典;
S9.4.2:若字典中有此关键字,则直接返回对应拉姆达表达式;
S10:直到遇到运算符,堆栈s3弹出运算符目数相同个数据的拉姆达表达式构建参数拉姆达表达式,以运算符查找函数字典取得运算符处理拉姆达表达式,以此创建调用拉姆达表达式,并压入堆栈s3;
S11:直到扫描完最后一个前缀表达式元素,弹出堆栈s3中的拉姆达表达式,即为最终的表达式树;
S12:模型定义名称为Key将最终表达式加载到函数字典。
优选的,所述的进行动态执行以得到最终不确定度包括如下步骤:
S1:查找项目的模型定义,以模型定义的名称为Key查找函数字典,取得对应动态表达式;
S2:查找模型参数与表单项映射配置和交互步骤中的表单数据,构建表达式树调用的实参表达式
S3:将参数表达式,传递动态表达式的Invoke,其返回结果转换成decimal,即为评估结果。
具体应用本实施例中的方法时,此处举出其中一种示例。
某食品中YY物质含量检验项目(为方便描述只考虑重复性测量和天平带来的不确定度,用户录入与信息展示仅关注与不确定模型计算相关的数据)
项目设计阶段:
1.对重复性测量不确定度模型设计
重复性测量不确定即计算标准方差,涉及到基础数学公式标准偏差(STDEV)、近似求值(ROUND)
定义变量:数组array—表示1到多个测量值集合;变量d表示结果要保留的小数位。
重复性测量不确定度公式:ROUND(STDEV(array),d)。
2.对食品中YY物质含量检定项目合成不确定度模型的设计
涉及到基础数学公式有幂运算(POWER)、近似求值(ROUND)
定义变量m—表示具体称量天平的不确定度值(来源其检校证书)
合成不确定度公式:ROUND(POWER(POWER(fun1(array,d),2)+POWER(m,N),1/2),d)。
3.数据表单模板定义
item1:样本重复测量值(数组输入控件):
item2:小数精确位数(整数输入控件)
item3:天平不确定度值(数值输入控件)
4.模型参数与数据表单项映射
参数array映射item1
参数d映射item2
参数m映射item3
5.实验执行阶段
检验实验过程中,系统显示原始数据录入界面(系统根据表单设计动态生成)
6.数据录入
实验人员对样品进行检验时录入数据如下:
重复性测量值:5.02,5.01,5.03,5.01,5.02
小数精确位数:4
称量天平不确定度值:0.0052
7.系统计算结果
根据项目,系统自动调用对应公式
根据参数/数据项映射关系,自动将实验人员录入数据带入计算
1)重复性测量不确定度
公式:fun1(array,d)=ROUND(STDEV(array),d)
计算结果:0.0084
2)合成不确定度:
公式:fun(array,d,m)=ROUND(POWER(POWER(fun1(array,d),2)+POWER(m,N),1/2),d)
计算结果:0.0099
系统显示结果(系统根据模型设计和表单设计动态显示用户输入、各来源不确定度、合成不确定度)
以上即为本实施例列举的实施方式,但本实施例不局限于上述可选的实施方式,本领域技术人员可根据上述方式相互任意组合得到其他多种实施方式,任何人在本实施例的启示下都可得出其他各种形式的实施方式。上述具体实施方式不应理解成对本实施例的保护范围的限制,本实施例的保护范围应当以权利要求书中界定的为准,并且说明书可以用于解释权利要求书。
机译: 房屋设计/评估支持设备,3-d房屋模型构建支持设备,房屋设计/评估支持方法,构建建造者办公室的方式,3-d房屋模型构建支持方法和记录3-d房屋模型构建支持程序的记录介质
机译: 使用多元回归模型评估专利的系统和方法以及利用多元回归模型构建专利评估模型的系统和方法
机译: 使用多元回归模型评估专利的系统和方法以及利用多元回归模型构建专利评估模型的系统和方法