《人工智能:计算Agent基础》——3.4 一个通用搜索算法

简介:

本节书摘来自华章计算机《人工智能:计算Agent基础》一书中的第3章,第3.4节,作者:(加)David L.Poole,Alan K.Mackworth 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.4 一个通用搜索算法

这一节描述在图中寻找解路径的一个通用算法。这个算法独立于任何特定的搜索策略和特定的图。


2eda2b09fd965af9f1be1e937ea527db5a6dc2c6

通用搜索算法背后的直观理念就是给定一个图、一个起始节点集和一个目标节点集,循序渐进地从起始节点探索路径。这要通过维持已经探索过的从起始节点开始的路径的边界(或外围)来实现。边界包含能构成从起始节点到目标节点的初始部分的所有路径。(见图3-3,边界就是指通向灰色节点的那组路径。)77最初,边界包括从起始节点开始的无出弧的那些平凡的(不重要的)路径。随着搜索的深入,边界扩展到未扩展节点,最终到达目标节点。为了扩大边界,搜索者继续挑选,从边界去除路径,从最新节点出弧扩展新的路径并将这些新路径加入边界。搜索策略就界定了在每一步中需要选择哪些边界要素。
图3-4中给出了通用搜索算法。最初,边界是一组从起始节点开始的空路径。每一步中,算法通过从边界去除路径〈s0,…,sk〉而继续推进边界。如果goal(sk)是真(即sk是目标节点),它就找到了解并返回已找到的路径,即〈s0,…,sk〉。否则就通过增加一条出弧来寻找sk的邻居,从而扩展路径。因为对于sk的每一个邻居s,路径〈s0,…,sk,s〉都会加入到边界中。这一步叫做扩展(expanding)节点sk。
1:procedure Search(G,S,goal)
2: Inputs
3:  G:具有N个节点和A条边的图
4:  S:开始节点集
5:  goal:布尔状态函数
6: Output
7:  从S的一个成员到goal值为真的节点的一条路径,
8:  或者如果无解路径则⊥
9: Local
10:  边界:路径集合
11: Frontier←{〈s〉∶s∈S}
12: While Frontier≠{}do
13:  select and remove 〈s0,…,sk〉from Frontier
14:  if goal(sk) then
15:   return〈s0,…,sk〉
16:  Frontier←Frontier∪{〈s0,…,sk,s〉∶〈sk,s〉∈A}
17: return ⊥


<a href=https://yqfile.alicdn.com/c8fed22ca726cd395ddfb87650cd80f5b721bf7c.png" >

这个算法有一些要注意的特征:
  • 13行中路径的选择是不确定性的。路径的选择会影响效率,5.2.2节中“不确定性选择”处有更多关于路径筛选使用的详细描述。特定的搜索策略决定选择哪一条路径。
  • 15行中的return应视为临时返回,通过继续进行的16行指令可得出另一条到达目标的搜索路径。78
  • 如果该过程返回⊥,则不存在解(或者即使再次试验进行验证也无其余解)。
  • 这个算法只能用来测试从边界挑选的路径是否能终止在目标节点,而不是测试任意加入到边界的路径。对此有两点主要原因。有时边界上的节点到目标节点的弧花费很大,搜索就不应当通过这条弧返回路径,因为可能存在更低花费的路径。当要求最低花费路径的时候,这就显得尤为重要了。第二点原因是确定一个节点是目标节点的代价很大。

如果选择的路径不在目标节点处终止,并且终止节点没有邻居,那么扩展路径意味着去除路径。这种结果是合理的,因为这条路径不能看做是从起始节点到目标节点的路径的一部分。

