机器智能(五)

1、前向剪枝:无需进一步考虑直接剪枝一些子节点(横向剪枝)
a、模拟人的思考方式,人只会思考几百步棋中的几步
b、柱搜索:每一层只考虑最好的n步棋。可能导致最佳的行棋方法被剪掉
c、pnobcut算法:使用先验的统计信息在一定程度上保护最佳行棋不被剪掉,根据历史的经验和一定的先验统计信息(类似于人类的棋谱),使剪枝可能在(a,b)之外
2、搜索与查表:
a、开局时的行棋大多依赖于人类的专业知识
b、接近尾声的棋局可能性有限
c、在开局和接近尾声阶段可以通过查表进行
d、优势:速度快、性能好
3、随机博弈:
a、许多博弈存在不确定性的随机因素,如投色子,称为随机博弈。结合了运气和技巧。
b、西洋双陆棋的博弈树除了max和min节点之外还必须包括随机节点,即模拟投色子的过程。由于有两颗色子,所以有C62+6=21中可能的色子分支,即chance节点。每个chance节点都会有多个min节点与之对应。
c、max节点:选择子节点中的最大值
d、min节点:选择子节点中的最小值
e、chance节点:保存的是其子节点的期望
f、保证叶子节点效用在同一数量级上
4、部分可观察的博弈:
a、军旗:部分可观察的确定博弈(暗棋,需要去翻对方的棋子,需要信念状态)
b、牌类:部分可观察随机博弈(棋的种类一定,但每人的不定,需要概率推算来制定决策)
c、总结:博弈,α-β剪枝,不完美的实时决策,随机博弈
5、标准的搜索问题:约束空间、当前状态、行动、转移模型、目标测试、评估函数
6、约束满足问题CSP:状态被定义为在值域D中的变量X。
a、目标测试:每个变量都有自己的赋值同时满足约束条件
b、三个成分:变量、值域、约束集合
c、完整赋值VS部分赋值
d、约束图:节点是变量,边是约束
e、相容性赋值:满足约束条件的赋值
7、地图填色问题:
a、变量:洲
b、值域:颜色
c、限制条件(约束):相邻两个洲不能同色
8、作业调度问题
9、离散变量:
a、有限值域:n个变量,值域集合大小为d
b、无限值域:整数,字符串等
10、连续变量:线性约束,二次规划求解
11、CSP形式化:
a、一元约束,只涉及到1个变量
b、二元约束,涉及到2个变量
c、高阶约束,涉及到3或者以上个变量
d、全局约束:变量个数任意的约束称为全局约束
12、CSP求解步骤:约束传播->搜索
13、约束传播:通过减少变量值域,减少搜索算法的时间复杂度,提高性能;使用约束减少变量的合法取值范围,从而影响到跟此变量有约束关系的另一变量的取值
14、约束满足问题求解时,约束传播与搜索交替进行
15、节点相容(1相容):单个变量值域中的所有取值满足一元约束(即涉及到单个变量的约束条件都满足)
16、弧相容(2相容):某变量值域中的所有取值满足该变量中的所有二元约束(即所有的变量都满足二元约束)
17、通用弧相容:某变量值域中的所有取值相对于某n元约束是相容的。即对于所有的变量都满足二元约束,其中二元约束的一个点为值域中的任一个变量,而二元约束的另一个点是一个约束(不等式为例)
18、AC-3算法(一种约束传播算法,只针对二元约束)
在这里插入图片描述
a、目的:减小变量的值域
b、定义一个队列:存放所有约束元素
c、输入是一个CSP问题,输出也是一个CSP问题,但是对值域进行了减少。
d、首先,将所有的和约束条件有关的二元组(包括前后顺序调换的情况,如AB和BA)入队。此时就得到了所有的弧相容。此时队列为{(A,B),(B,A),(B,C),(C,B)},三个变量的值域都是{0,1,2,3,4}
e、然后对第一个节点对(A,B)出队进行的操作:假定B的值域不变,调整A的值域。对于B=0,A=1;对于B=1,A=2;对于B=2,A=3;对于B=3,A=4。故A的值域改变为{1,2,3,4}
f、此时(B,A)应该入队,因为A的值变化后可能改变B的取值,但已经在队列中就不管了,此时队列为{(B,A),(B,C),(C,B)}
g、(B,A)出队,固定A调整B。对于A=1,B=0;对于A=2,B=1;对于A=3,B=2;对于A=4,B=3。故B的值域改变为{0,1,2,3}
h、B调整后(A,B)和(C,B)都需要重新入队,其中(C,B)已经在队列中,就不用管了,此时队列为{(B,C),(C,B),(A,B)}
i、(B,C)出队,固定C调整B。对于C=0,B=0;对于C=2,B=1;对于C=4,B=2.故B的值域改变为{0,1,2}
j、B调整后(A,B)和(C,B)应该入队,但已经在就不管了,此时队列为{(C,B),(A,B)}
k、(C,B)出队,固定B调整C。对于B=0,C=0;对于B=1,C=2;对于B=2,C=4。故C的值域改变为{0,2,4}
l、C调整后(B,C)和(C,B)应该入队,但已经在就不管了,此时队列为{(A,B),(B,C)}
m、(A,B)出队,固定B调整A。对于B=0,A=1;对于B=1,A=2;对于B=2,A=3。故A的值域改变为{1,2,3}
n、A调整后(A,B)和(B,A)应该入队,(B,A)入队。此时队列为{(B,C),(B,A)}
o、(B,C)出队,此时值域无变化,不作处理
p、(B,A)出队,此时值域无变化,不错处理
q、队列为空,得到三个变量A,B,C的值域分别是{1,2,3};{0,1,2};{0,2,4}
19、如果用AC-3算法去处理n元约束问题,那么数出来的结果并不是空值域,而是完全没有改变的值域,即问题本身,没有进行任何处理。
20、路径相容:三个变量,任意拿出两个变量,这两个变量集合对于第三个变量是相容的,此时这三个变量是路径相容的。即存在一种解,让这三个变量互不冲突。
21、区别:
在这里插入图片描述
22、K相容:如果对于任何k-1个变量的赋值,第k个变量总能被赋予一个和前面k-1个变量相容的值。即存在一种解,让这k个变量满足所有的条件,互不冲突。
23、强K相容:一个图是K相容的,K-1相容的,一直到1相容的
24、对于非弧相容的问题,采用弧相容算法有可能有解,如数独问题。

发布了291 篇原创文章 · 获赞 178 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/qq_40851744/article/details/105057747
今日推荐