python 实现结论不确定性合成

参数说明

计算中所涉及到的说明见下图:

在这里插入图片描述

图1 参数说明

计算公式

计算中用到的相关公式罗列如下:

O ( x ) = P ( x ) P ( ¬ x ) = P ( x ) 1 − P ( x ) , O ( x ) ∈ [ 0 , ∞ ) , 几 率 函 数 O(x) = \frac{{P(x)}}{{P(\neg x)}} = \frac{{P(x)}}{{1 - P(x)}},O(x) \in [0,\infty ),几率函数 O(x)=P(¬x)P(x)=1P(x)P(x),O(x)[0,)

P ( x ) = O ( x ) 1 + O ( x ) , P ( x ) ∈ [ 0 , 1 ] , 概 率 函 数 P(x) = \frac{{O(x)}}{{1 + O(x)}}, P(x) \in [0,1],概率函数 P(x)=1+O(x)O(x),P(x)[0,1]

P ( H i ∣ E j ) = L S j × P ( H i ) ( L S j − 1 ) × P ( H i ) + 1 P({H_i}|{E_j}) = \frac{{L{S_j} \times P({H_i})}}{{(L{S_j} - 1) \times P({H_i}) + 1}} P(HiEj)=(LSj1)×P(Hi)+1LSj×P(Hi)