相关文章
|
3月前
|
人工智能 开发框架 决策智能
谷歌开源多智能体开发框架 Agent Development Kit:百行代码构建复杂AI代理,覆盖整个开发周期!
谷歌开源的Agent Development Kit(ADK)是首个代码优先的Python工具包,通过多智能体架构和灵活编排系统,支持开发者在百行代码内构建复杂AI代理,提供预置工具库与动态工作流定义能力。
493 3
谷歌开源多智能体开发框架 Agent Development Kit:百行代码构建复杂AI代理,覆盖整个开发周期!
|
3月前
|
存储 算法 调度
基于和声搜索优化算法的机器工作调度matlab仿真,输出甘特图
本程序基于和声搜索优化算法(Harmony Search, HS),实现机器工作调度的MATLAB仿真,输出甘特图展示调度结果。算法通过模拟音乐家即兴演奏寻找最佳和声的过程,优化任务在不同机器上的执行顺序,以最小化完成时间和最大化资源利用率为目标。程序适用于MATLAB 2022A版本,运行后无水印。核心参数包括和声记忆大小(HMS)等,适应度函数用于建模优化目标。附带完整代码与运行结果展示。
122 24
|
3月前
|
人工智能 自然语言处理 算法
阿里云 AI 搜索开放平台:从算法到业务——AI 搜索驱动企业智能化升级
本文介绍了阿里云 AI 搜索开放平台的技术的特点及其在各行业的应用。
415 3
|
2月前
|
人工智能 监控 JavaScript
MCP实战之Agent自主决策-让 AI玩转贪吃蛇
MCP服务器通过提供资源、工具、提示模板三大能力,推动AI实现多轮交互与实体操作。当前生态包含Manus、OpenManus等项目,阿里等企业积极合作,Cursor等工具已集成MCP市场。本文以贪吃蛇游戏为例,演示MCP Server实现流程:客户端连接服务端获取能力集,AI调用工具(如start_game、get_state)控制游戏,通过多轮交互实现动态操作,展示MCP在本地实践中的核心机制与挑战。
444 39
MCP实战之Agent自主决策-让 AI玩转贪吃蛇
|
3月前
|
人工智能 自然语言处理 监控
Cooragent:清华 LeapLab 开源 AI Agent 协作框架,一句话召唤AI军团!
Cooragent 是清华大学 LeapLab 团队推出的开源 AI Agent 协作框架,支持基于简单描述快速创建 Agent 并实现多 Agent 协作,具备 Prompt-Free 设计和本地部署能力。
402 6
Cooragent:清华 LeapLab 开源 AI Agent 协作框架,一句话召唤AI军团!
|
3月前
|
人工智能 自然语言处理 JavaScript
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
Magnitude是一个基于视觉AI代理的开源端到端测试框架,通过自然语言构建测试用例,结合推理代理和视觉代理实现智能化的Web应用测试,支持本地运行和CI/CD集成。
406 15
测试工程师要失业?Magnitude:开源AI Agent驱动的端到端测试框架,让Web测试更智能,自动完善测试用例!
|
4月前
|
人工智能 监控 数据可视化
Agent TARS:一键让AI托管电脑!字节开源PC端多模态AI助手,无缝集成浏览器与系统操作
Agent TARS 是一款开源的多模态AI助手,能够通过视觉解析网页并无缝集成命令行和文件系统,帮助用户高效完成复杂任务。
3109 13
Agent TARS:一键让AI托管电脑!字节开源PC端多模态AI助手,无缝集成浏览器与系统操作
|
1月前
|
机器学习/深度学习 算法 数据可视化
基于Qlearning强化学习的机器人迷宫路线搜索算法matlab仿真
本内容展示了基于Q-learning算法的机器人迷宫路径搜索仿真及其实现过程。通过Matlab2022a进行仿真,结果以图形形式呈现,无水印(附图1-4)。算法理论部分介绍了Q-learning的核心概念,包括智能体、环境、状态、动作和奖励,以及Q表的构建与更新方法。具体实现中,将迷宫抽象为二维网格世界,定义起点和终点,利用Q-learning训练机器人找到最优路径。核心程序代码实现了多轮训练、累计奖励值与Q值的可视化,并展示了机器人从起点到终点的路径规划过程。
74 0
|
4月前
|
机器学习/深度学习 人工智能 算法
模型即产品:万字详解RL驱动的AI Agent模型如何巨震AI行业范式
未来 AI 智能体的发展方向还得是模型本身,而不是工作流(Work Flow)。像 Manus 这样基于「预先编排好的提示词与工具路径」构成的工作流智能体,短期或许表现不错,但长期必然遇到瓶颈。这种「提示驱动」的方式无法扩展,也无法真正处理那些需要长期规划、多步骤推理的复杂任务。下一代真正的LLM智能体,则是通过「强化学习(RL)与推理(Reasoning)的结合」来实现的。
283 10
模型即产品:万字详解RL驱动的AI Agent模型如何巨震AI行业范式

热门文章

最新文章