人工智能作业——搜索树博弈树一阶逻辑表达式CNF范式

article/2025/10/8 18:18:30

1. 人工智能定义

1. 简述什么是人工智能

  人工智能可分为两个维度:一个维度是从思维推理过程到行为结果(过程与结果);另一个维度是与人类表现的逼真度到数学与工程结合后的精确性(主观与客观)。

  • 像人—样行动:图灵测试的途径;
  • 像人—样思考:认知建模的途径;
  • 合理地思考:"思维法则"的途径;
  • 合理地行动:合理Agent途径;

2. agent判断

2. 考虑一个医疗诊断系统的agent,讨论该agent最合适的种类(简单agent,基于模型的agent,基于目标的agent和基于效用的agent)并解释你的结论
在这里插入图片描述
  我认为基于效用的agent最合适,因为医疗诊断系统面对很多不同的人群,存在很多不确定因素,即存在多个目标,多个目标在不确定的环境中。并且,能够治愈病人的方法有很多种,即一个目标有多种行为可以到达,系统必须衡量最优的方法来推荐给病人。所以效率很重要,应该选用基于效用的agent;

3. 搜索树

3. 先建立一个完整的搜索树,起点是S,终点是G,如下图,节点旁的数字表示到达目标状态的距离,然后用以下方法表示如何进行搜索
在这里插入图片描述
下列图为 ipad 上手绘
建立搜索树:
在这里插入图片描述

(a).深度优先
在这里插入图片描述

(b).广度优先
在这里插入图片描述

©.爬山法
在这里插入图片描述

(d).最佳优先
在这里插入图片描述

4. 搜索树代价计算

4. 图二是一棵部分展开的搜索树,其中树的边记录了对应的单步代价,叶子节点标注了到达目标结点的启发式函数的代价值,假定当前状态位于结点A:
在这里插入图片描述
(a) 用下列的搜索方法来计算下一步需要展开的叶子节点,,
注意必须要有完整的计算过程,同时必须对扩展该叶子节点之前的节点顺序进行记录:
在这里插入图片描述

  1. 贪婪最佳优先搜索
    首先,贪婪最佳优先算法是试图扩展离目标最近的节点,它只用到启发信息,也就是f(n)=h(n);即使用启发函数,从状态n到目标的最短路径的估计耗散值h(n)作为从起点经过n到目标的最短路径估计耗散值f(n);这里如果 h(B) >5 ,那么结点 c 距离目标结点最近,距离为 5 ,所以贪婪最佳优先算法先扩展 c 结点;如果h(B)<5,那么结点 B 距离目标结点最近,优先扩展 B 结点;
  2. 一致代价搜索 (GBS)
    在这里插入图片描述
    —致性代价搜索扩展的是路径消耗最小的结点。所以一致代价搜索扩展的结点顺序为:BDEFGHC
  3. A树搜索
    A
    搜索对节点的评估结合了g(n),即到达此节点已经花费的代价,和h(n),故f(n)=g(n)+h(n),即经过节点n的最小代价;
    如果 h(B)>15,因为 5+13 < 3+h(B) <19+5,所以首先访问D;如果 h(B)<15,因为 3+h(B) < 5+13 <19+5,所以首先访问 B,然后再访问 E G D H F C;
    在这里插入图片描述
    https://blog.csdn.net/CCCrunner/article/details/102851569

(b) 讨论以上三种算法的完备性和最优性

  • 贪婪最佳有限所搜算法试图扩展离目标距离最近的节点,因为这样符合贪婪的本质,能够很快找到解,它是不完备的,容易陷入死胡同或者死循环,类似DFS;
  • 一致代价搜索算法按照结点的最优路径顺序扩展节点,这是对任何单步代价函数都是最优的算法,它不再扩展深度最浅的结点,它是完备的,类似BFS;
  • A*树搜索是完备的,且对于给定的一致的启发函数都是效率最优的;

5. 博弈树

5. 博弈树问题
以下是一个博弈树轮到max选手行棋,叶子结点下的数字代表着当前状态的分值(相对于max选手)。
在这里插入图片描述
a)如果max选择走结点3且两个玩家正确游戏,那么该博弈树输出的分值是什么?

  当 max 选择走结点3时,min只有结点 6、7、8的选择,叶子结点表示 max 的赢面,如果 min 走结点7,那么 max 的赢面为3、5、6,这个赢面大于 min 走结点8后max的赢面 ,为了降低 max 赢的概率,min 一定不会走结点7;现在只剩结点6和8了,如果 min 走结点6,会面临让 max 赢面为9的可能,综合考虑:9*50%+1*50% > 2*50%+3*50%所以节点6使得 max 平均赢面为5,而结点8使得 max 平均赢面为2.5,所以 min 权衡之下,一定会走结点8,而 max 则会选择结点20,该博弈树输出值为3

