[发明专利]一种变量循环/递归定义的自动识别方法在审
申请号: | 202210954124.8 | 申请日: | 2022-08-10 |
公开(公告)号: | CN115374558A | 公开(公告)日: | 2022-11-22 |
发明(设计)人: | 黄用华;梁子彦;庄未;骆泽众;萧洪亮;刘夫云;黄美发;钟永全 | 申请(专利权)人: | 桂林电子科技大学 |
主分类号: | G06F30/17 | 分类号: | G06F30/17;G06F30/20;G06F111/10;G06F119/14 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 541004 广西壮族*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 变量 循环 递归 定义 自动识别 方法 | ||
1.一种变量循环/递归定义的自动识别方法,如图1所示,包括具体步骤如下:
步骤1、导入建模输出的脚本文件,读取内部因式中的变量及表达式;
步骤2、初始化:设定有效变量序列,有效变量表达式序列,因变量集合SA,自变量集合SB,识别次数i;
步骤3、记有效变量序列的长度为N,并设置因变量集合SA的初始维度D等于1;
步骤4、识别次数i清零;
步骤5、在有效变量序列中,放回式不重复抽取D个变量元素置于因变量集合SA中;
步骤6、遍历因变量集合SA中各变量对应表达式,并将所有表达式中自变量的并集置于自变量集合SB中;
步骤7、符号计算:取fA=∑{集合SA各变量},fB=∑{集合SB各变量};
步骤8、令Δ=fB-fA;
步骤9、检测Δ内部各符号元素是否存在符号“-”(负号);
若存在符号“-”(负号),则说明因变量集合SA中的变量元素不存在循环/递归定义,执行步骤11;
若不存在符号“-”(负号),则说明因变量集合SA中的变量元素存在循环/递归定义,执行步骤10;
步骤10、输出因变量集合SA中的变量元素存在循环/递归定义,并返回原始建模文档,由技术人员对其进行处理,使变量元素消除循环/递归定义,执行步骤11;
步骤11、识别次数i自加1;
步骤12、检测识别次数i是否等于排列组合
若识别次数i等于则说明在当前维度下已完成所有不同组合的变量抽样,执行步骤13;
若识别次数i不等于则说明在当前维度下尚有未被检测到的变量元素,需返回步骤5;
步骤13、检测因变量集合SA的维度D是否等于有效变量序列长度N;
若维度D等于序列长度N,则说明已完成所有变量元素的识别,跳转至步骤15;
若维度D小于序列长度N,则说明尚未完成所有维度下变量集的识别检测,执行步骤14;
步骤14、扩充因变量集合SA的维度,即因变量集合SA的当前维度D自加1,并返回步骤4;
步骤15、识别完成后的有效变量及表达式以脚本文件的形式输出;
识别处理完成,退出程序。
2.根据权利要求1所述的一种变量循环/递归定义的自动识别方法,其特征在于:其核心算法是,在不同维度下放回式不重复抽取相应个数的模型变量,结合集合理论及符号计算原理,通过识别因变量与自变量之间的集合逻辑关系,可准确定位存在循环/递归定义的模型变量。针对本发明提供的技术方案,可通过第一数学归纳法给予有效证明,即本算法可准确自动识别存在递归定义及不同维度循环定义的模型变量。
3.根据权利要求1所述的一种变量循环/递归定义的自动识别方法,其特征在于:步骤3中,记有效变量序列的长度为N,并设置因变量集合SA的初始维度D等于1。该步骤中,所述因变量集合SA的维度D为1时,通过本发明提出的算法可识别各变量是否存在递归定义。
4.根据权利要求1、3所述的一种变量循环/递归定义的自动识别方法,其特征在于:所述设置因变量集合SA的初始维度D等于1,并配合后续步骤14逐轮扩充因变量集合SA的维度,其目的是,在保证各模型变量无递归定义的前提下,进一步识别多维度变量的循环定义时,可避免因模型变量存在递归定义的问题而降低识别循环定义的准确性。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210954124.8/1.html,转载请声明来源钻瓜专利网。