连接树与信念传播算法

junctiontree的Python项目详细描述


#连接树
使用连接树算法实现离散因子图推理


要求:
----

*numpy(>;=1.12)


因子图:
----



因素中。(一个键对应一个变量。)

````[keys1,…,keysn]n个因子的列表```

由于因子列表的长度是
作为因子值的表示

````[values1,…,valuesn]```

e,size是表示变量大小的整数。它与数值数组中相应轴的长度





generic trees(递归定义):
---------------------------

````
[索引、键、子树1,…,子树]
```




```
树结构(由节点列表中的节点索引组成):
[
索引,

separator1_索引,
子树1
),
…,

separatorn_索引,
子树

]
节点列表(元素是定义节点的键:
[节点0键,节点1键,…,节点n键]

````

(连接)树中的电位:
--------

树图中的节点id将
映射到此数据结构中的数组,以便在执行阶段获得数值
数组。在编译阶段不需要数字数组








\将传播视为bp
导入交叉点。交叉点视为jt
将numpy导入为np


关键尺寸={
"多云":2,
"洒水":2,
"雨":2,
"湿草":2
}

因子=[
["多云"],
["多云","洒水车"],
["多云","雨"],
["雨","洒水车","湿草地"]




值=[
np.数组([0.5,0.5]),
np.数组(
[
[0.5,0.5],
[0.9,0.1]
]
],
np.数组(
[
[0.8,0.2],
[0.2,0.8]
]
),
np.数组(
[
[
[1,0],
[0.1,0.9]
],
[
[0.1,0.9],
[0.01,0.99]
]
]
]
]


tree=jt.创建连接树(因子,关键大小)


````



初始团电位不一致。通过在连接树上进行全局传播,使电位保持一致。在观察连接树中变量的数据之后,可以使团势保持一致

```
#然后,同样的值:
cond_values=values.copy()
从一组一致的团势集合中,可以计算出感兴趣变量的边际值

````
pr(洒水车湿草地=1)
marginal=np.sum(prop_值[1],轴=0)


标准化值:
范数边缘=边缘/np.和(边缘)
````



参考文献:


s.m.aji和r.j.mceliece,《信息论ieee汇刊》,第46卷,第2期,第325-343页,2000年3月。doi:10.1109/18.825794

cecil huang,adnan darwiche,《信念网络中的推理:程序指南》,国际近似推理杂志,第15卷,第3期,1996年,第225-263页,issn 0888-613x,http://dx.doi.org/10.1016/s0888-613x(96)00069-2.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java对来自同一基类的不同对象进行迭代   java打印在JtextArea或JtextPane上   java无法使用Play Core库提供的inapp更新支持更新应用程序   javafxgui中关注点的java分离   onPreferenceChange方法中的java奇怪值   lambda调用包含在Java中可选值的列表中?   servlet中的java int值(无法将字符串转换为int)   尽管有终止表达式,java循环仍不会结束   java是否可以通过编程方式启用远程jmx监视?   java如何创建集合的新实例   如何将自定义Java模块更新为JRE映像   java无法点击Chrome和IE11上的自定义复选框   java Here Android SDK在“无车无车”和“无车无车”街道上导航