连接树与信念传播算法

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 OpenShift的齿轮特性   java如何在Liferay站点的每个页面上放置公司地址和电话?   java确定整数数组中是否存在一个子集,在两个条件下求和到给定的目标值   序列化为什么java中的serialVersionUID必须是静态的、最终的、长类型的?   java响应返回null   java注入接口实现Quarkus   java我不明白为什么第二次排序的运行时间比第一次慢?   (Java)显示图像的最佳方式?   java Android应用程序因添加布局而崩溃   java如何在运行时获取泛型变量的类   java Selenium web驱动程序:无效的选择器:*:WebKitFullScreenSentor   Spring中的java注入值始终为空   Eclipse中带有TestNG插件的@BeforeSuite和@AfterSuite的java问题   使用trycatch块、filewriter和printwriter在java中创建自定义类   如何在Java 安卓上绘制相交的两条线