人工智能课内实验报告
主观贝叶斯方法的研究
一、 实验题目
主观Bayes方法的研究。
二、 实验目的
在证据不确定的情况下,根据充分性量度LS、必要性量度LN、E的先验概率P(E)和H的先验概率P(H)作为前提条件,分析P(H/S)和P(E/S)的关系。
三、 实验原理
1、 证据不确定性的表示
1. 在主观Bayes方法中,证据的不确定性用概率表示。对于证据E,由
用户根据观察S给出P(E|S),即动态强度。用P(E|S)描述证据的不确定性 (证据E不是可以直接观测的)。
2. 证据肯定存在时,P(E|S)=1;
3. 证据肯定不存在时, P(E|S)=0; 4. 证据具有不确定性时, 0
1.当证据E愈是支持H为真时,则应是使相应的LS值愈大。 若证据E对H愈是必要,则相应LN的值愈小。
2. 不能出现LS>1且LN>1的取值
因为: LS>1:表明证据E是对H有利的证据。
LN>1:表明证据?E是对H有利的证据。
3. 不能出现LS<1且LN<1的取值
因为:LS<1: 表明证据 E是对H不利的证据。
LN<1:表明证据?E是对H不利的证据。
4. 一般情况下,取LS>1, LN<1。 3、证据不确定的情况
在现实中,证据肯定存在和肯定不存在的极端情况是不多的,更多的是介于二者之间的不确定情况。对初始证据来说,由于用户对客观事物或现象的观察不是很精确,因而所提供的证据是不确定的;另外,一条知识的证据往往来源于另一条知识推出的结论,一般也具有某种程度的不确定性。所以我们要在S对E的观察的先验概率0
进一步讨论:
P(H/S)?P(H/E)*P(E/S)?P(H/?E)*P(?E/S)
分四种情况讨论这个公式: 1. P(E/S)=1
当P(E/S)=1时,P(-E/S)=0。此时公式变成(肯定存在的情况):
P(H/S)?P(H/E)?LS*P(H)
(LS?1)*P(H)?12. P(E/S)=0
当P(E/S)=0时,P(-E/S)=1.此时公式变成(肯定不存在的情况):
P(H/S)?P(H/?E)?LN*P(H)
(LN?1)*P(H)?13. P(E/S)=P(E) 当P(E/S)=P(E)时,表示E与S无关。利用全概率公式就将公式变为:
P(H/S)?P(H/E)*P(E)?P(H/?E)*P(?E)?P(H)
4. 当P(E/S)为其它值时,通过分段线性插值就可得到计算P(H/S)的公式:
P(H)?P(H/?E)?P(H/?E)?*P(E/S),若0?P(E/S)?P(E)?P(E)?P(H/S)???P(H)?P(H/E)?P(H)*[P(E/S)?P(E)],若P(E)?P(E/S)?1?1?P(E)?该公式称为EH公式或UED公式。
四、实验程序 ls=input('ls='); ln=input('ln='); ph=input('ph='); pe=input('pe=');
phe=(ls*ph)/((ls-1)*ph+1); phfe=(ln*ph)/((ln-1)*ph+1); phs=[]; for pes=0:0.01:1
if pes<=pe
a=phfe+(ph-phfe)/pe*pes; phs=[phs,a]; else
a=ph+(phe-ph)/(1-pe)*(pes-pe); phs=[phs,a]; end end
pes=0:0.01:1; plot(pes,phs) 五、实验结果
ls=1000 ln=0.3 ph=0.3 pe=0.3
六、试验总结
通过实验,使我更加熟悉了主观Bayes方法的实质,根据先验概率的条件不同来分析后验概率,利用它们之间的关系,更好的了解不确定性推理
利用A*算法实现重排九宫格
一、实验题目
利用A*算法实现重排九宫格
二、实验目的
熟悉启发式搜索的思想,加深对各种图搜索策略概念的理解。
三、实验原理
1搜索的一般过程
(1)把初始节点S0放入OPEN表,并建立只含S0的图,记为G。OPEN:=S0,G:=G0(G0=S0) (2)检查OPEN表是否为空,若为空则问题无解,退出。LOOP:IF(OPEN)=()THENEXIT(FAIL)
(3)把OPEN表的第一个节点取出放入CLOSE表,记该节点为节点n。N:=FIRST(OPEN),REMOVE(n,OPEN),ADD(n,CLOSE)(4)观察节点n是否为目标节点,若是,则求得问题的解,退出。IFGOAL(n)THENEXIT(SUCCESS)
(5)扩展节点n,生成一组子节点。把其中不是节点n先辈的那些子节点记作集合M,并把这些节点作为节点n的子节点加入G中。EXPAND(n)-->M(mi),G:=ADD(mi,G)针对M中子节点的不同情况,分别进行如下处理:
对于那些未曾在G中出现过的M成员设置一个指向父节点(n)的指针,并把它放入OPEN表;
对于那些先前已在G中出现过的M成员,确定是否要修改指向父节点的指针;对于那些先前已在G中出现,并且已经扩展了的M成员,确定是否需要修改其后继结点指向父节点的指针。
(6)按某种搜索策略对OPEN表中的节点进行排序(7)转第2步。2.2.2A*算法
我在实验中采用A*算法实现重排九宫格。A*算法是一种全局择优的启发式算法,可以证明它具有最优性。
A*算法可以描述为f(n)=h(n)+g(n)的形式。其中,h(n)被称作启发函数,是当前结点到目标结点的代价描述;而g(n)是代价函数,描述了起始结点到当前结点的代价;f(n)是估价函数。A*算法是不回溯的,每次都选择f值最小的路径推进。
在程序中,我按如下思路实现了A*算法。其中,启发函数h(n)我选取的是当前结点和目标结点状态不同的个数。
(1)建立一个链表,计算初始结点的估价函数f,并将初始结点入表,设置链表头和尾指针。
(2)取出头(头指针所指)结点,如果该结点是目标结点,则输出路径,程序结束。否则对结点进行扩展。
(3)检查扩展出的新结点是否与链表中的结点重复,若与不能再扩展的结点重复(位于头指针之前),则将它抛弃;若新结点与待扩展的结点重复(位于头指针之后),则比较两个结点的估价函数中g的大小,保留较小g值的结点。跳至第五步。
(4)如果扩展出的新结点与链表中的结点不重复,则按照它的估价函数f大小将它插入头结点后待扩展结点的适当位置,使它们按从小到大的顺序排列,最后更新尾指针。
(5)如果头结点还可以扩展,直接返回第二步。否则将头指针指向下一结点,再返回第二步。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库人工智能实验报告在线全文阅读。
相关推荐: