【AI认知篇】1.7《人工智能:现代方法》第三章“解决问题与搜索”精华讲解

解决问题与搜索(Solving Problems by Searching),这是 AI 学科中最具代表性、最经典,也最“动手实践”的一章。

它回答了一个关键问题:

“如果 AI 智能体要在未知或复杂环境中找到解决方案,它该如何‘思考’、‘探索’和‘决策’?”


🎯 本章核心一句话总结:

人工智能中的许多问题可以被形式化为“寻找从初始状态到目标状态的路径”,而“搜索”就是智能体探索可能的行动序列,找到解决方案的过程。

换句话说:

当 AI 不知道该怎么做时,它就会“搜索”可能的解法,就像我们在生活中遇到问题时尝试各种办法直到找到出路一样。


🧩 一、为什么要学“搜索”?—— AI 的“大脑第一步”

在很多 AI 问题中,比如:

  • 下棋(下一步怎么走?)

  • 机器人找路(怎么从 A 走到 B?)

  • 解谜(比如八数码、华容道、魔方)

  • 计划任务(比如如何安排一系列动作完成目标)

👉 核心问题往往可以抽象为:

“从一个初始状态出发,通过一系列行动,达到某个目标状态,我该选择怎样的行动序列?”

这就是“搜索问题”的本质。

🔍 搜索,就是 AI 的“试错与探索”,是智能体在没有现成答案时,一步步寻找解法的过程。


🗺️ 二、搜索问题的基本组成(问题形式化)

AIMA 把任何一个“搜索问题”都抽象为 4 个核心要素:


✅ 1. 状态(State)

  • 表示某一时刻系统的情况

  • 比如:

    • 滑块拼图中每个数字的位置

    • 机器人在房间中的坐标

    • 八数码中每个滑块所在格子


✅ 2. 初始状态(Initial State)

  • 问题开始时系统的状态

  • 比如:拼图一开始是打乱的;机器人一开始在房间角落


✅ 3. 行动(Actions)

  • 在某个状态下,智能体可以采取哪些合法的“动作”

  • 比如:

    • 机器人可以“向上/下/左/右”移动

    • 拼图可以“滑动某块到空位”


✅ 4. 转移模型(Transition Model)

  • 描述执行某个行动后,状态会如何改变

  • 即:如果我在状态 S 执行行动 A,会进入状态 S'


✅ 5. 目标测试(Goal Test)

  • 判断当前状态是不是我们想要的“终点”

  • 比如:拼图是否还原?机器人是否到达目标点?


✅ 6. 路径代价(Path Cost)(可选但重要)

  • 每一步可能有代价,比如时间、能量、距离

  • 搜索不仅找“能到达的解”,还要找“最优的解”(比如最短路径、最少步数)


🧠 三、搜索的基本框架:就像走迷宫

想象你在玩一个迷宫游戏,目标是找到出口:

  • 你站在起点(初始状态)

  • 你可以向前后左右走(行动)

  • 有些路是死胡同,有些通向出口(目标测试)

  • 你希望找到一条能到达出口的路径,最好是最短的路径(最优解)

这就是搜索问题的直观比喻 👇

搜索 = 在状态空间中寻找从起点到目标点的路径


🔍 四、搜索的两种基本类型

AIMA 清晰地区分了两大类搜索策略:


1️⃣ 无信息搜索(Uninformed Search)—— “盲目搜索”

也叫盲目搜索、穷举搜索,它对目标一无所知,只是系统地尝试各种可能性。

特点:

  • 不知道目标在哪,没有启发信息

  • 按照预先定义的顺序遍历状态空间

  • 简单但可能效率低下

常见的无信息搜索算法:

算法特点是否完备?是否最优?适用场景
广度优先搜索(BFS)先探索所有一步能到的,再两步,依此类推✅ 是✅ 是(如果路径代价相同)找最短路径(步数最少)
深度优先搜索(DFS)一直往深处走,直到走不通再回溯❌ 否(可能无限深)❌ 否空间效率高,但不保最优
深度受限搜索(DLS)DFS + 设置最大深度限制✅ 是❌ 否避免无限深问题
迭代加深搜索(IDS)把 DFS 的深度逐渐增加,结合了 BFS 和 DFS✅ 是✅ 是既保最优又节省空间
一致代价搜索(UCS)按照路径总代价从小到大探索✅ 是✅ 是(适合不同代价)找代价最小路径(如距离、时间)

🎓 小贴士:

  • 完备性(Completeness):算法是否一定能找到解(如果存在的话)?

  • 最优性(Optimality):算法是否一定能找到最优的解(比如最短路径)?


2️⃣ 有信息搜索 / 启发式搜索(Informed Search)—— “有头脑的搜索”

也叫启发式搜索,它利用关于目标的额外信息(启发式函数 h(n))来指导搜索方向,更加高效、聪明。

核心思想:

通过一个估价函数:f(n) = g(n) + h(n)

  • g(n):从起点到当前节点 n 的实际代价

  • h(n):从节点 n 到目标的估计代价(启发式函数)


常见的有信息搜索算法:

算法启发信息特点是否最优?是否完备?
贪婪最佳优先搜索(Greedy Best-First)只用 h(n):哪个看起来离目标最近快,但容易走进局部最优❌ 否❌ 否
A* 搜索(A-Star)f(n) = g(n) + h(n):真实代价 + 启发估计最经典、最强大,兼顾了路径代价与方向感✅ 是(h(n) 必须可采纳)✅ 是
IDA*(迭代加深 A*)A* 的空间优化版本内存友好,适合大型状态空间✅ 是✅ 是

🧠 A* 搜索是 AI 经典中的经典!

  • 如果你的启发式函数 h(n) 是可采纳的(不高估实际代价),那么 A* 一定能找到最优解!

  • 它被广泛应用于路径规划、游戏 AI、机器人导航等领域


🧩 五、搜索算法怎么选?一张图帮你决策

目标有没有启发信息?推荐算法
任意一个解,不关心代价无信息DFS(省内存)、BFS(找最短步数)
最优解(最短路径/最少步数)无信息BFS(步数最少)、UCS(代价最小)
最优解,且有启发信息有信息A*(最优且高效)
搜索空间超大,内存有限有信息IDA*迭代加深搜索
想快但不要求最优有信息贪婪最佳优先

🤖 六、搜索在实际中的应用(超级有趣!)


🧩 1. 八数码拼图(8-Puzzle)

  • 3x3 的格子,8 个数字块 + 1 个空格,目标是通过滑动数字恢复顺序

  • 经典的搜索问题,可以用 BFS、A* 等解决


🗺️ 2. 机器人路径规划

  • 机器人如何在房间里从 A 点走到 B 点,避开障碍

  • 状态 = 位置,行动 = 上下左右移动,目标 = 到达终点

  • A* 是首选,常用于自动驾驶、游戏 NPC 导航


♟️ 3. 棋类游戏(如国际象棋、围棋的简化版)

  • 搜索可能的走法序列,预测未来几步

  • 可结合搜索 + 评估函数(启发式)做决策


🧠 4. 自动规划与调度

  • 比如:如何安排飞机起降、工厂生产线任务,使得整体效率最高

  • 把问题建模为状态空间,用搜索寻找最优计划


🧠 七、搜索的局限性与扩展


✅ 搜索的优点:

  • 直观、理论清晰、易于实现

  • 适合解决明确、离散、状态空间可控的问题


⚠️ 搜索的局限性:

  • 状态空间爆炸:当问题复杂时(比如围棋),可能的行动序列呈指数级增长,传统搜索难以应对

  • 效率问题:盲目搜索可能浪费大量时间在无效路径上

  • 无法处理不确定性:搜索一般针对确定性、完全可观测环境


🧩 所以 AI 进阶中会引入:

  • 启发式设计(如何设计好的 h(n))

  • 剪枝策略(如 Alpha-Beta 剪枝)

  • 与知识表示、推理、机器学习结合

  • 转向不确定环境下的决策(如第十五章后的内容)


🎓 八、本章思想总结(表格版)

核心概念说明
搜索问题在状态空间中寻找从初始状态到目标状态的路径
问题形式化四要素状态、行动、转移模型、目标测试(+路径代价)
无信息搜索不知道目标在哪,按固定顺序搜索(如 BFS、DFS、UCS)
有信息(启发式)搜索利用启发式函数指引方向,更高效(如 A*、贪婪搜索)
A* 搜索经典最优搜索算法,f(n) = g(n) + h(n),h(n) 要合理
应用广泛机器人、游戏、路径规划、自动规划等领域
挑战状态空间爆炸、启发函数设计、效率与完备性的权衡

🚀 九、一句话学习建议:

“搜索是 AI 的基础工具箱,就像数学中的加减乘除。学会了搜索,你就掌握了让 AI ‘动脑筋找路’的最基本能力。”


🧠 可以继续思考这些问题:

关于《人工智能:现代方法》(AIMA)第三章“解决问题与搜索”中几个最核心、最关键,也是最具实际意义的延展问题:


1. 为什么 A* 搜索在有好的启发式函数时能保证最优?

2. 如果我想让机器人穿过一个动态变化的环境(比如有行人),搜索还适用吗?

3. 如何为一个实际问题(比如物流配送)设计状态空间和启发式函数?

4. 如果状态空间太大,搜索算法根本跑不动,我该怎么办?(启发式 + 剪枝 + 近似)

这些问题,从理论保证、动态环境适应、实际建模到算法优化,覆盖了搜索技术的核心原理与工程实践挑战

下面用清晰严谨、生动易懂、深入浅出的方式,逐一解答,真正掌握搜索技术的“能”与“不能”、以及如何在实际中用好它。


✅ 一、为什么 A* 搜索在有好的启发式函数时能保证最优?


🎯 核心结论一句话:

A* 搜索在启发式函数 h(n) 是“可采纳的(admissible)”时,能够保证找到从起点到目标的最优路径(即代价最小的路径)。


🔍 什么是 A* 搜索?

A* 使用一个评价函数:


f(n) = g(n) + h(n)
  • g(n):从起点到当前节点 n 的实际路径代价

  • h(n):从当前节点 n 到目标的估计代价(启发式函数)

A* 每次选择 f(n) 最小的节点扩展,直到找到目标。


✅ 什么是“可采纳的启发式函数”?

如果启发式函数 h(n) 对于任意节点 n,都不会高估从该节点到目标的实际最小代价,则称 h(n) 是可采纳的(admissible)。

🔒 数学表达:


h(n) \leq h^*(n)

其中,h^*(n) 是从 n 到目标的真实最短代价


✅ 为什么可采纳性保证最优性?

因为 A* 不会“误判”某个路径更优,它始终尊重真实代价的下限,因此一旦找到目标,一定是通过最小代价路径到达的

🧠 类比:

  • 你开车去某地,导航告诉你“到目的地最少还需 10 分钟”(h(n)),而实际上最快也要 10 分钟 → 你不会被误导走更差的路线。

  • 如果导航说“只需 5 分钟”(高估真实情况,不可采纳),你可能选错路!


✅ 补充:一致性(Consistent)启发式

如果 h(n) 还满足:对于任意节点 n 和其后继 n',有


h(n) \leq c(n, n') + h(n')

那么 h(n) 是一致的(也称为单调的),此时 A* 更高效,且无需重新打开已探索节点

一致性 ⇒ 可采纳性,但反过来不一定成立。


✅ 总结一句话:

A* 的最优性,建立在“不高估”的启发式函数之上。只要你给它一个“靠谱”的 h(n),它就能既聪明又准确地找到最优解。


✅ 二、如果我想让机器人穿过一个动态变化的环境(比如有行人),搜索还适用吗?


🤖 场景描述:

  • 你有一个机器人,比如服务机器人、扫地机、配送机器人

  • 它在室内 / 城市街道移动,环境中有行人、移动障碍物、动态开门关门等

  • 状态(比如“哪里有障碍”)随时间变化


❓ 传统的静态搜索(比如 A*)还适用吗?