b)分析使用剪枝时(从左到右遍历)该树被裁剪的部分。
在这里插入图片描述
参考文章:
详解Minimax算法与α-β剪枝
https://www.bilibili.com/video/BV1o54y1e7gP?from=search&seid=2162585600183505084
在这里插入图片描述
在这里插入图片描述
裁剪结点 13、8、19、20;

6. 四皇后问题

6. 考虑棋盘上的四皇后问题,最左边的一列为第一列,最上面的一行为第一行, Qi表示皇后在第i行所在的列数。假定皇后摆放的顺序为Q1,Q2,Q3,Q4, 且在每一行上按照从第一列到第四列的顺序摆放皇后,请运用回溯搜索算法结合前向检测来解决四皇后问题。
在这里插入图片描述
如果皇后摆放的顺序依旧为Q1,Q2,Q3,Q4,但不要求在每一行上从第一列到第四列摆放皇后,能够找出一种摆放策略来避免回溯失败?
对于皇后较少的n皇后问题,可以直观的比较互斥对的对数来决定放置位置:
在这里插入图片描述
  如果第一个皇后放置在(1,1)位置,那么剩余可放置位置(图中空白位置,如(2.3).(2.,4),(3,2).(3,4),(4,2).(4,3))之间的互斥对数有8对。
  如果第一个皇后放置在(1,2)位置,那么剩余可放置位置(图中空白位置,如(2.4).(3,1),(3,3),(4,1),.(4,3),(4,4))之间的互斥对数有5对。
  后者互斥对数更少,表示放置皇后后发生冲突的可能性更小,所以优先将第一个皇后放在(1,2)位置;

7. 一阶逻辑表达式

7. 将下列语句转成一阶逻辑表达式。注意:仅限于使用如下谓词IsNew(x),IsOld(x),IsBlue(x),IsBorrowed(x,y,z),Mother(x,y),Marriageable(x),Possess(x,y)
(1)所有旧的(old)东西都不是新的(new);
∀x isOld(x) -> ¬ isNew(x)
(2)蓝色的(blue)东西是从某人的妈妈(mother)那里借来的(borrowed);
∃x ∃m ∃n ∃y( isBlue(x) -> (Mother(m,n) ∧ borrowed(x, y,n)) )
(3)一个人必须要同时拥有一些旧的东西,一些新的东西,一些借来的东西,一些蓝色的东西才可以结婚(marriageable);

∀x ∃m ∃n ∃y ∃z ∃b (Possess(x, (isOld(m)) ∧ Possess(x, isNew(n) ) ∧ Possess(x, isBlue(y)) ∧ Possess(x, isBorrowed(z,x,b))) -> Marriageable(x) )

8. CNF范式

8.将下列一阶逻辑语句转换为CNF范式
(x){P(x)→{(y)[P(y)→P(f(x,y))]∧(y)[Q(x,y)→P(y)]}}
1)消除蕴含词 (p->q <=> ¬p∨q )
得到:¬(x){¬P(x)∨{(∀y)[¬P(y)∨P(f(x,y))]∧~(∀y)[¬Q(x,y)∨P(y)]}}
2)否定词内移
得到:(∃x){P(x)∧{(∃y)[P(y)∧¬P(f(x,y))]∨(∀y)[¬Q(x,y)∨P(y)]}}
3)变量标准化:相同变量需变名
得到:(∃x){P(x)∧{(∃y)[P(y)∧¬P(f(x,y))]∨(∀z)[¬Q(x,z)∨P(z)]}}
4)skolem 化消除∃量词(∃y <=> g(x))
得到:(g(z)){P(g(z))∧{(h(z))[P(h(z))∧¬P(f(g(z),h(z)))]∨(∀z)[¬Q(g(z),z)∨P(z)]}}
5)删除全称量词
得到:(g(z)){P(g(z))∧{(h(z))[P(h(z))∧¬P(f(g(z),h(z)))]∨[¬Q(g(z),z)∨P(z)]}}
6)将∧分配到∨中
得到:{(g(z))∧P(g(z))}∧{(g(z))∧(h(z))∧P(h(z))}∧{(g(z))∧(h(z))∧¬P(f(g(z),h(z)))}∧{(g(z))∨¬Q(g(z),z)}∧{(g(z))∨P(z)}

