python 实现结论不确定性合成

本文介绍了一种基于几率函数和概率函数的不确定性合成计算方法,并通过具体例题展示了计算流程。涉及几率函数、概率函数的转换及条件概率计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参数说明

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

在这里插入图片描述

图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(Hi∣Ej)=LSj×P(Hi)(LSj−1)×P(Hi)+1P({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)≤1P(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∣S1,S2,...,Sn)=O(H∣S1)O(H)O(H∣S2)O(H)...O(H∣Sn)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(H1∣S1)O(H_1|S_1)O(H1S1)

P(E1∣S1)>P(E1),P(H1∣E1)=LS1×P(H1)(LS1−1)×P(H1)+1P(H1∣S1)=P(H1)+P(H1∣E1)−P(H1)1−P(E1)×(P(E1∣S1)−P(E1))O(H1|S1)=P(H1∣S1)1−P(H1∣S1){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(H1∣S2)O(H_1|S_2)O(H1S2)

P(E2∣S2)>P(E2),P(H1∣E2)=LS2×P(H1)(LS2−1)×P(H1)+1P(H1∣S2)=P(H1)+P(H1∣E2)−P(H1)1−P(E2)×(P(E2∣S2)−P(E2))O(H1|S2)=P(H1∣S2)1−P(H1∣S2){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(H1∣S1,S2)P(H_1|S_1,S_2)P(H1S1,S2)

O(H1)=P(H1)1−P(H1)O(H1|S1,S2)=O(H1∣S1)O(H1)×O(H1∣S2)O(H1)×O(H1)P(H1|S1,S2)=O(H1∣S1,S2)1+O(H1∣S1,S2)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(H2|S1,S2)O\left(H_2\middle| S_1,S_2\right)O(H2S1,S2)

P(H1|S1,S2)>P(H2),P(H2|H1)=LS4×P(H2)(LS4−1)×P(H2)+1P(H2|S1,S2)=P(H2)+P(H2∣H1)−P(H2)1−P(H1)×(P(H1|S1,S2)−P(H1))O(H2|S1,S2)=P(H1∣S1,S2)1−P(H1∣S1,S2)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(H2∣S3)O(H_2|S_3)O(H2S3)

P(E3∣S3)<P(E3),P(H2∣¬E3)=LN3×P(H2)(LN3−1)×P(H2)+1P(H2∣S3)=P(H2∣¬E3)+P(H2)−P(H2∣¬E3)P(E3)×P(E3∣S3)O(H2|S3)=P(H2∣S3)1−P(H2∣S3){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(H2∣S1,S2,S3)P(H_2|S_1,S_2,S_3)P(H2S1,S2,S3)

O(H2)=P(H2)1−P(H2)O(H2|S1,S2,S3)=O(H2∣S1,S2)O(H2)×O(H2∣S3)O(H2)×O(H2)P(H2∣S1,S2,S3)= O(H1∣S1,S2,S3)1+O(H1∣S1,S2,S3)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 求解结果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

lazyn

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

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

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

打赏作者

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

抵扣说明:

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

余额充值