故障树算法JAVA实现

这篇博客介绍了如何使用JAVA实现故障树的最小割集计算。通过下行法和素数法,从故障树的顶事件开始,逐级替换逻辑门,最终得到最小割集。在实现过程中,博主遇到了CSDN编辑器的问题,导致代码显示不正常,因此提供了源码下载链接。
摘要由CSDN通过智能技术生成
故障树算法的介绍:

【排版出问题了,代码请点代码框上方的view plain查看】

对于图1这样一个故障树的最小割集的计算,我的思路是采用下行法和素数法:

 

图1 故障树示意图

 

所谓的下行法基本原理是故障树中的或门增加割集数目,与门增加割集的容量。从故障树的顶事件开始,由上到下,顺次把上一级事件置换为下一级事件,遇到与门就将输入事件横向并列写出,遇到或门就将输入事件竖向串联写出,直到把全部逻辑门都置换成底事件为止,此时最后一列代表所有割集,割集吸收得到最小割集采用素数法,其思想就是给每个底事件赋一素数,割集相除去掉能作为被除数的割集,从而得到最小割集。这部分实现起来比较容易,不做深入讲解。具体分析步骤如表1所示:

 

                         表1 最小割集分析步骤

 

以下是一些对于存储数据的一些定义,在一个实例中的运算过程【这是后来编辑的,之前看的朋友不好意思了】

【我就不明白了CSDN这编辑功能怎么这么烂】190-380行手动编辑的,还出问题,要疯了。。。

不想整了,直接上传了源码,链接【http://download.csdn.net/detail/conquerwave/5713163】注释乱码了,参考下文的源码

 

 

 


代码中使用的存储结构所对应的树结构:

结点号 子结点数 运算符 子节点号 同左 同左
0 2 -1 1 10  
1 3 -2 2 3 4
2 2 -1 5 6  
3 2 -1 7 8  
4 2 -1 9 10  
5 0 0      
6 0 0      
7 0 0      
8 0 0      
9 0 0      
10 0 0      
11 2 -2 13 14  
12 0 0      
13 0 0      

评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值