7) 把这个CNF变成5个子句:

  • (g(z))∧P(g(z))
  • (g(z))∧(h(z))∧P(h(z))
  • (g(z))∧(h(z))∧¬P(f(g(z),h(z)))
  • (g(z))∨¬Q(g(z),z)
  • (g(z))∨P(z)

http://chatgpt.dhexx.cn/article/a3yiuA4o.shtml

相关文章

AlphaBeta剪枝算法求解博弈树最优选择 头歌实验平台

AlphaBeta剪枝算法求解博弈树最优选择 头歌实验平台 前言一、AlphaBeta剪枝是什么&#xff1f;1.由来, 最大最小决策树2.发展3. AlphaBeta剪枝 二、实验算法伪代码三、实验算法代码四、实验结果在这里插入图片描述 五、感谢 前言 产生本文的缘由 人工智能原理课程 可选实验 “…

并行博弈树搜索算法-第3篇 优秀的园丁:Alpha-Beta算法

3.1 Alpha-Beta算法 虽然博弈树的状态是有限的,但是状态个数却非常多.假设博弈树的深度为d,每个结点有b个分支,即分支因子&#xff08;branchingfactor&#xff09;为b,那么使用Min-Max方法搜索这个博弈树需要搜索个结点. 然而幸运的是,Min-Max方法的一些搜索是没有必要的,…

利用α-β搜索的博弈树算法编写一字棋游戏 python

游戏规则 “一字棋"游戏&#xff08;又叫"三子棋"或"井字棋”&#xff09;&#xff0c;是一款十分经典的益智小游戏。“井字棋"的棋盘很简单&#xff0c;是一个 33 的格子&#xff0c;很像中国文字中的"井"字&#xff0c;所以得名"井字…

博弈树 极小极大分析法

一、博弈概述 博弈特点&#xff1a; &#xff08;1&#xff09;博弈的初始格局是初始节点 &#xff08;2&#xff09;在博弈树中&#xff0c;“或”和“与”是交替出现的。自己一方的扩展节点是“或”关系&#xff0c;对方扩展的节点是“与”关系。双方轮流扩展节点。 &…

第6-2课:决策树、博弈树和行为树

在以各种“XX学习”为代表的人工智能技术普及之前,游戏里常见的角色 AI 都是各种预设的行为逻辑,比如博弈树和行为树,当然也会用到各种专家知识库。当这些预设的行为逻辑足够复杂的时候,往往会让游戏玩家觉得游戏里的人物很“智能”。从本质上来说,这些都还不算是真正的 A…

并行博弈树搜索算法-第4篇 更上一层楼:Alpha-Beta算法的改进

在Alpha-Beta算法被广泛运用后,对该算法的很多改进算法也相继被提出.这些改进算法主要在以下几个方面对Alpha-Beta算法进行改进[7]: 1. 择序&#xff08;ordering&#xff09;.在搜索博弈树时,内部结点有多个可能的移动.择序指的是搜索这些分支的顺序.择序影响着搜索叶结点的个…

博弈树的启发式搜索

什么是博弈树 在博弈过程中, 任何一方都希望自己取得胜利。因此,当某一方当前有多个行动方案可供选择时, 他总是挑选对自己最为有利而对对方最为不利的那个行动方案。 此时,如果我们站在A方的立场上,则可供A方选择的若干行动方案之间是“或”关系, 因为主动权操在A方手里,他或…

博弈树 α-β剪枝

由于搜索的复杂度有点高&#xff0c;所以在树上减少计算量肯定是剪枝了&#xff0c;这里我们把剪枝的办法称作的&#xff1a;α-β剪枝 我们在前面的文章中谈到&#xff0c;当第一次运作的是A&#xff0c;则所有的奇数深度的节点都是A做的选择&#xff0c;所有偶数深度的节点都…

博弈树优化

前言:   对弈类游戏的智能算法, 网上资料颇多, 大同小异. 然而书上得来终觉浅, 绝知此事要躬行. 结合了自己的工程实践, 简单汇总整理下. 一方面是对当年的经典<<PC游戏编程(人机博弈)>>表达敬意, 另一方面, 也想对自己当年的游戏编程人生做下回顾.   承接上两…

博弈树中关于α-β剪枝树要点