P ( H ∣ S ) = { P ( H ∣ ¬ E ) + P ( H ) − P ( H ∣ ¬ E ) P ( E ) × P ( E ∣ S ) , 0 ≤ P ( E ∣ S ) < P ( E ) P ( H ) + P ( H ∣ E ) − P ( H ) 1 − P ( E ) × [ P ( E ∣ S ) − P ( E ) ] , P ( E ) ≤ P ( E ∣ S ) ≤ 1 P(H|S) = \left\{ {\begin{array}{l} {P(H|\neg E) + \frac{{P(H) - P(H|\neg E)}}{{P(E)}} \times P(E|S),0 \le P(E|S) < P(E)}\\ \\ {P(H) + \frac{{P(H|E) - P(H)}}{{1 - P(E)}} \times [P(E|S) - P(E)],P(E) \le P(E|S) \le 1} \end{array}} \right. P(HS)=P(H¬E)+P(E)P(H)P(H¬E)×P(ES),0P(ES)<P(E)P(H)+1P(E)P(HE)P(H)×[P(ES)P(E)],P(E)P(ES)1

O ( H ∣ S 1 , S 2 , . . . , S n ) = O ( H ∣ S 1 ) O ( H ) O ( H ∣ S 2 ) O ( H ) . . . O ( H ∣ S n ) O ( H ) O ( H ) O(H|{S_1},{S_2},...,{S_n}) = \frac{{O(H|{S_1})}}{{O(H)}}\frac{{O(H|{S_2})}}{{O(H)}}...\frac{{O(H|{S_n})}}{{O(H)}}O(H) O(HS1,S2,...,Sn)=O(H)O(HS1)O(H)O(HS2)...O(H)O(HSn)O(H)

例题

通过下图例题实现结论不确定性合成:

图2 例题

图2 例题

计算流程

(1)计算 O ( H 1 ∣ S 1 ) O(H_1|S_1) O(H1S1)

P ( E 1 ∣ S 1 ) > P ( E 1 ) , P ( H 1 ∣ E 1 ) = L S 1 × P ( H 1 ) ( L S 1 − 1 ) × P ( H 1 ) + 1 P ( H 1 ∣ S 1 ) = P ( H 1 ) + P ( H 1 ∣ E 1 ) − P ( H 1 ) 1 − P ( E 1 ) × ( P ( E 1 ∣ S 1 ) − P ( E 1 ) ) O ( H 1 | S 1 ) = P ( H 1 ∣ S 1 ) 1 − P ( H 1 ∣ S 1 ) {P(E}_1\left|S_1\right)>P(E_1),\\ P(H_1|E_1)=\frac{{LS}_1\times P(H_1)}{\left({LS}_1-1\right)\times P\left(H_1\right)+1}\\ P(H_1|S_1)=P\left(H_1\right)+\frac{P(H_1|E_1)-P\left(H_1\right)}{1-P(E_1)}\times(P(E_1\left|S_1\right)-P\left(E_1\right))\\ O\left(H_1\middle| S_1\right)=\frac{P(H_1|S_1)}{1-P(H_1|S_1)} P(E1S1)>P(E1)P(H1E1)=(LS11)×P(H1)+1LS1×P(H1)P(H1S1)=P(H1)+1P(E1)P(H1E1)P(H1)×(P(E1S1)P(E1))O(H1S1)=1P(H1S1)P(H1S1)

(2)计算 O ( H 1 ∣ S 2 ) O(H_1|S_2) O(H1S2)

P ( E 2 ∣ S 2 ) > P ( E 2 ) , P ( H 1 ∣ E 2 ) = L S 2 × P ( H 1 ) ( L S 2 − 1 ) × P ( H 1 ) + 1 P ( H 1 ∣ S 2 ) = P ( H 1 ) + P ( H 1 ∣ E 2 ) − P ( H 1 ) 1 − P ( E 2 ) × ( P ( E 2 ∣ S 2 ) − P ( E 2 ) ) O ( H 1 | S 2 ) = P ( H 1 ∣ S 2 ) 1 − P ( H 1 ∣ S 2 ) {P(E}_2\left|S_2\right)>P(E_2),\\ P(H_1|E_2)=\frac{{LS}_2\times P(H_1)}{\left({LS}_2-1\right)\times P\left(H_1\right)+1}\\ P(H_1|S_2)=P\left(H_1\right)+\frac{P(H_1|E_2)-P\left(H_1\right)}{1-P(E_2)}\times(P(E_2\left|S_2\right)-P\left(E_2\right))\\ O\left(H_1\middle| S_2\right)=\frac{P(H_1|S_2)}{1-P(H_1|S_2)} P(E2S2)>P(E2)P(H1E2)=(LS21)×P(H1)+1LS2×P(H1)P(H1S2)=P(H1)+1P(E2)P(H1E2)P(H1)×(P(E2S2)P(E2))O(H1S2)=1P(H1S2)P(H1S2)

(3)计算 P ( H 1 ∣ S 1 , S 2 ) P(H_1|S_1,S_2) P(H1S1,S2)

O ( H 1 ) = P ( H 1 ) 1 − P ( H 1 ) O ( H 1 | S 1 , S 2 ) = O ( H 1 ∣ S 1 ) O ( H 1 ) × O ( H 1 ∣ S 2 ) O ( H 1 ) × O ( H 1 ) P ( H 1 | S 1 , S 2 ) = O ( H 1 ∣ S 1 , S 2 ) 1 + O ( H 1 ∣ S 1 , S 2 ) O\left(H_1\right)=\frac{P(H_1)}{1-P(H_1)}\\ O\left(H_1\middle| S_1,S_2\right)=\frac{O{(H}_1|S_1)}{O\left(H_1\right)}\times\frac{O{(H}_1|S_2)}{O\left(H_1\right)}\times O\left(H_1\right)\\ P\left(H_1\middle| S_1,S_2\right)=\frac{O{(H}_1|S_1,S_2)}{1+O{(H}_1|S_1,S_2)} O(H1)=1P(H1)P(H1)O(H1S1,S2)=O(H1)O(H1S1)×O(H1)O(H1S2)×O(H1)P(H1S1,S2)=1+O(H1S1,S2)O(H1S1,S2)

(4)计算 O ( H 2 | S 1 , S 2 ) O\left(H_2\middle| S_1,S_2\right) O(H2S1,S2)

P ( H 1 | S 1 , S 2 ) > P ( H 2 ) , P ( H 2 | H 1 ) = L S 4 × P ( H 2 ) ( L S 4 − 1 ) × P ( H 2 ) + 1 P ( H 2 | S 1 , S 2 ) = P ( H 2 ) + P ( H 2 ∣ H 1 ) − P ( H 2 ) 1 − P ( H 1 ) × ( P ( H 1 | S 1 , S 2 ) − P ( H 1 ) ) O ( H 2 | S 1 , S 2 ) = P ( H 1 ∣ S 1 , S 2 ) 1 − P ( H 1 ∣ S 1 , S 2 ) P\left(H_1\middle| S_1,S_2\right)>P(H_2),\\ P\left(H_2\middle| H_1\right)=\frac{{LS}_4\times P(H_2)}{\left({LS}_4-1\right)\times P\left(H_2\right)+1}\\ P\left(H_2\middle| S_1,S_2\right)=P\left(H_2\right)+\frac{P(H_2|H_1)-P\left(H_2\right)}{1-P(H_1)}\times(P\left(H_1\middle| S_1,S_2\right)-P\left(H_1\right))\\ O\left(H_2\middle| S_1,S_2\right)=\frac{P{(H}_1|S_1,S_2)}{1-P{(H}_1|S_1,S_2)} P(H1S1,S2)>P(H2)P(H2H1)=(LS41)×P(H2)+1LS4×P(H2)P(H2S1,S2)=P(H2)+1P(H1)P(H2H1)P(H2)×(P(H1S1,S2)P(H1))O(H2S1,S2)=1P(H1S1,S2)P(H1S1,S2)

(5)计算 O ( H 2 ∣ S 3 ) O(H_2|S_3) O(H2S3)

P ( E 3 ∣ S 3 ) < P ( E 3 ) , P ( H 2 ∣ ¬ E 3 ) = L N 3 × P ( H 2 ) ( L N 3 − 1 ) × P ( H 2 ) + 1 P ( H 2 ∣ S 3 ) = P ( H 2 ∣ ¬ E 3 ) + P ( H 2 ) − P ( H 2 ∣ ¬ E 3 ) P ( E 3 ) × P ( E 3 ∣ S 3 ) O ( H 2 | S 3 ) = P ( H 2 ∣ S 3 ) 1 − P ( H 2 ∣ S 3 ) {P(E}_3\left|S_3\right)<P(E_3),\\ P(H_2|{\lnot E}_3)=\frac{{LN}_3\times P(H_2)}{\left({LN}_3-1\right)\times P\left(H_2\right)+1}\\ P(H_2|S_3)=P(H_2|{\lnot E}_3)+\frac{P\left(H_2\right)-P(H_2|{\lnot E}_3)}{P(E_3)}\times P(E_3|S_3)\\ O\left(H_2\middle| S_3\right)=\frac{P(H_2|S_3)}{1-P(H_2|S_3)} P(E3S3)<P(E3)P(H2¬E3)=(LN31)×P(H2)+1LN3×P(H2)P(H2S3)=P(H2¬E3)+P(E3)P(H2)P(H2¬E3)×P(E3S3)O(H2S3)=1P(H2S3)P(H2S3)

(6)计算 P ( H 2 ∣ S 1 , S 2 , S 3 ) P(H_2|S_1,S_2,S_3) P(H2S1,S2,S3)

O ( H 2 ) = P ( H 2 ) 1 − P ( H 2 ) O ( H 2 | S 1 , S 2 , S 3 ) = O ( H 2 ∣ S 1 , S 2 ) O ( H 2 ) × O ( H 2 ∣ S 3 ) O ( H 2 ) × O ( H 2 ) P ( H 2 ∣ S 1 , S 2 , S 3 ) =   O ( H 1 ∣ S 1 , S 2 , S 3 ) 1 + O ( H 1 ∣ S 1 , S 2 , S 3 ) O\left (H_2\right)=\frac{P(H_2)}{1-P(H_2)}\\ O\left(H_2\middle| S_1,S_2,S_3\right)=\frac{{O(H}_2|S_1,S_2)}{O\left(H_2\right)}\times\frac{{O(H}_2|S_3)}{O\left(H_2\right)}\times O\left(H_2\right)\\ P(H_2|S_1,S_2,S_3)=\ \frac{{O(H}_1|S_1,S_2,S_3)}{1+{O(H}_1|S_1,S_2,S_3)} O(H2)=1P(H2)P(H2)O(H2S1,S2,S3)=O(H2)O(H2S1,S2)×O(H2)O(H2S3)×O(H2)P(H2S1,S2,S3)= 1+O(H1S1,S2,S3)O(H1S1,S2,S3)

代码实现

PE1 = PE2 = PE3 = 0.6
PHs = [0.091, 0.01]
PExSs = [0.84, 0.68, 0.36]
LSs = [2, 100, 200, 50]
LNs = [0.00001, 0.0001, 0.001, 0.1]

def PLS(LS, PH):
    PHxLS = (LS*PH)/((LS-1)*PH+1)
    return PHxLS

def PHS(PH, PE, PHxE, PExS):
    if 0 < PExS < PE:
        PHxS = PHxE + (PH-PHxE)/PE*(PExS)
    elif PE <= PExS <= 1:
        PHxS = PH + (PHxE-PH)/(1-PE)*(PExS-PE)
    return PHxS

def OHS(PHxS):
    OHxS = PHxS/(1-PHxS)
    return OHxS

print('(1)计算O(H1|S1)')
PH1xE1 = PLS(LSs[0], PHs[0])
PH1xS1 = PHS(PHs[0], PE1, PH1xE1, PExSs[0])
OH1xS1 = OHS(PH1xS1)
print('P(H1|E1):', PH1xE1, '\nP(H1|S1):', PH1xS1, '\nO(H1|S1):', OH1xS1)
print('(2)计算O(H1|S2)')
PH1xE2 = PLS(LSs[1], PHs[0])
PH1xS2 = PHS(PHs[0], PE2, PH1xE2, PExSs[1])
OH1xS2 = OHS(PH1xS2)
print('P(H1|E2):', PH1xE2, '\nP(H1|S2):', PH1xS2, '\nO(H1|S2):', OH1xS2)
print('(3)计算P(H1|S1,S2)')
OH1 = OHS(PHs[0])
OH1xS1S2 = (OH1xS1/OH1)*(OH1xS2/OH1)*OH1
PH1xS1S2 = OH1xS1S2/(1+OH1xS1S2)
print('O(H1):', OH1, '\nO(H1|S1,S2):', OH1xS1S2, '\nP(H1|S1,S2):', PH1xS1S2)
print('(4)计算O(H2|S1,S2)')
PH2xH1 = PLS(LSs[3], PHs[1])
PH2xS1S2 = PHS(PHs[1], PHs[0], PH2xH1, PH1xS1S2)
OH2xS1S2 = OHS(PH2xS1S2)
print('P(H2|H1):', PH2xH1, '\nP(H2|S1,S2):', PH2xS1S2, '\nO(H1|S1,S2):', OH2xS1S2)
print('(5)计算O(H2|S3)')
PH2x0E3 = PLS(LNs[2], PHs[1])
PH2xS3 = PHS(PHs[1], PE3, PH2x0E3, PExSs[2])
OH2xS3 = OHS(PH2xS3)
print('P(H2|非E3):', PH2x0E3, '\nP(H2|S3):', PH2xS3, '\nO(H2|S3):', OH2xS3)
print('(6)计算P(H1|S1,S2,S3)')
OH2 = OHS(PHs[1])
OH2xS1S2S3 = (OH2xS1S2/OH2)*(OH2xS3/OH2)*OH2
PH2xS1S2S3 = OH2xS1S2S3/(1+OH2xS1S2S3)
print('O(H2):', OH2, '\nO(H1|S1,S2,S3):', OH2xS1S2S3, '\nP(H1|S1,S2,S3):', PH2xS1S2S3)

求解结果

图3 求解结果

图3 求解结果
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lazyn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值