连接树与信念传播算法

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在HL7中“Repeate”、“Component”和“SubComponent”是什么意思?   javaqtp到Selenium等价方法   找不到使用线程错误RequestProcessor的Java服务器   java为什么在竞争性编程平台上提交代码时会出现运行时错误?   eclipse使用java程序动态纠正java代码中的错误(源代码分析+错误删除)   java如何获取Jlist中的一个条目以与另一个Jlist中的条目协同工作?   java在排序数组上迭代并存储不同整数的计数   java循环休眠选择(onetomany/manytoone)JAXR   java递归地反转只有两个指针返回的linkedlist?   JAVA代码中的循环建议   java这个if-else语句中有什么错误吗?   Java枚举返回Int   java云网关无法通过网关访问服务,但直接访问没有问题   Java中的多线程,使用线程是否有效。空闲线程的睡眠(1)?   java将二维整数数组的行从最小到最大排序   java使用SQLite数据库修复NullPointerException   过滤器中的java映射URI模板   到字符串的资产的java路径?