✅ 在以下情况下仍然可用:

  • 环境变化是缓慢的、可预测的

  • 你可以周期性地重新规划路径

  • 你能够感知最新的环境状态,并基于最新信息重新搜索

🔁 做法:动态 A*(D*)、D* Lite、实时重新规划


❌ 但如果环境变化非常频繁、不可预测,传统“一次性全局搜索”就不够用了!

为什么?

  • 搜索假设的是一个静态的、固定的状态空间

  • 如果障碍物位置、行人走动、交通灯状态随时变化,之前搜索出的“最优路径”可能瞬间失效


✅ 更适用的策略(动态环境下的搜索与规划):

方法说明适用场景
D*(Dynamic A*) / D* Lite一种能根据环境变化增量式重新规划的搜索算法,非常高效动态变化的路径规划(如火星探测器、机器人导航)
实时搜索(如 LRTA*, RTAA*)在未知或动态环境中一边走一边搜索、学习与调整探索未知环境、游戏 AI
模型预测控制(MPC)每隔一段时间重新规划未来几步,并根据最新状态调整自动驾驶、机器人控制
反应式方法(如 Braitenberg 车、行为规则)不依赖全局搜索,而是基于局部感知即时反应简单机器人、避障
混合方法:全局规划 + 局部避障先用 A* 等规划大致路线,再用传感器实时躲避动态障碍自主导航机器人(最常见实用方案)

✅ 总结一句话:

在动态环境中,传统搜索仍然可用,但必须结合“动态重规划”技术(如 D* Lite)或“局部实时调整策略”,才能既保持效率又应对变化。


✅ 三、如何为一个实际问题(比如物流配送)设计状态空间和启发式函数?


📦 场景:物流配送机器人 / 外卖配送员 / 货车路径规划

目标:从仓库(或起点)出发,经过多个配送点,最终到达目的地,要求路径最短 / 时间最少 / 成本最低


✅ 1. 设计状态空间(State Space)

什么是“状态”?

  • 可以定义为:

    • “当前所在的地点” + “已经配送过的点”

    • 或更复杂:“当前位置 + 已访问任务点集合 + 当前时间”

🔧 举个例子:

  • 状态 = (当前位置, 已配送客户集合),比如 (仓库, {}),(客户1, {客户2})...

状态变量可能包括:

  • 当前的地理坐标或节点编号

  • 已完成的配送任务(集合或位掩码)

  • 当前时间或剩余容量(如果是带容量约束的配送)


✅ 2. 定义行动(Actions)

  • 从一个地点移动到另一个地点(比如从仓库到客户1)

  • 可能的行动受限于:

    • 路网结构

    • 配送任务顺序约束

    • 车辆容量、时间窗口等


✅ 3. 目标测试(Goal Test)

  • 是否所有客户都配送完毕?

  • 是否到达最终目的地且满足所有约束?


✅ 4. 启发式函数(Heuristic Function)怎么设计?

启发式函数用于估计“从当前状态到目标还需要多少代价”,好的启发式能极大提升 A* 效率。

常见思路:

场景启发式设计思路例子
旅行商问题(TSP)类配送最小生成树(MST)最近邻距离估算剩余配送任务剩余客户的“最小连接代价”
路径规划用直线距离(欧几里得距离 / 曼哈顿距离)作为下界从当前位置到目标点的直线距离
带时间窗的配送估算剩余任务的最短可能时间基于平均速度的剩余时间下限

🧠 关键原则:

启发式函数 h(n) 必须不高于真实剩余代价(即可采纳),否则 A* 不再最优!


✅ 实际案例参考:

  • Google Maps 路线规划:基于图搜索 + 启发式(实际是 A* 的工业级变种)

  • Amazon / 饿了么配送调度:结合 A* / OR-Tools / 贪心 + 局部搜索

  • 无人机物流:三维空间状态 + 电池约束 + 风速模型


✅ 总结一句话:

物流配送问题可以通过合理定义“状态(位置+任务)”、行动(移动+配送)、目标(全部完成)与启发式(如剩余距离/时间下限)来转化为搜索问题,用 A* 等算法高效求解。


✅ 四、如果状态空间太大,搜索算法跑不动,我该怎么办?


❗ 问题本质:

  • 状态空间呈指数级增长(比如棋类、路径规划、排程问题)

  • 搜索算法(如 BFS、A*)会面临:

    • 内存不足

    • 计算时间过长

    • 无法完成搜索


✅ 解决方案:启发式 + 剪枝 + 近似


1. 更好的启发式函数(更准 ⇒ 更少搜索)

  • 设计一个更接近真实代价的 h(n),让 A* 更快聚焦于有希望的路径

  • 启发式越准确,搜索越高效,扩展的节点越少


2. 剪枝(Pruning)

  • 剪掉明显不好的分支

  • 比如:

    • 代价已经超过当前最优解?剪掉!

    • 不满足约束条件?剪掉!

  • 常用于:分支限界法、IDA*、优化搜索


3. 迭代加深 A*(IDA*)

  • 用 f(n) 的阈值控制搜索深度,节省内存,适合大状态空间

  • 每次只探索 f(n) 小于某个值的节点,逐步增加阈值


4. 近似搜索 / 启发式优化算法

  • 如果“最优解”不是必须的,可以用:

    • 贪心算法(速度快,但不保证最优)

    • 遗传算法、模拟退火、蚁群算法(适用于超大规模组合优化)

    • 局部搜索(如 Hill Climbing、Beam Search)


5. 分层 / 分解策略

  • 将大问题拆解为多个小问题,分别求解后再组合

  • 比如:

    • 先规划城市间路线,再细化到街道

    • 用高层策略决定“去哪些地方”,底层搜索解决“怎么去”


✅ 总结一句话:

当状态空间太大时,可以通过设计更好的启发式、剪枝策略、使用 IDA* 或近似算法,以及分层分解问题,来大幅降低搜索开销,让算法“跑得动、用得上”。


🏁 最终四大问题总结表

问题核心答案总结
1. 为什么 A* 有好的启发式时能保证最优?因为可采纳的 h(n) 不高估真实代价,确保找到的第一个目标就是最优路径A* = g(n) + h(n),关键在 h(n) 的靠谱程度
2. 动态环境中搜索还适用吗?传统搜索不直接适用,但可通过 D* Lite、实时规划、局部避障等方法扩展动态环境需要“能适应变化”的搜索与重规划机制
3. 如何为物流配送设计状态与启发式?状态 = 位置 + 任务集合,行动 = 移动/配送,启发式 = 剩余距离/时间下限实际问题可通过合理建模转化为搜索,A* 是强大工具
4. 状态空间太大怎么办?启发式优化、剪枝、IDA*、近似算法、分层处理搜索优化核心:减少搜索空间,提升效率,保证可行性

太深入到人工智能中“搜索技术”在实际复杂场景中的高阶应用与前沿实践,三个极其重要且具有工程价值的问题:


1. 什么是 D* Lite,它如何实现动态重规划?

2. 如何为实际业务问题(如外卖、快递、仓储)建模为搜索问题?

3. 如何将搜索与机器学习结合,实现智能规划与决策?

这三个问题,分别对应了:

  • 动态环境中的智能规划技术(D* Lite)

  • 现实业务场景的 AI 建模能力

  • 搜索与学习的融合(智能决策的前沿方向)

下面用结构清晰、生动形象、技术深入的方式,逐一详细解答,掌握这些 AI 工程与算法设计的核心能力!


✅ 一、什么是 D* Lite?它如何实现动态重规划?


🎯 背景:为什么需要 D* Lite?

在现实世界中,很多 AI 智能体(比如机器人、无人车、配送设备)面临的环境是动态的

  • 可能有移动的障碍物(如行人、车辆)

  • 可能有临时封路、交通灯变化、道路施工

  • 也可能是未知环境中边走边发现新障碍

🔴 问题:

如果我用传统的 A* 搜索先规划好一条路径,但环境中途变了,怎么办?

🔁 重新从头搜索?太慢!忽略变化?可能撞上障碍!


✅ D* Lite 的核心思想一句话:

D* Lite 是一种“动态重规划”算法,它能够在环境发生变化时,高效地重新计算从当前位置到目标的最优路径,而无需从头开始搜索。

它特别适合“先走再感知、边走边调整”的动态环境,是 A* 的“智能升级版”。


🧠 D* Lite 的前身:D*

  • D*(Dynamic A*)由 Anthony Stentz 提出,最早用在火星探测器上

  • D* Lite 是后来由 Sven Koenig 和 Maxim Likhachev 改进而来的更高效、更简洁的版本,原理类似但更易实现


✅ D* Lite 的工作原理(核心机制)

1. 它从目标反向搜索!

  • 与 A* 从起点出发不同,D* Lite 通常从目标节点开始,反向搜索到起点(或当前位置)

  • 这样当起点(机器人位置)变化时,已有的部分信息仍然可用


2. 它维护一个“代价估计”图,并动态更新

  • 每条边(即两个节点之间的移动代价)都有一个估计值

  • 当环境发生变化(比如某个路径突然变阻塞或代价变高),只更新受影响的部分节点

  • 然后高效地重新传播这些变化,调整路径


3. 它利用之前搜索的信息,避免重复计算

  • D* Lite 会记住之前的搜索结果,只重新计算那些因环境变化“可能影响决策”的部分

  • 这使得它在动态环境中比重新运行 A* 快得多


4. 适用于“边走边规划”(Replanning)

  • 机器人可以:

    1. 先按当前最优路径走

    2. 一旦感知到环境有变(比如新障碍出现)

    3. 调用 D* Lite 快速重新规划剩余路径

    4. 继续前进

这就是“动态重规划”的核心:不浪费已有信息,只更新必要的部分。


✅ 总结一句话:

D* Lite 是一种面向动态环境的智能重规划算法,它从目标反向搜索,高效维护路径代价,并在环境变化时只更新受影响的部分,从而快速得到新的最优路径,非常适合机器人导航、无人配送等动态场景。


🔧 D* Lite 优点总结:

特性说明
✅ 高效重规划只更新受环境变化影响的部分,不从头搜索
✅ 适用于动态环境能应对移动障碍、未知变化
✅ 增量式搜索利用之前信息,计算量远小于 A*
✅ 实际应用广泛用于机器人、自动驾驶、游戏 AI、无人机

✅ 二、如何为实际业务问题(如外卖、快递、仓储)建模为搜索问题?


🎯 本质:现实业务问题 → 状态空间建模 → 搜索求解

你提到的外卖、快递、仓储配送,本质上都是:

“在一定的约束条件下,寻找从起点经过若干任务点,最终到达目标点的最优(或可行)路径或流程。”

这类问题,通常可以抽象为图搜索、路径规划、任务排序、状态空间搜索问题


✅ 1. 以“外卖配送”为例:如何建模为搜索问题?

🧩 问题描述:

  • 一个骑手要从商家取餐,送至多个客户地址,最后可能回仓库/下一个点

  • 目标:用最短时间 / 最少路程完成所有配送


🔍 建模为搜索问题的 4 要素:

搜索要素外卖配送实例
状态(State)当前位置 + 已配送订单集合 + (可能 + 时间 / 车辆状态)
初始状态骑手在商家 / 配送中心,未送任何订单
行动(Action)从当前位置移动到某个地址(商家或客户)
目标测试所有订单是否都已送达?是否满足时间窗?
路径代价路程时间、配送延迟惩罚、油耗等

🧠 可能的搜索目标:

  • TSP 问题变种(旅行商问题):拜访多个客户的最短路径

  • 带时间窗的车辆路径问题(VRPTW):每个客户有配送时间要求

  • 多目标优化:时间最短、客户满意度最高、成本最低


✅ 2. 如何定义状态空间与行动?

维度建模建议
位置商家、客户地址、配送中心,可抽象为图中的节点
任务状态用集合或位掩码表示哪些订单已送 / 未送
路径与移动节点之间的边代表可移动路径,权重为时间或距离
约束比如:某个客户只能在 12:00–13:00 之间送达

