CN107977493A - 一种联锁布尔逻辑的优化方法 - Google Patents
一种联锁布尔逻辑的优化方法 Download PDFInfo
- Publication number
- CN107977493A CN107977493A CN201711147269.2A CN201711147269A CN107977493A CN 107977493 A CN107977493 A CN 107977493A CN 201711147269 A CN201711147269 A CN 201711147269A CN 107977493 A CN107977493 A CN 107977493A
- Authority
- CN
- China
- Prior art keywords
- boolean
- expression
- boolean variable
- variable
- chained list
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [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)
- Train Traffic Observation, Control, And Security (AREA)
Abstract
本发明涉及一种联锁布尔逻辑的优化方法,包括:在生成布尔表达式后,对生成的结果通过优化联锁布尔逻辑算法进行优化,得到新的表达式进行输出。与现有技术相比,本发明具有大大的简化了布尔逻辑表达式,减少了每一条表达式中的布尔变量等优点。
Description
技术领域
本发明涉及一种信号优化方法,尤其是涉及一种联锁布尔逻辑的优化方法。
背景技术
在轨道交通铁路信号设计过程中,布尔代数被应用于计算机联锁系统,用来表示联锁逻辑关系,基于专利申请号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=0
B=1
P3=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、将优化后的布尔表达式删除多余运算符之后保存,进入S8,
步骤S8、遍历每一条优化后的布尔表达式,表达式P3=B+C不包含可优化布尔变量链表一中的布尔变量,进入步骤S9。
步骤S9、表达式中不包含可优化布尔变量链表一中的布尔变量,进入步骤S10。
步骤S10、最后得到的布尔变量值不为零,进入步骤S11。
步骤S11、步骤S8、S9、S10都没有进行优化操作,则进入步骤S12。
步骤S12、循环遍历每一条优化后的布尔表达式,表达式P3=B+C中包含可优化布尔变量链表二中的布尔变量B,则删除该布尔变量,P=C,进入步骤S13。
步骤S13、最后得到的布尔变量不为1,进入步骤S14。
步骤S14、将优化后的布尔表达式删除多余运算符之后保存,进入S12。
步骤S12、循环遍历每一条优化后的布尔表达式,表达式P3=C中不包含可优化布尔变量链表二中的布尔变量,进入步骤S13。
步骤S13、最后得到的布尔变量不为1,进入步骤S14。
步骤S14、若步骤S12、S13都没有进行优化操作,则进入步骤S15。
步骤S15、遍历每一条优化后的布尔表达式,输出每一条表达式,算法结束。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
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到可优化布尔变量链表一中,进入步骤S11;
步骤S11、将优化后的布尔表达式删除多余运算符之后保存,进入S8,若步骤S8、S9、S10都没有进行优化操作,则进入步骤S12;
步骤S12、循环遍历每一条优化后的布尔表达式,若表达式中包含可优化布尔变量链表二中的布尔变量,则删除该布尔变量,进入步骤S13;
步骤S13、若最后得到的布尔变量为1,则添加该布尔变量到可优化布尔变量链表二中,即P=1,则记录P到可优化布尔变量链表二中,进入步骤S14;
步骤S14、将优化后的布尔表达式删除多余运算符之后保存,进入S12,若步骤S12、S13都没有进行优化操作,则进入步骤S1;
步骤S15、遍历每一条优化后的布尔表达式,输出每一条表达式,算法结束。
3.根据权利要求2所述的方法,其特征在于,所述的步骤S2中的操作具体为:P=(A+B)*(C+D)+E,则P=A*C+A*D+B*C+B*D+E。
4.根据权利要求2所述的方法,其特征在于,所述的步骤S3中的操作具体为:P=A+A+B,则P=A+B。
5.根据权利要求2所述的方法,其特征在于,所述的步骤S4中的操作具体为:P=A+A*B+C,则P=A+C。
6.根据权利要求2所述的方法,其特征在于,所述的步骤S5中的操作具体为:P=A+~A,则P=1,并记录P到链表二中。
7.根据权利要求2所述的方法,其特征在于,所述的步骤S6中的操作具体为:P=A*B+~A*B,则P=B。
8.根据权利要求2所述的方法,其特征在于,所述的步骤S8中的操作具体为:A=0,P=A+B,则P=B。
9.根据权利要求2所述的方法,其特征在于,所述的步骤S9中的操作具体为:A=0,P=A*B+C,则P=C。
10.根据权利要求2所述的方法,其特征在于,所述的步骤S12中的操作具体为:A=1,P=A*B+C,则P=B+C。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711147269.2A CN107977493A (zh) | 2017-11-17 | 2017-11-17 | 一种联锁布尔逻辑的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711147269.2A CN107977493A (zh) | 2017-11-17 | 2017-11-17 | 一种联锁布尔逻辑的优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107977493A true CN107977493A (zh) | 2018-05-01 |
Family
ID=62010416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711147269.2A Pending CN107977493A (zh) | 2017-11-17 | 2017-11-17 | 一种联锁布尔逻辑的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107977493A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875952A (zh) * | 2018-06-06 | 2018-11-23 | 杨露 | 一种基于fpga的复杂逻辑判据自适应智能推理方法 |
CN109002284A (zh) * | 2018-06-27 | 2018-12-14 | 北京全路通信信号研究设计院集团有限公司 | 一种可视化联锁逻辑实现方法 |
CN114312914A (zh) * | 2022-01-17 | 2022-04-12 | 湖南中车时代通信信号有限公司 | 一种通用联锁接口工具配置方法及装置 |
-
2017
- 2017-11-17 CN CN201711147269.2A patent/CN107977493A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108875952A (zh) * | 2018-06-06 | 2018-11-23 | 杨露 | 一种基于fpga的复杂逻辑判据自适应智能推理方法 |
CN108875952B (zh) * | 2018-06-06 | 2022-01-25 | 杨露 | 一种基于fpga的复杂逻辑判据自适应智能推理方法 |
CN109002284A (zh) * | 2018-06-27 | 2018-12-14 | 北京全路通信信号研究设计院集团有限公司 | 一种可视化联锁逻辑实现方法 |
CN114312914A (zh) * | 2022-01-17 | 2022-04-12 | 湖南中车时代通信信号有限公司 | 一种通用联锁接口工具配置方法及装置 |
CN114312914B (zh) * | 2022-01-17 | 2024-03-26 | 湖南中车时代通信信号有限公司 | 一种通用联锁接口工具配置方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107977493A (zh) | 一种联锁布尔逻辑的优化方法 | |
Brave | Control of discrete event systems modeled as hierarchical state machines | |
CN102737108B (zh) | 处理流程图的方法及装置 | |
CN108830018A (zh) | 一种构建交通仿真路网数据的系统和方法 | |
KR20150091521A (ko) | 데이터 정규표현식의 마이닝 방법 및 장치 | |
CN101317179A (zh) | 并入soc分层设计的定时约束 | |
CN107977346A (zh) | 一种pdf文档编辑方法及终端设备 | |
Reinwald et al. | Conversion of limited-entry decision tables to optimal computer programs ii: Minimum storage requirement | |
CN112990850A (zh) | 一种基于规则引擎的流程实现方法及系统 | |
CN108228455A (zh) | 一种软件控制危险分析方法 | |
CN107977504A (zh) | 一种非对称堆芯燃料管理计算方法、装置及终端设备 | |
Kosaraju | Real-time simulation of concatenable double-ended queues by double-ended queues (preliminary version) | |
CN105691417A (zh) | 站场联锁功能的特殊要求的实现方法 | |
US20110161272A1 (en) | Interface for creating and editing boolean logic | |
CN107463340A (zh) | 计算机的数据存储系统 | |
CN105930451A (zh) | 一种基于rdf的cim模型差异数据的合并方法 | |
CN111414622B (zh) | 针对ip固核网表的硬件后门移除方法 | |
CN106202697B (zh) | 一种便于做铁塔设计差异比较的方法及系统 | |
CN112491681A (zh) | 一种汽车总线数据的读取方法和系统 | |
CN102456061B (zh) | 一种频谱数据标记显示方法和装置 | |
Koren et al. | There exist decidable context free propositonal dynamic logics | |
CN108875952B (zh) | 一种基于fpga的复杂逻辑判据自适应智能推理方法 | |
CN108563716A (zh) | 一种基于pandas的数据融合方法 | |
CN106776045A (zh) | 一种基于预过滤的大规模图中三角形计算方法 | |
CN110276203B (zh) | 电力系统控制保护程序的加密方法、装置和存储介质 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1252667 Country of ref document: HK |
|
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180501 |