[发明专利]一种符号表达式树生成方法在审
申请号: | 201910529291.6 | 申请日: | 2019-06-19 |
公开(公告)号: | CN110321519A | 公开(公告)日: | 2019-10-11 |
发明(设计)人: | 王鹏飞 | 申请(专利权)人: | 浙江大学城市学院 |
主分类号: | G06F17/10 | 分类号: | G06F17/10;G06F17/15;G06F17/50 |
代理公司: | 杭州九洲专利事务所有限公司 33101 | 代理人: | 张羽振 |
地址: | 310015*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 符号表达式 运算符 结点 最小分割 插入点 人工智能识别 规则动态 依次读取 运算级别 智能化 推导 去除 虚拟 赋予 | ||
1.一种符号表达式树生成方法,其特征在于:包括以下步骤:
1)将组成符号表达式的所有最小分割单元均视为运算符,最小分割单元包括常规运算符、数字、变量、函数、左括号和右括号;运算符被赋予相应的运算级别;
2)在未插入符号表达式中的任何运算符之前,符号树是一个单一左括号形成的结点,且插入点位于该结点上;
3)依次读取符号表达式中的运算符,按一定规则动态插入到当前的符号树中,并调整插入点的位置,其插入规则如下:
3.1)若插入点所在结点的运算级小于即将插入的运算符的运算级,则直接在该插入点所在结点下插入该运算符,插入完成后,插入点移到该运算符所在的结点处;
3.2)若插入点所在结点的运算级大于即将插入的运算符的运算级,则将插入点上移到所在结点的父结点处,若该父结点的运算级仍大于即将插入的运算符的运算级,则将插入点继续上移,直到移到某一父结点处,其运算级等于或小于即将插入的运算符的运算级,此时:
3.2a)若该父结点的运算级等于即将插入的运算符的运算级,则不进行插入操作,而将插入点位于该父结点上;
3.2b)若该父结点的运算级小于即将插入的运算符的运算级,则将该运算符插入到该父结点与其子结点之间,并使插入点移到该新插入的运算符所在结点处;
4)在符号表达式中的所有运算符都插入完成后,再插入一个虚拟的右括号;
5)去除符号树中的所有括号结点,形成最终的符号表达式树。
2.根据权利要求1所述的符号表达式树生成方法,其特征在于:所述步骤1)中,常规运算符包括加、减、乘、除和乘方,并且逆运算的运算级别高于相应的正运算,其中正运算为加和乘,其所对应的逆运算为减和除。
3.根据权利要求1所述的符号表达式树生成方法,其特征在于:所述步骤1)中,数字、变量和函数具有相同的最高运算级别。
4.根据权利要求1所述的符号表达式树生成方法,其特征在于:所述步骤1)中,除特殊情况外,左括号和右括号具有相同的最低运算级别;特殊情况有两种:一是在当前的符号树中插入左括号时,左括号的运算级临时升至最高,插入完成后左括号的运算级恢复到最低运算级别;二是当右括号插入完成后,其所在结点的运算级永久性升至最高,即该运算级别高于数字、变量和函数的运算级别。
5.根据权利要求1所述的符号表达式树生成方法,其特征在于:所述步骤3)中,按照符号表达式从左向右的书写习惯逐个读取符号表达式中的运算符。
6.根据权利要求1所述的符号表达式树生成方法,其特征在于:所述步骤3)中,符号树的特征为:每一个结点都代表一个运算符;每一结点下方都连接0个或若干个结点,称为该结点的子结点;每一结点上方都连接最多1个结点,称为该结点的父结点;当整棵符号树有且只有一个结点,则其父结点数为0;在任一时刻,整棵符号树中有且只有一个结点被指定为插入点,即将插入的运算符优先接在该插入点所在的结点下方,成为该插入点所在结点的一个子结点。
7.根据权利要求1所述的符号表达式树生成方法,其特征在于:所述步骤3)中,若即将插入的运算符为逆运算符,则先按规则插入一个虚拟的与该逆运算符对应的正运算符,再插入该逆运算符。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学城市学院,未经浙江大学城市学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910529291.6/1.html,转载请声明来源钻瓜专利网。