目录 一&#xff0c;α-β剪枝树搜索方法&#xff1a;深度优先&#xff08;DFS&#xff09;&#xff0c;一般从博弈树最左边开始一直搜索到最右边。 人工智能导论复习&#xff1a;| 一&#xff0c;α-β剪枝树搜索方法&#xff1a;深度优先&#xff08;DFS&#xff09;&#…

(只此一篇便绝b能懂的)五子棋AI算法原理,博弈树、极大极小搜索、αβ剪枝

我在最近撰写五子棋AI程序设计报告时&#xff0c;翻阅了很多的资料博客&#xff0c;但却发现大佬们的博客&#xff0c;没有一篇是能让我只看它就能理解全部的AI算法。在看了众多博客后&#xff0c;我终于对博弈树、极大极小搜索、αβ剪枝恍然大悟&#xff0c;其实这些看似高大…

五子棋智能算法-博弈树算法思想详解(一)

学习这个算法之前必会链表 关于链表看这两篇博文 https://blog.csdn.net/viafcccy/article/details/84502334 https://blog.csdn.net/viafcccy/article/details/85041942 在五子棋下棋中 我们最容易想到的算法就是对于棋局的推演 从而找到一种最佳的情况去使棋局向这个方向发…

基于博弈树的五子棋 AI 算法及其 C++ 实现

基于博弈树的五子棋 AI 算法及其 C 实现 摘要一 五子棋的游戏规则二 五子棋对弈的算法描述2.1 博弈树搜索算法2.2 α ─ β 剪枝2.3 估价函数 三 五子棋对弈的算法实现3.1 Node类3.1.1 成员变量3.1.2 成员函数 3.2 GameTree类3.2.1 成员变量3.2.2 成员函数 四 五子棋对…

博弈与博弈树

博弈与博弈树 博弈 博弈双方根据事先制定的规则&#xff0c;轮流交替在对应的棋局上做出自己的选择&#xff0c;然后根据规则判定那一方获胜。 博弈树&#xff08;一种特殊的与或树&#xff09; 目标&#xff1a;将当前棋局作为根节点&#xff0c;选出最有利于自己获胜的一步…

博弈树搜索算法

即使满腹经纶&#xff0c;但没有好的口才来授课&#xff0c;也会让学生听得昏昏欲睡、不知所云呢&#xff01;即使满腔热血&#xff0c;没有好的口才来凝聚共识&#xff0c;也会让这份理想温暖黯淡无光。但是&#xff0c;好的说话之道&#xff0c;也要有一颗赤诚的心、诚恳的情…

博弈树-BIT

博弈树-BIT 下棋属于一种博弈游戏&#xff0c;博弈过程可以用树&#xff08;博弈树&#xff09;来表示。假设游戏由两个人&#xff08; A 和 B &#xff09;玩&#xff0c;开始由某个人从根结点开始走&#xff0c;两个人轮流走棋&#xff0c;每次只能走一步&#xff0c; 下一步…

第四章 博弈树game tree

这里写目录标题 perfect-information game从博弈树得到收益表subgamebackward induction 反向推导一个值得思考的例子&#xff1a; 另一个例子umperfect information extensive混合策略和行为策略&#xff08;mexed and behavioral strategies)不完美信息博弈的求解 博弈树用于…

人工智能—— 博弈树的启发式搜索

一、概述 博弈的概念 博弈是一类具有智能行为的竞争活动&#xff0c;如下棋、战争等。 博弈的类型 双人完备信息博弈&#xff1a;两位选手&#xff08;例如MAX和MIN &#xff09;对垒&#xff0c;轮流走步&#xff0c;每一方不仅知道对方已经走过的棋步&#xff0c;而且还能…

博弈树与α-β剪枝

一、评价函数&#xff08;Evaluation function&#xff09; 绝大部分的游戏&#xff0c;决策空间都相当庞大。 即使是最简单的三子棋&#xff08;又叫做“井”字棋&#xff0c;一字棋&#xff09;。它的第一步有9种决策&#xff0c;然后对面有9*872种决策&#xff0c;....&…

博弈树

博弈树的搜索 博弈树定义&#xff1a; 一类特殊的与或图 &#xff08;本次讨论的博弈树都是“与或图”&#xff09; 应用范围&#xff1a; 下棋、故障诊断、风险投资 基本搜索策略&#xff1a; 极小极大搜索&#xff08;min-max&#xff09; 优化的搜索方法&#xff1a; α…