CN114896755A - 一种支持模型属性量化评估的指标验证技术 - Google Patents
一种支持模型属性量化评估的指标验证技术 Download PDFInfo
- Publication number
- CN114896755A CN114896755A CN202210329226.0A CN202210329226A CN114896755A CN 114896755 A CN114896755 A CN 114896755A CN 202210329226 A CN202210329226 A CN 202210329226A CN 114896755 A CN114896755 A CN 114896755A
- Authority
- CN
- China
- Prior art keywords
- model
- constraint
- solver
- type
- constraints
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了系统工程技术领域的一种支持模型属性量化评估的指标验证技术,包括以下步骤:采用面向基于模型的系统工程方法,构建解决问题的系统工程模型;根据模型的需求和约束,采用KARMA语言指标验证部分语法定义包含系统模型中不随时间变化约束条件的验证脚本;指标验证编译器编译KARMA语言指标验证文本,调用基于可满足性模理论的求解器;该方法基于GOPPRR建模理论的基础上开发的,能够支持多架构模型的建立,不用局限于某一领域的模型,采用结合可满足性模理论和GOPPRR建模理论的方式实现模型关系、约束条件和验证对象的表达,采用可满足性模理论扩展统一建模语言,支持建模数据和求解数据的交互,并且降低工程人员学习成本。
Description
技术领域
本发明涉及系统工程技术领域,具体涉及一种支持模型属性量化评估的指标验证技术。
背景技术
随着复杂系统的不断发展,系统呈现出复杂程度增大,规模增大,不确定性增大的特点。这些特点为复杂系统的开发带来了一系列的挑战,如:开发容错能力低但可信度要求高,开发计算量大但效率低,设计不确定性大,需要协同开发,模块化开发等。基于模型的系统工程(MBSE)通过模型支持系统开发全生命周期过程中的形式化,建模,设计,分析和验证,为应对复杂系统的开发挑战提供方案。
申请公布号为CN110321580A的中国发明专利公开了一种基于 MBSE的顶层系统设计方案验证、优化和评估方法。该方法以某飞行器为代表,进行顶层系统的设计和分析。方法基于模型的系统工程理论,采用SysML建模语言以图形化的方式分别构建需求模型、功能模型和结构模型。专利根据需求之间的关系,对需求模型中的需求是否存在冲突进行验证,根据用例图确认功能模型中的功能能否满足需求进行验证,根据木块定义图和活动图验证结构模型中的系统结构是否能支持系统功能的实现。最后,按照建模元素映射规则实现顶层系统活动图或状态图到Petri网模型的转换,验证Petri网模型是否存在资源冲突或锁死,从而评估设计方案是否符合顶层需求。
通过分析上述方法,发现目前技术存在的待解决的问题:
(1)部分工具支持的建模语言单一,不利于复杂度管理:上述专利方法中将MBSE模型转换为Petri网模型的是面向SysML建模语言。 SysML是一种面向对象的软件建模语言,在表达能力和覆盖范围方面都极为出色。但是,对于领域内工作人员而言,特定域建模语言等其他建模语言在领域问题内使用的更加广泛。随着产品复杂程度的提升,单一的特定域建模语言难以完成对复杂系统的统一描述。对任意将要使用的建模语言构建转换规则是困难的。故需要探索一种能够支持验证、评估多架构建模的语言,提高验证方法的通用性。
(2)验证方法为人工验证,缺少量化评估的手段:上述方法的所有验证方法均为通过模型进行人工判断,无法对模型关系进行量化评估,效率较低。之所以出现这样的问题,是因为目前常用于MBSE描述模型的建模语言(例如UML,SysML)为半形式化的语言,无法对系统进行验证。他们的语法结构是完全形式化的,但语义部分使用了自然语言,自然语言是非形式化的,对于模型的描述不够精确,所以无法对模型的属性进行形式化表达。形式化的描述是保证验证可行性,准确性和可靠性的关键环节,这种半形式化建模语言无法对模型的属性进行量化分析。由于系统指标常常体现为模型的属性及其之间的关系,故无法量化的属性关系导致无法对系统指标行验证或运算优化。
(3)方法集成的技术及语言较复杂,学习成本高,不利于使用,建模求解数据之间沟通困难:上述方法集成了SysML建模语言和Petri 网方法,对于工程人员而言,Petri网方法较为抽象,不易学习使用。同时学习SysML建模语言和Petri网求解方法较为困难。且Petri网和 SysML模型之间数据无法交互,在重用数据方面存在困难。
因此,亟需设计一种支持模型属性量化评估的指标验证技术。
发明内容
本发明的目的在于提供一种支持模型属性量化评估的指标验证技术,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种支持模型属性量化评估的指标验证技术,包括以下步骤:
S1:采用面向基于模型的系统工程方法,构建解决问题的系统工程模型;
S2:根据模型的需求和约束,采用KARMA语言指标验证部分语法定义包含系统模型中不随时间变化约束条件的验证脚本;
S3:指标验证编译器编译KARMA语言指标验证文本,调用基于可满足性模理论的求解器。
进一步的,上述支持模型属性量化评估的指标验证技术中,上述 S1的具体方法为:
当问题中需要采用约束的评估以验证前移、提升设计效率或降低方案的不确定性时,可以采用指标验证方法;首先,针对该问题采用统一多架构建模语言KARMA语言,结合领域建模语言的规范,在 MetaGraph工具中,根据基于模型的系统工程方法中常用的“需求架构——功能架构——逻辑架构——物理架构”建模流程,构建领域的系统架构模型;多架构统一建模工具MetaGraph支持统一多架构建模语言KARMA表达基于模型的系统工程模型,实现不同通用建模语言及框架的模型库开发及建模;KARMA语言可以支持基于GOPPRR建模方法描述不同视角的多架构模型,完成对复杂系统的全开发过程的描述;GOPPRR建模方法抽象层次高,不局限于某一领域,可以支持多种架构的模型描述;GOPPRR建模方法通过六种基本的元元模型构建领域下的元模型,作为领域的建模语言及相应的模型库;在实例化元模型构建领域内模型,通过模型的组合分析多视角下真实世界的系统;基于模型的系统工程方法可以采用“需求架构——功能架构——逻辑架构——物理架构”建模流程建模;需求架构根据系统利益相关人获得相应的需求,功能架构描述系统将提供的能力和服务以及系统将执行的任务,逻辑组件是物理组件的抽象表示,逻辑架构执行系统的功能而不需要施加技术实现的约束,物理架构定义了物理设备和其接口的关系与参数,其目的是描述具体的、可实现的解决方案。
进一步的,上述支持模型属性量化评估的指标验证技术中,上述 S2的具体方法为:
a:采用KARMA指标验证语法定义指标验证模块和使用的验证求解器;
b:根据模型定义约束中所需变量并进行赋值;
c:构建基于模型信息的约束并将约束添加进求解器;
d:在优化求解器内添加软约束及优化目标;
e:评估约束并得出满足约束的解。
进一步的,上述支持模型属性量化评估的指标验证技术中,上述a 的具体步骤为:
采用语法中的关键字“SMTAnalysis”和“end”声明指标验证模块;其开头为“SMTAnalysis Name”并以“endName”结束,中间穿插代码主体;
其中,加粗斜体为固定格式的关键字,后面跟随的字符串表明该模块名称,模块尾端以“end”关键字结尾,表示该模块结束;模块内写入指标验证的代码主体;
根据解决问题的类型,代码主体首先声明该指标验证所需要的求解器类型:通用求解器或者优化求解器;通用求解器只用于检验约束的,即:添加的约束是否不存在冲突,返回结果为“满足”添加返回为布尔类型的约束以及某组满足约束的解集,优化求解器还可以添加“最大”、“最小”化目标函数以及带有权重的约束表达式,得出的结果为满足或可满足,得出的结果为最符合目标函数的解集;调用通用求解器的语法通过关键字“Solve”声明,其具体定义方法以“Solve solverName”开头,以“end solverName”,中间添加其余主体代码;
关键词“Solve”后跟随一字符串,为通用求解器名称;求解器尾端以关键词“end”结尾,同时跟随相同字符串;求解器声明内可写入模型信息、约束定义、求解操作等代码;若调用优化求解器,则通过关键词“Optimize”声明优化求解器,其具体定义方法以“OptimizeoptName”开头,以“endoptName”,中间添加其余主体代码;
关键词“Optimize”后跟随一字符串,为优化求解器名称;求解器尾端以关键词“end”结尾,同时跟随相同字符串;求解器声明内可写入模型信息、约束定义、求解操作以及优化操作等代码;其中,使用优化求解器作为应用的求解器。
进一步的,上述支持模型属性量化评估的指标验证技术中,上述b 的具体步骤为:
为了验证模型是否达到预期要求,需要构建模型信息和指标的约束,判断约束的满足性;首先需要定义约束中的变量,定义约束变量的代码均位于求解器内;约束的变量支持赋值,赋值可以来源于自定义的值也可以来源于模型;变量的数据类型支持整型、实数型数组型、矩阵型、布尔型,通过各自的关键字进行定义,具体的数据类型的声明方法为:“DataType variableName;”即数据类型后跟一变量名;关键字“Int”声明整型数据,后面跟一字符串表示整型变量名称;关键字“Real”声明实数型数据,后面跟一字符串表示实数型变量名称;关键字“Boolean”声明布尔型数据,后面跟一字符串表示布尔型变量名称;关键字“Array”声明数组类型,后面跟一字符串表示数组型变量的名称,声明数组类型还需声明数组的索引类型和值的类型;在上述代码的实例中,通过关键字“array”以及小括号内的数据类型名称“int”说明索引类型和值的类型是整型的;关键词“Matrix”声明矩阵型数据,后面跟一字符串表示矩阵型变量的名称,在上述代码的实例中,通过关键词“IntegerMatrix”说明定义的矩阵内数据为整型数据,矩阵为整型矩阵,并通过关键字“initial”初始化矩阵变量,“initial”后在小括号内写入两个整数,分别定义矩阵的行和列;
若需要给变量赋值,则一般有两种情况;其中一种方法是直接给变量自定义赋值,其语法为“DataType variableName=value;”
DataType是指某一数据类型,variableName是指变量名称,value 是指数值;另一种情况是提取模型中的信息,为变量赋值,从而将模型和验证的信息相互关联,其语法为“DataType variableName= LanguageName.ModelName.ObjectName.Property[PropertyName]”;
其中,LanguageName表示使用的建模语言名称,ModelName表示所提取属性对应的模型名称,ObjectName表示所提取属性对应的模型对象或其他模型元素名称,关键字“Property”表示提取属性,中括号内PropertyName表示属性名称;
若要求解上述案例中各个组件的质量分配,首先声明一指标验证模块,再定义一优化求解器,然后定义相应的变量,并从模型中提取复杂装备整体的质量属性,组件A,B,C,D,E的质量属性,以及各个组件的目标值,如:最大、最小值等,赋予相应的值。
进一步的,上述支持模型属性量化评估的指标验证技术中,上述c 的具体步骤为:
完成了变量的声明和赋值后,需要对这些基于模型信息的变量进行量化操作,形成和模型及需求相关的约束;约束的构建遵循可满足性模理论,通用约束可以形式化地表达为:
CBool=⊙(Property,Size(otherType),R)
CBool是综合模型属性、除属性外模型元素的数量和实数以及各类运算符的表达式;其中,Bool表示表达式返回类型为布尔表达式,约束的表达必须为返回布尔的表达式;符号⊙被定义为可满足性模理论中的数学符号集合,包含算术运算符、布尔运算符、数组运算符和比较运算符;Size()表示计算其余物种模型元素的数量,otherType指除了属性以外类型的模型元素,R是指实数;不同的数据类型支持不同的运算,但最后返回的表达式类型是布尔类型;
算术类型的数据支持四则运算、最大值最小值运算、绝对值运算、乘方和指数运算,全等或不等及比较运算;布尔类型的数据支持布尔的与或非运算、全等或不等运算、异或、同或、蕴含运算;数组类型的数据支持数组的写入和读出运算、全等或不等运算;矩阵类型的数据支持矩阵的加减乘运算、求逆求秩求和求转置运算、矩阵的提取值、全等和不等运算;
完成约束的创建后,需要将约束添加进求解器,才能够对约束进行评估;添加约束通过关键字“add”通用求解器或“Add”优化求解器声明;根据案例,添加组件和整体之间的相等关系约束,添加整体质量不大于360kg的约束,各个组件之间的质量约束。
进一步的,上述支持模型属性量化评估的指标验证技术中,上述d 的具体步骤为:
若采用优化求解器,还可以添加软约束和优化目标;在优化求解器内,软约束是可选择的添加项,不是所有优化求解器都需要添加软约束;软约束通过关键字“AddSoft”定义;关键字引导的小括号内需要添加返回为布尔类型的约束表达式,以及一算术类型的值,一般为整数;软约束不同于普通约束,软约束不一定要被满足,软约束定义的整数表达该约束的权重;软约束的求解需要根据权重的大小,计算哪些软约束需要被优先满足;
优化目标普遍存在于优化求解器内;优化目标通过关键字“Max”或“Min”声明,表达最大化表达式或最小化表达式;被优化的表达式只能是返回为算术类型的表达式;
在上述案例中,需要最小化工人1的工作时间和生产平衡延迟时间,添加关键字“Min”引导的最小化目标。
进一步的,上述支持模型属性量化评估的指标验证技术中,上述e 的具体步骤为:
在完成约束的定义后或完成约束和优化目标的定义后,需要通过关键字“check”通用求解器或“Check”优化求解器对求解器进行操作,要求求解器对约束是否不存在冲突进行求解;其结果可能为“SAT 约束被满足”,“UNSAT约束不被满足”或“UNKNOWN结果未知”;若结果为“SAT约束被满足”,则可以通过关键词“solution”通用求解器或“Solution”优化求解器获得满足约束的解;若使用的是通用求解器,则得到的是一组符合约束的随机解,若使用的是优化求解器,则得到的是一组最接近优化目标且符合所有约束的解。
进一步的,上述支持模型属性量化评估的指标验证技术中,上述 S3的具体方法为:指标验证引擎对输入的验证脚本进行处理,内置语法分析器对验证脚本进行词法分析和语法分析,遍历语言的抽象语法树,分别执行各条语句,获取模型元素的信息;根据指标验证脚本,调用基于可满足性模理论的求解器,并执行脚本中的语言,添加相应的约束,对添加的约束进行求解。
与现有技术相比,本发明的有益效果是:
1、本发明是在基于GOPPRR建模理论的基础上开发的,能够支持多架构模型的建立,不用局限于某一领域的模型。
2、本发明采用结合可满足性模理论和GOPPRR建模理论的方式实现模型关系、约束条件和验证对象的表达;KARMA语言以GOPPRR 六种底层元素按照元建模方法描述元模型、模型实例以及它们之间的关系,支持描述的模型关系的形式化表达;可满足性模理论支持定义模型元素为一阶逻辑表达式,扩展了语言的描述场景,支持大部分模型关系、约束和验证对象的定义;故该技术方案的形式化基础为量化模型元素,进行指标验证提供了良好的基础。
3、本发明采用可满足性模理论扩展统一建模语言,支持建模数据和求解数据的交互,并且降低工程人员学习成本;KARMA指标验证语言的对象是GOPPRR方法所描述的模型,其语法语义深度融合 KARMA模型形式化描述的语法语义;即保证了语言的一致性,无需学习多种语言,减少学习成本,又使同一种语言在开发过程中支持建模环境与指标验证引擎之间的互操作性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法流程图;
图2为本发明GOPPRR建模方法示意图;
图3为本发明KARMA指标验证部分抽象语法示意图;
图4为本发明指标验证流程图;
图5为本发明指标验证后结果展示图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供一种技术方案:一种支持模型属性量化评估的指标验证技术,包括以下步骤:
S1:采用面向基于模型的系统工程方法,构建解决问题的系统工程模型;
当问题中需要采用约束的评估以验证前移、提升设计效率或降低方案的不确定性时,可以采用指标验证方法;首先,针对该问题采用统一多架构建模语言KARMA语言,结合领域建模语言的规范,在 MetaGraph工具中,根据基于模型的系统工程方法中常用的“需求架构——功能架构——逻辑架构——物理架构”建模流程,构建领域的系统架构模型;多架构统一建模工具MetaGraph支持统一多架构建模语言KARMA表达基于模型的系统工程模型,实现不同通用建模语言及框架的模型库开发及建模;KARMA语言可以支持基于GOPPRR建模方法描述不同视角的多架构模型,完成对复杂系统的全开发过程的描述;GOPPRR建模方法抽象层次高,不局限于某一领域,可以支持多种架构的模型描述;GOPPRR建模方法通过六种基本的元元模型构建领域下的元模型,作为领域的建模语言及相应的模型库;在实例化元模型构建领域内模型,通过模型的组合分析多视角下真实世界的系统;基于模型的系统工程方法可以采用“需求架构——功能架构——逻辑架构——物理架构”建模流程建模;需求架构根据系统利益相关人获得相应的需求,功能架构描述系统将提供的能力和服务以及系统将执行的任务,逻辑组件是物理组件的抽象表示,逻辑架构执行系统的功能而不需要施加技术实现的约束,物理架构定义了物理设备和其接口的关系与参数,其目的是描述具体的、可实现的解决方案。
假设在某复杂装备的设计过程中,遇到一质量分配问题。该复杂装配质量涉及装备的设计、制造、使用和安装,要求能够满足轻量化、高能量、平衡性好的特点。假定某复杂装备共有5个组件(A,B,C,D,E),组件重量要求不超过360千克。根据以往设计经验,A组件质量不应小于50千克,且不超过68千克。B组件为动力组件,其质量和功率成正相关,根据测算,B质量不得小于80千克。C,D组件质量一样,均不小于20千克,且要求E组件和C,D组件质量之和之差要最小,用以保证平衡。最后要求质量最大的组件也不应超出100千克。
针对该问题,我们依据“需求—功能—逻辑—物理”的建模顺序进行建模。首先构建需求模型,需求模型包含利益相关人的定义,如:复杂装备的设计人员、使用复杂装备的操纵人员等;需求图的定义,包含顶层需求:轻量化、高能量等以及复杂装备总体的细化需求:总质量、总质量尽量小。将设计问题的信息,如:需求名称、约束的值 (360千克)存贮在需求模型当中。再定义功能模型,功能模型是根据需求的抽象,在该问题中,所有部件的功能模块均为结构功能。在功能模型中,将五个组件通过图形的模块表达,并定义整体和组件之间存在的包含约束关系。本问题中没有信息传递的逻辑模型。最后我们定义组件的具体性质,构建物理模型,这里的具体性质只涉及代表物理模块的组件质量,并将需求模块的约束进行分解,对每个物理模块都定义相应的需求,构成约束。其中,各个组件质量是一个未被定义的变量,需要通过指标验证的方法明确其质量。
S2:根据模型的需求和约束,采用KARMA语言指标验证部分语法定义包含系统模型中不随时间变化约束条件的验证脚本;
指标验证通常是通过评估多个和指标相关的约束是否能够被满足实现的。例如,若要评估系统现成本是否符合预期成本指标,则需要构建预期成本和现在系统各部件成本之间的约束关系;若要评估某电路系统是否具备输出高电平的有效性,则需要构建电路输入、电子元件和输出之间的约束关系,并与预期输出进行比较。指标验证中指标及相关约束的信息均来自于模型中,所以,工程师完成建模后,首先通过KARMA语言指标验证语法提取模型的相关属性,形式化描述模型信息,并根据待验证的内容和模型信息,构建相应的约束,定义包含静态约束关系(不随时间变化)的验证脚本。
验证脚本用于判断现有系统能否满足设计指标,主要包括现有系统的形式化部分、待验证的指标约束以及其他部分,主要应用于静态约束的检验。静态约束是指不随时间变化的约束关系,这是由于验证脚本是基于形式化验证的方法,其运算成本低、求解范围广。系统的形式化部分是用于提取模型信息,关联验证和模型。待验证的指标约束是根据验证目标,构建的相关约束,约束返回为布尔类型。一般的约束包含布尔表达式的全部运算、其他类型(算术、数组、矩阵、字符串)表达式通过连接运算符(全等于、不等于、大于、小于等)连接的布尔表达式。其他部分主要用于定义求解器的种类以及需要用到的非模型元素的变量或常量。目前支持通用求解器和优化求解器。
KARMA语言指标验证脚本是基于KARMA语言指标验证语法构建的。KARMA指标验证语法是在GOPPRR建模理论的基础上结合可满足性模理论,扩展KARMA语言原本的语法和语义,使扩展后的 KARMA语言能够形式化描述模型属性及属性之间的约束,并自动化求解约束关系,从而达到检验系统指标,并根据优化目标合理配置设计选项的目的。可满足性模理论是一种逻辑理论,这种理论包含一系列的公理,可以检验含一个或多个数学理论的逻辑公式是否可满足。它将布尔可满足性和计算机科学的基本数学领域内容相结合,模块化地组合了数学领域中的不同算法,并且具有对应的求解器。所以,使用可满足性模理论作为扩展建模语言语法的基础既能够保证描述模型逻辑关系的可靠性也能保证逻辑约束和求解方法的统一性。KARMA 语言指标验证的抽象语法如图3所示。其释义和具体语法如表1所示。
a:采用KARMA指标验证语法定义指标验证模块和使用的验证求解器;
具体步骤为:采用语法中的关键字“SMTAnalysis”和“end”声明指标验证模块;其开头为“SMTAnalysis Name”并以“endName”结束,中间穿插代码主体;
其中,加粗斜体为固定格式的关键字,后面跟随的字符串表明该模块名称,模块尾端以“end”关键字结尾,表示该模块结束;模块内写入指标验证的代码主体;
根据解决问题的类型,代码主体首先声明该指标验证所需要的求解器类型:通用求解器或者优化求解器;通用求解器只用于检验约束的,即:添加的约束是否不存在冲突,返回结果为“满足”添加返回为布尔类型的约束以及某组满足约束的解集,优化求解器还可以添加“最大”、“最小”化目标函数以及带有权重的约束表达式,得出的结果为满足或可满足,得出的结果为最符合目标函数的解集;调用通用求解器的语法通过关键字“Solve”声明,其具体定义方法以“Solve solverName”开头,以“end solverName”,中间添加其余主体代码;
关键词“Solve”后跟随一字符串,为通用求解器名称;求解器尾端以关键词“end”结尾,同时跟随相同字符串;求解器声明内可写入模型信息、约束定义、求解操作等代码;若调用优化求解器,则通过关键词“Optimize”声明优化求解器,其具体定义方法以“OptimizeoptName”开头,以“endoptName”,中间添加其余主体代码;
关键词“Optimize”后跟随一字符串,为优化求解器名称;求解器尾端以关键词“end”结尾,同时跟随相同字符串;求解器声明内可写入模型信息、约束定义、求解操作以及优化操作等代码;其中,使用优化求解器作为应用的求解器。
b:根据模型定义约束中所需变量并进行赋值;
具体步骤为:为了验证模型是否达到预期要求,需要构建模型信息和指标的约束,判断约束的满足性;首先需要定义约束中的变量,定义约束变量的代码均位于求解器内;约束的变量支持赋值,赋值可以来源于自定义的值也可以来源于模型;变量的数据类型支持整型、实数型数组型、矩阵型、布尔型,通过各自的关键字进行定义,具体的数据类型的声明方法为:“DataType variableName;”即数据类型后跟一变量名;关键字“Int”声明整型数据,后面跟一字符串表示整型变量名称;关键字“Real”声明实数型数据,后面跟一字符串表示实数型变量名称;关键字“Boolean”声明布尔型数据,后面跟一字符串表示布尔型变量名称;关键字“Array”声明数组类型,后面跟一字符串表示数组型变量的名称,声明数组类型还需声明数组的索引类型和值的类型;在上述代码的实例中,通过关键字“array”以及小括号内的数据类型名称“int”说明索引类型和值的类型是整型的;关键词“Matrix”声明矩阵型数据,后面跟一字符串表示矩阵型变量的名称,在上述代码的实例中,通过关键词“IntegerMatrix”说明定义的矩阵内数据为整型数据,矩阵为整型矩阵,并通过关键字“initial”初始化矩阵变量,“initial”后在小括号内写入两个整数,分别定义矩阵的行和列;
若需要给变量赋值,则一般有两种情况;其中一种方法是直接给变量自定义赋值,其语法为“DataType variableName=value;”
DataType是指某一数据类型,variableName是指变量名称,value 是指数值;另一种情况是提取模型中的信息,为变量赋值,从而将模型和验证的信息相互关联,其语法为“DataType variableName= LanguageName.ModelName.ObjectName.Property[PropertyName]”;
其中,LanguageName表示使用的建模语言名称,ModelName表示所提取属性对应的模型名称,ObjectName表示所提取属性对应的模型对象或其他模型元素名称,关键字“Property”表示提取属性,中括号内PropertyName表示属性名称;
若要求解上述案例中各个组件的质量分配,首先声明一指标验证模块,再定义一优化求解器,然后定义相应的变量,并从模型中提取复杂装备整体的质量属性,组件A,B,C,D,E的质量属性,以及各个组件的目标值,如:最大、最小值等,赋予相应的值。
c:构建基于模型信息的约束并将约束添加进求解器;
具体步骤为:完成了变量的声明和赋值后,需要对这些基于模型信息的变量进行量化操作,形成和模型及需求相关的约束;约束的构建遵循可满足性模理论,通用约束可以形式化地表达为:
CBool=⊙(Property,Size(otherType),R)
CBool是综合模型属性、除属性外模型元素的数量和实数以及各类运算符的表达式;其中,Bool表示表达式返回类型为布尔表达式,约束的表达必须为返回布尔的表达式;符号⊙被定义为可满足性模理论中的数学符号集合,包含算术运算符、布尔运算符、数组运算符和比较运算符;Size()表示计算其余物种模型元素的数量,otherType指除了属性以外类型的模型元素,R是指实数;不同的数据类型支持不同的运算,但最后返回的表达式类型是布尔类型;
算术类型的数据支持四则运算、最大值最小值运算、绝对值运算、乘方和指数运算,全等或不等及比较运算;布尔类型的数据支持布尔的与或非运算、全等或不等运算、异或、同或、蕴含运算;数组类型的数据支持数组的写入和读出运算、全等或不等运算;矩阵类型的数据支持矩阵的加减乘运算、求逆求秩求和求转置运算、矩阵的提取值、全等和不等运算;
完成约束的创建后,需要将约束添加进求解器,才能够对约束进行评估;添加约束通过关键字“add”通用求解器或“Add”优化求解器声明;根据案例,添加组件和整体之间的相等关系约束,添加整体质量不大于360kg的约束,各个组件之间的质量约束。
d:在优化求解器内添加软约束及优化目标;
具体步骤为:若采用优化求解器,还可以添加软约束和优化目标;在优化求解器内,软约束是可选择的添加项,不是所有优化求解器都需要添加软约束;软约束通过关键字“AddSoft”定义;关键字引导的小括号内需要添加返回为布尔类型的约束表达式,以及一算术类型的值,一般为整数;软约束不同于普通约束,软约束不一定要被满足,软约束定义的整数表达该约束的权重;软约束的求解需要根据权重的大小,计算哪些软约束需要被优先满足;
优化目标普遍存在于优化求解器内;优化目标通过关键字“Max”或“Min”声明,表达最大化表达式或最小化表达式;被优化的表达式只能是返回为算术类型的表达式;
在上述案例中,需要最小化工人1的工作时间和生产平衡延迟时间,添加关键字“Min”引导的最小化目标。
e:评估约束并得出满足约束的解;
具体步骤为:在完成约束的定义后或完成约束和优化目标的定义后,需要通过关键字“check”通用求解器或“Check”优化求解器对求解器进行操作,要求求解器对约束是否不存在冲突进行求解;其结果可能为“SAT约束被满足”,“UNSAT约束不被满足”或“UNKNOWN结果未知”;若结果为“SAT约束被满足”,则可以通过关键词“solution”通用求解器或“Solution”优化求解器获得满足约束的解;若使用的是通用求解器,则得到的是一组符合约束的随机解,若使用的是优化求解器,则得到的是一组最接近优化目标且符合所有约束的解。
S3:指标验证编译器编译KARMA语言指标验证文本,调用基于可满足性模理论的求解器。
指标验证引擎对输入的验证脚本进行处理,内置语法分析器对验证脚本进行词法分析和语法分析,遍历语言的抽象语法树,分别执行各条语句,获取模型元素的信息;根据指标验证脚本,调用基于可满足性模理论的求解器,并执行脚本中的语言,添加相应的约束,对添加的约束进行求解。最后,求解结果返回工具“文本视图”下方的“结果”页面。如果出现错误则会显示在“结果”页面旁边的“错误”页面上,其整体流程如图4所示。求解结果将会以文本形式和表单形式表现,如图5所示。
表格1 KARMA指标验证具体语法
在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
Claims (9)
1.一种支持模型属性量化评估的指标验证技术,其特征在于,包括以下步骤:
S1:采用面向基于模型的系统工程方法,构建解决问题的系统工程模型;
S2:根据模型的需求和约束,采用KARMA语言指标验证部分语法定义包含系统模型中不随时间变化约束条件的验证脚本;
S3:指标验证编译器编译KARMA语言指标验证文本,调用基于可满足性模理论的求解器。
2.根据权利要求1所述的一种支持模型属性量化评估的指标验证技术,其特征在于:上述S1的具体方法为:
当问题中需要采用约束的评估以验证前移、提升设计效率或降低方案的不确定性时,可以采用指标验证方法;首先,针对该问题采用统一多架构建模语言KARMA语言,结合领域建模语言的规范,在MetaGraph工具中,根据基于模型的系统工程方法中常用的“需求架构——功能架构——逻辑架构——物理架构”建模流程,构建领域的系统架构模型;多架构统一建模工具MetaGraph支持统一多架构建模语言KARMA表达基于模型的系统工程模型,实现不同通用建模语言及框架的模型库开发及建模;KARMA语言可以支持基于GOPPRR建模方法描述不同视角的多架构模型,完成对复杂系统的全开发过程的描述;GOPPRR建模方法抽象层次高,不局限于某一领域,可以支持多种架构的模型描述;GOPPRR建模方法通过六种基本的元元模型构建领域下的元模型,作为领域的建模语言及相应的模型库;在实例化元模型构建领域内模型,通过模型的组合分析多视角下真实世界的系统;基于模型的系统工程方法可以采用“需求架构——功能架构——逻辑架构——物理架构”建模流程建模;需求架构根据系统利益相关人获得相应的需求,功能架构描述系统将提供的能力和服务以及系统将执行的任务,逻辑组件是物理组件的抽象表示,逻辑架构执行系统的功能而不需要施加技术实现的约束,物理架构定义了物理设备和其接口的关系与参数,其目的是描述具体的、可实现的解决方案。
3.根据权利要求1所述的一种支持模型属性量化评估的指标验证技术,其特征在于:上述S2的具体方法为:
a:采用KARMA指标验证语法定义指标验证模块和使用的验证求解器;
b:根据模型定义约束中所需变量并进行赋值;
c:构建基于模型信息的约束并将约束添加进求解器;
d:在优化求解器内添加软约束及优化目标;
e:评估约束并得出满足约束的解。
4.根据权利要求3所述的一种支持模型属性量化评估的指标验证技术,其特征在于:上述a的具体步骤为:
采用语法中的关键字“SMTAnalysis”和“end”声明指标验证模块;其开头为“SMTAnalysis Name”并以“end Name”结束,中间穿插代码主体;
其中,加粗斜体为固定格式的关键字,后面跟随的字符串表明该模块名称,模块尾端以“end”关键字结尾,表示该模块结束;模块内写入指标验证的代码主体;
根据解决问题的类型,代码主体首先声明该指标验证所需要的求解器类型:通用求解器或者优化求解器;通用求解器只用于检验约束的,即:添加的约束是否不存在冲突,返回结果为“满足”添加返回为布尔类型的约束以及某组满足约束的解集,优化求解器还可以添加“最大”、“最小”化目标函数以及带有权重的约束表达式,得出的结果为满足或可满足,得出的结果为最符合目标函数的解集;调用通用求解器的语法通过关键字“Solve”声明,其具体定义方法以“Solve solverName”开头,以“end solverName”,中间添加其余主体代码;
关键词“Solve”后跟随一字符串,为通用求解器名称;求解器尾端以关键词“end”结尾,同时跟随相同字符串;求解器声明内可写入模型信息、约束定义、求解操作等代码;若调用优化求解器,则通过关键词“Optimize”声明优化求解器,其具体定义方法以“OptimizeoptName”开头,以“end optName”,中间添加其余主体代码;
关键词“Optimize”后跟随一字符串,为优化求解器名称;求解器尾端以关键词“end”结尾,同时跟随相同字符串;求解器声明内可写入模型信息、约束定义、求解操作以及优化操作等代码;其中,使用优化求解器作为应用的求解器。
5.根据权利要求3所述的一种支持模型属性量化评估的指标验证技术,其特征在于:上述b的具体步骤为:
为了验证模型是否达到预期要求,需要构建模型信息和指标的约束,判断约束的满足性;首先需要定义约束中的变量,定义约束变量的代码均位于求解器内;约束的变量支持赋值,赋值可以来源于自定义的值也可以来源于模型;变量的数据类型支持整型、实数型数组型、矩阵型、布尔型,通过各自的关键字进行定义,具体的数据类型的声明方法为:“DataType variableName;”即数据类型后跟一变量名;关键字“Int”声明整型数据,后面跟一字符串表示整型变量名称;关键字“Real”声明实数型数据,后面跟一字符串表示实数型变量名称;关键字“Boolean”声明布尔型数据,后面跟一字符串表示布尔型变量名称;关键字“Array”声明数组类型,后面跟一字符串表示数组型变量的名称,声明数组类型还需声明数组的索引类型和值的类型;在上述代码的实例中,通过关键字“array”以及小括号内的数据类型名称“int”说明索引类型和值的类型是整型的;关键词“Matrix”声明矩阵型数据,后面跟一字符串表示矩阵型变量的名称,在上述代码的实例中,通过关键词“IntegerMatrix”说明定义的矩阵内数据为整型数据,矩阵为整型矩阵,并通过关键字“initial”初始化矩阵变量,“initial”后在小括号内写入两个整数,分别定义矩阵的行和列;
若需要给变量赋值,则一般有两种情况;其中一种方法是直接给变量自定义赋值,其语法为“DataType variableName=value;”
DataType是指某一数据类型,variableName是指变量名称,value是指数值;另一种情况是提取模型中的信息,为变量赋值,从而将模型和验证的信息相互关联,其语法为“DataType variableName=LanguageName.ModelName.ObjectName.Property[PropertyName]”;
其中,LanguageName表示使用的建模语言名称,ModelName表示所提取属性对应的模型名称,ObjectName表示所提取属性对应的模型对象或其他模型元素名称,关键字“Property”表示提取属性,中括号内PropertyName表示属性名称;
若要求解上述案例中各个组件的质量分配,首先声明一指标验证模块,再定义一优化求解器,然后定义相应的变量,并从模型中提取复杂装备整体的质量属性,组件A,B,C,D,E的质量属性,以及各个组件的目标值,如:最大、最小值等,赋予相应的值。
6.根据权利要求3所述的一种支持模型属性量化评估的指标验证技术,其特征在于:上述c的具体步骤为:
完成了变量的声明和赋值后,需要对这些基于模型信息的变量进行量化操作,形成和模型及需求相关的约束;约束的构建遵循可满足性模理论,通用约束可以形式化地表达为:
CBool是综合模型属性、除属性外模型元素的数量和实数以及各类运算符的表达式;其中,Bool表示表达式返回类型为布尔表达式,约束的表达必须为返回布尔的表达式;符号被定义为可满足性模理论中的数学符号集合,包含算术运算符、布尔运算符、数组运算符和比较运算符;Size()表示计算其余物种模型元素的数量,otherType指除了属性以外类型的模型元素,R是指实数;不同的数据类型支持不同的运算,但最后返回的表达式类型是布尔类型;
算术类型的数据支持四则运算、最大值最小值运算、绝对值运算、乘方和指数运算,全等或不等及比较运算;布尔类型的数据支持布尔的与或非运算、全等或不等运算、异或、同或、蕴含运算;数组类型的数据支持数组的写入和读出运算、全等或不等运算;矩阵类型的数据支持矩阵的加减乘运算、求逆求秩求和求转置运算、矩阵的提取值、全等和不等运算;
完成约束的创建后,需要将约束添加进求解器,才能够对约束进行评估;添加约束通过关键字“add”通用求解器或“Add”优化求解器声明;根据案例,添加组件和整体之间的相等关系约束,添加整体质量不大于360kg的约束,各个组件之间的质量约束。
7.根据权利要求3所述的一种支持模型属性量化评估的指标验证技术,其特征在于:上述d的具体步骤为:
若采用优化求解器,还可以添加软约束和优化目标;在优化求解器内,软约束是可选择的添加项,不是所有优化求解器都需要添加软约束;软约束通过关键字“AddSoft”定义;关键字引导的小括号内需要添加返回为布尔类型的约束表达式,以及一算术类型的值,一般为整数;软约束不同于普通约束,软约束不一定要被满足,软约束定义的整数表达该约束的权重;软约束的求解需要根据权重的大小,计算哪些软约束需要被优先满足;
优化目标普遍存在于优化求解器内;优化目标通过关键字“Max”或“Min”声明,表达最大化表达式或最小化表达式;被优化的表达式只能是返回为算术类型的表达式;
在上述案例中,需要最小化工人1的工作时间和生产平衡延迟时间,添加关键字“Min”引导的最小化目标。
8.根据权利要求3所述的一种支持模型属性量化评估的指标验证技术,其特征在于:上述e的具体步骤为:
在完成约束的定义后或完成约束和优化目标的定义后,需要通过关键字“check”通用求解器或“Check”优化求解器对求解器进行操作,要求求解器对约束是否不存在冲突进行求解;其结果可能为“SAT约束被满足”,“UNSAT约束不被满足”或“UNKNOWN结果未知”;若结果为“SAT约束被满足”,则可以通过关键词“solution”通用求解器或“Solution”优化求解器获得满足约束的解;若使用的是通用求解器,则得到的是一组符合约束的随机解,若使用的是优化求解器,则得到的是一组最接近优化目标且符合所有约束的解。
9.根据权利要求1所述的一种支持模型属性量化评估的指标验证技术,其特征在于:上述S3的具体方法为:指标验证引擎对输入的验证脚本进行处理,内置语法分析器对验证脚本进行词法分析和语法分析,遍历语言的抽象语法树,分别执行各条语句,获取模型元素的信息;根据指标验证脚本,调用基于可满足性模理论的求解器,并执行脚本中的语言,添加相应的约束,对添加的约束进行求解。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210329226.0A CN114896755A (zh) | 2022-03-30 | 2022-03-30 | 一种支持模型属性量化评估的指标验证技术 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210329226.0A CN114896755A (zh) | 2022-03-30 | 2022-03-30 | 一种支持模型属性量化评估的指标验证技术 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114896755A true CN114896755A (zh) | 2022-08-12 |
Family
ID=82715053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210329226.0A Pending CN114896755A (zh) | 2022-03-30 | 2022-03-30 | 一种支持模型属性量化评估的指标验证技术 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114896755A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756416A (zh) * | 2022-10-18 | 2023-03-07 | 元计算(天津)科技发展有限公司 | 物理机理求解器计算单元的程序生成方法及装置 |
CN116306276A (zh) * | 2023-03-09 | 2023-06-23 | 北京理工大学 | 一种复杂系统架构创成式生成方法、系统及电子设备 |
-
2022
- 2022-03-30 CN CN202210329226.0A patent/CN114896755A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115756416A (zh) * | 2022-10-18 | 2023-03-07 | 元计算(天津)科技发展有限公司 | 物理机理求解器计算单元的程序生成方法及装置 |
CN115756416B (zh) * | 2022-10-18 | 2023-06-02 | 元计算(天津)科技发展有限公司 | 物理机理求解器计算单元的程序生成方法及装置 |
CN116306276A (zh) * | 2023-03-09 | 2023-06-23 | 北京理工大学 | 一种复杂系统架构创成式生成方法、系统及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Luckham et al. | An event-based architecture definition language | |
Gosain et al. | Static analysis: A survey of techniques and tools | |
US20070288885A1 (en) | Action languages for unified modeling language model | |
CN114896755A (zh) | 一种支持模型属性量化评估的指标验证技术 | |
Heidenreich et al. | Safe composition of transformations | |
Gheyi et al. | Automatically Checking Feature Model Refactorings. | |
Amrani et al. | Towards a formal specification of multi-paradigm modelling | |
Manolios et al. | Automating component-based system assembly | |
Rathee et al. | Metrics for reusability of java language components | |
Friedrich et al. | Knowledge engineering for configuration systems | |
Lano et al. | Program abstraction and re-engineering: an Agile MDE approach | |
Yoo et al. | Verification of PLC programs written in FBD with VIS | |
JP2007535013A (ja) | コンピュータプログラムの設計 | |
Auguston | Behavior models for software architecture | |
Barbosa et al. | Checking semantics equivalence of mda transformations in concurrent systems. | |
Lai et al. | Defining and verifying behaviour of domain specific language with fUML | |
Wehrmeister et al. | Support for early verification of embedded real-time systems through UML models simulation | |
Delmas et al. | SMT-based architecture modelling for safety assessment | |
Paskaleva et al. | Leveraging integration facades for model-based tool interoperability | |
Chang et al. | A Constraint-Based Framework for Test Case Generation in Method-Level Black-Box Unit Testing. | |
Amparore | Reengineering the Editor of the GreatSPN Framework. | |
CN118034661B (zh) | 大语言模型智能任务应用系统 | |
Ajoudanian et al. | Automatic promotional specialization, generalization and analysis of extended feature models with cardinalities in Alloy | |
Nagoya et al. | Developing a web dictionary system using the SOFL three-step specification approach | |
Ahmad et al. | Scenario based functional regression testing using Petri net models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |