一种联锁布尔逻辑的优化方法技术

技术编号:17837765 阅读:39 留言:0更新日期:2018-05-03 19:23
本发明专利技术涉及一种联锁布尔逻辑的优化方法,包括:在生成布尔表达式后,对生成的结果通过优化联锁布尔逻辑算法进行优化,得到新的表达式进行输出。与现有技术相比,本发明专利技术具有大大的简化了布尔逻辑表达式,减少了每一条表达式中的布尔变量等优点。

An optimization method for interlocking Boolean logic

The invention relates to an optimization method of interlocking Boolean logic, including: after generating Boolean expressions, the generated results are optimized by optimizing the interlocking Boolean logic algorithm, and the new expression is output. Compared with the existing technology, the invention greatly simplifies the Boolean logic expression and reduces the Boolean variables in each expression.

【技术实现步骤摘要】
一种联锁布尔逻辑的优化方法
本专利技术涉及一种信号优化方法,尤其是涉及一种联锁布尔逻辑的优化方法。
技术介绍
在轨道交通铁路信号设计过程中,布尔代数被应用于计算机联锁系统,用来表示联锁逻辑关系,基于专利申请号200910049341.7的现有已有辅助工具自动生成的布尔代数,有以下缺陷:1.数据量大。对一个有40组道岔的中等车站的布尔代数有近1万条布尔表达式,一条表达式中包含的布尔变量有可能达到上百个,这对联锁下位机软件的处理速度有极大的影响。2.有冗余变量。每一条布尔表达式中可能会出现多余的支路或者无效变量。3.逻辑复杂。每一条布尔表达式中可能包含多个变量相加再连乘的复杂四则混合运算,变量个数多,增加联锁下位机的运算负荷。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种联锁布尔逻辑的优化方法。本专利技术的目的可以通过以下技术方案来实现:一种联锁布尔逻辑的优化方法,包括:在生成布尔表达式后,对生成的结果通过优化联锁布尔逻辑算法进行优化,得到新的表达式进行输出。优选地,该方法具体包括以下步骤:步骤S1、读取所有布尔表达式,遍历每一条布尔表达式,记录值为常零的布尔变量到可优化布尔变量链表一,记录值为常1的布尔变量到可优化布尔变量链表二,进入步骤S2;步骤S2、遍历每一条布尔表达式,若表达式中包含小括号,则进行拆除括号操作,得到只有加法和乘法运算的布尔表达式,进入步骤S3;步骤S3、循环遍历每一条布尔表达式,将每一条布尔表达式以加号分割每一组布尔变量:若存在相同的项,则只保留一项,其余项删除,进入步骤S4;步骤S4、若存在某一项加上某一项乘以另一项的情况,则删除某一项乘以另一项,仅保留某一项,进入步骤S5;步骤S5、若存在某一项加上某一项取反的情况,则整个表达式的值置为1,且记录到链表二中,进入步骤S6;步骤S6、若存在某一项乘以另一项加上某一项的取反乘以另一相同项的情况,则仅保留另一项,进入步骤S7;步骤S7、将优化后的布尔表达式删除多余运算符之后保存,进入S3,若步骤S3、S4、S5、S6都没有进行优化操作,则进入步骤S8;步骤S8、遍历每一条优化后的布尔表达式,若表达式中包含可优化布尔变量链表一中的布尔变量,且为该布尔变量与其它布尔变量相加的方式,则删除该布尔变量,进入步骤S9;步骤S9、若表达式中包含可优化布尔变量链表一中的布尔变量,且为该布尔变量与其它布尔变量相乘的方式,则删除该布尔变量以及与它相乘的所有布尔变量,进入步骤S10;步骤S10、若最后得到的布尔变量值为零,则添加该布尔变量到链表一中,即P=0,则记录P到可优化布尔变量链表一中,进入步骤S11;步骤S11、将优化后的布尔表达式删除多余运算符之后保存,进入S8,若步骤S8、S9、S10都没有进行优化操作,则进入步骤S12;步骤S12、循环遍历每一条优化后的布尔表达式,若表达式中包含可优化布尔变量链表二中的布尔变量,则删除该布尔变量,进入步骤S13;步骤S13、若最后得到的布尔变量为1,则添加该布尔变量到可优化布尔变量链表二中,即P=1,则记录P到可优化布尔变量链表二中,进入步骤S14;步骤S14、将优化后的布尔表达式删除多余运算符之后保存,进入S12,若步骤S12、S13都没有进行优化操作,则进入步骤S1;步骤S15、遍历每一条优化后的布尔表达式,输出每一条表达式,算法结束。优选地,所述的步骤S2中的操作具体为:P=(A+B)*(C+D)+E,则P=A*C+A*D+B*C+B*D+E。优选地,所述的步骤S3中的操作具体为:P=A+A+B,则P=A+B。优选地,所述的步骤S4中的操作具体为:P=A+A*B+C,则P=A+C。优选地,所述的步骤S5中的操作具体为:P=A+~A,则P=1,并记录P到链表二中。优选地,所述的步骤S6中的操作具体为:P=A*B+~A*B,则P=B。优选地,所述的步骤S8中的操作具体为:A=0,P=A+B,则P=B。优选地,所述的步骤S9中的操作具体为:A=0,P=A*B+C,则P=C。优选地,所述的步骤S12中的操作具体为:A=1,P=A*B+C,则P=B+C。与现有技术相比,本专利技术具有以下优点:1、本专利技术通过一种优化联锁布尔逻辑算法,大大的简化了布尔逻辑表达式,减少了每一条表达式中的布尔变量。2、本专利技术生成的布尔表达式中没有冗余变量,没有多余支路,不含无效的常零变量。3、本专利技术生成的布尔表达式中没有小括号运算,加快了联锁下位机软件的运算速度。附图说明图1为本专利技术优化联锁布尔逻辑方法流程图;图2为本专利技术获取可优化布尔变量链表流程图;图3为本专利技术处理布尔表达式中常零变量流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术的一部分实施例,而不是全部实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本专利技术保护的范围。参考图1,举例说明优化联锁布尔逻辑算法的具体处理流程:布尔表达式为:A=0B=1P3=A*(P1+P2)+B+C+A*(P1+~P2)+B*D步骤S1、读取所有布尔表达式,遍历每一条布尔表达式,将P1记录到可优化布尔变量链表一,P2记录到可优化布尔变量链表二,进入步骤S2。步骤S2、遍历每一条布尔表达式,将P3进行拆括号操作,P3=A*P1+A*P2+B+C+A*P1+A*~P2+B*D,进入步骤S3。步骤S3、存在相同项A*P1+A*P1,删除相同的项A*P1,P3=A*P1+A*P2+B+C+A*~P2+B*D,进入步骤S4。步骤S4、存在B加上B*D的情况,则删除B*D,仅保留B,P3=A*P1+A*P2+B+C+A*~P2,进入步骤S5。步骤S5、不存在某一项加上某一项取反的情况,进入步骤S6步骤S6、存在A*P2加上A*~P2的情况,则仅保留A,P3=A*P1+A+B+C,进入步骤S7。步骤S7、将优化后的布尔表达式删除多余运算符之后保存为P3=A*P1+A+B+C,进入步骤3.步骤S3、不存在相同项,进入步骤4。步骤S4、存在A加上A*P1的情况,则删除A*P1仅保留A,P3=A+B+C,进入步骤5。步骤S5、不存在某一项加上某一项取反的情况,进入步骤S6步骤S6、不存在存在某一项乘以另一项加上某一项的取反乘以另一相同项的情况,进入步骤S7。步骤S7、将优化后的布尔表达式删除多余运算符之后保存,进入S3。步骤S3、不存在相同项,进入步骤4。步骤S4、不存在某一项加上某一项乘以另一项的情况,进入步骤5。步骤S5、不存在某一项加上某一项取反的情况,进入步骤S6步骤S6、不存在存在某一项乘以另一项加上某一项的取反乘以另一相同项的情况,进入步骤S7。步骤S7、步骤S3、S4、S5、S6都没有进行优化操作,则进入步骤S8。步骤S8、遍历每一条优化后的布尔表达式,表达式P3=A+B+C中包含可优化布尔变量链表一中的布尔变量A,且为该布尔变量与其它布尔变量相加的方式,则删除该布尔变量A,则P3=B+C,进入步骤S9。步骤S9、表达式中不包含可优化布尔变量链表一中的布尔变量,进入步骤S10。步骤S10、最后得到的布尔变量值不为零,进入步骤S11。步骤S11、本文档来自技高网...
一种联锁布尔逻辑的优化方法