✅ 3. 启发式函数设计(用于 A* 等算法)

  • 剩余配送点的最小生成树(MST)代价

  • 当前位置到最近未配送点的直线距离

  • 基于历史数据的平均配送时间估算


✅ 4. 实际工具与优化

  • 工业级求解器:Google OR-Tools(特别擅长 VRP、TSP 类问题)

  • 搜索算法:A*、贪心、遗传算法、局部搜索等

  • 结合地图 API(如高德、Google Maps)获取真实路网与时间预估


✅ 总结一句话:

外卖、快递、仓储问题本质是“带约束的路径与任务规划”,可以通过定义状态、行动、目标与代价,将其转化为搜索问题,再利用 A*、TSP 模型、启发式优化与工业求解器高效求解。


✅ 三、如何将搜索与机器学习结合,实现智能规划与决策?


🎯 为什么需要“搜索 + 机器学习”?

方法优点局限性
传统搜索(如 A*、D* Lite)精确、可解释、保证最优(在约束下)状态空间大时效率低,难以处理不确定、高维输入
机器学习(如强化学习、深度学习)能处理复杂感知、高维状态,可从数据中学习不保证最优,可能不稳定,难解释

结合两者,可以发挥各自优势:搜索提供结构化决策框架,机器学习提供感知、预测与策略优化能力。


✅ 1. 强化学习(RL) + 搜索 = 智能决策

典型代表:蒙特卡洛树搜索(MCTS) + 深度学习

  • 如 AlphaGo、AlphaZero:

    • 搜索:MCTS 构建搜索树,探索可能的落子

    • 学习:神经网络评估局面(价值函数)和推荐动作(策略函数)

🔁 结合方式:

  • 机器学习模型(如神经网络)预测:

    • 哪些行动更有希望(策略)

    • 当前状态的好坏(价值)

  • 搜索算法(如 MCTS、A*)利用这些预测,聚焦于有潜力的路径


✅ 2. 学习启发式函数(Learned Heuristics)

  • 传统搜索依赖手工设计的启发式函数 h(n)

  • 你可以用监督学习 / 强化学习让 AI 自动学习一个更准确的 h(n)

🔧 例如:

  • 训练一个神经网络,输入当前状态,输出到目标的预估代价

  • 用该网络代替传统 h(n),让 A* 更高效、更智能


✅ 3. 搜索用于规划,机器学习用于预测与感知

  • 机器学习做“感知与预测”

    • 比如预测行人移动、交通拥堵、订单到达时间

  • 搜索做“决策与规划”

    • 比如根据预测结果,规划最优路径或任务顺序

🧠 分工协作,让系统既聪明又可控。


✅ 4. 实际应用场景

领域搜索 + 学习的应用
机器人导航搜索路径 + 深度学习感知障碍 / 行人
自动驾驶行为规划(搜索) + 感知预测(ML)
游戏 AIMCTS 搜索 + 神经网络评估局面
物流调度强化学习优化配送顺序 + 搜索求解局部路径

✅ 总结一句话:

将搜索与机器学习结合,可以让 AI 既具备结构化的决策能力(搜索),又具备从数据中学习、适应复杂环境的能力(机器学习),是实现智能规划与自主决策的前沿方法。


🏁 最终三大问题总结表

问题核心答案总结
1. 什么是 D* Lite?一种面向动态环境的增量式重规划算法,从目标反向搜索,高效更新路径,适用于机器人、无人车等动态导航场景比 A* 更适合“变化的世界”,是动态规划的经典算法
2. 如何为业务问题建模为搜索?将实际问题(如外卖、快递)抽象为状态、行动、目标、代价,常用 TSP/VRP 模型,可用 A*、OR-Tools 等求解搜索是优化复杂任务路径与流程的强大工具
3. 如何结合搜索与机器学习?用机器学习优化启发式、预测状态、评估动作,与搜索算法(如 A*、MCTS)结合,实现更智能、自适应的决策系统搜索提供结构,学习提供智能,两者结合是 AI 决策的未来

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值