【技术保护点】
一种联锁布尔逻辑的优化方法,其特征在于,包括:在生成布尔表达式后,对生成的结果通过优化联锁布尔逻辑算法进行优化,得到新的表达式进行输出。

【技术特征摘要】
1.一种联锁布尔逻辑的优化方法,其特征在于,包括:在生成布尔表达式后,对生成的结果通过优化联锁布尔逻辑算法进行优化,得到新的表达式进行输出。2.根据权利要求1所述的方法,其特征在于,该方法具体包括以下步骤:步骤S1、读取所有布尔表达式,遍历每一条布尔表达式,记录值为常零的布尔变量到可优化布尔变量链表一,记录值为常1的布尔变量到可优化布尔变量链表二,进入步骤S2;步骤S2、遍历每一条布尔表达式,若表达式中包含小括号,则进行拆除括号操作,得到只有加法和乘法运算的布尔表达式,进入步骤S3;步骤S3、循环遍历每一条布尔表达式,将每一条布尔表达式以加号分割每一组布尔变量:若存在相同的项,则只保留一项,其余项删除,进入步骤S4;步骤S4、若存在某一项加上某一项乘以另一项的情况,则删除某一项乘以另一项,仅保留某一项,进入步骤S5;步骤S5、若存在某一项加上某一项取反的情况,则整个表达式的值置为1,且记录到链表二中,进入步骤S6;步骤S6、若存在某一项乘以另一项加上某一项的取反乘以另一相同项的情况,则仅保留另一项,进入步骤S7;步骤S7、将优化后的布尔表达式删除多余运算符之后保存,进入S3,若步骤S3、S4、S5、S6都没有进行优化操作,则进入步骤S8;步骤S8、遍历每一条优化后的布尔表达式,若表达式中包含可优化布尔变量链表一中的布尔变量,且为该布尔变量与其它布尔变量相加的方式,则删除该布尔变量,进入步骤S9;步骤S9、若表达式中包含可优化布尔变量链表一中的布尔变量,且为该布尔变量与其它布尔变量相乘的方式,则删除该布尔变量以及与它相乘的所有布尔变量,进入步骤S10;步骤S10、若最后得到的布尔变量值为零,则添加该布尔变量到链表一中,即P=0,则记录P到可优化布尔变量链表一中,进入步骤...

【专利技术属性】
技术研发人员:王玲群张程陈吉余高武徐泽骏马锐莫运前成鹏
申请(专利权)人:卡斯柯信号有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1